Unsloth بيخليك تعمل fine-tuning لموديلات زي LLaMA 3 أو Mistral بسرعة وسهولة باستخدام كود بسيط على Google Colab أو أي بيئة فيها GPU.
كل اللي عليك تثبت `unsloth`، تختار موديل، تجهز الداتا بصيغة instruction/output، وتبدأ التدريب بـ SFTTrainer.
الموضوع سريع وخفيف حتى على الأجهزة المتوسطة. 💡عرض المزيد
Unsloth هو إطار عمل يُسهّل تخصيص النماذج اللغوية الكبيرة مثل LLaMA وMistral باستخدام موارد قليلة (حتى 3GB VRAM).
يمكنك عمل Fine-Tuning بسهولة عبر دفاتر جاهزة على Google Colab ببيانات بسيطة (سؤال/جواب).
يستخدم تقنيات مثل LoRA لتسريع التدريب وتقليل استهلاك الذاكرة بشكل كبير.عرض المزيد
الـ نماذج Unsloth (مثل "Unsloth/zephyr"، "Unsloth/mistral") هي نسخة مُعدّلة من نماذج LLM مثل Mistral أو Zephyr، تم تحسينها أسرع وأسهل في التدريب (الضبط الدقيق) ،، وتستهلك موارد أقل. فريق Unsloth طوّرها للتدريب على كرت شاشة واحدة بسهولة ،وجه العناقبسهولة، باستخدام مكتبات مثل Hugging Face وbitsandbytes.
✅ أولًا: مميزات Unslothmodels
أسرع في التدريب 2-5 مرات من النسخ الأصلية.
model.save_pretrained("./fine_tuned_model")
tokenizer.save_pretrained("./fine_tuned_model")
✅ نصائح:
لو كرت شاشة 24 جيجا أو أكثر، تقدر تستخدم دفعة أكبر أو تسريع أكثر.
يمكنك استخدام البيانات الخاصة بك بصيغة "نص" أو "تعليمات-استجابة".
Unsloth تدعم أيضًا موديلات ميسترال، جيما، ميكسترال وغيرها.عرض المزيد
مكتبة Unsloth هي مكتبة مميزة مصممة لتسهيل وتسريع عملية Fine-Tuning لنماذج LLMs (مثل LLaMA وMistral) على الأجهزة العادية (حتى بدون GPU قوي). وتتميز بسهولة الاستخدام، خاصة مع دمجها مع أدوات مثل Hugging Face وLoRA.
سأشرح لك كيف تتعامل معها وخطوات عمل Fine-Tuning بأبسط الطرق.
---
أولاً: تثبيت المكتبة
pip install "unsloth[torch]" -q
> يمكن تعديل torch إلى torch-cu118 لو عندك GPU من إنفيديا.
---
ثانياً: تحميل نموذج مدعوم (مثل Mistral أو LLaMA)
from unsloth import FastLanguageModel
from transformers import AutoTokenizer
model = FastLanguageModel.get_peft_model(
model,
r=16,
lora_alpha=16,
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
---
رابعاً: تجهيز البيانات للتدريب
يمكنك استخدام فورمات ChatML أو أي فورمات مشابه.
مثال (بيانات بسيطة بصيغة dict):
train_data = [
{"input": "ما هو الذكاء الاصطناعي؟", "output": "الذكاء الاصطناعي هو مجال في علوم الحاسوب..."},
{"input": "عرف التسويق الرقمي", "output": "هو استخدام الإنترنت والقنوات الرقمية..."},
]
باختصار، التعامل مع Unsloth يتم عبر واجهة بسيطة وسلسة، موجهة لتوفير أفضل أداء ممكن على أجهزة عادية، مع دعم ممتاز للنماذج مفتوحة المصدر.
Unsloth بيخليك تعمل fine-tuning لموديلات زي LLaMA 3 أو Mistral بسرعة وسهولة باستخدام كود بسيط على Google Colab أو أي بيئة فيها GPU.
كل اللي عليك تثبت `unsloth`، تختار موديل، تجهز الداتا بصيغة instruction/output، وتبدأ التدريب بـ SFTTrainer.
الموضوع سريع وخفيف حتى على الأجهزة المتوسطة. 💡 عرض المزيد
Unsloth هو إطار عمل يُسهّل تخصيص النماذج اللغوية الكبيرة مثل LLaMA وMistral باستخدام موارد قليلة (حتى 3GB VRAM).
يمكنك عمل Fine-Tuning بسهولة عبر دفاتر جاهزة على Google Colab ببيانات بسيطة (سؤال/جواب).
يستخدم تقنيات مثل LoRA لتسريع التدريب وتقليل استهلاك الذاكرة بشكل كبير. عرض المزيد
ع حسب التقيم
الـ نماذج Unsloth (مثل "Unsloth/zephyr"، "Unsloth/mistral") هي نسخة مُعدّلة من نماذج LLM مثل Mistral أو Zephyr، تم تحسينها أسرع وأسهل في التدريب (الضبط الدقيق) ،، وتستهلك موارد أقل. فريق Unsloth طوّرها للتدريب على كرت شاشة واحدة بسهولة ،وجه العناقبسهولة، باستخدام مكتبات مثل Hugging Face وbitsandbytes.
✅ أولًا: مميزات Unslothmodels
أسرع في التدريب 2-5 مرات من النسخ الأصلية.
دعم ضبط LoRA الدقيق بسهولة (التكيف منخفض بسهولة (التكيف منخفض الرتبة).
حجمها صغير لعدم وجود كرت شاشة 16 جيجا بايت فما فوق.
جاهز للعمل مع Hugging Face Transformersالوجه.
✅ ثانيًا: أبسط طريقة لصناعة الضبط الدقيق
هنا طريقة مختصرة وبسيطة باستخدام unslothو transformers:
1. تثبيت الحزم المطلوبة:
pip install unsloth datasets peft trl accelerate bitsandbytes
2. تحميل النموذج:
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/zephyr-7b-beta",
max_seq_length = 2048,
dtype = "float16", # أو "bfloat16" حسب كرت الشاشة
load_in_4bit = True # لتوفير الموارد
)
3. تجهيز البيانات (مثال مبسط):
from datasets import load_dataset
dataset = load_dataset("Abirate/english_quotes")
def format(example):
return {
"text": f"### Instruction:\n{example['quote']}\n\n### Response:\nNice quote!"
}
dataset = dataset.map(format)
4. تفعيل LoRA واختيار الإعدادات:
model = FastLanguageModel.get_peft_model(
model,
r = 16,
target_modules = ["q_proj", "v_proj"],
lora_alpha = 16,
lora_dropout = 0.05,
bias = "none",
task_type = "CAUSAL_LM",
)
5. تدريب النموذج:
from trl import SFTTrainer
trainer = SFTTrainer(
model = model,
tokenizer = tokenizer,
train_dataset = dataset["train"],
max_seq_length = 2048,
dataset_text_field = "text",
args = {
"output_dir": "./fine_tuned_model",
"num_train_epochs": 2,
"per_device_train_batch_size": 2,
"gradient_accumulation_steps": 4,
"logging_steps": 10,
"save_strategy": "epoch",
"learning_rate": 2e-4,
"fp16": True,
}
)
trainer.train()
6. حفظ النموذج:
model.save_pretrained("./fine_tuned_model")
tokenizer.save_pretrained("./fine_tuned_model")
✅ نصائح:
لو كرت شاشة 24 جيجا أو أكثر، تقدر تستخدم دفعة أكبر أو تسريع أكثر.
يمكنك استخدام البيانات الخاصة بك بصيغة "نص" أو "تعليمات-استجابة".
Unsloth تدعم أيضًا موديلات ميسترال، جيما، ميكسترال وغيرها. عرض المزيد
مكتبة Unsloth هي مكتبة مميزة مصممة لتسهيل وتسريع عملية Fine-Tuning لنماذج LLMs (مثل LLaMA وMistral) على الأجهزة العادية (حتى بدون GPU قوي). وتتميز بسهولة الاستخدام، خاصة مع دمجها مع أدوات مثل Hugging Face وLoRA.
سأشرح لك كيف تتعامل معها وخطوات عمل Fine-Tuning بأبسط الطرق.
---
أولاً: تثبيت المكتبة
pip install "unsloth[torch]" -q
> يمكن تعديل torch إلى torch-cu118 لو عندك GPU من إنفيديا.
---
ثانياً: تحميل نموذج مدعوم (مثل Mistral أو LLaMA)
from unsloth import FastLanguageModel
from transformers import AutoTokenizer
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/mistral-7b-bnb-4bit",
max_seq_length = 2048,
dtype = None, # تلقائي
load_in_4bit = True # لتقليل استهلاك الرام
)
---
ثالثاً: تجهيز النموذج للتدريب (Fine-Tuning)
model = FastLanguageModel.get_peft_model(
model,
r=16,
lora_alpha=16,
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
---
رابعاً: تجهيز البيانات للتدريب
يمكنك استخدام فورمات ChatML أو أي فورمات مشابه.
مثال (بيانات بسيطة بصيغة dict):
train_data = [
{"input": "ما هو الذكاء الاصطناعي؟", "output": "الذكاء الاصطناعي هو مجال في علوم الحاسوب..."},
{"input": "عرف التسويق الرقمي", "output": "هو استخدام الإنترنت والقنوات الرقمية..."},
]
ثم تحويلها لصيغة مناسبة:
def format(example):
return f"<|system|>\nأجب كمساعد ذكي\n<|user|>\n{example['input']}\n<|assistant|>\n{example['output']}"
from datasets import Dataset
dataset = Dataset.from_list(train_data)
dataset = dataset.map(lambda x: {"text": format(x)})
---
خامساً: تدريب النموذج
from transformers import TrainingArguments, Trainer
args = TrainingArguments(
per_device_train_batch_size=2,
gradient_accumulation_steps=4,
warmup_steps=10,
max_steps=100,
learning_rate=2e-4,
fp16=True,
logging_steps=10,
output_dir="outputs",
save_total_limit=2,
save_steps=50,
)
FastLanguageModel.prepare_for_training(model)
trainer = Trainer(model=model, args=args, train_dataset=dataset)
trainer.train()
---
سادساً: حفظ النموذج
model.save_pretrained("fine_tuned_model")
tokenizer.save_pretrained("fine_tuned_model")
---
ملاحظات سريعة:
يمكن التدريب على كرت شاشة واحد بسعة 8GB باستخدام إعدادات 4bit.
يدعم مكتبة LoRA مما يسهل التدريب بدون الحاجة لتعديل كل النموذج.
يمكن استخدام Databricks Dolly، Alpaca، أو أي فورمات حواري مشابه بسهولة.
--- عرض المزيد