Phase 19 - Lesson 07
Capstone 07 — Pipeline de Fine-Tuning de Ponta a Ponta (Dados para SFT para DPO para Servir)
Um modelo de 8B treinado com seus próprios dados, alinhado por DPO de acordo com suas preferências, quantizado, com decodificação especulativa e servido a um custo mensurável de $/1M de tokens. A stack aberta de 2026 é composta por Axolotl v0.8, TRL 0.15, Unsloth para iteração, GPTQ/AWQ/GGUF para quantização e vLLM 0.7 com EAGLE-3 para servir o modelo. O capstone consiste em executar todo o pipeline de forma reproduzível — entrada em YAML, endpoint ativo na saída — e publicar um model card sob o Model Openness Framework de 2026.
Tipo: Capstone Linguagens: Python (pipeline), YAML (configurações), Bash (scripts) Pré-requisitos: Fase 2 (ML), Fase 3 (DL), Fase 7 (transformers), Fase 10 (LLMs do zero), Fase 11 (engenharia de LLM), Fase 17 (infraestrutura), Fase 18 (segurança) Fases exercitadas: P2 · P3 · P7 · P10 · P11 · P17 · P18 Tempo: 35 horas
Problema
Toda equipe séria de IA em 2026 mantém um pipeline de fine-tuning à disposição. Não porque lançam um modelo base de fronteira, mas porque a adaptação downstream — SFT de domínio, DPO contra preferências rotuladas, rascunhos destilados para decodificação especulativa, servir com EAGLE-3 — é onde estão os ganhos mensuráveis. O Axolotl v0.8 lida com configurações de SFT multi-GPU. O TRL 0.15 lida com DPO e GRPO. O Unsloth oferece iteração rápida em GPU única. O vLLM 0.7 com EAGLE-3 aumenta o rendimento (throughput) de decodificação em 2-3x sem perda de qualidade. As ferramentas funcionam; a arte está nos arquivos YAML, na higiene dos dados e na disciplina de avaliação.
Você executará um modelo base de 8B (Llama 3.3, Qwen3 ou Gemma 3) por SFT e depois DPO em dados específicos de tarefas, o quantizará para servir e medirá os ganhos em relação a lm-evaluation-harness, RewardBench-2, MT-Bench-v2 e MMLU-Pro. Você produzirá um model card sob o Model Openness Framework de 2026. O objetivo principal é a reprodutibilidade — um único comando executa novamente todo o pipeline de ponta a ponta.
Concept
O pipeline possui cinco etapas. Dados: desduplicação (MinHash / Datatrove), filtro de qualidade (classificador no estilo Nemotron-CC), remoção de PII (dados pessoais sensíveis), verificação de higiene dos splits contra contaminação de benchmarks públicos. SFT: YAML do Axolotl, ZeRO-3 em 8xH100, cronograma de cosseno (cosine schedule), sequências compactadas, 2-3 épocas. DPO ou GRPO: configuração do TRL, 1 época, pares de preferências rotulados por humanos ou avaliados por modelos, ajuste de beta. Quantização: GPTQ + AWQ + GGUF para flexibilidade de implantação. Servir: vLLM 0.7 com cabeças especulativas EAGLE-3 (ou SGLang com SpecForge), implantação em K8s, HPA baseado no tempo de espera da fila (queue-wait).
As ablações são o entregável: apenas SFT vs SFT+DPO vs SFT+GRPO em três benchmarks específicos de tarefas. Métricas de serviço: tokens/s em batch 1 / 8 / 32, taxa de aceitação do EAGLE-3, $/1M de tokens. Avaliação de segurança: taxa de aprovação do Llama Guard 4. Model card: avaliações de viés, sementes (seeds) de reprodutibilidade, licenciamento de dados.
Architecture
raw data (HF datasets + internal)
|
v
Datatrove dedup + Nemotron-CC quality filter + PII scrub
|
v
split hygiene (MMLU-Pro contamination check)
|
v
Axolotl SFT config (YAML) ---> 8xH100, ZeRO-3
|
v
TRL DPO / GRPO config ---> 4xH100, 1 epoch
|
v
GPTQ + AWQ + GGUF quantize
|
v
vLLM 0.7 + EAGLE-3 speculative decoding
|
v
K8s deployment, HPA on queue-wait
|
v
lm-eval-harness + RewardBench-2 + MT-Bench-v2 + MMLU-Pro
|
v
model card (2026 MOF) + safety eval (Llama Guard 4)
Stack
- Dados: Datatrove para desduplicação, classificador Nemotron-CC para qualidade, Presidio para PII
- Base: Llama 3.3 8B, Qwen3 14B ou Gemma 3 12B
- SFT: Axolotl v0.8 com ZeRO-3, Flash Attention 3, sequências compactadas
- Ajuste de preferências: TRL 0.15 para DPO ou GRPO; Unsloth para iteração em GPU única
- Quantização: GPTQ (Marlin), AWQ, GGUF via llama.cpp
- Servir: vLLM 0.7 com decodificação especulativa EAGLE-3 (ou SGLang 0.4 + SpecForge)
- Avaliação: lm-evaluation-harness, RewardBench-2, MT-Bench-v2, MMLU-Pro
- Avaliação de segurança: Llama Guard 4, ShieldGemma-2
- Infraestrutura: Kubernetes + plug-in de dispositivo NVIDIA, HPA com base na métrica de espera da fila
- Observabilidade: W&B para treinamento, Langfuse para inferência
Build It
Pipeline de dados. Execute a desduplicação do Datatrove no corpus bruto. Aplique o classificador de qualidade do tipo Nemotron-CC. O Presidio limpa as PII. Grave os splits de treinamento/validação com uma semente explícita.
Verificação de contaminação. Para cada split de validação, calcule o MinHash contra os conjuntos de teste do MMLU-Pro, MT-Bench-v2 e RewardBench-2. Rejeite qualquer sobreposição.
SFT com Axolotl. YAML com ZeRO-3, FA3, compactação de sequência. 2-3 épocas em 8xH100. Registre os logs no W&B.
TRL DPO / GRPO. Pegue o checkpoint de SFT, execute uma época de DPO em pares de preferências (ou GRPO com uma recompensa verificável em matemática/código). Faça uma varredura (sweep) no beta.
Quantização. Produza três formatos de quantização: GPTQ-INT4-Marlin, AWQ-INT4, GGUF-Q4_K_M para llama.cpp. Registre o tamanho e o rendimento (throughput) nominal.
Servir com decodificação especulativa. Configuração do vLLM 0.7 com cabeças de rascunho (draft heads) EAGLE-3 treinadas via Red Hat Speculators. Meça a taxa de aceitação e a latência de cauda em batch 1 / 8 / 32. Relate o custo de $/1M de tokens em comparação com a Anthropic / OpenAI na mesma avaliação.
Matriz de avaliação. Execute lm-eval-harness, RewardBench-2, MT-Bench-v2, MMLU-Pro nos modelos base, apenas SFT, SFT+DPO e SFT+GRPO. Produza uma tabela.
Avaliação de segurança. Taxa de aprovação do Llama Guard 4 no conjunto de desenvolvimento (dev set). Filtro de saída ShieldGemma-2.
Model card. Modelo do MOF 2026: dados, treinamento, avaliação, segurança, licença, seção de reprodutibilidade com arquivos YAML e SHAs de commit.
Use It
$ ./pipeline.sh config/llama3.3-8b-domainX.yaml
[data] 300k deduped, 12k filtered, 280k accepted (seed=7)
[SFT] 3 epochs, 8xH100, 6h12m, val loss 1.42 -> 1.03
[DPO] 1 epoch, beta=0.08, 4xH100, 1h40m
[quant] GPTQ-INT4 4.6 GB, AWQ-INT4 4.8 GB, GGUF-Q4_K_M 5.1 GB
[serve] vLLM 0.7, EAGLE-3 acceptance 0.74, p99 126ms @ bs=8
[eval] MMLU-Pro +3.2, MT-Bench-v2 +0.41, RewardBench-2 +0.08
[card] model-card.md generated under 2026 MOF
Ship It
outputs/skill-finetuning-pipeline.md descreve o entregável. Um único comando executa os dados por SFT, DPO, quantização, serviço de inferência e avaliação, emitindo um model card além do endpoint servido.
| Peso | Critério | Como é medido |
|---|---|---|
| 25 | Delta de avaliação vs base | Ganho medido em tarefas-alvo (MMLU-Pro, MT-Bench-v2, específicas da tarefa) |
| 20 | Reprodutibilidade do pipeline | Um único comando executa novamente de ponta a ponta com sementes idênticas |
| 20 | Higiene dos dados | Taxa de desduplicação, cobertura de limpeza de PII, verificação de contaminação aprovada (status verde) |
| 20 | Eficiência de serviço | tokens/s em bs=1/8/32, taxa de aceitação do EAGLE-3, $/1M de tokens |
| 15 | Model card + avaliação de segurança | Completude sob o MOF de 2026 + taxa de aprovação do Llama Guard 4 |
| 100 |
Exercises
Execute apenas SFT vs SFT+DPO vs SFT+GRPO no mesmo benchmark específico de tarefas. Relate qual método de preferência vence e por quanto.
Substitua o Llama 3.3 8B pelo Qwen3 14B. Meça o custo de $/1M de tokens para uma qualidade equivalente.
Meça a taxa de aceitação do EAGLE-3 em dados de domínio vs dados genéricos do ShareGPT. Relate a variação (delta) e o que isso significa para os orçamentos de latência.
Injete 1% de contaminação (vaze respostas do MMLU-Pro nos dados de treinamento) e execute novamente a avaliação. Observe a precisão do MMLU-Pro dar um salto irrealista. Construa um portão de CI para verificação de contaminação que capture isso.
Adicione LoRA SFT como uma alternativa ao ajuste completo (full fine-tune). Meça a diferença de qualidade com um uso de memória 10x menor.
Key Terms
| Termo | O que as pessoas dizem | O que realmente significa |
|---|---|---|
| Axolotl | "Treinador SFT" | Treinador unificado baseado em YAML para SFT, DPO e destilação |
| TRL | "Ajustador de preferência" | Biblioteca da Hugging Face para DPO, GRPO, PPO em LLMs |
| GRPO | "Otimização de política relativa ao grupo" | Fórmula de RL (aprendizado por reforço) do DeepSeek R1 com recompensas verificáveis |
| EAGLE-3 | "Rascunho de decodificação especulativa" | Cabeças de rascunho que preveem N tokens à frente; o vLLM faz a verificação com o modelo alvo |
| MOF | "Model Openness Framework" | Padrão de 2026 para classificar lançamentos de modelos com base em dados, código e licença |
| Verificação de contaminação | "Higiene dos splits" | Detecção baseada em MinHash de vazamento do conjunto de testes para o treinamento |
| Taxa de aceitação | "Métrica EAGLE / MTP" | Fração de tokens de rascunho aceitos pelo modelo alvo |
Further Reading
- Documentação do Axolotl — o treinador de referência para SFT / DPO
- Documentação do TRL — implementações de referência para DPO e GRPO
- Unsloth — referência de iteração em GPU única
- Artigo do DeepSeek R1 (arXiv:2501.12948) — metodologia GRPO
- Documentação do vLLM + EAGLE-3 — stack de serviço de referência
- SGLang SpecForge — treinador alternativo de decodificação especulativa
- Model Openness Framework 2026 — o padrão de classificação para lançamentos abertos
- lm-evaluation-harness — executor de avaliação canônico