Home
Login
unslothai/unsloth

Unsloth: أداة للضبط الدقيق الفعال والتعلم المعزز للنماذج اللغوية الكبيرة - زيادة سرعة التدريب بمقدار الضعف وتقليل استخدام الذاكرة بنسبة 70٪

Apache-2.0Python 40.5kunslothai Last Updated: 2025-06-12
https://github.com/unslothai/unsloth

نظرة عامة على مشروع Unsloth

ملخص المشروع

Unsloth هي أداة مفتوحة المصدر تركز على الضبط الدقيق (Fine-tuning) والتعلم المعزز لنماذج اللغة الكبيرة (LLM)، مما يتيح زيادة سرعة تدريب نماذج مثل Qwen3 و Llama 4 و DeepSeek-R1 و Gemma 3 و TTS بمقدار الضعف، مع تقليل استخدام ذاكرة الوصول العشوائي (VRAM) بنسبة 70%. يهدف هذا المشروع إلى جعل تقنيات الذكاء الاصطناعي أكثر انتشارًا وسهولة في الاستخدام، وتوفير حلول تدريب نماذج فعالة للباحثين والمطورين.

الميزات الرئيسية

  • تحسين الأداء العالي: زيادة سرعة التدريب بمقدار الضعف، وتقليل استخدام ذاكرة الوصول العشوائي بنسبة 70%.
  • دقة صفرية في الفقدان: لا تستخدم طرقًا تقريبية، مما يضمن دقة التدريب.
  • توافق واسع: يدعم العديد من نماذج LLM السائدة وطرق التدريب.
  • سهولة الاستخدام: يوفر دفاتر ملاحظات سهلة الاستخدام للمبتدئين ووثائق تفصيلية.

الوظائف والميزات الأساسية

1. دعم النماذج

يدعم Unsloth العديد من نماذج اللغة الكبيرة السائدة، بما في ذلك:

  • سلسلة Llama: Llama 4، Llama 3.3 (70B)، Llama 3.2، Llama 3.1
  • سلسلة Qwen: Qwen 3 (14B)، Qwen 2.5 (بما في ذلك نماذج Coder)
  • سلسلة Gemma: Gemma 3، Gemma 2 (9B/27B)
  • نماذج أخرى: Phi-4 (14B)، Mistral Small (22B)، DeepSeek-R1، إلخ.

2. طرق التدريب

الضبط الدقيق (Fine-tuning):

  • يدعم الضبط الدقيق للمعلمات الكاملة والتدريب المسبق.
  • تدريب التكميم 4 بت، 8 بت، 16 بت.
  • الضبط الدقيق QLoRA و LoRA.
  • تقنية التكميم الديناميكي 4 بت.

التعلم المعزز:

  • DPO (التحسين المباشر للتفضيل)
  • GRPO (الاستدلال في سياق طويل)
  • PPO (تحسين السياسة التقريبي)
  • تدريب نموذج المكافأة
  • DPO عبر الإنترنت

3. المزايا التقنية

تحسين الأداء:

  • جميع النوى مكتوبة بلغة Triton الخاصة بـ OpenAI، ومحرك الانتشار العكسي اليدوي.
  • 0% فقدان في الدقة - لا توجد طرق تقريبية - جميع الحسابات دقيقة.
  • يدعم التدريب في سياق طويل (يدعم ما يصل إلى 342 ألف سياق).

تحسين الذاكرة:

  • تقنية التكميم الديناميكي 4 بت، وتحسين الدقة مع زيادة استخدام ذاكرة الوصول العشوائي بنسبة <10% فقط.
  • تحسين نقاط فحص التدرج، مما يقلل من استخدام الذاكرة بنسبة 30% إضافية.
  • يدعم نوافذ سياق أطول بمقدار 4 مرات.

4. توافق الأجهزة

  • متطلبات وحدة معالجة الرسومات (GPU): يدعم وحدات معالجة الرسومات NVIDIA منذ عام 2018، مع الحد الأدنى من قدرة CUDA 7.0.
  • النماذج المدعومة: V100، T4، Titan V، سلسلة RTX 20/30/40، A100، H100، L40، إلخ.
  • نظام التشغيل: Linux و Windows.
  • دعم خاص: يمكن تشغيل GTX 1070 و 1080 ولكن بسرعة أبطأ.

