Potato 2.14: درّب نماذج على تعليقاتك التوضيحية
يدرّب Potato 2.14 نماذج على تصنيفات الدراسة بـ 38 مُدرِّباً، ويقيس أداء كل تشغيلة على عناصر محجوزة، ويعرض التنبؤات على المعلّقين بوصفها تصنيفات مسبقة.
يدرّب Potato 2.14 نماذج على التعليقات التوضيحية الخاصة بالدراسة. تدرّب التشغيلة واحداً من 38 مُدرِّباً على التصنيفات التي أعطاها المعلّقون، وتقيس أداء النموذج على عناصر حُجزت خارج التدريب، وتكتب تنبؤات النموذج راجعةً إلى العناصر بوصفها تصنيفات مسبقة يؤكدها المعلّقون أو يصحّحونها. كان في الإصدار 2.13.1 مُدرِّب واحد هو sklearn-text. ويستورد هذا الإصدار أيضاً ملفات RTTM لفصل المتحدثين، ويصدّر أدوار المتحدثين المصحَّحة، ويشغّل WhisperX للنسخ المحلي، ويصلح عدة أخطاء غيّرت أرقام الاتفاق والتصديرات، فاقرأ ملاحظات الترقية قبل أن تثبّت.
pip install --upgrade potato-annotationملاحظات الترقية
شغّل potato validate config.yaml --strict على كل تهيئة أولاً. قد تغيّر التغييرات التالية ما تفعله دراسة تعمل على 2.13:
assignment_strategy: llm_confidenceيرتّب الطابور الآن. تقدّم الاستراتيجية التصنيف المسبق الأقل ثقة أولاً، ثم العناصر التي لا تصنيف مسبقاً لها. وكانت الإصدارات السابقة تقبل القيمة وتسند العناصر عشوائياً.model_trainingيُفحص عند التحقق وعند البدء. المفتاح المجهول تحتwritebackأوauto_retrain، وقسم باسم غيرtrainأوvalأوtest، ومدخل فيwriteback.schemasليس مخططاً، كلها أخطاء توقف الخادم.- تبلغ صفحة التدريب عن درجة عناصر محجوزة. كان عمود الدرجة يعرض دقة التدريب. ولا تُقارَن درجة من تشغيلة 2.13 بدرجة عناصر محجوزة في 2.14.
- الروابط والسلاسل والأحداث تظهر في التصديرات. كانت إجابات
span_linkوcoreferenceوevent_annotationغائبة عن كل تصدير، وصار CSV وTSV يضيفان العمودين<scheme>._linksو<scheme>._events. - لم يعد Potato يدرج
ujsonفيinstall_requires. وسكربت خاص بك يستوردujsonمن بيئة Potato يحتاج إلىpip install ujson.
تدريب النماذج
تدريب النماذج لدراسة عناصرها أكثر مما سيصنّف المعلّقون، ويستطيع فيها نموذج مدرَّب على التصنيفات الأولى أن يقترح الباقي. للحلقة ثلاث خطوات. أولاً، تحسم التشغيلة تصنيفات كل عنصر في إجابة واحدة وتقسّم العناصر إلى train وval وtest. ثانياً، يدرّب المُدرِّب نموذجاً على قسم train في عملية منفصلة، وتقيس التشغيلة أداء النموذج على عناصر val وtest. ثالثاً، تعرض الكتابة الراجعة تنبؤات النموذج على المعلّقين بوصفها تصنيفات مسبقة، وتصبح الإجابات التي يحفظها المعلّقون تصنيفات للتشغيلة التالية.
لتفعيل الحلقة في دراسة فيها مخطط sentiment أضف هذه الكتلة إلى تهيئة الدراسة:
model_training:
enabled: true
writeback:
schemas: [sentiment]
include_unlabeled: true
min_confidence: 0.6لا يرى المعلّقون شيئاً من تشغيلة إلى أن يُسمّى مخطط تحت writeback.schemas. يتنبأ include_unlabeled: true بالعناصر التي لم يصنّفها أحد، ويُبقي min_confidence التنبؤات التي تقل عن 0.6 خارج الصفحة. أعد تشغيل الخادم، وافتح /admin/training بمفتاح المسؤول، واختر مُدرِّباً ومخططاً، وانقر Train now.

يضم مشروع Potato النموذجي في examples/ai-assisted/model-training/ ما مجموعه 160 مراجعة منتج ويشغّل sklearn-text، الذي لا يحتاج إلى GPU ولا إلى شيء يتجاوز التثبيت العادي. وتبلغ وثائق تدريب النماذج عن تشغيلة واحدة هناك، على 120 مراجعة مصنّفة، سجّلت 0.84 macro-F1 على مراجعات التحقق وكتبت 80 تصنيفاً مسبقاً. ثم يرى معلّق جديد كل مراجعة من هذه المراجعات وإجابة النموذج محددة مسبقاً:

