

# Pré-treinamento contínuo e treinamento intermediário
<a name="nova-forge-cpt"></a>

**nota**  
A documentação detalhada é fornecida após a inscrição

O CTP do Nova Forge oferece recursos avançados além do CPT padrão, incluindo acesso a pontos de verificação intermediários e uma combinação de dados com o corpus de pré-treinamento do Nova. Esses recursos permitem uma adaptação mais eficiente do domínio e uma melhor preservação dos recursos gerais do modelo.

## O que são pontos de verificação intermediários e por que eles são necessários?
<a name="nova-forge-cpt-checkpoints"></a>

Os pontos de verificação intermediários são snapshots do modelo do Amazon Nova salvos em diferentes etapas do pré-treinamento, antes que o modelo atinja seu estado final pronto para produção. Durante o desenvolvimento do modelo, o Amazon Nova passa por várias fases de treinamento: pré-treinamento inicial com taxa de aprendizado constante, redução da taxa de aprendizado, treinamento de extensão de contexto e, finalmente, treinamento de segurança e alinhamento para seguir as instruções. Para o CPT, os pontos de verificação intermediários geralmente são preferíveis ao ponto de verificação final de produção porque são mais plásticos e receptivos à adaptação do domínio. O ponto de verificação de produção passou por um extenso treinamento de segurança e alinhamento para seguir as instruções, o que otimiza o modelo para uso conversacional geral, mas pode torná-lo resistente ao aprendizado de novos padrões específicos de domínio durante o CPT. Por outro lado, os pontos de verificação somente com texto pré-treinado parcial e totalmente mantêm as características de pré-treinamento do modelo. Eles não foram fortemente orientados para comportamentos específicos, o que os torna pontos de partida mais eficientes para a adaptação de domínios. Ao realizar o CPT em grande escala (mais de 10 bilhões de tokens), começar nos pontos de verificação intermediários normalmente resulta em convergência mais rápida, melhor estabilidade de treinamento e aquisição de conhecimento de domínio mais eficaz. No entanto, para o CPT de pequena escala (menos de 10 bilhões de tokens), ou quando os recursos de seguimento de instruções precisam ser preservados, o ponto de verificação de produção pode ser mais apropriado, pois permite a adaptação do domínio, mantendo as habilidades de conversação do modelo.

Vários pontos de verificação intermediários são necessários para o CPT porque oferecem diferentes níveis de plasticidade do modelo que afetam a eficiência com que o modelo pode absorver novos conhecimentos de domínio. O ponto de verificação de produção passou por um extenso treinamento de segurança e alinhamento para seguir as instruções, o que o otimiza para uso conversacional geral, mas o torna resistente ao aprendizado de novos padrões específicos de domínio. Em outras palavras, foi reforçado durante o pós-treinamento. Em contraste, os pontos de verificação anteriores mantêm as características de pré-treinamento do modelo e não foram fortemente direcionados para comportamentos específicos, tornando-os mais plásticos e receptivos à adaptação do domínio.

Para obter a melhor eficiência de treinamento, vários pontos de verificação intermediários são fornecidos.

## Quais pontos de verificação estão disponíveis?
<a name="nova-forge-cpt-available"></a>

**Nova 2.0**  
Existem três pontos de verificação do Amazon Nova Lite 2.0.
+ PRÉ-TREINADO - [`nova-lite-2/pretraining-text-RD`]: este é o ponto de verificação após a taxa de aprendizado constante e as etapas de desaceleração do pré-treinamento do Amazon Nova, em que o modelo é treinado em trilhões de tokens.
+ TREINAMENTO INTERMEDIÁRIO - [`nova-lite-2/pretraining-text-CE`]: este ponto de verificação permite que volumes intermediários de dados não estruturados sejam introduzidos com uma taxa de aprendizado mais conservadora do que o pré-treinamento, absorvendo o conhecimento específico do domínio e evitando o esquecimento catastrófico.
+ PÓS-TREINADO - [`nova-lite-2/prod`]: este é o ponto de verificação final totalmente alinhado do modelo que passou por todas as etapas pertinentes e posteriores ao treinamento.

A tabela a seguir detalha as diferentes condições para o pré-treinamento e o treinamento intermediário.


