تصنيف التعلم في السياق
تصنيف مدعوم بالذكاء الاصطناعي باستخدام التعلم في السياق مع التحقق البشري للتعليق التوضيحي القابل للتوسع.
تصنيف ICL بمساعدة الذكاء الاصطناعي
تتيح ميزة تصنيف ICL (التعلم في السياق) في Potato التعليق التوضيحي بمساعدة الذكاء الاصطناعي من خلال استخدام التعليقات التوضيحية البشرية عالية الثقة كأمثلة سياقية لتوجيه نموذج لغة كبير في تصنيف البيانات المتبقية. يتتبع النظام ثقة النموذج ويعيد التنبؤات إلى البشر للتحقق منها.
نظرة عامة
يقوم نظام تصنيف ICL بالخطوات التالية:
- جمع الأمثلة عالية الثقة: تحديد الحالات التي يتفق عليها المعلّقون (مثلاً اتفاق بنسبة 80%+)
- التصنيف بنموذج اللغة الكبير: استخدام الأمثلة لتوجيه النموذج لتصنيف الحالات غير المصنّفة
- تتبع الثقة: تسجيل درجات ثقة النموذج لكل تنبؤ
- التحقق من الدقة: توجيه عينة من الحالات المصنّفة بالنموذج إلى البشر للتحقق الأعمى
- تقارير المقاييس: حساب وعرض دقة النموذج بناءً على نتائج التحقق
الميزات
جمع الأمثلة التلقائي
يحدد النظام تلقائياً الأمثلة عالية الثقة حيث يتفق عدة معلّقين:
- حد اتفاق قابل للتهيئة (الافتراضي: 80%)
- متطلب حد أدنى لعدد المعلّقين (الافتراضي: 2)
- تحديث تلقائي على فترات قابلة للتهيئة
- مجموعات أمثلة لكل مخطط
تصنيف نموذج اللغة الكبير مع حدود
لتمكين التحسين التكراري بدلاً من التصنيف الجماعي:
- الحد الأقصى للتصنيفات الكلية: تحديد العدد الإجمالي لتنبؤات النموذج
- الحد الأقصى لنسبة غير المصنّف: تصنيف نسبة معينة فقط من البيانات المتبقية
- الإيقاف عند انخفاض الدقة: إيقاف تلقائي إذا انخفضت الدقة عن الحد المحدد
التحقق الأعمى
يستخدم التحقق "التصنيف الأعمى" - يرى المعلّقون الحالة كمهمة عادية دون معرفة تنبؤ النموذج:
- معدل عينة قابل للتهيئة (الافتراضي: 20% من تصنيفات النموذج)
- استراتيجيات اختيار متعددة:
low_confidence،random،mixed - مهام التحقق مختلطة بشكل طبيعي مع المهام العادية
التهيئة
يتطلب تصنيف ICL تفعيل ai_support:
# AI endpoint configuration (required)
ai_support:
enabled: true
endpoint_type: "openai"
ai_config:
model: "gpt-4o-mini"
api_key: "${OPENAI_API_KEY}"
# ICL labeling configuration
icl_labeling:
enabled: true
# Example selection settings
example_selection:
min_agreement_threshold: 0.8 # 80% annotators must agree
min_annotators_per_instance: 2 # Minimum annotations for consensus
max_examples_per_schema: 10 # Max examples per schema in prompt
refresh_interval_seconds: 300 # How often to refresh examples
# LLM labeling settings
llm_labeling:
batch_size: 20
trigger_threshold: 5 # Min examples before LLM labeling starts
confidence_threshold: 0.7 # Min confidence to accept prediction
batch_interval_seconds: 600
max_total_labels: 100 # Max instances to label total
max_unlabeled_ratio: 0.5 # Max portion of unlabeled to label
pause_on_low_accuracy: true
min_accuracy_threshold: 0.7
# Human verification settings
verification:
enabled: true
sample_rate: 0.2 # 20% of LLM labels verified
selection_strategy: "low_confidence"
mix_with_regular_assignments: true
assignment_mix_rate: 0.2استراتيجيات الاختيار
- low_confidence: إعطاء الأولوية للتحقق من تنبؤات النموذج الأقل ثقة أولاً
- random: أخذ عينات عشوائية من جميع التنبؤات
- mixed: 50% منخفضة الثقة + 50% عشوائية
واجهة برمجة تطبيقات المشرف
نقطة نهاية الحالة
GET /admin/api/icl/statusتُرجع حالة مصنّف ICL الشاملة بما في ذلك الأمثلة لكل مخطط، والتنبؤات المُنجزة، وحجم قائمة انتظار التحقق، ومقاييس الدقة.
نقطة نهاية الأمثلة
GET /admin/api/icl/examples?schema=sentimentتُرجع الأمثلة عالية الثقة، مع إمكانية التصفية حسب المخطط.
نقطة نهاية الدقة
GET /admin/api/icl/accuracy?schema=sentimentتُرجع مقاييس الدقة بناءً على نتائج التحقق البشري.
نقطة نهاية التشغيل اليدوي
POST /admin/api/icl/trigger
Content-Type: application/json
{"schema_name": "sentiment"}تشغيل التصنيف الدفعي يدوياً لمخطط محدد.
سير عمل الاستخدام
1. تهيئة المشروع
ai_support:
enabled: true
endpoint_type: "openai"
ai_config:
model: "gpt-4o-mini"
api_key: "${OPENAI_API_KEY}"
icl_labeling:
enabled: true
example_selection:
min_agreement_threshold: 0.8
llm_labeling:
max_total_labels: 50 # Start small
verification:
enabled: true
sample_rate: 0.3 # Verify 30% initially2. جمع التعليقات التوضيحية البشرية
اطلب من المعلّقين تصنيف البيانات بشكل طبيعي. عندما يصلون إلى إجماع (اتفاق 80%+)، تصبح تلك الحالات متاحة كأمثلة.
3. مراقبة التقدم
curl http://localhost:8000/admin/api/icl/status4. مراجعة الدقة
curl http://localhost:8000/admin/api/icl/accuracy5. التكرار
بناءً على الدقة:
- إذا كانت الدقة عالية (أكثر من 80%)، زِد
max_total_labels - إذا كانت الدقة منخفضة، أضف المزيد من الأمثلة البشرية قبل المتابعة
أفضل الممارسات
-
ابدأ صغيراً: ابدأ بحدود متحفظة (
max_total_labels: 50) لتقييم الدقة قبل التوسع -
تحقق مبكراً: استخدم معدل
sample_rateأعلى في البداية (0.3-0.5) للحصول على تقديرات دقة موثوقة -
راقب بنشاط: تحقق من مقاييس الدقة بانتظام عبر واجهة برمجة تطبيقات المشرف
-
اضبط الحدود: إذا كانت دقة النموذج منخفضة:
- زِد
min_agreement_thresholdللحصول على أمثلة أنظف - زِد
trigger_thresholdلمزيد من الأمثلة قبل التصنيف - قلّل
confidence_thresholdلرفض التنبؤات غير المؤكدة
- زِد
-
استخدم استراتيجيات الاختيار:
low_confidence: الأفضل لتحديد الفئات الإشكاليةrandom: الأفضل لتقديرات الدقة غير المتحيزةmixed: نهج متوازن
استكشاف الأخطاء وإصلاحها
النموذج لا يصنّف
- تحقق من تهيئة
ai_supportبشكل صحيح - تأكد من وجود أمثلة عالية الثقة كافية
- تحقق مما إذا كان التصنيف متوقفاً بسبب الحدود أو انخفاض الدقة
دقة منخفضة
- زِد
min_agreement_thresholdللحصول على أمثلة أنظف - أضف المزيد من إرشادات/تعليمات التعليق التوضيحي
- راجع الأمثلة المستخدمة (
/admin/api/icl/examples)
مهام التحقق لا تظهر
- تأكد من أن
verification.enabledمضبوط على true - تحقق من أن
mix_with_regular_assignmentsمضبوط على true - تأكد من وجود عمليات تحقق معلّقة في قائمة الانتظار
قراءات إضافية
- دعم الذكاء الاصطناعي - تهيئة نقطة نهاية الذكاء الاصطناعي العامة
- التعلم النشط - ميزات ذات صلة بمساعدة الذكاء الاصطناعي
- مراقبة الجودة - تتبع الدقة
للاطلاع على تفاصيل التنفيذ، راجع الوثائق المصدرية.