Skip to content
Announcements6 min read

Potato 2.6: تحليل البيانات النوعية يلتقي بتقييم الوكلاء

صدر Potato 2.6: وضع QDA للترميز النوعي، وسير عمل لمعايرة ومواءمة نموذج LLM-as-judge، وتحرير المسارات الذي ينتج بيانات تدريب SFT وDPO، وإقلاع أسرع بثلاثة أضعاف، وإعادة الترخيص إلى GPL-3.0-or-later.

Potato Team

صدر Potato 2.6. إنه إصدار بمركزَي ثقل. على جانب، يدخل بـ Potato إلى تحليل البيانات النوعية، عالم نصوص المقابلات ودفاتر الترميز والمذكرات الذي عاش طويلاً داخل أدوات سطح المكتب المملوكة. وعلى الجانب الآخر، يعمّق مجموعة أدوات تقييم الوكلاء باتجاه إنتاج بيانات التدريب، لا مجرد الدرجات. وتحت كليهما، يصبح أسرع بشكل ملموس، ويغيّر ترخيصه.

إذا كنت تتابع الأمر، فإن منشورات الأسابيع الأخيرة قدّمت عرضاً مسبقاً لهذه الميزات واحدة تلو الأخرى. هذا هو الإصدار الذي يطرحها فعلياً.

Potato 2.6، منقسم بين تحليل البيانات النوعية وتقييم الوكلاءPotato 2.6

ملاحظة في البداية: Potato صار الآن بترخيص GPL-3.0

أُعيد ترخيص Potato إلى GPL-3.0-or-later، بدلاً من PolyForm Shield. هذا النوع من التغيير يسهل دفنه ولا ينبغي ذلك، لأنه يغيّر ما يُسمح لك بفعله بالمشروع.

بموجب GPL-3.0-or-later يمكنك استخدام Potato وتعديله وإعادة توزيعه، بما في ذلك تجارياً، ما دامت الأعمال المشتقة تبقى تحت GPL. كان ترخيص PolyForm Shield القديم يحمل قيداً على المنافسة جعل بعض المتبنين (وفرقهم القانونية) يترددون. وGPL ترخيص تفهمه تلك الفرق سلفاً. إذا كان سؤال ترخيصي يكبح مختبرك أو شركتك، فإن لهذا السؤال الآن إجابة مألوفة. راجع صفحة About للتفاصيل.

وضع QDA

العنوان الأبرز للباحثين النوعيين هو وضع QDA: مفتاح واحد يحوّل Potato إلى مساحة عمل تشاركية للترميز النوعي.

yaml
qda_mode:
  enabled: true            # codebook + memos + cases + search
codebook_invivo_key: i     # mint a code from a text selection

تفعيله يؤلّف دفتر ترميز حيّاً، وترميز in-vivo، ومذكرات المحلل، وحالات، وبحثاً في النص الكامل، بإعدادات افتراضية مضبوطة على محلل واحد يرمّز مدوّنة كاملة. يمكنك تنمية دفتر الترميز وإعادة تنظيمه أثناء القراءة، وإنشاء رمز مباشرة من مقطع مُظلَّل بضغطة مفتاح، وإرفاق مذكرات خاصة أو مشتركة بأي اقتباس، وتجميع الاقتباسات في حالات بحسب المشارك، وتشغيل بحث FTS5 عبر المدوّنة. إنه بديل مجاني ومفتوح المصدر وقائم على الويب لـ NVivo وATLAS.ti وMAXQDA وDedoose، يقيم داخل الأداة نفسها مع بقية عمل التعليق التوضيحي لديك.

كتبنا عن التصميم في جلب الترميز النوعي إلى Potato. المرجع الكامل: وثائق وضع QDA.

LLM-as-judge: المعايرة والمواءمة والفرز

أصبح استخدام نموذج LLM لتقييم مخرجات النماذج أمراً معتاداً. ومعرفة مدى الثقة به هي الجزء الذي يعالجه 2.6، عبر ثلاث ميزات تعمل معاً.

معايرة الحَكَم (Judge Calibration) تُسمّي بياناتك تلقائياً عبر حَكَم LLM واحد أو أكثر، وتأخذ من كل عنصر k عيّنات للحصول على ثقة تجريبية، ثم تُجري تمريرة بشرية معماة (لا يرى المعلّقون تسميات النموذج أبداً)، وتُبلّغ عن الدقة، ومعاملي Cohen's وFleiss' kappa، وKrippendorff's alpha، وخطأ المعايرة المتوقَّع. إنها تجيب عن «هل ينبغي أن أثق بهذا الحَكَم؟» بأرقام يمكنك الدفاع عنها. تناولناها في هل يمكنك الوثوق بحَكَم LLM لديك؟.

مواءمة الحَكَم (Judge Alignment) تضبط حَكَماً واحداً مقابل تسمياتك الذهبية البشرية، متتبّعةً Cohen's kappa بينما تصقل المعيار، مع إمكانية اختيارية لعرض حكم مدمج بجوار التسمية البشرية أثناء التعليق.

طابور الفرز (The Triage Queue) يرتّب طابور التعليق بحسب إشارة لكل عنصر (خطأ من الوكيل، أو إبهام لأسفل في الإنتاج، أو درجة منخفضة) كي يرى المراجعون أكثر المسارات اشتباهاً أولاً بدلاً من ترتيب الوصول.

yaml
triage:
  enabled: true
  signal_field: quality_score
  invert_signal: true
assignment_strategy: priority

تتألّف المواءمة والفرز معاً في حلقة تقييم فعّالة، استعرضناها في إغلاق الحلقة. وثائق مرجعية: Judge Calibration، وJudge Alignment، وTriage Queue.

