الانتقال إلى محرّك الوسم
انقل إعدادات icl_labeling وjudge_calibration وpre_annotation والوضع الفردي إلى محرّك الوسم باستخدام potato label migrate-config، واطّلع على ما يتغيّر بعد ذلك.
تستمر ميزات الوسم الآلي الأقدم في Potato في العمل في 2.11، ولا يتغيّر أي سلوك حتى تضيف كتلة labeling_engine. وصارت ثلاثة مفاتيح تطبع عند بدء التشغيل ملاحظة إعلامية تسمّي ما يقابلها في محرّك الوسم، ومن المقرر إزالتها في 3.0. وتذهب الملاحظات إلى stderr، وتبدأ بـ NOTE:، وليست تحذيرات، لذا لا يفشل potato validate --strict بسببها.
يسرد الجدول المفاتيح الثلاثة وما يصير إليه كل منها:
| المفتاح الأقدم | ما يقابله في المحرّك |
|---|---|
icl_labeling | مصدر llm، مع عقد threshold_legacy للقاعدة القديمة وعقد selective_risk بجانبه |
judge_calibration | مصادر judge بثقة k_sample، تصير عيّنتها العمياء طلبات معايرة |
pre_annotation | مصدر static |
لم يُعلَن إهمال الوضع الفردي ولا مواءمة الحَكَم ولا مساعد الذكاء الاصطناعي التفاعلي (ai_support). فالوضع الفردي خبير واحد يعمل مع نموذج LLM عبر واجهته الخاصة، ومواءمة الحَكَم تقرير. وحين يكون المحرّك مفعّلاً، يكتب كلاهما أيضاً تنبؤات نماذجهما في مخزن المحرّك، فيستطيع المحرّك معايرتها والإشهاد عليها.
potato label migrate-config
يحوّل potato label migrate-config المفاتيح الأقدم إلى كتلة labeling_engine:
potato label migrate-config config.yaml --out config-engine.yamlيقرأ الأمر ملف YAML دون تحميل أي بيانات، ويضيف كتلة labeling_engine مكافئة، ويكتب النتيجة مع ترويسة من الملاحظات تشرح كل تحويل. ويكتب الكتلة مع enabled: false، فيتصرف الإعداد المحوَّل كما كان الأصلي حتى تفعّل المحرّك. اقرأ الملاحظات، وافحص المصادر والعقود، ثم اضبط enabled: true وassignment_strategy: engine. ويخرج الأمر بخطأ حين يحتوي الإعداد أصلاً على كتلة labeling_engine، أو حين لا يكون هناك ما يُحوَّل.
جدول التحويل
تُقابَل كل كتلة أقدم بمصادر المحرّك وعقوده وإعدادات البشر على النحو التالي:
| الكتلة الأقدم | المصادر | العقود | البشر |
|---|---|---|---|
solo_mode مع confidence_routing.tiers | مصدر لكل مستوى، بترتيب المستويات | selective_risk لكل مخطط اختيار واحد من N، error: 1 - end_human_annotation_agreement | pools: [solo] |
solo_mode مع labeling_models | مصدر لكل نموذج، والأول هو السلسلة المتتالية | كما سبق | pools: [solo] |
solo_mode.jury | مصدر لكل عضو في لجنة التحكيم، إضافة إلى مصدر jury بوصفه السلسلة المتتالية | كما سبق | |
icl_labeling | نقطة نهاية ai_support بوصفها مصدر llm | threshold_legacy عند confidence_threshold القديم، وselective_risk عند 10% | calibration_rate = sample_rate القديم الخاص بالتحقق |
judge_alignment | نقطة نهاية الحَكَم بوصفها مصدر judge (مع معايير التقييم حين يكون هناك مخطط واحد) | no_worse_than_human، epsilon: 0.15، لكل مخطط محكَّم | overlap: 0.3 |
judge_calibration | كل نموذج بوصفه مصدر judge بثقة k_sample | sampling.sample_size → budgets.human_labels | |
pre_annotation مع field أو predictions_file | مصدر static، أولاً في السلسلة المتتالية | ||
active_learning.llm | مصدر llm | ||
ai_budget.cap_usd | budgets.model_usd |
تغيّرات السلوك بعد الانتقال
يتعامل المحرّك مع الوسوم البشرية بطريقة مختلفة عن الميزات الأقدم، وتذكر الملاحظات في الإعداد المحوَّل مواضع ذلك. توقّع أربعة تغيّرات:
- العتبات الثابتة تصير عتبات مختبَرة. كانت عتبات التوجيه في الوضع الفردي وعتبة الثقة في
icl_labelingتقبل الوسوم الآلية فوق رقم ثابت. أماselective_riskفيختار العتبة على وسوم dev ولا يقبل إلا ما يجتاز اختباراً على وسوم محجوزة، لذا توقّع قبول وسوم أقل في البداية، مع حدّ خطأ معلن للوسوم المقبولة. - عيّنات التحقق تصير منتظمة. كان
icl_labelingيتحقق من التنبؤات الأقل ثقة أولاً، وهذا يكشف الأخطاء بسرعة ويعطي تقديراً متحيّزاً للدقة. أما طلبات المعايرة في المحرّك فعيّنة عشوائية مع احتمالات إدراج مسجّلة. - الحَكَم المضمّن يصير أعمى. كان
judge_alignment.inlineيعرض حكم الحَكَم في أثناء وسم البشر، فكان الاتفاق يُقاس على وسوم متأثرة بالمرساة. أما طلبات المعايرة في المحرّك فلا تعرض أي إجابة آلية أبداً. - التوسيمات المسبقة تُختبر قبل الوثوق بها. لا تُقبل وسوم مصدر
staticإلا حيث يُشهِد عليها عقد، وفي غير ذلك يراها البشر في طلبات التحقق.
قراءة إضافية
للاطلاع على تفاصيل التنفيذ، راجع الوثائق المصدرية.