Tutti i 6 data center operativi

Pagamento in cripto · Nessuna verifica d’identità · Accesso root in in meno di 5 minuti

Guida Pratica · 10 min di lettura

Fare fine-tuning di un modello 70B su una scheda.

QLoRA trasforma un job di addestramento che richiede un rack in uno che richiede una sola GPU da 48 GB. Ecco cosa ci sta, quanto costa al mese, e dove la tecnica smette di funzionare.

La risposta breve

QLoRA su 70B
~61 GB — ci sta su una scheda da 48 GB con sequenze brevi, comodamente su una da 80 GB
Full fine-tuning di un 70B
~1,232 GB — un cluster multi-nodo, che non noleggiamo
Il rapporto
Circa 20× in meno di memoria, per una tecnica che raggiunge gran parte della qualità sulla maggior parte dei task
Quanto costa qui
A partire da $286/mese, con la scheda a sua disposizione per l’intero mese anziché solo per la run

Cosa ci sta davvero

LoRA congela il modello e addestra una piccola coppia di matrici a basso rango accanto a ogni matrice di pesi. QLoRA va oltre e mantiene i pesi congelati a 4 bit. Ciò che deve restare in memoria cambia completamente di conseguenza.

Pesi congelati4 bit per parametro35 GB per un modello 70B. Letti a ogni step, mai aggiornati, quindi non necessitano mai di un gradiente.
AdapterCirca l’1–2% dei parametriUno o due gigabyte in BF16. Sono gli unici pesi che cambiano, e l’unica cosa che rimane alla fine.
Stato dell’ottimizzatoreAdam, solo sugli adapterDue momenti per parametro addestrato. È il termine che domina il fine-tuning completo e che qui si riduce quasi a zero.
AttivazioniQuella variabileScala con la dimensione del batch e la lunghezza della sequenza. Il gradient checkpointing scambia circa il 30% di calcolo in più per una riduzione consistente — la leva abituale quando un run non ci sta.

Perché il fine-tuning completo no

Il full fine-tuning in BF16 richiede circa 16 byte per parametro: 2 per il peso, 2 per il suo gradiente, e 8 per i due momenti di Adam in FP32, più la copia master. È un moltiplicatore fisso, ed è spietato.

Memoria di addestramento, QLoRA a confronto con il fine-tuning completo
ModelloQLoRAFull fine-tuningRapportoCosa significa
Llama 3.1 8B8B di parametri 13 GB 141 GB 11× Una scheda da 24 GB Full: un nodo a 8 GPU
Gemma 3 27B27B di parametri 27 GB 475 GB 17× Una scheda da 48 GB Full: un nodo a 8 GPU
Qwen 3 32B32B di parametri 31 GB 563 GB 18× Una scheda da 48 GB Full: un nodo a 8 GPU
Llama 3.3 70B70B di parametri 61 GB 1,232 GB 20× Una scheda da 80 GB Full: più di un nodo

Queste sono cifre di ordine di grandezza, con un margine modesto per le attivazioni — sufficienti per scegliere una macchina, non per garantire un’esecuzione specifica. La lunghezza della sequenza e la dimensione del batch influenzano notevolmente la colonna QLoRA; la colonna del fine-tuning completo si sposta a malapena, perché è dominata dai 16 byte fissi per parametro.

Modello per modello

Il nodo più economico del nostro catalogo in grado di addestrare ciascun modello con QLoRA, insieme alla macchina che servirebbe per il serving del risultato.

Nodo più economico per l’addestramento QLoRA, e per il serving del risultato
ModelloMemoria di addestramentoNodo più economico su cui addestrareNodo più economico su cui fare serving
Llama 3.1 8B 13 GB NVIDIA L424 GB per scheda · $125/mese NVIDIA L4$125/mese
Mistral Small 24B 25 GB NVIDIA RTX A600048 GB per scheda · $286/mese NVIDIA L4$125/mese
Gemma 3 27B 27 GB NVIDIA RTX A600048 GB per scheda · $286/mese NVIDIA L4$125/mese
Qwen 3 32B 31 GB NVIDIA RTX A600048 GB per scheda · $286/mese NVIDIA L4$125/mese
Llama 3.3 70B 61 GB NVIDIA A100 PCIe80 GB per scheda · $1,091/mese 2 × NVIDIA L4$285/mese

L’addestramento vuole memoria; il serving vuole memoria e larghezza di banda. È comune che la scheda giusta per l’addestramento sia una economica e con molta memoria, e che la scheda giusta per il serving sia una veloce e costosa — e poiché qui sono entrambe mensili, eseguire le due su macchine diverse è spesso più economico che scendere a compromessi su una sola.

