إنتقل إلى المحتوى الرئيسي

الفصل 1: تنسيقات مجموعات البيانات

هيكلة البيانات للتخصيص الدقيق​

تخدم التنسيقات المختلفة أغراضًا مختلفة. فهمها يساعدك في اختيار وإعداد البيانات بشكل فعال.


التنسيقات الشائعة​

1. تنسيق Alpaca​

تعليمات ذات جولة واحدة:

{
"instruction": "لخص النص التالي",
"input": "الثعلب البني السريع يقفز فوق الكلب الكسول...",
"output": "ثعلب يقفز فوق كلب."
}
# قالب Alpaca
template = """### Instruction:
{instruction}

### Input:
{input}

### Response:
{output}"""

2. تنسيق ShareGPT​

محادثات متعددة الجولات:

{
"conversations": [
{"from": "system", "value": "أنت مساعد مفيد."},
{"from": "human", "value": "ما هو بايثون؟"},
{"from": "gpt", "value": "بايثون هي لغة برمجة..."},
{"from": "human", "value": "كيف أقوم بتثبيتها؟"},
{"from": "gpt", "value": "يمكنك تنزيلها من python.org..."}
]
}

3. إكمال بسيط​

نص عادي للتدريب المسبق المستمر:

{"text": "مستند كامل أو فقرة من النص..."}

قوالب الدردشة​

تتوقع النماذج تنسيقات محددة. استخدم قالب المحول النصي:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")

messages = [
{"role": "system", "content": "أنت مفيد."},
{"role": "user", "content": "مرحبًا!"},
{"role": "assistant", "content": "مرحبًا! كيف يمكنني المساعدة؟"},
]

text = tokenizer.apply_chat_template(messages, tokenize=False)
print(text)

تحويل التنسيقات​

def alpaca_to_messages(example):
"""تحويل تنسيق Alpaca إلى رسائل."""
messages = []

if example.get("input"):
user_content = f"{example['instruction']}\n\n{example['input']}"
else:
user_content = example["instruction"]

messages.append({"role": "user", "content": user_content})
messages.append({"role": "assistant", "content": example["output"]})

return {"messages": messages}

# تطبيق على مجموعة البيانات
dataset = dataset.map(alpaca_to_messages)

النقاط الرئيسية​

✅ Alpaca: تعليمات ذات جولة واحدة ✅ ShareGPT: محادثات متعددة الجولات ✅ استخدم دائمًا قالب الدردشة الخاص بالنموذج ✅ الاتساق في التنسيق أمر حاسم


تابع إلى الفصل 2 →