| Tipo de dado | Executar | Com ponto de verificação | 
| --- |--- |--- |
| Dados brutos de domínio não estruturados em grande escala (documentos, logs, artigos, código etc.) | Pré-treinamento contínuo | Pré-treinado | 
| Dados brutos de domínio não estruturados em grande escala (documentos, logs, artigos, código etc.) | Treinamento intermediário | Pré-treinado | 
| Volumes menores de dados brutos não estruturados. Rastros de raciocínio estruturado/dados de CoT | Treinamento intermediário | Treinamento intermediário | 
| Demonstrações estruturadas (pares de entrada e saída de alta qualidade, instruções de tarefas selecionadas, diálogos de várias etapas) | Ajuste fino completo | Treinamento intermediário | 
| Demonstrações estruturadas (pares de entrada e saída de alta qualidade, instruções de tarefas selecionadas, diálogos de várias etapas) | Ajuste fino com eficiência de parâmetros | Pós-treinado | 

## Qual ponto de verificação usar?
<a name="nova-forge-cpt-which"></a>

Pontos de verificação parcialmente e totalmente pré-treinados apenas com texto geralmente convergem mais rápido e exigem menos etapas de treinamento para adaptação de domínio. No entanto, eles não têm ajuste de instruções e precisariam passar por etapas de pós-treinamento para serem capazes de realizar tarefas úteis e seguir instruções. Um ponto de verificação GA pode exigir mais etapas para se adaptar, mas fornece um ponto de partida mais seguro para experimentos em pequena escala e manterá algumas de suas capacidades pós-treinamento, mesmo após o treinamento do CPT.

Em geral, com grandes conjuntos de dados de treinamento (mais de 10 bilhões de tokens), comece com pontos de verificação parcialmente ou totalmente pré-treinados somente com texto para um treinamento mais eficiente e estável, pois a base de conhecimento do modelo será substancialmente modificada. Com conjuntos de dados pequenos (menos de 10 bilhões de tokens), use o ponto de verificação GA para preservar os recursos de seguimento de instruções e, ao mesmo tempo, adaptar-se ao domínio.

## Como usar a combinação de dados do Nova 2.0?
<a name="nova-forge-cpt-mixing"></a>

Ao realizar o CPT com dados de um novo domínio, é extremamente benéfico combinar os novos dados com alguns dos dados usados anteriormente na fase de pré-treinamento do modelo. Combinar dados antigos com dados de novos domínios soluciona dois problemas:
+ Esquecimento do controle: evita o esquecimento catastrófico, preservando as habilidades e o conhecimento existentes do modelo. Sem a combinação de dados, o treinamento exclusivo em dados de domínio restrito faz com que o modelo substitua os recursos gerais. Por exemplo, um modelo treinado somente em documentos legais pode perder a capacidade de codificar ou fazer cálculos. A combinação dos conjuntos de dados de domínio geral preserva essas habilidades gerais ao adquirir o novo domínio.
+ Estabilidade de otimização: mantém a estabilidade do treinamento servindo como uma âncora para as representações internas do modelo. Durante o CPT, os recursos aprendidos do modelo são modificados e a combinação de dados fornece gradientes de diversas fontes que orientam essa adaptação sem problemas. Sem isso, o treinamento em distribuições restritas pode causar instabilidade de gradiente, em que as representações do modelo mudam de forma significativa, levando a divergências de treinamento, picos de perda ou colapso dos recursos existentes. Este é o equilíbrio entre estabilidade e plasticidade: o modelo deve ser plástico o suficiente para aprender novos conhecimentos de domínio, mas estável o suficiente para não comprometer o que ele já sabe.

**Recursos da combinação de dados do CTP do Nova**  
O acesso aos dados e pontos de verificação de pré-treinamento do Amazon Nova é uma das principais ofertas da personalização do CPT do Amazon Nova. A personalização do CPT do Amazon Nova permite a fácil combinação de dados de domínio com o corpus de pré-treinamento do Amazon Nova. Além disso, a proporção de amostragem das categorias de dados específicas do Amazon Nova (p. ex., código, cálculo, raciocínio etc.) pode ser alterada, e suas proporções podem ser controladas para complementar os dados do domínio. Isso permite o reforço de recursos que se alinham ao caso de uso e, ao mesmo tempo, adaptam o modelo ao domínio específico.

**Busca pela proporção ideal da combinação**  
A proporção ideal de dados do Amazon Nova versus dados de domínio depende do domínio, da complexidade, do tamanho, da qualidade e da importância de manter os recursos gerais do conjunto de dados. Essa proporção deve ser descoberta por meio de experimentação. Abaixo, um framework experimental para decidir a quantidade de dados do Amazon Nova a serem combinados.

Selecione um subconjunto representativo de dados de domínio (p. ex., 5 bilhões de tokens) e mantenha isso constante em todas as execuções experimentais.

