الفصل 2: جودة البيانات وتنقيحها
بناء مجموعات بيانات تدريب عالية الجودة
تحدد جودة البيانات جودة النموذج. يغطي هذا الفصل تصفية وتنظيف وتنقيح مجموعات البيانات.
أبعاد الجودة
| البعد | الوصف | التحقق |
|---|---|---|
| الدقة | صحيحة من الناحية الواقعية | مراجعة بشرية |
| الصلة | ذات صلة بحالة الاستخدام الخاصة بك | توافق المجال |
| التنوع | تغطي سيناريوهات مختلفة | تحليل التوزيع |
| التناسق | تنسيق وأسلوب موحد | فحوصات آلية |
| الاكتمال | استجابات كاملة ومتسقة | تصفية الطول |
خط أنابيب تصفية البيانات
def filter_quality(example):
"""Filter low-quality examples."""
output = example.get("output", "")
# Length check
if len(output) < 50:
return False
if len(output) > 4000:
return False
# Language check
if not is_english(output):
return False
# Format check
if contains_only_code(output) and not is_coding_task(example):
return False
return True
dataset = dataset.filter(filter_quality)
إزالة التكرار
إزالة الأمثلة المكررة أو شبه المكررة:
from datasets import load_dataset
# Exact deduplication
seen = set()
def deduplicate(example):
key = hash(example["instruction"] + example["output"])
if key in seen:
return False
seen.add(key)
return True
dataset = dataset.filter(deduplicate)
تسجيل الجودة
استخدام نموذج تسجيل:
def score_quality(example):
"""Score example quality 1-5."""
# Could use a classifier or LLM
prompt = f"""Rate this response quality 1-5:
Q: {example['instruction']}
A: {example['output']}
Score:"""
score = scoring_model.generate(prompt)
return {"quality_score": int(score)}
dataset = dataset.map(score_quality)
dataset = dataset.filter(lambda x: x["quality_score"] >= 4)
إرشادات حجم مجموعة البيانات
| حالة الاستخدام | الحجم الموصى به |
|---|---|
| تكييف الأسلوب | 100-500 مثال |
| تخصص المهمة | 500-2,000 مثال |
| خبرة المجال | 2,000-10,000 مثال |
| تعليمات عامة | 10,000+ مثال |
النقاط الرئيسية
✅ الجودة > الكمية دائمًا ✅ التصفية بقوة للحصول على جودة عالية ✅ إزالة التكرارات ✅ ضمان التنوع في الأمثلة ✅ مراجعة بشرية للتطبيقات الحرجة