# Unsloth

[Unsloth](https://unsloth.ai/docs) هو إطار عمل للضبط الدقيق والتعزيز يسرّع التدريب ويقلّل استهلاك الذاكرة لنماذج اللغة الكبيرة. يدعم التدريب بدقة 4 بت و8 بت و16 بت مع نواة RoPE وTriton مخصصة. يعمل مع عائلات النماذج Llama وMistral وGemma وQwen وغيرها.

```py
from datasets import load_dataset
from transformers import TrainingArguments
from unsloth import FastLanguageModel
from unsloth.trainer import UnslothTrainer

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Llama-3.2-1B-Instruct",
    max_seq_length=2048,
    load_in_4bit=True,
)

model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    lora_alpha=16,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
)

dataset = load_dataset("trl-lib/Capybara", split="train[:500]")
dataset = dataset.map(lambda x: {"text": x["conversations"][0]["value"]})

trainer = UnslothTrainer(
    model=model,
    tokenizer=tokenizer,
    train_dataset=dataset,
    dataset_text_field="text",
    max_seq_length=2048,
    args=TrainingArguments(
        output_dir="outputs",
        per_device_train_batch_size=2,
        num_train_epochs=1,
    ),
)

trainer.train()
```

## تكامل Transformers

يغلّف Unsloth واجهات Transformers البرمجية ويصحّح الطرق الداخلية من أجل زيادة السرعة.

- `FastLanguageModel.from_pretrained` loads config with [AutoConfig.from_pretrained()](/docs/transformers/main/ar/model_doc/auto#transformers.AutoConfig.from_pretrained). It then loads a base model with [AutoModelForCausalLM.from_pretrained()](/docs/transformers/main/ar/model_doc/auto#transformers.AutoModel.from_pretrained). Before loading, Unsloth patches attention, decoder layer, and rotary embedding classes inside a Transformers model.

- يمتدّ `UnslothTrainer` من [SFTTrainer](https://huggingface.co/docs/trl/main/en/sft_trainer#trl.SFTTrainer) الخاص بـ TRL. يقوم Unsloth بتعديل [compute_loss()](/docs/transformers/main/ar/main_classes/trainer#transformers.Trainer.compute_loss) و [training_step()](/docs/transformers/main/ar/main_classes/trainer#transformers.Trainer.training_step) لإصلاح تراكم التدرّجات في إصدارات Transformers الأقدم.

## الموارد

- توثيقات [Unsloth](https://unsloth.ai/docs)
- مقال [تسريع ضبط نماذج اللغة الكبيرة (LLM) بمقدار الضعف باستخدام Unsloth وTRL](https://huggingface.co/blog/unsloth-trl)