Execute experimentos de CPT em pequena escala variando apenas a quantidade de dados do Amazon Nova combinados em:
+ Nenhuma combinação: 100% domínio → 5B somente domínio (total de 5 bilhões)
+ Combinação leve: 90% domínio → 5B domínio \+ \~0,56B Amazon Nova (total de aproximadamente 5,56 bilhões)
+ Combinação média: 70% domínio → 5B domínio \+ \~2,14B Amazon Nova (total de aproximadamente 7,14 bilhões)
+ Combinação pesada: 50% domínio → 5B domínio \+5B Amazon Nova (total de 10 bilhões)

Avalie cada ponto de verificação nas avaliações comparativas do domínio e do domínio geral. Avalie também o ponto de verificação inicial (ponto de verificação do Amazon Nova antes de qualquer treinamento).
+ A performance no domínio do cliente permanece praticamente constante em todas as execuções? Geralmente permanece, já que cada execução processou o mesmo número de tokens de domínio. Se a performance do domínio melhorar com mais combinação, os dados do Amazon Nova fornecerão uma regularização útil.
+ As pontuações gerais das avaliações comparativas melhoram à medida que a combinação aumenta?
  + O comportamento esperado é que os recursos gerais melhorem monotonicamente à medida que mais dados do Amazon Nova são adicionados.
  + Analise várias avaliações comparativas gerais: MMLU (conhecimento geral), HumanEval (codificação), GSM8K (cálculo) ou avaliações comparativas específicas de interesse.
+ Selecione a proporção de combinação que mantém a performance do domínio e, ao mesmo tempo, fornece recursos gerais aceitáveis para os casos de uso. Considere o custo adicional do treinamento com mais combinação de dados.

Depois que a proporção da combinação ideal for identificada, execute o CPT em grande escala usando o conjunto de dados de domínio completo com a proporção da combinação selecionada.

## Dissecação das categorias de combinação de dados
<a name="nova-forge-cpt-data-mixing-categories"></a>

Abaixo, dissecamos cada categoria disponível na combinação de dados para que você tome a melhor decisão sobre quais categorias de dados são as mais adequadas para serem representadas em sua combinação geral de dados.

### Como habilitar a combinação de dados
<a name="nova-forge-cpt-enable-mixing"></a>

Adicione a seção `data_mixing` à sua fórmula com a distribuição percentual apropriada nas categorias do conjunto de dados. As porcentagens de `nova_data` devem totalizar 100.

#### Configuração do Nova 2.0 com combinação de dados
<a name="nova-forge-cpt-nova2-config"></a>

```
# Note:
# This recipe can run on p5.48xlarge

# Run config
display_name: "Nova Lite Pretrain on P5 GPU"
versions: ["2.0"]
instance_types: ["ml.p5.48xlarge"]

run:
  name: "my-cpt-run"     # A descriptive name for your training job
  model_type: "amazon.nova-2-lite-v1:0:256k" # Model variant specification, do not change
  model_name_or_path: "nova-lite-2/prod" # Base model path, do not change
  replicas: 8       # Number of compute instances for training, allowed values are 4, 8, 16, 32
  data_s3_path: ""       # Customer data paths
  validation_data_s3_path: ""        # Customer validation data paths
  output_s3_path: ""   # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs

## Training specific configs
training_config:
  task_type: cpt
  max_length: 8192              # Maximum context window size (tokens)
  global_batch_size: 64        # Global batch size, allowed values are 32, 64, 128, 256.

  trainer:
    max_steps: 10               # The number of training steps to run total
    val_check_interval: 10      # The number of steps between running validation
    limit_val_batches: 2        # Batches of the validation set to use each trigger

  model:
    hidden_dropout: 0.0           # Dropout for hidden states, must be between 0.0 and 1.0
    attention_dropout: 0.0        # Dropout for attention weights, must be between 0.0 and 1.0

  optim:
    optimizer: adam
    lr: 1e-5                      # Learning rate
    name: distributed_fused_adam  # Optimizer algorithm, do not change
    adam_w_mode: true             # Enable AdamW mode
    eps: 1e-06                    # Epsilon for numerical stability
    weight_decay: 0.0             # L2 regularization strength, must be between 0.0 and 1.0
    adam_beta1: 0.9               # Beta1 for Adam optimizer
    adam_beta2: 0.95              # Beta2 for Adam optimizer
    sched:
      warmup_steps: 10            # Learning rate warmup steps
      constant_steps: 0           # Steps at constant learning rate
      min_lr: 1e-6                # Minimum learning rate, must be lower than lr

data_mixing:
  dataset_catalog: cpt_text_lite
  sources:
    nova_data:   # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping
      agents: 20
      business-and-finance: 4
      scientific: 10
      code: 5
      factual-and-news: 5
      longform-text: 6
      health-and-medicine: 1
      humanities-and-education: 1
      legal: 1
      math: 9
      additional-languages: 15
      social-and-personal-interest: 11
      entertainment: 0.5
      reasoning: 10
      other: 0.5
      tables: 1
    customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above
      percent: 25
```

