Tüm 6 veri merkezi çalışıyor

Kripto ile ödenir · Kimlik kontrolü yok · 5 dakikanın altında içinde root erişimi

Uygulama rehberi · 10 dakikalık okuma

Tek bir kartta 70B bir modeli fine-tuning yapmak.

QLoRA, bir rack gerektiren bir eğitim işini, tek bir 48 GB'lık GPU gerektiren bir işe dönüştürür. İşte nelerin sığdığı, bir ay için maliyeti ve tekniğin nerede işe yaramamaya başladığı.

Kısa cevap

70B'de QLoRA
~61 GB — kısa dizi uzunluklarında bir 48 GB karta sığar, 80 GB'lik bir kartta ise rahatça sığar
70B modelinin tam fine-tuningi
~1,232 GB — çok düğümlü bir küme; bunu kiralamıyoruz
Oran
Çoğu görevde kalitenin çoğuna ulaşan bir teknik için kabaca 20× daha az bellek
Burada maliyeti
Aylık $286 fiyatından başlayarak, kart yalnızca çalıştırma süresince değil, ayın tamamında sizindir

Gerçekte sığan

LoRA modeli dondurur ve her ağırlık matrisinin yanına küçük bir çift düşük ranklı matris ekleyip eğitir. QLoRA daha da ileri gider ve dondurulmuş ağırlıkları 4 bitte tutar. Sonuç olarak bellekte tutmanız gereken şey tamamen değişir.

Dondurulmuş ağırlıklarParametre başına 4 bit70B bir model için 35 GB. Her adımda okunur, hiç güncellenmez, bu yüzden hiçbir zaman gradyana ihtiyaç duymaz.
AdaptörlerParametrelerin yaklaşık %1–2'siBF16'da bir veya iki gigabayt. Değişen tek ağırlıklar bunlardır ve sonunda elinizde kalan tek şey de budur.
Optimizer durumuYalnızca adaptörler üzerinde AdamEğitilen parametre başına iki moment. Tam fine-tuningin hâkim olduğu, burada ise neredeyse kaybolan terim budur.
AktivasyonlarDeğişken olanBatch boyutu ve dizi uzunluğuyla ölçeklenir. Gradient checkpointing, kabaca %30 daha fazla hesaplama karşılığında büyük bir azalma sağlar — bir çalıştırma sığmadığında başvurulan olağan kaldıraçtır.

Tam fine-tuningin neden durmadığı

BF16'da tam fine-tuning, parametre başına yaklaşık 16 bayt gerektirir: ağırlık için 2, gradyanı için 2 ve FP32'de Adam'ın iki momenti için 8, artı ana kopya. Bu sabit bir çarpandır ve acımasızdır.

Eğitim belleği: QLoRA ile tam fine-tuning karşılaştırması
ModelQLoRATam fine-tuningOranBunun anlamı
Llama 3.1 8B8B parametre 13 GB 141 GB 11× Bir 24 GB kart Tam: 8 GPU'lu bir düğüm
Gemma 3 27B27B parametre 27 GB 475 GB 17× Bir 48 GB kart Tam: 8 GPU'lu bir düğüm
Qwen 3 32B32B parametre 31 GB 563 GB 18× Bir 48 GB kart Tam: 8 GPU'lu bir düğüm
Llama 3.3 70B70B parametre 61 GB 1,232 GB 20× Bir 80 GB kart Tam: birden fazla düğüm

Bunlar, aktivasyonlar için makul bir pay bırakılmış büyüklük mertebesi rakamlarıdır: bir makine seçmeye yeter, belirli bir çalıştırmayı garanti etmeye yetmez. Dizi uzunluğu ve batch boyutu QLoRA sütununu önemli ölçüde değiştirir; tam fine-tuning sütunu ise neredeyse hiç değişmez, çünkü parametre başına sabit 16 bayt burada baskındır.

Modele göre

Kataloğumuzda her modeli QLoRA ile eğitebilecek en ucuz düğüm, sonucu sunmak için ihtiyaç duyacağınız makineyle birlikte.

