Entendendo o Ajuste Fino com Mistura de Dados
O ajuste fino de modelos de linguagem é uma técnica fundamental para empresas que desejam especializar sistemas de IA em seus próprios domínios. No entanto, existe um dilema clássico: ao treinar um modelo apenas com dados do seu negócio, ele pode perder suas capacidades gerais. A AWS abordou este desafio através da técnica de mistura de dados, que blenda informações específicas do domínio com conjuntos de dados curados pela empresa.
Esta é a segunda parte de uma série sobre a Nova Forge SDK. Os artigos anteriores cobriram a introdução ao SDK e os primeiros passos com experimentos de customização. O diferencial desta abordagem está na capacidade de manter o desempenho do modelo em testes de conhecimento geral (como Massive Multitask Language Understanding, MMLU) enquanto melhora significativamente o desempenho em tarefas específicas do negócio.
Em um caso demonstrado pela AWS, a mistura de dados produziu uma melhoria de 12 pontos em F1 em uma tarefa de classificação complexa, mantendo simultaneamente scores MMLU próximos aos do modelo original. Por contraste, o ajuste fino apenas com dados do cliente causou uma queda drástica nas capacidades gerais.
Visão Geral do Fluxo de Trabalho
O processo completo organiza-se em cinco etapas principais:
- Configuração de Ambiente: instalação da SDK e preparação de recursos da AWS
- Preparação de Dados: limpeza, transformação e validação dos dados de treinamento
- Configuração de Treinamento: setup do HyperPod, MLflow e proporções de mistura de dados
- Treinamento do Modelo: execução do ajuste fino com adaptadores de baixo-rank (LoRA)
- Avaliação: testes em benchmarks públicos e avaliações específicas do domínio
Pré-requisitos e Considerações de Custo
Para executar este workflow, você precisará de uma conta AWS com acesso à Amazon Nova Forge, um cluster SageMaker HyperPod provisionado com instâncias GPU (o guia usa instâncias ml.p5.48xlarge, e uma aplicação Amazon SageMaker MLflow para rastreamento de experimentos.
A configuração do cluster HyperPod envolve configurar um cluster Amazon Elastic Kubernetes Service (EKS), provisionar nós de computação e criar papéis de execução. Para instruções detalhadas, consulte a documentação sobre Como Começar com SageMaker HyperPod.
Importante: este guia utiliza 4 instâncias ml.p5.48xlarge para treinamento e avaliação. Recomenda-se começar com um teste curto (por exemplo, max_steps=5) para validar sua configuração antes de se comprometer com um treinamento completo. Consulte a página de preços do Amazon SageMaker para taxas atualizadas.
Preparação de Dados e Sanitização
A Nova Forge SDK aceita formatos JSONL, JSON e CSV. O guia utiliza o dataset MedReason publicamente disponível no Hugging Face, contendo aproximadamente 32.700 pares de pergunta-resposta para demonstrar o ajuste fino em um caso de uso específico do domínio médico.
Um passo crítico é a sanitização de dados. A SDK implementa validação a nível de token, e certos tokens entram em conflito com o template de chat interno do modelo. Strings literais como System: ou Assistant: podem ser interpretadas como delimitadores de turno, corrompendo o sinal de treinamento. O processo de sanitização insere um espaço antes do dois-pontos (por exemplo, System: → System :) para quebrar o padrão, preservando legibilidade, e remove tokens especiais como [EOS] e <image> que possuem significado reservado.
Após o carregamento e limpeza dos dados, a SDK fornece um JSONLDatasetLoader que converte dados brutos no formato esperado pelos modelos Nova. O método transform() envolve cada par pergunta-resposta no template de chat Nova, convertendo:
Antes da transformação (JSONL bruto):
{ "question": "What are the causes of chest pain in a 45-year-old patient?", "answer": "Chest pain in a 45-year-old can result from cardiac causes such as..." }
Depois da transformação (formato template Nova):
{ "messages": [ {"role": "user", "content": "What are the causes of chest pain in a 45-year-old patient?"}, {"role": "assistant", "content": "Chest pain in a 45-year-old can result from cardiac causes such as..."} ] }
O método validate() verifica então se os dados transformados estão corretos, confirmando que a estrutura do template está apropriada, que nenhum token inválido permanece, e que os dados estão em conformidade com os requisitos do modelo e método de treinamento escolhido.
Configuração e Execução do Treinamento
Ao ativar a mistura de dados, a Nova Forge automaticamente blenda seus dados específicos do domínio com conjuntos de dados curados pela AWS durante o ajuste fino. Isso impede que o modelo esqueça suas capacidades gerais enquanto aprende seu domínio.
A AWS oferece dois métodos principais de ajuste fino. O guia utiliza Supervised Fine-Tuning (SFT) com LoRA (Adaptadores de Baixo Rank), que atualiza apenas um pequeno conjunto de pesos do adaptador, resultando em treinamento mais rápido, custos menores de computação e é o ponto de partida recomendado. A AWS também suporta SFT de rank completo, que atualiza todos os parâmetros do modelo e pode incorporar mais conhecimento do domínio, mas exige mais computação e é mais suscetível ao esquecimento catastrófico.
Configuração de Mistura de Dados
A mistura de dados controla como os lotes de treinamento são compostos. O parâmetro customer_data_percent determina que fração de cada lote vem de seus dados de domínio. A fração restante é preenchida por conjuntos de dados curados pela Nova, com cada parâmetro nova_*_percent controlando o peso relativo dessa categoria de capacidade dentro da porção Nova.
Por exemplo, com uma configuração típica: 50% de cada lote de treinamento consiste em seus dados de domínio, e 50% em dados curados pela Nova, distribuídos entre categorias de capacidade conforme seus pesos relativos. Os percentuais no lado Nova devem somar 100.
O post anterior desta série demonstrou que até uma divisão 75/25 de cliente-para-Nova preserva MMLU praticamente no baseline (0,74 versus 0,75 baseline) enquanto entrega uma melhoria de 12 pontos F1 em uma tarefa de classificação complexa.
Parâmetros de Treinamento Principais
Os hiperparâmetros chave permitem controlar o comportamento do treinamento:
lr(learning rate): 1e-5 é um padrão razoável para ajuste fino com LoRAwarmup_steps: passos para aumentar gradualmente a taxa de aprendizado, tipicamente 5-10% do total de passosglobal_batch_size: número de exemplos por atualização de gradiente em todas as GPUsmax_length: comprimento máximo da sequência em tokens; 65.536 suporta casos de uso de contexto longomax_steps: passos totais de treinamento; comece pequeno (5-10) para validar seu setup
Monitoramento e Avaliação do Modelo
A avaliação é crítica quando você usa mistura de dados, pois você precisa medir simultaneamente se o modelo melhorou em sua tarefa de domínio e se reteve suas capacidades gerais. Se você medir apenas um eixo, não saberá se a mistura está funcionando.
A Nova Forge suporta três abordagens complementares de avaliação:
Benchmarks Públicos
Estes medem se a mistura de dados está preservando as capacidades gerais. Testes como MMLU (conhecimento amplo e raciocínio em 57 assuntos) e IFEval (capacidade de seguir instruções estruturadas) indicam se sua mistura está sendo efetiva. Se MMLU cair significativamente do baseline, sua mistura precisa de mais dados Nova. Se IFEval cair, aumente o peso de instrução-seguimento.
Dados Próprios (Bring-Your-Own-Data)
Use seu conjunto de teste retido para medir se o ajuste fino melhorou o desempenho em sua tarefa real.
LLM como Juiz
Para domínios onde métricas automatizadas são insuficientes, você pode usar outro LLM para avaliar a qualidade das respostas.
Interpretando Resultados
Use este framework de decisão para guiar sua próxima iteração:
- MMLU próximo do baseline: A mistura de dados está prevenindo esquecimento catastrófico com sucesso. Sua mistura está funcionando — foque em desempenho de domínio.
- MMLU degradado significativamente: O modelo está esquecendo capacidades gerais. Diminua
customer_data_percentou aumente pesos de dados Nova. - Desempenho de tarefa de domínio abaixo do esperado: O modelo não está aprendendo o suficiente de seus dados. Aumente
customer_data_percent, adicione mais dados de treinamento, ou aumentemax_steps. - IFEval degradado: O modelo está perdendo a capacidade de seguir instruções. Aumente
nova_instruction-following_percent. - MMLU e desempenho de tarefa de domínio melhoraram: Resultado ideal. Documente sua configuração e promova para produção.
Melhores Práticas
Comece com as proporções de mistura padrão — elas foram ajustadas para um equilíbrio bem calibrado. Só customize após ter resultados de avaliação de baseline para comparar contra.
Sempre avalie em ambos os eixos. Execute pelo menos um benchmark público (como MMLU) juntamente com sua avaliação específica do domínio. Sem ambas, você não consegue dizer se a mistura está funcionando.
Use MLflow para comparar experimentos. Ao iterar sobre proporções de mistura e hiperparâmetros, MLflow simplifica significativamente a comparação de execuções lado a lado e a identificação da melhor configuração.
Itere sobre a mistura, não apenas hiperparâmetros. Se seu modelo está esquecendo capacidades gerais, ajustar a mistura de dados é frequentemente mais efetivo do que tunar taxa de aprendizado ou tamanho de lote.
Comece com LoRA e mude para rank completo se necessário. LoRA é mais rápido e barato. Só mude para SFT de rank completo se LoRA não atingir adaptação de domínio suficiente para seu caso de uso.
Próximos Passos
Para começar, consulte a Nova Forge Developer Guide para documentação detalhada e explore a Nova Forge SDK para referência completa da API.
O fluxo de trabalho descrito fornece um playbook repetível que você pode adaptar ao seu caso de uso específico. A mistura de dados é o que torna o ajuste fino prático para produção — em vez de escolher entre expertise de domínio e inteligência geral, você obtém ambas. A chave é tratar isso como um processo iterativo: treina, avalia em ambos os eixos, ajusta a mistura, e repete até encontrar o equilíbrio certo.
Fonte
Nova Forge SDK series part 2: Practical guide to fine-tune Nova models using data mixing capabilities (https://aws.amazon.com/blogs/machine-learning/nova-forge-sdk-series-part-2-practical-guide-to-fine-tune-nova-models-using-data-mixing-capabilities/)
Leave a Reply