Eseguirlo

Axolotl è preinstallato come una delle immagini del configuratore. Questo è un run completo su una singola scheda, a partire da una macchina vuota.

Un run di QLoRA su una scheda
$ 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
Osservare la memoria, non la loss, nei primi due minuti
$ 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.

Le impostazioni che contano

lora_r16 to 64Il rank, ovvero la principale manopola qualità-contro-memoria. 16 è un valore predefinito ragionevole; andare oltre 64 raramente ripaga, a meno che non si stia insegnando conoscenza realmente nuova anziché un formato o uno stile.
lora_target_lineartrueAdatta ogni layer lineare anziché la sola attenzione. Costa poco e supera sistematicamente l’impostazione predefinita basata solo sull’attenzione.
sequence_lenLa leva più grande per la memoriaLe attivazioni scalano con esso. Dimezzarlo dimezza all’incirca la parte variabile della memoria. Lo imposti alla lunghezza che i suoi dati hanno davvero, non al massimo del modello.
gradient_checkpointingtrue, quasi sempreCirca il 30% più lento, ed è ciò che permette a un modello 70B di stare su una sola scheda. Lo disattivi solo quando ha memoria da spendere in più.
micro_batch_size & accumuloBilanciare l’uno e l’altroIl batch effettivo è il loro prodotto. Mantenga il micro-batch a 1 e aumenti l’accumulation quando la memoria scarseggia — stesso gradiente, meno picco di memoria, leggermente più lento.
ottimizzatorepaged_adamw_8bitStati dell’ottimizzatore a 8 bit con paging su CPU come valvola di sicurezza. Assorbe i picchi che altrimenti farebbero terminare un run alla quarta ora.

Quanto costa un mese

Il motivo per cui il mensile conta di più per l’addestramento che per il serving: un progetto di fine-tuning non è un run solo. È un primo run che fallisce per un bug nei dati, un secondo che va in overfitting, un terzo che funziona, e poi altri cinque con rank diversi.

Costo di un progetto di fine-tuning, per macchina
MacchinaMemoria della schedaAl meseAdatto a
NVIDIA L4300 GB/s 24 GB $125/mese QLoRA fino a 8B
NVIDIA RTX 50901,792 GB/s 32 GB $335/mese QLoRA fino a 32B
NVIDIA A100 PCIe1,555 GB/s 40 GB $392/mese QLoRA fino a 32B
NVIDIA RTX A6000768 GB/s 48 GB $286/mese QLoRA fino a 32B
NVIDIA A100 PCIe1,935 GB/s 80 GB $1,091/mese QLoRA fino a 70B

Lo confronti con la tariffazione oraria calcolata sull’intero progetto anziché su una singola run: la guida al punto di pareggio fa i conti. Una macchina che esiste per tre settimane mentre lei itera è esattamente il caso in cui un contatore costa più di un abbonamento.

Dove LoRA smette di funzionare

È una tecnica molto valida con un limite reale, ed è utile sapere da che parte di quel limite ci si trova prima di noleggiare qualcosa.

Insegnare un dominio realmente nuovo. LoRA adatta bene il comportamento e aggiunge male la conoscenza. Un modello che non ha mai visto il suo settore non lo imparerà da un adapter a basso rango.

Cambiare il vocabolario o il tokenizer. I nuovi token richiedono embedding da addestrare, il che esula da ciò che un adapter modifica.

Il pre-training continuato su miliardi di token. Questo è full fine-tuning, e richiede la macchina nella colonna di destra della tabella sopra — che significa più di un nodo, più di quanto noleggiamo.

Spremere gli ultimi due punti di un benchmark. Il full fine-tuning vince ancora ai margini. Se è per quel margine che viene pagato, LoRA è lo strumento sbagliato.

Per tutto il resto — un tono, un formato, uno schema, un dominio che il modello base conosce già in parte — QLoRA su una singola scheda raggiunge gran parte della qualità con una frazione della macchina. Questo è il compromesso, ed è un buon compromesso per i modelli su cui la maggior parte delle persone fa davvero fine-tuning.

Scelga la scheda, e la tenga per l’intero progetto.

Ogni configurazione è mensile, con accesso root e senza contatore — che è esattamente ciò di cui ha bisogno chi itera su un fine-tune.

Accedi

Console, ricevute e accesso fuori banda.

Non ha ancora un account?

Non esiste una registrazione separata. Il suo account viene creato mentre effettua il suo primo ordine — sceglie l’email e la password nella fase di pagamento, e la console è già aperta quando lo è la macchina.

Configura un server

Language