QLoRA eğitimi ve sonucu sunmak için en ucuz düğüm
ModelEğitim belleğiEğitim için en ucuz düğümSunum için en ucuz düğüm
Llama 3.1 8B 13 GB NVIDIA L4kart başına 24 GB · $125/ay NVIDIA L4$125/ay
Mistral Small 24B 25 GB NVIDIA RTX A6000kart başına 48 GB · $286/ay NVIDIA L4$125/ay
Gemma 3 27B 27 GB NVIDIA RTX A6000kart başına 48 GB · $286/ay NVIDIA L4$125/ay
Qwen 3 32B 31 GB NVIDIA RTX A6000kart başına 48 GB · $286/ay NVIDIA L4$125/ay
Llama 3.3 70B 61 GB NVIDIA A100 PCIekart başına 80 GB · $1,091/ay 2 × NVIDIA L4$285/ay

Eğitim bellek ister; çıkarım ise bellek ve bant genişliği ister. Doğru eğitim kartının ucuz ve büyük bellekli, doğru çıkarım kartının ise pahalı ve hızlı olması sık görülür — ve burada ikisi de aylık olduğundan, iki ayrı makinede çalıştırmak genellikle tek bir kartta uzlaşmaktan daha ucuzdur.

Çalıştırmak

Axolotl, yapılandırıcıdaki imajlardan biri olarak önceden kurulu gelir. Bu, boş bir makineden başlayarak tek bir kartta yapılan eksiksiz bir çalıştırmadır.

Tek kartta bir QLoRA çalıştırması
$ mkdir -p /scratch/ft && cd /scratch/ft
$ cat > qlora.yml <<'YAML'
base_model: meta-llama/Llama-3.3-70B-Instruct
load_in_4bit: true
adapter: qlora
lora_r: 16
lora_alpha: 32
lora_dropout: 0.05
lora_target_linear: true

sequence_len: 2048
sample_packing: true
gradient_checkpointing: true
micro_batch_size: 1
gradient_accumulation_steps: 16
num_epochs: 2
learning_rate: 0.0001
optimizer: paged_adamw_8bit
bf16: true

datasets:
  - path: /scratch/ft/data.jsonl
    type: chat_template
output_dir: /scratch/ft/out
YAML

$ docker run --rm --gpus all --ipc=host --shm-size=16g \
    -v /scratch/ft:/workspace -v /scratch/models:/root/.cache/huggingface \
    -e HF_TOKEN="$HF_TOKEN" \
    axolotlai/axolotl:main-latest \
    axolotl train /workspace/qlora.yml
İlk iki dakika boyunca kaybı değil, belleği izleyin
$ nvidia-smi dmon -s um

# If memory sits just under the card's total, you are one long batch
# away from an out-of-memory error four hours into the run.
# Lower sequence_len or micro_batch_size now, not then.

Önemli olan ayarlar

lora_r16 ile 64 arasıRank, yani kalite-bellek dengesini ayarlayan ana kadran. 16 makul bir varsayılandır; bir format veya stil değil de gerçekten yeni bir bilgi öğretmiyorsanız, 64'ün üzerine çıkmak nadiren kendini amorti eder.
lora_target_lineartrueYalnızca attention yerine her doğrusal katmanı uyarlar. Az bir maliyeti vardır ve sürekli olarak yalnızca-attention varsayılanından daha iyi performans gösterir.
sequence_lenTek en büyük bellek kaldıracıAktivasyonlar bununla orantılı şekilde ölçeklenir. Onu yarıya indirmek belleğinizin değişken kısmını da kabaca yarıya indirir. Bunu modelin azami değerine değil, verinizin gerçekte sahip olduğu uzunluğa ayarlayın.
gradient_checkpointingtrue, neredeyse her zamanYaklaşık %30 daha yavaştır ve 70B modelin tek karta sığmasını sağlayan da tam olarak budur. Bunu yalnızca fazladan belleğiniz olduğunda kapatın.
micro_batch_size & accumulationBirini ötekiyle ödünleşinEtkili batch, bunların çarpımıdır. Bellek darken mikro batch değerini 1'de tutun ve birikim sayısını artırın — aynı gradyan, daha düşük tepe bellek, biraz daha yavaş.
optimizerpaged_adamw_8bitGüvenlik valfi olarak CPU sayfalamalı sekiz bit optimizer durumları. Aksi halde bir çalıştırmayı dördüncü saatte bitirecek ani yükselmeleri emer.

