View a markdown version of this page

Mesclagem de modelos - Amazon Nova

Mesclagem de modelos

Importante

Ao longo deste documento, faremos referência a “modelo de base” como um dos dois modelos. Pode ser o modelo de base original (por exemplo, o Nova Lite 2.0) caso nenhum treinamento iterativo tenha sido executado, ou o resultado da execução anterior de treinamento iterativo.

Após a conclusão do ajuste fino, o modelo personalizado passa por uma etapa de mesclagem de modelos opcional e configurável pelo usuário que combina o conhecimento recém-adquirido com as funcionalidades do “modelo de base”. Esse processo garante que o modelo final retenha a inteligência original do “modelo de base”, ao mesmo tempo em que incorpora o comportamento especializado aprendido durante a execução de um treinamento de ajuste fino mais recente. A mesclagem de modelos mitiga um fenômeno conhecido como esquecimento catastrófico, em que um modelo perde o conhecimento aprendido anteriormente após passar por um ajuste fino com novos dados.

Aplicabilidade da mesclagem de modelos por tipo de treinamento

A mesclagem de modelos é configurável somente para o treinamento SFT. A tabela abaixo resume o comportamento de mesclagem de modelos para cada tipo de treinamento:

Tipo de treinamento Comportamento de mesclagem de modelos
Ajuste fino supervisionado (SFT) A mesclagem de modelos configurável pelo usuário é aplicada. Você pode controlar o peso de mesclagem entre o modelo ajustado e o modelo de base conforme descrito neste documento.
Pré-treinamento contínuo (CPT, na sigla em inglês) Não há mesclagem de modelos. O ponto de verificação do modelo treinado é gerado diretamente como o modelo final. Não há modelo de base envolvido em uma etapa de mesclagem.

Quando usar a mesclagem de modelos

Você deve habilitar a mesclagem de modelos quando:

  • As funcionalidades gerais se degradam após o ajuste fino. Se o modelo ajustado perde performance em tarefas externas aos seus dados de treinamento (por exemplo, matemática, raciocínio ou programação), a mesclagem combina o conhecimento do modelo de base para recuperar essas habilidades.

  • Treinamento iterativo ou contínuo. Ao fazer o ajuste fino com base em um ponto de verificação previamente personalizado, a mesclagem é essencial para reter as habilidades aprendidas em etapas anteriores. Sem isso, cada nova etapa pode substituir o que foi ensinado pela etapa anterior.

Você pode não precisar da mesclagem de modelos quando:

  • O objetivo é apenas maximizar a performance de uma tarefa-alvo e a retenção da funcionalidade geral não é uma preocupação.

  • Há o algoritmo Hill Climbing. Você deseja continuar realizando iterações no mesmo conjunto de dados para otimizar ainda mais a performance de avaliação.

  • O ajuste fino baseado em raciocínio está em uso. Estudos mostram que o SFT baseado em raciocínio atenua significativamente o esquecimento catastrófico.

Como configurar os pesos de mesclagem do modelo

O valor padrão de model_importance_score.fine_tuned_model é 1,0, o que significa que o ponto de verificação de saída do treinamento usa totalmente os pesos do modelo ajustado, sem nenhuma mistura com o “modelo de base”. Esse padrão funciona bem quando os dados de treinamento são abrangentes e representam de forma fiel a tarefa-alvo.

Você pode controlar como o modelo final equilibra a especialização em relação ao conhecimento geral definindo o model_importance_score nos hiperparâmetros. Por exemplo:

training_config: # ... model_importance_score: fine_tuned_model: 0.75 # set value between 0.0 to 1.0 inclusive

Valores de model_importance_score.fine_tuned_model mais próximos de 1,0 fazem com que o modelo priorize os dados do seu ajuste fino, enquanto valores mais próximos de 0,0 preservam mais as funcionalidades gerais do modelo de base. No exemplo acima, o modelo final treinado é obtido pela combinação de 75% do modelo ajustado no conjunto de dados específico com 25% do “modelo de base”.

