التعلم النشط: وسِم بذكاء وليس بجهد أكبر
كيفية استخدام أخذ العينات بالارتياب لتحديد أولويات التوسيم وتقليل جهد التصنيف الكلي بنسبة تصل إلى 50%.
التعلم النشط: وسِم بذكاء وليس بجهد أكبر
يختار التعلم النشط بذكاء العناصر التي يجب توسيمها تالياً، مع تركيز الجهد البشري حيث يكون الأمر أكثر أهمية. يوضح هذا الدليل كيفية تقليل جهد التوسيم بنسبة تصل إلى 50% مع الحفاظ على جودة النموذج.
ما هو التعلم النشط؟
بدلاً من أخذ عينات عشوائية من البيانات للتوسيم، يقوم التعلم النشط بما يلي:
- تدريب نموذج على التوسيمات الحالية
- تحديد العناصر التي يكون النموذج غير متأكد منها
- إعطاء الأولوية لتلك العناصر للتوسيم البشري
- التكرار مع التحسين المستمر للكفاءة
لماذا نستخدم التعلم النشط؟
- تقليل تكلفة التوسيم: توسيم عناصر أقل للحصول على نفس جودة النموذج
- تكرار أسرع: الحصول على نماذج قابلة للاستخدام في وقت أقرب
- تركيز الخبرة: توجيه الانتباه البشري للحالات الصعبة
- تغطية أفضل: ضمان تمثيل الحالات الحدية
إعداد التعلم النشط الأساسي
annotation_task_name: "Active Learning Classification"
data_files:
- "data/unlabeled_pool.json"
# Active learning configuration
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"
# Sampling settings
max_instances_to_reorder: 1000 # Number of instances to reorder by uncertainty
random_sample_percent: 0.1 # 10% random sampling to maintain diversity
annotation_schemes:
- annotation_type: radio
name: category
labels: [Positive, Negative, Neutral]كيف يعمل أخذ العينات بالارتياب
يستخدم التعلم النشط في Potato أخذ العينات بالارتياب لإعطاء الأولوية للعناصر التي يكون المصنف أقل ثقة فيها. يتنبأ المصنف بالتسميات للعينات غير الموسومة، ويتم تقديم تلك التي تحصل على أدنى درجات ثقة أولاً للتوسيم.
يحدد حقل classifier_name أي مصنف متوافق مع scikit-learn باستخدام مساره الكامل:
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"تشمل خيارات المصنفات الأخرى:
sklearn.ensemble.RandomForestClassifiersklearn.svm.SVC(معprobability=True)sklearn.naive_bayes.MultinomialNB
التكوين الكامل
annotation_task_name: "Active Learning for Sentiment"
data_files:
- "data/reviews.json"
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"
# Sampling settings
max_instances_to_reorder: 2000 # Reorder top N by uncertainty
random_sample_percent: 0.1 # 10% random to maintain diversity
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "Classify the sentiment"
labels:
- name: Positive
key_value: "1"
- name: Negative
key_value: "2"
- name: Neutral
key_value: "3"
required: true
annotation_guidelines:
text: |
## Sentiment Classification
Items are prioritized by model uncertainty.
You may see more difficult or ambiguous cases.
Focus on accuracy over speed.مراقبة التقدم
تابع تقدم التوسيم من خلال نظام التسجيل المدمج في Potato. يسجل النظام العناصر التي تم اختيارها ودرجات الارتياب الخاصة بها، مما يتيح لك مراقبة عملية التعلم النشط.
أفضل الممارسات
البداية الباردة
ابدأ بأخذ عينات عشوائية متنوعة عن طريق تعيين نسبة أعلى لـ random_sample_percent:
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"
random_sample_percent: 0.2 # 20% random for initial diversityالتحكم في نطاق إعادة الترتيب
استخدم max_instances_to_reorder للتحكم في عدد العينات التي يتم ترتيبها حسب الارتياب. توفر القيمة الأكبر اختياراً أفضل لكنها تتطلب حساباً أكثر:
active_learning:
max_instances_to_reorder: 5000 # Rank top 5000 by uncertaintyالحفاظ على التنوع
يضمن معامل random_sample_percent تضمين بعض العينات المختارة عشوائياً، مما يمنع النموذج من رؤية الحالات الحدية غير المؤكدة فقط:
active_learning:
random_sample_percent: 0.1 # 10% random samplingنصائح للنجاح
- ابدأ بالتنوع: العينة الأولية العشوائية تغطي الحالات الحدية
- راقب الدقة: تتبع أداء النموذج بمرور الوقت
- لا تفرط في التحسين: بعض أخذ العينات العشوائي يحافظ على التغطية
- تعامل مع إرهاق المُوسِّم: العناصر الصعبة مُتعبة
- احفظ نقاط التحقق للنموذج: لتمكين التراجع عند الحاجة
الخطوات التالية
- أضف اقتراحات الذكاء الاصطناعي لتسريع العناصر غير المؤكدة
- أعدّ ضبط الجودة للحالات الصعبة
- تعرف على التعهيد الجماعي مع التعلم النشط
وثائق التعلم النشط الكاملة في /docs/features/active-learning.