5. التكامل والنظام البيئي

تكامل الإطار:

  • دعم رسمي من مكتبة 🤗 Hugging Face TRL.
  • يدعم Trainer و Seq2SeqTrainer.
  • متوافق مع كود PyTorch الأصلي.

خيارات النشر:

  • تصدير بتنسيق GGUF.
  • يدعم نشر Ollama و vLLM.
  • تكامل مركز نماذج Hugging Face.

التثبيت والاستخدام

التثبيت السريع

يوصى باستخدام pip للتثبيت على أجهزة Linux:

pip install unsloth

مثال على الاستخدام الأساسي

from unsloth import FastLanguageModel
import torch
from trl import SFTTrainer, SFTConfig

# تحميل النموذج
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gemma-3-4B-it",
    max_seq_length = 2048,
    load_in_4bit = True,
)

# إضافة محول LoRA
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj"],
    lora_alpha = 16,
    use_gradient_checkpointing = "unsloth",
)

# بدء التدريب
trainer = SFTTrainer(
    model = model,
    train_dataset = dataset,
    tokenizer = tokenizer,
    # معلمات التدريب الأخرى
)
trainer.train()

معايير الأداء

مقارنة كفاءة التدريب

النموذج ذاكرة الوصول العشوائي سرعة Unsloth تقليل الذاكرة طول السياق Hugging Face + FA2
Llama 3.3 (70B) 80GB 2x >75% أطول بـ 13 مرة 1x
Llama 3.1 (8B) 80GB 2x >70% أطول بـ 12 مرة 1x

دعم السياق الطويل

في ظل نفس ظروف الأجهزة، يدعم Unsloth أطوال سياق تتجاوز بكثير الطرق التقليدية:

  • 8GB GPU: يدعم Unsloth 2,972 رمزًا، بينما الطريقة التقليدية OOM.
  • 24GB GPU: يدعم Unsloth 78,475 رمزًا، بينما الطريقة التقليدية 5,789 رمزًا فقط.
  • 80GB GPU: يدعم Unsloth 342,733 رمزًا، بينما الطريقة التقليدية 28,454 رمزًا فقط.

آخر تحديثات الميزات

التحديثات الهامة الأخيرة

  1. دعم Llama 4: أحدث نماذج Scout و Maverick من Meta.
  2. دعم شامل: FFT، جميع النماذج (Mixtral، MOE، Cohere، Mamba) وجميع خوارزميات التدريب.
  3. نماذج الرؤية: يدعم Llama 3.2 Vision، Qwen 2.5 VL، Pixtral، إلخ.
  4. تحسين الاستدلال: سرعة استدلال أسرع بمقدار الضعف.

ميزات خاصة

  • واجهة الدردشة: يوفر واجهة دردشة تفاعلية.
  • إصلاح تراكم التدرج: اكتشاف وإصلاح خطأ تراكم التدرج.
  • Cut Cross Entropy: تقنية تحسين تمت إضافتها بالتعاون مع Apple.
  • التدريب المسبق المستمر متعدد اللغات: يدعم اللغات الأخرى مثل الكورية.

المجتمع والنظام البيئي

الوثائق والدعم

  • الوثائق الرسمية: docs.unsloth.ai
  • مستودع GitHub: مجتمع مفتوح المصدر نشط.
  • وسائل التواصل الاجتماعي: حساب Twitter/X الرسمي.
  • منتديات المجتمع: تبادل Reddit.

موارد التعلم

  • دفاتر ملاحظات Colab سهلة الاستخدام للمبتدئين.
  • أدلة تفصيلية للتثبيت والاستخدام.
  • دفاتر ملاحظات مخصصة لمسابقات Kaggle.
  • وثائق API كاملة.

ملخص

Unsloth هي واحدة من أفضل أدوات الضبط الدقيق LLM مفتوحة المصدر حاليًا، وقد حققت تحسينات كبيرة في سرعة التدريب وكفاءة الذاكرة من خلال تقنيات التحسين المبتكرة. يمكن لكل من الباحثين والمطورين في الصناعة الاستفادة من قدرات التدريب الفعالة لـ Unsloth. إن التحديثات المستمرة للمشروع ودعم المجتمع النشط يجعله خيارًا مهمًا في مجال الضبط الدقيق LLM.