Se você perceber que o modelo ajustado perde funcionalidades gerais (por exemplo, pior performance em tarefas externas aos dados de treinamento), reduza model_importance_score.fine_tuned_model para incorporar uma maior proporção do conhecimento do “modelo de base”.

nota

Embora possamos configurar os pesos do processo de mesclagem do modelo, o usuário não pode escolher quais modelos serão combinados. Em outras palavras, a mesclagem ocorrerá sempre entre o “modelo de base” e o modelo ajustado da execução de treinamento atual. O “modelo de base” pode ser o modelo de base original (por exemplo, o Nova Lite 2.0) ou o resultado da execução anterior de treinamento iterativo.

Escolha dos pesos de mesclagem do modelo

O parâmetro model_importance_score.fine_tuned_model controla o equilíbrio entre o modelo ajustado e o modelo de base. Comece com as seguintes diretrizes:

Cenário Peso inicial recomendado Lógica
SFT de uma única etapa com dados de treinamento abrangentes 1,0 (padrão, sem mesclagem) Seus dados de treinamento abrangem bem a tarefa-alvo. Portanto, a mesclagem tenderia a diluir o comportamento aprendido sem benefício adicional.
SFT de uma única etapa em que há degradação das funcionalidades gerais 0,7 a 0,9 Incorpora conhecimento suficiente do modelo de base para recuperar habilidades gerais (como matemática, raciocínio e programação), preservando a maior parte da performance com ajuste fino.
SFT iterativo ou contínuo (baseado em um ponto de verificação anterior) 0,3 a 0,7 Pesos mais baixos mantêm mais conhecimento das etapas anteriores de treinamento. Sem mesclagem, novas etapas podem sobrescrever habilidades aprendidas anteriormente.
Exploratório ou incerto 0.7 Um ponto intermediário razoável. É possível realizar o ajuste conforme os resultados de avaliação.

Princípio geral: pesos mais altos (próximos de 1,0) maximizam a performance na tarefa-alvo, mas aumentam o risco de perda de funcionalidades gerais. Por sua vez, pesos mais baixos (próximos de 0,0) preservam as habilidades amplas do modelo de base, porém reduzem a especialização. Não existe um valor universalmente ideal. O peso adequado depende do tamanho do conjunto de dados, da sobreposição do domínio com o modelo de base e das funcionalidades que você precisa preservar.

dica

Se os dados de treinamento incluem traços de raciocínio (chain-of-thought), você geralmente pode usar um peso de mesclagem mais alto (ou até dispensar a mesclagem, mantendo em 1,0), pois dados enriquecidos com raciocínio funcionam como um regularizador, ajudando a preservar as funcionalidades gerais do modelo.

Avaliação do peso de mesclagem

Após a conclusão do treinamento, avalie o modelo mesclado para confirmar se o peso de mesclagem está adequado. Não são necessárias diversas execuções de treinamento. Uma única rodada de avaliação pode indicar se é preciso ajustar o parâmetro.

  • Performance da tarefa-alvo: execute a avaliação específica do domínio (acurácia, F1, pontuação de extração etc.) em um conjunto de testes reservado. Compare com o modelo de base (antes de realizar qualquer ajuste fino) para confirmar que o ajuste fino melhorou a performance. Se o ganho em relação ao modelo de base for menor que o esperado, o peso de mesclagem pode estar muito baixo, de forma que os pesos do modelo de base estão diluindo o que foi aprendido durante o treinamento.

  • Verificação rápida da funcionalidade geral: forneça prompts ao modelo mesclado com algumas tarefas externas ao seu domínio de treinamento (por exemplo, um problema matemático de lógica, um pedido de resumo ou uma questão relacionada à programação). Compare as respostas qualitativamente com o modelo de base. Se as respostas do modelo mesclado forem visivelmente piores que as do modelo de base, por exemplo, com o fornecimento de incoerências, recusa em responder ou produção de conteúdo sem sentido em tarefas que o modelo de base domina bem, o peso de mesclagem está muito alto e o modelo perdeu funcionalidades gerais.