تحرير المسارات لـ SFT وDPO

يتيح مخطط trajectory_edit الجديد للمعلّقين إعادة كتابة خطوات مسار وكيل، مع diff حيّ على مستوى الكلمة، لإصلاح خطوة استدلال خاطئة، أو ترميم استدعاء أداة، أو تقوية الإجابة النهائية. ثم يحوّل المُصدِّر trajectory_correction كل زوج أصلي/مُصحَّح إلى بيانات تدريب: أهداف ضبط دقيق مُشرَف في trajectory_sft.jsonl، وأزواج تفضيل DPO في trajectory_dpo.jsonl. أما المسارات غير المحرَّرة فتُتخطّى، إذ إن التدريب على مسار لم يتغيّر لا يعلّم شيئاً.

هذا يجعل Potato أداة لإنتاج بيانات التدريب، لا أداة تقييم فحسب. الشرح الكامل في من التقييم إلى بيانات التدريب؛ والمرجع في وثائق تحرير المسارات.

عرض eval_trace

قراءة مسارات الوكلاء بسرعة مشكلة قائمة بذاتها. يقسم عرض eval_trace الجديد مساراً واحداً إلى ثلاثة أجزاء متزامنة (الاستدلال، واستدعاءات الدوال، والإجابة النهائية) كي يرى المُقيِّم ما فكّر فيه الوكيل وما فعله وما أنتجه دفعة واحدة. صُمِّم للتقييم المستمر، حيث تصل المسارات عبر webhook أو مُستقصي Langfuse أو مجلد مُراقَب، ويجب الحكم عليها فور وصولها. راجع وثائق eval_trace.

سير العمل والنشر

تكمّل الإصدارَ مجموعةٌ من الميزات التشغيلية:

  • التغطية غير المتجانسة. خصّص أعداداً مختلفة من المعلّقين لعناصر مختلفة: معلّق واحد لمعظمها، وثلاثة لعيّنة طبقية، مع تعزيزات تكيّفية عند الاختلاف وتوجيه تلقائي للتحكيم. تناولناها في أبعد من التداخل الكامل؛ والمرجع في وثائق التغطية غير المتجانسة.
  • استعادة المهام المهجورة. استرجع العناصر التي تركها عمّال Prolific أو المحظورون بفعل ضبط الجودة، مع احتفاظ قابل للتهيئة واستعادة عَدِيمة التأثير الجانبي (idempotent). راجع توزيع المهام.
  • توزيع الدُّفعات المخصص. خصّص دُفعات محدَّدة مسبقاً من العناصر لمعلّقين بعينهم، مبنياً لتصاميم الدراسات متعددة الجولات.
  • بادئات عناوين URL عبر الوكيل العكسي. قدّم Potato تحت مسار فرعي خلف وكيل عكسي. راجع وثائق الوكيل العكسي.

أسرع، وإعادة تسمية في المخطط

يؤثّر تغييران في كل مشروع.

صار الإقلاع أسرع بنحو ثلاثة أضعاف. لم تعد حزمة تعلّم الآلة تُحمَّل بشغف عند بدء التشغيل، بل تُحمَّل عند أول استخدام بدلاً من ذلك. انخفض زمن الاستيراد من نحو 6.5s إلى 2s، وإقلاع 50,000 عنصر من نحو 10 ثوانٍ إلى 5.7، والذاكرة المقيمة من نحو 750MB إلى 365MB. صارت إعادة تشغيل الحاويات أسرع، وانخفضت بصمة الذاكرة للتوسّع الأفقي إلى النصف تقريباً.

annotation_type: highlight صار الآن span. هناك ترحيل قائم، والإعدادات الحالية القائمة على span غير متأثرة. حدّث الإعدادات القديمة بإعادة تسمية النوع. فكلمة «span» هي المصطلح المعياري في معالجة اللغة الطبيعية، وإعادة التسمية تجعل نوع التعليق متوافقاً معه.

استدراك: 2.5 و2.4.5

صدر إصداران بين 2.4 و2.6 من دون منشور هنا. ويستحق أبرز ما فيهما الإشارة، خصوصاً أن عمل الترميز النوعي تحديداً يُشكّل أساس وضع QDA:

2.5.0 كان موجة الترميز النوعي. أضاف Cohen's kappa وFleiss' kappa إلى جانب Krippendorff's alpha، والمُصدِّرَين codebook وquotation_report، وتحليلات إدارية لتزامُن ورود الرموز وجدولاً تقاطعياً للرموز بحسب السمة. هذه هي قطع الموثوقية والتصدير التي يُبنى عليها وضع QDA.

2.4.5 جلب إطار تنقيح مُتحقَّق منه لتحسين إرشادات التعليق في الوضع الفردي، وأداة سطر أوامر للتحقق من الإعدادات (python -m potato.validate_cli)، وإصلاحاً أمنياً لتجاوز يتيح اجتياز المسارات (GHSA-q9m2-fhv9-3jcf). إذا كنت على إصدار 2.4.x أقدم، فالترقية تلتقط ذلك الإصلاح.

السجل الكامل موجود في صفحة ما الجديد.

كيفية الحصول عليه

bash
pip install --upgrade potato-annotation

ثم وجّه Potato إلى أحد الأمثلة المرفقة (examples/advanced/qda-mode-example/، وexamples/ai-assisted/judge-calibration/، وexamples/agent-traces/trajectory-correction/) لترى الواجهات الجديدة وهي تعمل. بدأ كل إصدار هنا كسؤال من شخص يستخدم الأداة؛ وإذا أثار 2.6 سؤالاً لديك، فإن مستودع GitHub هو المكان لطرحه.