Bir ayın maliyeti

Aylık kiralamanın sunumdan çok eğitim için önemli olmasının nedeni şu: bir fine-tuning projesi tek bir çalıştırma değildir. Bir veri hatasıyla başarısız olan ilk çalıştırma, aşırı öğrenen ikincisi, işe yarayan üçüncüsü ve ardından farklı ranklarla beş çalıştırma daha demektir.

Makineye göre bir fine-tuning projesinin maliyeti
MakineKart belleğiAylıkNeye uygun
NVIDIA L4300 GB/s 24 GB $125/ay 8B boyutuna kadar QLoRA
NVIDIA RTX 50901,792 GB/s 32 GB $335/ay 32B boyutuna kadar QLoRA
NVIDIA A100 PCIe1,555 GB/s 40 GB $392/ay 32B boyutuna kadar QLoRA
NVIDIA RTX A6000768 GB/s 48 GB $286/ay 32B boyutuna kadar QLoRA
NVIDIA A100 PCIe1,935 GB/s 80 GB $1,091/ay 70B boyutuna kadar QLoRA

Bunu tek bir çalıştırma yerine bir proje boyunca saatlik fiyatlandırmayla karşılaştırın: başabaş rehberi hesaplamayı yapar. Siz denemeler yaparken üç hafta boyunca var olan bir makine, tam olarak bir sayacın bir süreden daha pahalıya geldiği durumdur.

LoRA'nın artık işe yaramadığı nokta

Gerçek bir sınırı olan çok iyi bir tekniktir ve herhangi bir şey kiralamadan önce bu sınırın hangi tarafında olduğunuzu bilmeye değer.

Gerçekten yeni bir alan öğretmek. LoRA davranışı iyi uyarlar ama bilgiyi zayıf ekler. Alanınızı hiç görmemiş bir model, bunu düşük ranklı bir adaptörden öğrenmez.

Kelime dağarcığını veya tokenizer aracını değiştirmek. Yeni tokenler için embedding eğitilmesi gerekir, bu da bir adaptörün dokunduğu alanın dışındadır.

Milyarlarca token üzerinde ön eğitime devam etmek. Bu, tam fine-tuning sayılır ve yukarıdaki tablonun sağ sütunundaki makineyi gerektirir — bu da tek bir düğümden fazlası ve kiraladığımızdan fazlasıdır.

Bir kıyaslamanın son iki puanını sıkıştırmak. Tam fine-tuning marjda hâlâ kazanır. Size ödenen şey bu marjsa, LoRA yanlış araçtır.

Geri kalan her şey için — bir ton, bir format, bir şema, temel modelin zaten yarı yarıya bildiği bir alan — tek bir kartta QLoRA, makinenin bir kısmıyla kalitenin çoğuna ulaşır. Takas budur ve çoğu insanın gerçekte fine-tuning yaptığı modellerde iyi bir takastır.

Kartı seçin, projenin tamamı boyunca elinizde tutun.

Her yapılandırma aylıktır, root erişimiyle ve sayaçsızdır — bir fine-tune üzerinde deneme yapmanın gerçekte ihtiyaç duyduğu şey de tam olarak budur.

Giriş Yapın

Konsol, makbuzlar ve bant dışı erişim.

Henüz hesabınız yok mu?

Ayrı bir kayıt işlemi yoktur. Hesabınız, ilk siparişinizi verirken oluşturulur — e-postayı ve şifreyi ödeme adımında seçersiniz, ve makine hazır olduğunda konsol da açık olur.

Bir sunucu yapılandırın

Language