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 congelati 4 bit per parametro 35 GB per un modello 70B. Letti a ogni step, mai aggiornati, quindi non necessitano mai di un gradiente.

Adapter Circa l’1–2% dei parametri Uno o due gigabyte in BF16. Sono gli unici pesi che cambiano, e l’unica cosa che rimane alla fine.

Stato dell’ottimizzatore Adam, solo sugli adapter Due momenti per parametro addestrato. È il termine che domina il fine-tuning completo e che qui si riduce quasi a zero.

Attivazioni Quella variabile Scala 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**

| Modello | QLoRA | Full fine-tuning | Rapporto | Cosa significa |
|---|---|---|---|---|
| Llama 3.1 8B 8B di parametri | 13 GB | 141 GB | 11× | Una scheda da 24 GB Full: un nodo a 8 GPU |
| Gemma 3 27B 27B di parametri | 27 GB | 475 GB | 17× | Una scheda da 48 GB Full: un nodo a 8 GPU |
| Qwen 3 32B 32B di parametri | 31 GB | 563 GB | 18× | Una scheda da 48 GB Full: un nodo a 8 GPU |
| Llama 3.3 70B 70B 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**

| Modello | Memoria di addestramento | Nodo più economico su cui addestrare | Nodo più economico su cui fare serving |
|---|---|---|---|
| Llama 3.1 8B | 13 GB | [NVIDIA L4](https://gpuserver.io/it/gpu/nvidia-l4) 24 GB per scheda · $125/mese | [NVIDIA L4](https://gpuserver.io/it/gpu/nvidia-l4) $125/mese |
| Mistral Small 24B | 25 GB | [NVIDIA RTX A6000](https://gpuserver.io/it/gpu/rtx-a6000) 48 GB per scheda · $286/mese | [NVIDIA L4](https://gpuserver.io/it/gpu/nvidia-l4) $125/mese |
| Gemma 3 27B | 27 GB | [NVIDIA RTX A6000](https://gpuserver.io/it/gpu/rtx-a6000) 48 GB per scheda · $286/mese | [NVIDIA L4](https://gpuserver.io/it/gpu/nvidia-l4) $125/mese |
| Qwen 3 32B | 31 GB | [NVIDIA RTX A6000](https://gpuserver.io/it/gpu/rtx-a6000) 48 GB per scheda · $286/mese | [NVIDIA L4](https://gpuserver.io/it/gpu/nvidia-l4) $125/mese |
| Llama 3.3 70B | 61 GB | [NVIDIA A100 PCIe](https://gpuserver.io/it/gpu/a100-80gb) 80 GB per scheda · $1,091/mese | [2 × NVIDIA L4](https://gpuserver.io/it/gpu/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_r 16 to 64 Il 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_linear true Adatta ogni layer lineare anziché la sola attenzione. Costa poco e supera sistematicamente l’impostazione predefinita basata solo sull’attenzione.

sequence_len La leva più grande per la memoria Le 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_checkpointing true, quasi sempre Circa 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 & accumulo Bilanciare l’uno e l’altro Il 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.

ottimizzatore paged_adamw_8bit Stati 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**

| Macchina | Memoria della scheda | Al mese | Adatto a |
|---|---|---|---|
| [NVIDIA L4](https://gpuserver.io/it/gpu/nvidia-l4) 300 GB/s | 24 GB | $125/mese | QLoRA fino a 8B |
| [NVIDIA RTX 5090](https://gpuserver.io/it/gpu/rtx-5090) 1,792 GB/s | 32 GB | $335/mese | QLoRA fino a 32B |
| [NVIDIA A100 PCIe](https://gpuserver.io/it/gpu/a100-40gb) 1,555 GB/s | 40 GB | $392/mese | QLoRA fino a 32B |
| [NVIDIA RTX A6000](https://gpuserver.io/it/gpu/rtx-a6000) 768 GB/s | 48 GB | $286/mese | QLoRA fino a 32B |
| [NVIDIA A100 PCIe](https://gpuserver.io/it/gpu/a100-80gb) 1,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](https://gpuserver.io/it/guides/monthly-vs-hourly) 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.

[Sfoglia il catalogo](https://gpuserver.io/it/#catalog) [Leggi le guide](https://gpuserver.io/it/guides)

## Altre guide

- [Pagamento · 8 min Pagare un server in cripto Cosa succede realmente tra il clic su paga e l’ottenimento del root, quale moneta scegliere, e i quattro errori che fanno perdere denaro al primo pagamento. Leggi la guida](https://gpuserver.io/it/guides/pay-in-crypto)
- [Dimensionamento · 9 min Quanta VRAM serve davvero a un modello L’aritmetica dietro «ci sta»: pesi, cache KV, e i due punti dove una regola empirica sbaglia di un fattore tre. Leggi la guida](https://gpuserver.io/it/guides/vram-sizing)
- [Dimensionamento · 7 min NVLink o PCIe: quale serve al carico di lavoro Quando il collegamento tra le schede decide il throughput, quando non cambia nulla, e come capire in quale caso ci si trova prima di pagare per il nodo sbagliato. Leggi la guida](https://gpuserver.io/it/guides/nvlink-vs-pcie)

---

Fonte: https://gpuserver.io/it/guides/lora-finetune/. Questo file è generato dagli stessi dati del sito web; se una cifra qui differisce da una pagina, la pagina è quella autorevole e questo file è obsoleto — la fonte canonica è https://gpuserver.io/.
