Todos os 6 centros de dados operacionais

Pago em cripto · Sem verificação de identidade · Acesso root em em menos de 5 minutos

Prática guia · 10 min de leitura

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.

Pesos congelados4 bits por parâmetro35 GB para um modelo de 70B. Lidos em cada passo, nunca atualizados, então nunca precisam de gradiente.
AdaptadoresCerca de 1–2% dos parâmetrosUm ou dois gigabytes em BF16. Esses são os únicos pesos que mudam, e a única coisa que você guarda no final.
Estado do otimizadorAdam, só nos adaptadoresDois momentos por parâmetro treinado. Este é o termo que domina o fine-tuning completo e quase desaparece aqui.
AtivaçõesA parte variávelEscala com o batch size e o comprimento da sequência. O gradient checkpointing troca cerca de 30% mais computação por uma redução grande — a alavanca de sempre quando uma execução não cabe.

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.

Memória de treinamento: QLoRA comparado com fine-tuning completo
ModeloQLoRAFine-tuning completoProporçãoO que isso significa
Llama 3.1 8B8B de parâmetros 13 GB 141 GB 11× Uma placa de 24 GB Completo: um nó de 8 GPUs
Gemma 3 27B27B de parâmetros 27 GB 475 GB 17× Uma placa de 48 GB Completo: um nó de 8 GPUs
Qwen 3 32B32B de parâmetros 31 GB 563 GB 18× Uma placa de 48 GB Completo: um nó de 8 GPUs
Llama 3.3 70B70B de parâmetros 61 GB 1,232 GB 20× Uma placa de 80 GB Completo: mais de um nó

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.

Nó mais barato para treinar com QLoRA, e para servir o resultado
ModeloMemória de treinamentoNó mais barato para treinarNó mais barato para servir
Llama 3.1 8B 13 GB NVIDIA L424 GB por placa · $125/mês NVIDIA L4$125/mês
Mistral Small 24B 25 GB NVIDIA RTX A600048 GB por placa · $286/mês NVIDIA L4$125/mês
Gemma 3 27B 27 GB NVIDIA RTX A600048 GB por placa · $286/mês NVIDIA L4$125/mês
Qwen 3 32B 31 GB NVIDIA RTX A600048 GB por placa · $286/mês NVIDIA L4$125/mês
Llama 3.3 70B 61 GB NVIDIA A100 PCIe80 GB por placa · $1,091/mês 2 × NVIDIA L4$285/mês

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.

Uma execução de QLoRA em uma placa
$ 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
Observe a memória, não a loss, nos primeiros dois minutos
$ 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

lora_r16 to 64O rank, o principal controle entre qualidade e memória. 16 é um padrão sensato; ir acima de 64 raramente vale a pena, a menos que você esteja ensinando conhecimento genuinamente novo, e não um formato ou um estilo.
lora_target_lineartrueAdapta cada camada linear em vez de só a atenção. Custa pouco e supera de forma consistente o padrão de atenção apenas.
sequence_lenA maior alavanca de memóriaAs ativações escalam com isso. Reduzir pela metade reduz aproximadamente pela metade a parte variável da sua memória. Defina o valor para o comprimento que os seus dados realmente têm, não para o máximo do modelo.
gradient_checkpointingtrue, quase sempreCerca de 30% mais lento, e é isso que torna possível treinar um modelo de 70B em uma única placa. Desative apenas quando sobrar memória.
micro_batch_size & acumulaçãoTrocar um pelo outroO batch efetivo é o produto dos dois. Mantenha o micro-batch em 1 e aumente o accumulation quando a memória estiver apertada — mesmo gradiente, menos pico de memória, um pouco mais lento.
otimizadorpaged_adamw_8bitEstados do otimizador em oito bits, com paginação para CPU como válvula de segurança. Isso absorve os picos que, de outra forma, encerrariam a execução na quarta hora.

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.

Custo de um projeto de fine-tuning, por máquina
MáquinaMemória da placaPor mêsIndicado para
NVIDIA L4300 GB/s 24 GB $125/mês QLoRA até 8B
NVIDIA RTX 50901,792 GB/s 32 GB $335/mês QLoRA até 32B
NVIDIA A100 PCIe1,555 GB/s 40 GB $392/mês QLoRA até 32B
NVIDIA RTX A6000768 GB/s 48 GB $286/mês QLoRA até 32B
NVIDIA A100 PCIe1,935 GB/s 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.

Entrar

Console, faturas e acesso fora de banda.

Ainda não tem uma conta?

Não existe cadastro separado. Sua conta é criada enquanto você faz seu primeiro pedido — você escolhe o e-mail e a senha na etapa de pagamento, e o console já está aberto quando a máquina estiver pronta.

Configurar um servidor

Language