يستعرض درّب نموذجك الأول المثال خطوة بخطوة.
مُدرِّبات لكل نوع من التعليقات التوضيحية
تعرض صفحة التدريب لكل مخطط المُدرِّبات التي تناسبه فقط. يسرد فهرس المُدرِّبات كل المُدرِّبات الـ 38 مع أوامر التثبيت، وتسمّي القائمة أدناه المجموعات الرئيسية:
- النص. يصنّف
hf-text-classificationوsetfitوsklearn-textالعناصر. ويوسمhf-token-classificationالنطاقات، ويربطhf-relationالنطاقات في علاقات وأحداث وسلاسل إحالة مشتركة، ويقسّمbyt5-glossالكلمات ويشرحها للشرح بين السطري. - الصور. يدرّب
torchvision-detectوultralytics-detectكاشفات، ويدرّبtorchvision-segmentوultralytics-segmentوcellposeمجزّئات. وتقطّع تشغيلات الكشف والتجزئة الشرائح الكاملة والصور الكبيرة، وتتدرّب على مستويات المجهر وخرائط GeoTIFF. ويجزّئvolume-unetالأحجام ثلاثية الأبعاد، ويصنّفlayoutlmv3تخطيطات الصفحات، ويضبطvlm-sftنموذج رؤية ولغة ضبطاً دقيقاً على التعليقات والتأريض وخطوات واجهة المستخدم. - الصوت والفيديو. يضبط
whisper-asrنموذج Whisper ضبطاً دقيقاً على أدوار النص المنسوخ المصحَّحة، ويدرّبdiarizationنموذج متحدثين على أدوار المتحدثين، ويوسمhf-audio-taggerمقاطع الصوت، ويتتبعvideo-trackالأجسام عبر الإطارات. - النماذج اللغوية الكبيرة والوكلاء. يضبط
llm-sftضبطاً دقيقاً على الإجابات النصية الحرة، وllm-dpoعلى التفضيلات الثنائية، وreward-modelعلى إجابات المقارنة الثنائية والترتيب وأفضل-أسوأ، وprm-rewardعلى تقييمات خطوات مسارات الوكلاء. - العلوم. يتنبأ
rdkit-propertyبإجابات عن الجزيئات، ويتنبأpeak-cnnبمواضع القمم على الأطياف، ويصنّفsignal-cnnفترات الإشارات الزمنية، ويصنّفepisode-modelحلقات الروبوت.
مُدرِّبا ultralytics بترخيص AGPL-3.0، وأوزان LayoutLMv3 بترخيص CC BY-NC-SA 4.0. وتطلب تشغيلة أي منها قبول الترخيص أولاً. ويثبّت pip install "potato-annotation[train]" ما تحتاجه مُدرِّبات النص والصور والصوت والنماذج اللغوية الكبيرة، ويسمّي الفهرس عمليات التثبيت المنفصلة.
درجات العناصر المحجوزة والتصنيفات المسبقة
تقيس كل تشغيلة أداء تنبؤاتها على عناصر val وtest بمقياس يلائم المخطط، مثل macro-F1 للتصنيفات وmAP50 للصناديق ومعدل أخطاء الكلمات للنصوص المنسوخة وDice للأحجام. والعنصر الذي له تصنيف ولا تنبؤ له يُحتسب خاطئاً، ويبلغ رقم تغطية عن نصيب العناصر التي حصلت على تنبؤ. ولا تحصل عناصر قسم train على تصنيف مسبق أبداً، والعنصر الذي صحّحه مراجع يذهب دائماً إلى قسم train في التشغيلات اللاحقة.
لا يصبح التصنيف المسبق إجابة المعلّق إلا حين يعدّله المعلّق أو ينتقل إلى التالي، ولا تغيّر الكتابة الراجعة تصنيفاً بشرياً أبداً. ويقدّم طابور مراجعة النموذج التصنيفات المسبقة بادئاً بالأقل ثقة، ويسمّي تقرير المراجعة التشغيلة التي تقف خلف كل تصنيف مسبق. ويغطي النموذج داخل الحلقة سير عمل المراجعة.
التدريب على خادم GPU أو عنقود
تعمل التشغيلة على خلفية. تدرّب الخلفية local على خادم Potato وتختار CUDA أو Metal من Apple أو المعالج. وتبدأ خلفية ssh التشغيلة على خادم GPU يصل إليه Potato وتبثّ التقدم والنموذج عائداً. وترسل خلفية slurm التشغيلة إلى عقدة حوسبة بـ sbatch من عقدة تسجيل الدخول، ولا تحتاج إلا إلى sbatch وsqueue وscancel. وتخدم خلفية agent جهازاً لا يصل إليه Potato، يشغّل potato training agent ويستطلع الخادم بحثاً عن المهام. وقبل تشغيلة على خلفية ssh يبلغ potato training check <backend> config.yaml عن Python البعيد والـ GPU البعيدة وحِزم التدريب الناقصة. ويُعدّ التدريب على خادم GPU أو عنقود SLURM أو جهاز خلف NAT كل خلفية.
اختيار ما يُسأل عنه بعد ذلك
يقبل hf-text-classification وhf-image-classification المعامل acquisition الذي يكتب درجة على كل تنبؤ، بحسب الهامش أو الإنتروبيا أو BALD أو مسافة core-set. ثم يقدّم assignment_strategy: llm_confidence أعلى الدرجات أولاً. ويبدأ auto_retrain تشغيلة جديدة بعد كل 25 تعليقاً توضيحياً جديداً افتراضياً، وتعيد كل تشغيلة تقييم العناصر غير المصنّفة. ويقارن التعلّم النشط هذه الحلقة بكتلة active_learning في Potato.
نماذج لديك بالفعل
خمسة مُدرِّبات لا تدرّب شيئاً وتقيّم نموذجاً يعمل في مكان آخر: label-studio-ml لخلفية Label Studio ML، وopenai-vlm-boxes لنموذج رؤية ولغة خلف API متوافق مع OpenAI، وhf-inference لنقطة نهاية Hugging Face Inference، وroboflow، وcvat-nuclio لدالة CVAT serverless. وتحصل تنبؤات تلك النماذج على درجة العناصر المحجوزة والكتابة الراجعة والمراجعة نفسها التي تحصل عليها تنبؤات نموذج مدرَّب. ويغطي تصنيفات مسبقة ودرجات عناصر محجوزة من نموذج تشغّله بالفعل كل جسر.
نشر نموذج
تنشر صفحة التشغيلة النموذج على Hugging Face Hub مع بطاقة نموذج تسمّي المُدرِّب والنموذج الأساسي والمخططات وأحجام الأقسام ودرجة العناصر المحجوزة. تكتب اسم المستودع مرتين، والمستودع خاص افتراضياً، ويأتي الرمز من متغير بيئة على الخادم. وتبقى التنبؤات وبيانات التدريب على الخادم. وتحفظ الصفحة نفسها قسم التشغيلة وتصنيفاته البشرية إصداراً من مجموعة بيانات لمقارنة نماذج لاحقة على العناصر نفسها.
التفريغات النصية والاستيراد والتصدير
- WhisperX. يستخدم
potato transcripts --transcribeالأداة WhisperX حين تكون مثبّتة، مع أزمنة الكلمات من المحاذاة القسرية تحت--asr-word-timestamps، ويعود إلى faster-whisper في غير ذلك. وتكتب تشغيلةwhisper-asrنسخة CTranslate2 من النموذج المضبوط ضبطاً دقيقاً يحمّلها--asr-model. - استيراد RTTM. يحوّل
potato import -f rttmملف فصل متحدثين، أو مجلداً منها، إلى عنصر واحد لكل تسجيل مع أدوار المتحدثين لتصحيحها. ويعيد--speaker-mapتسمية المتحدثين. - تصدير
segments. تكتب الصيغة صف JSONL واحداً لكل مقطع صوتي أو مرئي وملف RTTM لكل معلّق. - تبعيات CoNLL-U. يأتي HEAD وDEPREL من مخطط
span_linkموجَّه على النطاقات المصدَّرة. وكان العموديان كلاهما_دائماً من قبل.
إصلاحات تؤثر في النتائج
يسرد سجل التغييرات كل إصلاح. والإصلاحات أدناه كان يمكن أن تغيّر أرقاماً أبلغت عنها:
- كان تعادل ترتيب مكتوب بصيغة
B,D=A,Cيُقرأ عنصراً واحداً اسمهD=A، فاستبعد Kendall's tau ومسافة Spearman footrule العنصرين المتعادلين كليهما. - كانت التصنيفات المسبقة للمنزلق والتصنيف الناعم ومقياس المقارنة الثنائية تُحفظ إجابةً للمعلّق عند تحميل الصفحة، فيُحتسب العنصر منجزاً قبل أن يجيب أحد. وكان فتح عنصر
grounding_evalيحفظ العنصر بالطريقة نفسها. - كان
/admin/iaaيسرد الإحالة المشتركة وروابط النطاقات والأحداث نطاقاتٍ بلا درجة. ويقيّم التقرير الآن هذه الأنواع الثلاثة بمتوسط F1 الزوجي. - لم يكن دمج رمز في دليل الترميز أو تقسيمه يعيد توجيه أي ترميز، لأن شيئاً لم يكن يربط التعليقات التوضيحية المحفوظة بمعرّفات الرموز.
- كانت بيانات لقطات الحالة تجمّد أرقام اتفاق فارغة، وصارت تسجّل kappa ونسبة الاتفاق.
- كانت مراجعة النموذج تحتسب حكم
rejectإخفاقاً بدلاً من احتسابه ضد التصنيف المسبق الذي أزاله الحكم، فخرجت دقة تقرير المراجعة خاطئة. وكان زوج (معلّق، عنصر) محجوز يحتفظ بحقل الكتابة الراجعة في بيانات العنصر حين يختلفwriteback.fieldعنpre_annotation.field، وصارت بيانات العنصر لمثل هذا الزوج تستبعد الحقلين كليهما.
تثبيت 2.14
رقِّ الإصدار، وتحقق من كل تهيئة، وثبّت المُدرِّبات التي تحتاجها:
pip install --upgrade potato-annotation
potato validate config.yaml --strict
pip install "potato-annotation[train]"تدريب النماذج هو مكان البداية، ويسرد ما الجديد بقية الإصدار.