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

  1. 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.

  2. 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.

  3. SFT com Axolotl. YAML com ZeRO-3, FA3, compactação de sequência. 2-3 épocas em 8xH100. Registre os logs no W&B.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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

  1. 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.

  2. Substitua o Llama 3.3 8B pelo Qwen3 14B. Meça o custo de $/1M de tokens para uma qualidade equivalente.

  3. 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.

  4. 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.

  5. 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

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).