**O que essas categorias significam**

**Observação**: o Nova 2.0 inclui categorias adicionais específicas de raciocínio (p. ex., `reasoning-code`, `reasoning-math`, `reasoning-instruction-following`) que não estão disponíveis no Nova 1.0.

Resumo das categorias e os rótulos de informações:


| Nome da categoria | Detalhes das informações | 
| --- | --- | 
| agents | Dados de treinamento focados na tomada de decisão autônoma, na conclusão de tarefas e no comportamento orientado a metas em sistemas de IA | 
| baseline | Dados linguísticos fundamentais focados na compreensão geral, na comunicação básica e nas capacidades linguísticas essenciais | 
| chat | Trocas conversacionais demonstrando um fluxo natural de diálogo, a manutenção do contexto e interações sociais apropriadas | 
| code | Código fonte de programação, documentação e discussões técnicas de várias plataformas e linguagens de programação. | 
| factuality | Materiais de referência e informações verificadas com foco na precisão, na validação da fonte e na avaliação da verdade | 
| identity | Frameworks de personalidade e padrões comportamentais focados em traços de caráter, valores e estilos de interação consistentes | 
| long-context | Textos extensos e narrativas complexas focados em manter a coerência e a relevância em interações de longa duração | 
| math | Conteúdo matemático, incluindo livros didáticos, problemas, soluções e discussões matemáticas. | 
| rai | Casos e cenários enfatizando os princípios éticos da IA, considerações de segurança e implantação responsável de tecnologia | 
| instruction-following | Exemplos de execução precisa de tarefas com base em diversos níveis de prompts e diretrizes dos usuários | 
| stem | Conteúdo técnico que abrange ciência, tecnologia, engenharia e matemática, incluindo resolução de problemas e conceitos teóricos | 
| planning | Sequências que demonstram pensamento estratégico, divisão de tarefas passo a passo e alocação eficiente de recursos | 
| reasoning-chat | Cenários de diálogo analítico focados em discussões lógicas e fluxos de conversação estruturados | 
| reasoning-code | Desafios de programação e problemas algorítmicos focados no desenvolvimento sistemático de soluções | 
| reasoning-factuality | Cenários de avaliação de informações focados em processos críticos de avaliação e verificação | 
| reasoning-instruction-following | Análise complexa de tarefas focada na interpretação sistemática e na execução metódica | 
| reasoning-math | Cenários matemáticos de resolução de problemas focados em progressão lógica e estratégias de solução | 
| reasoning-planning | Cenários de tomada de decisão estratégica focados na abordagem sistemática para o alcance de metas | 
| reasoning-rag | Cenários de recuperação e síntese de informações focados na compreensão contextual e na aplicação relevante | 
| reasoning-rai | Cenários de tomada de decisão ética focados na avaliação sistemática da segurança e imparcialidade da IA | 
| reasoning-stem | Cenários científicos de resolução de problemas focados na análise metódica e no desenvolvimento de soluções | 
| rag | Exemplos de combinação eficaz do conhecimento externo recuperado com as respostas geradas para fornecer informações contextuais precisas | 
| translation | Pares de conteúdo em vários idiomas que mostram uma tradução precisa, preservando o contexto, o tom e as nuances culturais | 

#### Guia de parâmetros
<a name="nova-forge-cpt-param-guide"></a>
+ **dataset\_catalog:** por enquanto, o único valor é cpt\_text\_lite, até habilitarmos o treinamento multimodal.
+ **nova\_data:** porcentagem das categorias individuais de dados do Nova quando combinadas. Elas devem totalizar 1,0.
+ **customer\_data**: a porcentagem dos dados do cliente combinados com os dados do Nova.

O número total de tokens usados no treinamento pode ser calculado em `max_length` \* `global_batch_size` \* `max_steps`

**Limitações**  
O CPT atual é compatível apenas com dados de texto e não é compatível com nenhum conjunto de dados multimodais do cliente.