التعلم النشط
استخدام أخذ العينات بناءً على عدم اليقين لتحديد أولويات التعليق التوضيحي على الأمثلة القيّمة.
التعلم النشط
يساعدك التعلم النشط على التعليق التوضيحي بذكاء أكبر من خلال إعطاء الأولوية للأمثلة الأكثر إفادة. بدلاً من التعليق التوضيحي بشكل عشوائي، ركّز على الحالات التي يكون فيها النموذج أكثر عدم يقين.
كيف يعمل
يقوم التعلم النشط في Potato بإعادة ترتيب حالات التعليق التوضيحي تلقائياً بناءً على تنبؤات التعلم الآلي:
- الجمع الأولي - جمع عدد أدنى من التعليقات التوضيحية
- التدريب - تدريب مصنّف على التعليقات التوضيحية الموجودة
- التنبؤ - الحصول على درجات عدم اليقين للحالات غير المعلّقة
- إعادة الترتيب - إعطاء الأولوية للحالات ذات أعلى عدم يقين
- التعليق التوضيحي - يقوم المعلّقون بتصنيف الحالات ذات الأولوية
- إعادة التدريب - تحديث النموذج دورياً بالتعليقات التوضيحية الجديدة
التهيئة
الإعداد الأساسي
active_learning:
enabled: true
schema_names:
- sentiment # Which annotation schemes to use
min_annotations_per_instance: 1
min_instances_for_training: 20
update_frequency: 50 # Retrain after every 50 annotations
max_instances_to_reorder: 1000التهيئة الكاملة
active_learning:
enabled: true
# Which schemas to use for training
schema_names:
- sentiment
# Minimum requirements
min_annotations_per_instance: 1
min_instances_for_training: 20
# Retraining frequency
update_frequency: 50
# How many instances to reorder
max_instances_to_reorder: 1000
# Classifier configuration
classifier:
type: LogisticRegression
params:
C: 1.0
max_iter: 1000
# Feature extraction
vectorizer:
type: TfidfVectorizer
params:
max_features: 5000
ngram_range: [1, 2]
# Model persistence
model_persistence:
enabled: true
save_dir: "models/"
max_saved_models: 5المصنّفات المدعومة
| المصنّف | الأفضل لـ | السرعة |
|---|---|---|
LogisticRegression | التصنيف الثنائي/متعدد الفئات | سريع |
RandomForestClassifier | الأنماط المعقدة | متوسط |
SVC | مجموعات البيانات الصغيرة | بطيء |
MultinomialNB | تصنيف النصوص | سريع جداً |
أمثلة على المصنّفات
# Logistic Regression (recommended starting point)
classifier:
type: LogisticRegression
params:
C: 1.0
max_iter: 1000
# Random Forest
classifier:
type: RandomForestClassifier
params:
n_estimators: 100
max_depth: 10
# Support Vector Classifier
classifier:
type: SVC
params:
kernel: rbf
probability: true
# Naive Bayes
classifier:
type: MultinomialNB
params:
alpha: 1.0محوّلات الميزات
| المحوّل | الوصف |
|---|---|
TfidfVectorizer | ميزات مرجّحة بـ TF-IDF (موصى به) |
CountVectorizer | عدّ الكلمات البسيط |
HashingVectorizer | فعّال في استخدام الذاكرة للمفردات الكبيرة |
# TF-IDF (recommended)
vectorizer:
type: TfidfVectorizer
params:
max_features: 5000
ngram_range: [1, 2]
stop_words: english
# Count Vectorizer
vectorizer:
type: CountVectorizer
params:
max_features: 3000
ngram_range: [1, 1]
# Hashing Vectorizer (for large datasets)
vectorizer:
type: HashingVectorizer
params:
n_features: 10000التكامل مع نماذج اللغة الكبيرة
يمكن للتعلم النشط استخدام نماذج اللغة الكبيرة اختيارياً لتحسين اختيار الحالات:
active_learning:
enabled: true
schema_names:
- sentiment
# LLM-based selection
llm_integration:
enabled: true
endpoint_type: vllm
base_url: http://localhost:8000/v1
model: meta-llama/Llama-2-7b-chat-hf
# Mock mode for testing
mock_mode: falseدعم المخططات المتعددة
يمكن للتعلم النشط التنقل بين مخططات تعليق توضيحي متعددة:
annotation_schemes:
- annotation_type: radio
name: sentiment
labels: [Positive, Negative, Neutral]
- annotation_type: radio
name: topic
labels: [Politics, Sports, Tech, Entertainment]
active_learning:
enabled: true
schema_names:
- sentiment
- topic
# Schema-specific settings
schema_config:
sentiment:
min_instances_for_training: 30
update_frequency: 50
topic:
min_instances_for_training: 50
update_frequency: 100استمرارية النموذج
حفظ النماذج المدرّبة وإعادة تحميلها عبر عمليات إعادة تشغيل الخادم:
active_learning:
enabled: true
schema_names:
- sentiment
model_persistence:
enabled: true
save_dir: "models/"
max_saved_models: 5 # Keep last 5 models
# Save to database instead of files
use_database: falseمراقبة التقدم
تتبع لوحة تحكم المشرف مقاييس التعلم النشط:
- دقة النموذج الحالي
- عدد دورات التدريب
- توزيع عدم اليقين
- الحالات المتبقية
- سجل إعادة التدريب
يمكن الوصول عبر /admin باستخدام مفتاح API الخاص بالمشرف.
أفضل الممارسات
1. ابدأ بأخذ العينات العشوائي
احصل على تعليقات توضيحية أولية قبل تفعيل التعلم النشط:
active_learning:
enabled: true
min_instances_for_training: 50 # Wait for 50 annotations2. اختر المصنّفات المناسبة
- LogisticRegression: سريع، خيار افتراضي جيد لمعظم المهام
- RandomForest: أفضل للأنماط المعقدة، أبطأ
- MultinomialNB: سريع جداً، جيد لتصنيف النصوص البسيط
3. راقب توزيع الفئات
يمكن أن يُنشئ التعلم النشط عدم توازن في الفئات. راقب ذلك في لوحة تحكم المشرف وفكّر في أخذ العينات الطبقي.
4. حدد تردد إعادة التدريب المناسب
إعادة التدريب المتكررة جداً تهدر الموارد:
update_frequency: 100 # Retrain every 100 annotations5. فعّل استمرارية النموذج
احفظ النماذج لتجنب إعادة التدريب من الصفر عند إعادة التشغيل:
model_persistence:
enabled: true
save_dir: "models/"مثال: التهيئة الكاملة
task_name: "Sentiment Analysis with Active Learning"
task_dir: "."
port: 8000
data_files:
- "data/reviews.json"
item_properties:
id_key: id
text_key: text
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment?"
labels:
- Positive
- Negative
- Neutral
active_learning:
enabled: true
schema_names:
- sentiment
min_annotations_per_instance: 1
min_instances_for_training: 30
update_frequency: 50
max_instances_to_reorder: 500
classifier:
type: LogisticRegression
params:
C: 1.0
max_iter: 1000
vectorizer:
type: TfidfVectorizer
params:
max_features: 3000
ngram_range: [1, 2]
model_persistence:
enabled: true
save_dir: "models/"
max_saved_models: 3
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: trueالدمج مع دعم الذكاء الاصطناعي
استخدم كلاً من التعلم النشط ومساعدة نماذج اللغة الكبيرة:
active_learning:
enabled: true
schema_names:
- sentiment
min_instances_for_training: 30
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
label_suggestions:
enabled: trueيعطي هذا المزيج الأولوية للحالات غير المؤكدة مع تقديم تلميحات ذكاء اصطناعي لمساعدة المعلّقين.
استكشاف الأخطاء وإصلاحها
فشل التدريب
- تأكد من وجود تعليقات توضيحية كافية (
min_instances_for_training) - تحقق من توزيع الفئات - تحتاج إلى أمثلة من جميع الفئات
- تحقق من أن تنسيق البيانات يتطابق مع المخطط
الأداء البطيء
- قلّل
max_instances_to_reorder - زِد
update_frequency - استخدم
HashingVectorizerللمفردات الكبيرة
النموذج لا يتحدث
- تحقق من إعداد
update_frequency - تأكد من أن التعليقات التوضيحية يتم حفظها
- راجع لوحة تحكم المشرف بحثاً عن أخطاء
قراءات إضافية
- دعم الذكاء الاصطناعي - التعليق التوضيحي بمساعدة نماذج اللغة الكبيرة
- تعيين المهام - استراتيجيات التعيين
- لوحة تحكم المشرف - مراقبة مقاييس التعلم النشط
للاطلاع على تفاصيل التنفيذ، راجع الوثائق المصدرية.