Como a mesclagem funciona: ajuste fino de classificação completa

O treinamento de classificação completa produz um conjunto completo de pesos do modelo. Durante a mesclagem, cada parâmetro é calculado como uma combinação ponderada:

# Weighted interpolation Merged Model = (1 - model_importance_score.fine_tuned_model) * Base Model + model_importance_score.fine_tuned_model * Fine-Tuned Model

Por exemplo, com model_importance_score.fine_tuned_model = 0.3, o modelo resultante da mesclagem é composto por 70% de conhecimento do “modelo de base” e 30% de conhecimento do modelo com ajuste fino.

Como a mesclagem funciona: ajuste fino de LoRA

A LoRA (adaptação de baixa classificação) aprende um par compacto de matrizes de baixa classificação (A e B) que representam a adaptação como uma atualização de baixa classificação. Durante o processo de mesclagem do modelo, cada matriz de LoRA A e B é escalada pelo valor de model_importance_score.fine_tuned_model, como mostrado abaixo. Nestas fórmulas, alpha é o fator de escala de LoRA (peft.lora_tuning.alpha na sua receita de treinamento) e rank é a classificação de LoRA. Para obter os valores disponíveis de alpha, consulte a receita de treinamento SFT de LoRA.

Observe que, neste ponto, as matrizes A e B contêm apenas o conhecimento proveniente da execução mais recente de ajuste fino. Elas não têm nenhum conhecimento de execuções de treinamento anteriores. O conhecimento das execuções anteriores será incorporado por meio da mesclagem do modelo com o “modelo de base” ou com a mesclagem do adaptador de LoRA da etapa anterior, conforme descrito abaixo.

Scaled_A = sqrt(model_importance_score.fine_tuned_model) * sqrt(alpha/rank) * A Scaled_B = sqrt(model_importance_score.fine_tuned_model) * sqrt(alpha/rank) * B

O treinamento com LoRA produz dois artefatos de modelo: um modelo totalmente mesclado e um conjunto de adaptadores de LoRA mesclados. Vamos analisar cada um deles separadamente.

Modelo totalmente mesclado

A atualização de LoRA é escalada e adicionada ao “modelo de base”:

Merged Model = Base Model + (Scaled_B @ Scaled_A)

Agora, o Merged Model contém conhecimento tanto da execução de treinamento atual quanto parte do conhecimento herdado do Base Model, dependendo do valor configurado pelo usuário em model_importance_score.fine_tuned_model.

Adaptadores de LoRA mesclados

A forma como os adaptadores de LoRA são mesclados depende de você estar realizando um treinamento em etapa única ou um treinamento iterativo.

  • No treinamento de LoRA de etapa única (sem um treinamento iterativo), os adaptadores de LoRA com ajuste fino são salvos diretamente sem mesclagem, pois não existe um conjunto anterior de adaptadores de LoRA com o qual fazer a fusão.

  • Em fluxos de trabalho iterativos totalmente baseados em LoRA, os adaptadores de cada etapa são mesclados em um único conjunto:

    Merged = Stage1_Scaled_B @ Stage1_Scaled_A + Stage2_Scaled_B @ Stage2_Scaled_A

    Os adaptadores de LoRA Merged conterão conhecimento das iterações anteriores de treinamento, bem como do conhecimento mais recente de ajuste fino, com base no valor definido pelo usuário em model_importance_score.fine_tuned_model.

    Além disso, é importante prestar atenção às restrições de treinamento iterativo ao misturar LoRA e treinamento de classificação completa.

Esses adaptadores mesclados Merged_B e Merged_A refletem todo o histórico de treinamento e são usados para inferência sob demanda.