الانتقال إلى المحتوى

الأدلة الإرشادية

التحقق من نموذج مدرَّب

قد يحرز النموذج المدرَّب نتيجة جيدة على مجموعة رآها من قبل، ويقلب إجابته حين يتحرك المُدخل قليلًا، ويصادف بذرة محظوظة. يفحص Oloproof كلًّا من هذه قبل أن يُطلق النموذج: المجموعة مقابل بيانات التدريب، وكل تنبؤ تحت ضجيج مُعلن، ووصفة التدريب عبر عدة بذور. انسخ المثال بالأمر oloproof init --example model-validation: نموذج قروض دُرِّب بـ NumPy، دون اتصال، على بيانات اصطناعية.

المجموعة مقابل بيانات التدريب

oloproof leakage check --training data/training.jsonl --record

تُقارَن كل حالة بكل صف تدريب بالتطابق التام، بعد تحويل النصوص إلى أحرف صغيرة وضغط المسافات (--round يقرّب الأرقام، و--field يسمّي المفاتيح التي تُقارَن). يُقرأ ملف التدريب على جهازك ولا يُخزَّن ولا يُرسَل أبدًا؛ ويحتفظ السجل بمعرّفات الحالات والأعداد. أعلن leakage: required في release.yaml فتُحجب البوابة (رمز الخروج 3) حتى يُسجَّل فحص نظيف لهذه المجموعة. الحالة الموجودة في بيانات التدريب تجعل الدليل غير صالح؛ وليست FAIL للنموذج. لا تُفحص الحالات شبه المكررة.

التنبؤات تحت الضجيج

metamorphic:
  transforms:
    - name: noise
      field: features
      perturb: {kind: numeric_noise, scale: {income: 1.0, debt_ratio: 0.02}, seed: 7}
evaluators:
  - {type: metamorphic_relation, relation: same_label, transform: noise, field: label, passes_when: flipped}

تحصل كل حالة على نسخة بضجيج ذي بذرة على الأرقام المسمّاة، وflips_under_noise هي نسبة الحالات التي تغيّرت تسميتها. يستبدل categorical_swap القيم وفق خريطة مُعلنة، وتغيّر blur وbrightness وocclusion وjpeg الصور. يستخدم نموذج الانحدار same_score_within مع هامش تسامح. لا يستطيع الناس الحكم على ما إذا كان الضجيج على صف يحفظ معناه، لذا فالاضطراب الرقمي مُعلن: يُبلَّغ عن معدله، وتُقرأ القاعدة المبنية عليه INSUFFICIENT_EVIDENCE مع transform_declared. أما تحويل الصور فيحسم البوابة متى أظهرت تسميات الناس أنه يحفظ معنى كل صورة، كما يفعل تحويل النص. ويُظهر مشروع image/ في المثال الحالتين: تمويه تتحقق منه تسمياته فيفشل معدل انقلابه أمام حدّ أقصى، ورقعة رمادية تُظهر تسمياتها أنها تُخفي الخدش أحيانًا فتمتنع قاعدتها عن الحكم.

الوصفة عبر البذور

تُحسم نقطة الحفظ التي تطلقها على تشغيلها الخاص، كأي نظام. وسؤال ثانٍ هو ما إذا كانت طريقة تدريبك جيدة بما يكفي: أعد التدريب الشهر المقبل وستحصل على سحبة أخرى. درِّب k نقاط حفظ بـ k بذور، وشغّل كلًّا منها على المجموعة نفسها، وسمِّ التشغيلات:

seeds:
  recipe: loan-model
  checkpoints: {seed_1: latest~4, seed_2: latest~3, seed_3: latest~2, seed_4: latest~1, seed_5: latest}
  rule: {id: recipe_accurate, criterion: correct, min: 0.8}

يقرأ oloproof seeds seeds.yaml --policy recipe.yaml معدل النجاح المتوقع عبر البذور، مع مجال يحسب الحالات التي تضمها المجموعة والبذور التي جرّبتها معًا. في المثال تحرز خمس بذور من 85.7% إلى 90.3%، وتُقرأ الوصفة 88.2%، من 83.2% إلى 91.9%: PASS مقابل 80%. المجال تقريبي، لذا تحتاج السياسة إلى allow_approximate_methods: true، وإلا فالإجابة MANUAL_REVIEW. يجب أن تضم السياسة قاعدة واحدة على الأقل؛ ويقرأ الأمر مستوى ثقتها والموافقة الصريحة وحدود المُحكِّم فيها، ولا شيء غير ذلك. ويسرد أيضًا الحالات التي يتغيّر حكمها من بذرة إلى أخرى، ويكتب --html FILE صفحة واحدة تعمل دون اتصال فيها كل حالة تحت كل نقطة حفظ.

كل نقطة حفظ تُحتسب. البذرة التي فشل تدريبها تُبقى، وكل حالة لم تُجب عنها تُحتسب فشلًا للطرف الأدنى ونجاحًا للطرف الأعلى، فتوسّع المجال. أقل من ثلاث بذور تُقرأ INSUFFICIENT_EVIDENCE؛ ويلزم نحو خمس لحسم أي شيء. والمُحكِّم الذي لن تثق به البوابة لا يحسم وصفة أيضًا. يجب أن تشغّل كل نقطة حفظ المجموعة نفسها، بإصدار نظام واحد لكل منها، وتُرفض المجموعة التي تعلن مجموعات فرعية.

ما لا يمكن أن يخبرك به هذا

  • الاضطرابات التي لم يعلنها أحد. لا تُجرَّب إلا التحويلات المُعلنة، بالأحجام المُعلنة، ومعدل الانقلاب المنخفض لا يقول شيئًا عن التغييرات الأكبر ولا عن بحث المهاجم.
  • المتانة المعتمدة. لا يُثبَت أي حد لأي مُدخل؛ معدل الانقلاب معدل على حالات المجموعة.
  • كيف دُرِّب النموذج. لا يستطيع Oloproof أن يرى إن كانت البذور قد اختيرت قبل تقييم أي نقطة حفظ، أو إن كانت التشغيلات الفاشلة قد استُبعدت، أو إن كانت نقاط الحفظ لا تختلف إلا في بذرتها.
  • فشل أندر من نحو بذرة واحدة من k. إذا فشلت الوصفة في التدريب مرة من كل عشر ولم تفشل أي من البذور الخمس، فلا يمكن للمجال أن يعرف.
  • تسرّب لا يُظهره ملف التدريب: حالات شبه مكررة، أو صورة مُعاد تحجيمها، أو صفوف استُخدمت للضبط لكنها أُسقطت من الملف.
  • التسرّب في تشغيلات البذور. لا يقرأ oloproof seeds الإعداد leakage: required؛ وتُحكم البوابة على نقطة الحفظ التي تطلقها في تشغيلها الخاص، الذي يقرؤه.

ما لا يمكن لأي تقييم أن يخبرك به موجود في صفحته الخاصة.