TRL documentation

Unsloth Entegrasyonu

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.17.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Unsloth Entegrasyonu

Unsloth, LLM'leri (Llama, OpenAI gpt-oss, Mistral, Gemma, DeepSeek ve diğerleri gibi) en fazla %80 daha az VRAM ile 2 katına kadar daha hızlı eğiten, ince ayar ve pekiştirmeli öğrenme için açık kaynak bir çerçevedir. Unsloth, eğitim, değerlendirme, çalıştırma ve llama.cpp, Ollama ve vLLM gibi diğer çıkarım motorlarıyla dağıtım imkânı sunar.

Kütüphane, eğitim, değerlendirme, çıkarım ve dağıtım için akıcı, Hugging Face ile uyumlu bir iş akışı sağlar ve SFTTrainer ile tam olarak uyumludur.

Öne Çıkan Özellikler

  • Tüm transformer uyumlu modeller için eğitim desteği: Metinden seslendirme (TTS), çok modlu, BERT, RL ve daha fazlası
  • Tam ince ayar, ön eğitim, LoRA, QLoRA, 8-bit eğitim ve daha fazlasını destekler
  • Linux, Windows, Colab, Kaggle üzerinde çalışır; NVIDIA GPU'ları, yakında AMD & Intel yapılandırmaları
  • TRL'in desteklediği çoğu özelliği, RLHF (GSPO, GRPO, DPO vb.) dahil olmak üzere destekler
  • El yazımı Triton çekirdekleri ve manuel geri yayılım motoru, doğruluk kaybının (0% yaklaşım hatası) yaşanmadığını garanti eder

Kurulum

pip install

Yerel Kurulum (Linux önerilir):

pip install unsloth

unsloth paketini resmiyi belgelere göre de yükleyebilirsiniz. Yükleme tamamlandıktan sonra unsloth'u iş akışınıza çok basit bir şekilde entegre edebilirsiniz; AutoModelForCausalLM yerine aşağıdaki gibi bir FastLanguageModel yüklemeniz yeterlidir:

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

max_length = 2048 # Supports automatic RoPE Scaling, so choose any number

# Load model
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/mistral-7b",
    max_seq_length=max_length,
    dtype="auto",  # For auto-detection. Float16 for Tesla T4, V100, Bfloat16 for Ampere+
    load_in_4bit=True,  # Use 4bit quantization to reduce memory usage. Can be False
)

# Do model patching and add fast LoRA weights
model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    target_modules=[
        "q_proj",
        "k_proj",
        "v_proj",
        "o_proj",
        "gate_proj",
        "up_proj",
        "down_proj",
    ],
    lora_alpha=16,
    lora_dropout=0,  # Dropout = 0 is currently optimized
    bias="none",  # Bias = "none" is currently optimized
    use_gradient_checkpointing=True,
    random_state=3407,
)

training_args = SFTConfig(output_dir="./output", max_length=max_length)

trainer = SFTTrainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
)
trainer.train()

Kaydedilen model, Hugging Face'in transformers kütüphanesiyle tam olarak uyumludur. unsloth hakkında daha fazla bilgiyi resmi deposunda bulabilirsiniz.

Docker Kurulumu

docker run -d -e JUPYTER_PASSWORD="mypassword" \
  -p 8888:8888 -p 2222:22 \
  -v $(pwd)/work:/workspace/work \
  --gpus all \
  unsloth/unsloth

Jupyter Lab'e http://localhost:8888 adresinden erişin ve ince ayara başlayın!

Eğitim

Eğitimden önce açılıp kapatılabilen bazı temel ayarlar şunlardır:

  • max_seq_length = 2048 – Bağlam uzunluğunu kontrol eder. Llama-3 8192'yi desteklese de testler için 2048 öneririz. Unsloth, 4 kat daha uzun bağlamda ince ayar yapmayı mümkün kılar.
  • dtype = "auto" – Otomatik algılama için; daha yeni GPU'lar için torch.float16 veya torch.bfloat16 kullanın.
  • load_in_4bit = True – 4-bit kuantizasyonu etkinleştirir, ince ayar için bellek kullanımını 4 kat azaltır. Devre dışı bırakılması, LoRA 16-bit ince ayarının etkinleştirilmesine olanak tanır.
  • Tamamı ince ayar (FFT) etkinleştirmek için full_finetuning = True değerini ayarlayın. 8-bit ince ayar için load_in_8bit = True değerini ayarlayın. Not: Aynı anda yalnızca bir eğitim yöntemi True olarak ayarlanabilir.

Unsloth'un hiperparametrelerini ve özelliklerini yapılandırmaya ilişkin daha fazla bilgi için buradaki dokümantasyon kılavuzlarını okuyun.

Modeli kaydetme

Unsloth, ince ayar yapılmış modeli doğrudan LoRA adaptörü adı verilen küçük bir dosya olarak kaydetmenizi sağlar. Modelinizi yüklemek isterseniz, bunun yerine Hugging Face hub'a da gönderebilirsiniz! Bir Hugging Face token edinmeyi ve token'ınızı eklemeyi unutmayın!

GGUF olarak kaydetme

GGUF olarak kaydetmek için Unsloth, llama.cpp kullanır. Yerel olarak kaydetmek için:

model.save_pretrained_gguf("directory", tokenizer, quantization_method = "q4_k_m")
model.save_pretrained_gguf("directory", tokenizer, quantization_method = "q8_0")
model.save_pretrained_gguf("directory", tokenizer, quantization_method = "f16")

Hub'a göndermek için:

model.push_to_hub_gguf("hf_username/directory", tokenizer, quantization_method = "q4_k_m")
model.push_to_hub_gguf("hf_username/directory", tokenizer, quantization_method = "q8_0")

vLLM'ye Kaydetme

vLLM için 16-bit olarak kaydetmek için şunu kullanın:

model.save_pretrained_merged("model", tokenizer, save_method = "merged_16bit",)
model.push_to_hub_merged("hf/model", tokenizer, save_method = "merged_16bit", token = "")
Update on GitHub