Fazendo fine-tuning de um modelo de 70B em uma placa.
O QLoRA transforma um job de treinamento que precisa de um rack em um que precisa de apenas uma GPU de 48 GB. Aqui está o que cabe, quanto custa por mês, e onde a técnica para de funcionar.
A resposta curta
- QLoRA em 70B
- ~61 GB — cabe em uma placa de 48 GB com comprimentos de sequência curtos, e folgadamente em uma de 80 GB
- Fine-tuning completo de 70B
- ~1,232 GB — um cluster multi-nó, que não alugamos
- A proporção
- Aproximadamente 20× menos memória, para uma técnica que alcança a maior parte da qualidade na maioria das tarefas
- Quanto custa aqui
- A partir de $286/mês, com a placa sua pelo mês inteiro, não só pela execução
O que realmente cabe
O LoRA congela o modelo e treina um pequeno par de matrizes de rank baixo ao lado de cada matriz de pesos. O QLoRA vai além e mantém os pesos congelados em 4 bits. O que você precisa manter em memória muda completamente como resultado.
Por que o fine-tuning completo não
O fine-tuning completo em BF16 precisa de cerca de 16 bytes por parâmetro: 2 para o peso, 2 para o gradiente, e 8 para os dois momentos do Adam em FP32, mais a cópia mestra. É um multiplicador fixo, e é brutal.
| Modelo | QLoRA | Fine-tuning completo | Proporção | O que isso significa |
|---|---|---|---|---|
| Llama 3.1 8B | 13 GB | 141 GB | 11× | Uma placa de 24 GB |
| Gemma 3 27B | 27 GB | 475 GB | 17× | Uma placa de 48 GB |
| Qwen 3 32B | 31 GB | 563 GB | 18× | Uma placa de 48 GB |
| Llama 3.3 70B | 61 GB | 1,232 GB | 20× | Uma placa de 80 GB |
Estes são valores de ordem de grandeza, com uma folga modesta para ativações — suficientes para escolher uma máquina, não para prometer uma execução específica. O comprimento de sequência e o tamanho do lote alteram consideravelmente a coluna QLoRA; a coluna de fine-tuning completo quase não se move, porque é dominada pelos 16 bytes fixos por parâmetro.
Modelo por modelo
O nó mais barato do nosso catálogo que consegue treinar cada modelo com QLoRA, ao lado da máquina que você precisaria para servir o resultado.
| Modelo | Memória de treinamento | Nó mais barato para treinar | Nó mais barato para servir |
|---|---|---|---|
| Llama 3.1 8B | 13 GB | NVIDIA L4 | NVIDIA L4 |
| Mistral Small 24B | 25 GB | NVIDIA RTX A6000 | NVIDIA L4 |
| Gemma 3 27B | 27 GB | NVIDIA RTX A6000 | NVIDIA L4 |
| Qwen 3 32B | 31 GB | NVIDIA RTX A6000 | NVIDIA L4 |
| Llama 3.3 70B | 61 GB | NVIDIA A100 PCIe | 2 × NVIDIA L4 |
O treinamento quer memória; o serving quer memória e largura de banda. É comum que a placa certa para treinamento seja uma placa barata e com muita memória, e que a placa certa para serving seja uma placa cara e rápida — e, como aqui as duas são mensais, rodar as duas em máquinas diferentes costuma sair mais barato do que abrir mão de uma delas.
Executando
O Axolotl vem pré-instalado como uma das imagens no configurador. Esta é uma execução completa em uma única placa, a partir de uma máquina vazia.
$ 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
$ 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.
As configurações que importam
Quanto custa um mês
O motivo pelo qual o mensal importa mais para treinamento do que para serving: um projeto de fine-tuning não é uma única execução. É uma primeira execução que falha por um bug nos dados, uma segunda que sofre overfitting, uma terceira que funciona, e depois mais cinco com ranks diferentes.
| Máquina | Memória da placa | Por mês | Indicado para |
|---|---|---|---|
| NVIDIA L4 | 24 GB | $125/mês | QLoRA até 8B |
| NVIDIA RTX 5090 | 32 GB | $335/mês | QLoRA até 32B |
| NVIDIA A100 PCIe | 40 GB | $392/mês | QLoRA até 32B |
| NVIDIA RTX A6000 | 48 GB | $286/mês | QLoRA até 32B |
| NVIDIA A100 PCIe | 80 GB | $1,091/mês | QLoRA até 70B |
Compare isso com a cobrança por hora ao longo de um projeto, e não de uma única execução: o guia de ponto de equilíbrio faz as contas. Uma máquina que existe por três semanas enquanto você itera é exatamente o caso em que a cobrança por hora custa mais do que um prazo.
Onde o LoRA para de funcionar
É uma técnica muito boa com um limite real, e vale a pena saber de que lado dele você está antes de alugar qualquer coisa.
Ensinar um domínio genuinamente novo. O LoRA adapta bem o comportamento e adiciona mal o conhecimento. Um modelo que nunca viu a sua área não vai aprendê-la a partir de um adaptador de rank baixo.
Mudar o vocabulário ou o tokenizer. Tokens novos precisam de embeddings treinados, o que fica fora do que um adaptador altera.
Pré-treinamento contínuo em bilhões de tokens. Isso é fine-tuning completo, e precisa da máquina na coluna da direita da tabela acima — que é mais de um nó, e mais do que alugamos.
Espremer os últimos dois pontos de um benchmark. O fine-tuning completo ainda vence na margem. Se é essa margem que você está sendo pago para entregar, o LoRA é a ferramenta errada.
Para tudo o mais — um tom, um formato, um esquema, um domínio que o modelo base já conhece parcialmente — o QLoRA em uma única placa alcança a maior parte da qualidade por uma fração da máquina. Essa é a troca, e, nos modelos que a maioria das pessoas realmente ajusta, é uma boa troca.
Escolha a placa, fique com ela pelo projeto inteiro.
Toda configuração é mensal, com acesso root e sem cobrança por hora — que é exatamente o que iterar em um fine-tune precisa.
Outros guias
- Pagamento · 8 min
Pagando um servidor em cripto
O que realmente acontece entre clicar em pagar e receber o root, qual moeda escolher, e os quatro erros que fazem perder dinheiro no primeiro pagamento.
Ler o guia - Dimensionamento · 9 min
Quanta VRAM um modelo realmente precisa
A aritmética por trás de “será que cabe”: pesos, cache KV, e os dois pontos em que uma regra prática erra por um fator de três.
Ler o guia - Dimensionamento · 7 min
NVLink ou PCIe: de qual seu trabalho precisa
Quando o link entre placas decide seu throughput, quando não muda nada, e como saber em qual caso você está antes de pagar pelo nó errado.
Ler o guia