

# Amazon Nova Forge
<a name="nova-forge"></a>

O Amazon Nova Forge é um serviço inédito que oferece às organizações a maneira mais fácil e econômica de criar seus próprios modelos de fronteira usando o Nova.

O Amazon Nova Forge introduz o conceito de modelos de “treinamento aberto”, que dão às organizações acesso a uma variedade de pontos de verificação de modelos iniciais e a possibilidade de combinar dados proprietários com conjuntos de dados selecionados pela Amazon em cada etapa do treinamento de modelos. Isso permite que os modelos maximizem o aprendizado com dados proprietários e, ao mesmo tempo, minimizem o risco de esquecer habilidades fundamentais, como o raciocínio.

O Nova Forge fornece os principais recursos abaixo:
+ Acessar pontos de verificação em todas as fases do desenvolvimento do modelo e aproveitar os novos modelos Nova antes que eles estejam amplamente disponíveis
+ Combinar seus dados proprietários com dados de treinamento selecionados pelo Amazon Nova
+ Realizar aprendizado por reforço com funções de recompensa em seu ambiente
+ Usar fórmulas prontas e otimizadas para criar com o Nova por meio de fluxos de trabalho visuais ou uma interface de linha de comando
+ Usar o kit de ferramentas de IA responsável para alinhar os modelos às diretrizes de IA responsável do Amazon Nova durante o processo de treinamento e implementar controles de runtime para moderar as respostas do modelo durante a inferência

## Pré-requisitos
<a name="nova-forge-prereq"></a>

**Topics**
+ [Inscrever-se no Nova Forge](#nova-forge-prereq-access)
+ [Outros pré-requisitos](#nova-forge-prereq-other)

### Inscrever-se no Nova Forge
<a name="nova-forge-prereq-access"></a>

Para solicitar acesso ao serviço do Amazon Nova Forge, adicione a seguinte tag ao seu perfil do console do IAM: key forge-subscription with value true. Depois de adicionar essa tag ao seu perfil, acesse Console do SageMaker AI > Treinamento e personalização de modelos e clique em Nova Forge. Nessa página, você encontrará detalhes sobre o serviço, informações sobre preços e os recursos. Você pode solicitar a inscrição e depois gerenciá-la nesta página.

1. O perfil deve ter permissão para chamar a API `ListAttachedRolePolicy`, e a resposta deve incluir uma política `AdministratorAccess` ou `AmazonSageMakerFullAccess`.

1. O perfil de login deve ter permissão para chamar a API `ListRoleTags`, e as tags de resposta devem incluir `tag.key=forge-subscription`.

### Outros pré-requisitos
<a name="nova-forge-prereq-other"></a>

Além disso, certifique-se de que os seguintes pré-requisitos estejam concluídos:

1. [Pré-requisitos gerais](nova-model-general-prerequisites.md)

1. Etapas adicionais para usuários: adicionar grupo de instâncias restritas (RIG) ao seu cluster do SageMaker HyperPod (para concluir, siga as etapas [aqui](https://docs.aws.amazon.com//sagemaker/latest/dg/nova-hp-cluster.html))

## Configuração inicial do SageMaker HyperPod
<a name="nova-forge-setup-hp"></a>

Siga as etapas na [documentação da Amazon Web Services](https://docs.aws.amazon.com//sagemaker/latest/dg/nova-hp-train.html) para conectar a CLI do HyperPod ao seu cluster. Certifique-se de usar a ramificação `nova-lite-2.0-release` da CLI do SageMaker HyperPod. [Este tópico](https://docs.aws.amazon.com//sagemaker/latest/dg/nova-hp-train.html) aborda:
+ Configuração das permissões e políticas do IAM
+ Configuração da CLI do SageMaker HyperPod
+ Criação do cluster com os grupos de instâncias necessários
+ Conectar-se a um cluster

**Verificação**: depois de concluir a configuração, confirme se você pode executar `hyperpod connect-cluster` e acessar seu cluster com êxito.

# Configuração e acesso ao Nova Forge
<a name="nova-forge-access"></a>

Para começar a utilizar o Nova Forge, siga este processo de duas etapas:
+ Etapa 1: inscrever-se no Nova Forge
+ Etapa 2: configurar a infraestrutura do HyperPod

## Obtenção dos documentos do Nova Forge
<a name="nova-forge-get-docs"></a>

Para obter os documentos do Nova Forge, siga as etapas abaixo:

```
mkdir NovaForgeHyperpodCLI
cd NovaForgeHyperpodCLI
aws s3 cp s3://nova-forge-c7363-206080352451-us-east-1/v1/ ./ --recursive
pip install -e .
```

## Etapa 1: inscrever-se no Nova Forge
<a name="nova-forge-step1"></a>

### Resumo rápido:
<a name="nova-forge-quick-summary"></a>

1. Verifique se você tem acesso de administrador à conta da Amazon Web Services.

1. Navegue até o console do SageMaker AI e solicite acesso ao Nova Forge.

1. Aguarde até que a equipe do Nova envie um e-mail de confirmação depois que sua solicitação de inscrição for aprovada.

1. Marque seu perfil de execução com a tag `forge-subscription`. Essa tag é necessária para acessar os recursos e pontos de verificação do Nova Forge. Adicione a seguinte tag ao seu perfil de execução:
   + Chave: `forge-subscription`
   + Valor:: `true`

### Guia detalhado
<a name="nova-forge-detailed-guide"></a>

Para se inscrever no Nova Forge e usar efetivamente o serviço de personalização, um cliente da Amazon Web Services deve ter acesso de administrador à sua conta da Amazon Web Services ou solicitar ao administrador que lhe conceda acesso de administrador. Este documento descreve as etapas necessárias para:
+ Proteger o acesso de administrador
+ Configurar as políticas para se inscrever no Nova Forge
+ Acessar fórmulas de personalização
+ Configurar a personalização
+ Monitorar o fluxo de trabalho
+ Avaliar o ponto de verificação do modelo personalizado

### Opção A
<a name="nova-forge-option-a"></a>

Fluxo 1: o usuário da conta deve entrar em contato com o administrador da conta para solicitar o seguinte:
+ Adicionar a tag `forge-subscription` à conta por meio do IAM (consulte o Apêndice A para verificar as etapas).
+ Adicionar as permissões `ListRoleTags` e `ListAttachedRolePolicies` por meio do IAM (consulte o Apêndice B para verificar as etapas).

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/Onboarding-option-a.png)


### Opção B
<a name="nova-forge-option-b"></a>

Fluxo: o usuário da conta deve entrar em contato com o administrador da conta para solicitar acesso administrativo à conta.
+ Depois que o acesso de administrador for concedido, siga as etapas no Fluxo 2.

### Fluxo 2. Conta da Amazon Web Services com acesso de administrador
<a name="nova-forge-flow2"></a>
+ Adicione a tag forge-subscription à conta por meio do IAM. Verifique as etapas no Apêndice A.

### Apêndice A. Adicionar a política forge-subscription à conta da Amazon Web Services
<a name="nova-forge-appendix-a"></a>

1. Acesse o painel do IAM da Amazon Web Services. Clique em Perfis à esquerda. Procure por administrador e clique no perfil de administrador  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/add-forge-sub-policy.png)

1. Selecione <AssumedRoleToUse> (p. ex., libsAdminAccess). Clique em na guia Tags.  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/add-forge-sub-policy-2.png)

1. Clique em Gerenciar guias. Adicione uma nova tag. Digite “forge-subscription” em Chave e clique em salvar alterações.  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/add-forge-sub-tag-policy.png)

1. Certifique-se de ver forge-subscription como uma chave na seção Tags.  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/forge-tag-policy-verify.png)

### Apêndice B. Adicionar as políticas ListRoleTags e ListAttachedPolicies à conta da Amazon Web Services para o perfil não administrativo, atribuído por administrador
<a name="nova-forge-appendix-b"></a>

1. Acesse o painel do IAM da Amazon Web Services. Clique em Perfis à esquerda. Pesquise <AssumedRoleToUse> (p. ex., ForgeAccessRole) e clique no perfil <AssumedRoleToUse> (p. ex., ForgeAccessRole)  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/forge-list-tags-policy.png)

1. Clique no perfil <AssumedRoleToUse> (p. ex., ForgeAccessRole) e selecione Tags. Adicionar uma nova tag com o tipo “forge-subscription”  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/forge-tag-appendix.png)

1. Em Permissões, adicione uma nova permissão: Adicionar permissões → Criar política em linha → Adicionar a seguinte política listada abaixo

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "iam:ListRoleTags",
                   "iam:ListAttachedRolePolicies"
               ],
               "Resource": "*"
           }
       ]
   }
   ```  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/nova/latest/userguide/images/forge-add-tag-polices-example.png)

## Etapa 2. Configurar a infraestrutura do HyperPod
<a name="nova-forge-step2"></a>

Configure a infraestrutura necessária seguindo as [instruções do workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US) para configurar o ambiente com recursos habilitados para Forge.

## Configurações de moderação de conteúdo
<a name="nova-forge-content-moderation"></a>

Se você precisar acessar o Nova Forge, as configurações de moderação de conteúdo personalizáveis (CCMS) estão disponíveis para os modelos do Amazon Nova Lite 1.0 e Pro 1.0. O CCMS permite o ajuste dos controles de moderação de conteúdo para se alinhar aos seus requisitos empresariais específicos, mantendo as proteções essenciais de IA responsável. Para determinar se um modelo empresarial é apropriado para o CCMS, entre em contato com um gerente de conta da Amazon Web Services.

Para obter informações adicionais sobre como configurar e usar o CCMS com modelos personalizados, consulte a [seção Kit de ferramentas de IA responsável e moderação de conteúdo](nova-responsible-ai-toolkit.md).

# 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 1.0**  
A família Amazon Nova 1.0 tem três modelos (Micro, Lite, Pro), e para cada modelo há três pontos de verificação disponíveis.
+ PRÉ-TREINADO - [`nova-<micro/lite/pro>/pretraining-text-partial`]: este é o ponto de verificação após a etapa de taxa de aprendizado constante do pré-treinamento do Amazon Nova, em que o modelo é treinado em trilhões de tokens de texto.
+ TREINAMENTO INTERMEDIÁRIO - [`nova-<micro/lite/pro>/pretraining-text-full`]: este é o ponto de verificação somente de texto após o término de todas as etapas do pré-treinamento e do treinamento intermediário do Amazon Nova, com trilhões de tokens de texto. Use-os se o modelo específico não deveria ter sido treinado com nenhum dado multimodal.
+ TREINAMENTO INTERMEDIÁRIO - [`nova-<lite/pro>/pretraining-mm-full`]: este é o ponto de verificação após o processamento de todas as etapas do pré-treinamento e do treinamento intermediário do Amazon Nova, incluindo dados multimodais, com trilhões de tokens.
+ PÓS-TREINADO - [`nova-<micro/lite/pro>/prod`]: este é o ponto de verificação final totalmente alinhado do modelo que passou por todas as etapas de pré-treinamento e pós-treinamento.

**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 para modelos 1.0 ou 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 \$1 \$10,56B Amazon Nova (total de aproximadamente 5,56 bilhões)
+ Combinação média: 70% domínio → 5B domínio \$1 \$12,14B Amazon Nova (total de aproximadamente 7,14 bilhões)
+ Combinação pesada: 50% domínio → 5B domínio \$15B 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 1.0 com combinação de dados
<a name="nova-forge-cpt-nova1-config"></a>

```
run:
  name: "cpt-job-name"             # A descriptive name for your training job
  model_type: "amazon.nova-lite-v1:0:300k"  # Model variant specification, do not change
  model_name_or_path: "nova-lite/prod"
  replicas: 4 
  data_s3_path: "s3://path/to/data/xyz.jsonl"
  output_s3_path: "s3://path/to/output/checkpoint"
  
skip_recipe_validation: true
training_config:
  max_length: 32768
  global_batch_size: 64
  trainer:
    max_steps: 5000
  model:
    hidden_dropout: 0.1
    attention_dropout: 0.1
    ffn_dropout: 0.1
    optim:
      lr: 1.5e-05
      name: distributed_fused_adam
      adam_w_mode: true
      eps: 1.0e-06
      weight_decay: 0.05
      betas:
      - 0.9
      - 0.999
      sched:
        warmup_steps: 500
        constant_steps: 0
        min_lr: 1.5e-06
        
data_mixing:
  dataset_catalog: cpt_text_lite
  sources:
    nova_data:
      en-entertainment: 0.11%
      en-factual: 4.83%
      en-legal: 0.48%
      en-long-form-text: 6.26%
      en-mined: 16.79%
      en-other: 1.79%
      en-scientific: 10.53%
      en-social: 12.43%
      en-techqa: 13.95%
      code: 7.50%
      high-util-lang: 8.05%
      low-util-lang: 6.51%
      math: 8.76%
      en-finance: 1%
      tables: 1%
    customer_data:
      percent: 90
```

**O que essas categorias significam**


| Nome da categoria | Detalhes das informações | 
| --- | --- | 
| en-entertainment | Conteúdo de mídia e entretenimento, incluindo transcrições de vídeo, diálogos de jogos e discussões focadas em entretenimento. | 
| en-factual | Material de referência, conteúdo enciclopédico, recursos educacionais e documentação factual focada em transmitir informações precisas. | 
| en-finance | Textos financeiros, incluindo relatórios de mercado, análises econômicas, estratégias de investimento, artigos de notícias financeiras, relatórios de resultados e outros tipos de conteúdo relacionados a finanças que ajudam o modelo a entender conceitos econômicos e a terminologia financeira. | 
| en-legal | Documentos legais, processos judiciais, contratos, leis, regulamentos e textos de análise jurídica. | 
| en-long-form-text | Textos extensos, incluindo livros, trabalhos acadêmicos, artigos longos e outros documentos de texto substanciais. | 
| en-mined | Dados de texto extraídos de várias fontes da web, incluindo fóruns, comentários, discussões e conteúdo geral da web, e reescritos para garantir uma alta performance no treinamento. | 
| en-other | Conteúdo diverso em inglês que não se enquadra claramente em outras categorias. | 
| en-scientific | Artigos científicos, documentos de pesquisa, relatórios técnicos e discussões científicas em vários campos. | 
| en-social | Publicações em mídias sociais, conversas, discussões e outras formas de comunicação social. | 
| en-techqa | Documentação técnica, guias do usuário, páginas de perguntas frequentes, fóruns técnicos e conteúdo de perguntas e respostas relacionadas à tecnologia. | 
| code | Código fonte de programação, documentação e discussões técnicas de várias plataformas e linguagens de programação. | 
| high-util-lang | Conteúdo de texto em idiomas com grandes quantidades de dados de treinamento disponíveis, incluindo alemão (DE), italiano (IT), espanhol (ES), francês (FR), hindi (HI), japonês (JP), árabe (AR) e português (PT). | 
| low-util-lang | Conteúdo de texto em outros idiomas falados com quantidades menores de dados de treinamento disponíveis. | 
| math | Conteúdo matemático, incluindo livros didáticos, problemas, soluções e discussões matemáticas. | 
| tables | Dados estruturados em formato tabular, incluindo planilhas, bancos de dados, arquivos CSV, tabelas estatísticas, relatórios financeiros e outras informações organizadas em colunas e linhas que ajudam o modelo a entender e trabalhar com padrões e relacionamentos de dados estruturados. | 

#### 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\$1catalog:** por enquanto, o único valor é cpt\$1text\$1lite, até habilitarmos o treinamento multimodal.
+ **nova\$1data:** porcentagem das categorias individuais de dados do Nova quando combinadas. Elas devem totalizar 1,0.
+ **customer\$1data**: 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` \$1 `global_batch_size` \$1 `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.

# Ajuste fino supervisionado
<a name="nova-forge-sft"></a>

## Introdução
<a name="introduction"></a>

O ajuste fino supervisionado usa um conjunto de dados com pares de entrada-saída para a tarefa de interesse. Em outras palavras, você fornece exemplos de prompts (perguntas, instruções etc.) junto com as respostas corretas ou desejadas e continua treinando o modelo com base nelas. Os pesos do modelo são ajustados para minimizar uma perda supervisionada, normalmente entropia cruzada entre suas predições e os tokens de resposta esperados.

## Quando usar o SFT?
<a name="when-to-use-sft"></a>

O SFT é melhor quando você tem uma tarefa bem definida com as saídas desejadas claras. Se você puder dizer explicitamente “Dada a entrada X, a saída correta/desejada é Y” e reunir exemplos desses mapeamentos X-Y, o ajuste fino supervisionado será uma ótima opção. Alguns cenários em que o SFT se destaca incluem:
+ **Tarefas de classificação estruturadas ou complexas**: p. ex., classificar documentos ou contratos internos em várias categorias personalizadas. Com o SFT, o modelo pode aprender essas categorias específicas muito melhor do que apenas gerando prompts.
+ **Tarefas de respostas ou transformação de perguntas com respostas conhecidas**: p. ex., ajustar um modelo para responder a perguntas da base de conhecimento de uma empresa ou converter dados entre formatos, em que cada entrada tem uma resposta correta.
+ **Formatação e consistência de estilo**: se você precisar que o modelo sempre responda em um determinado formato ou tom, você pode ajustar exemplos do formato/tom correto. Por exemplo, o treinamento em pares de prompt-resposta que demonstram a voz ou o estilo de uma marca específica pode ensinar ao modelo esse estilo em seus resultados. O comportamento de seguir as instruções geralmente é ensinado logo de início via SFT em exemplos selecionados de bom comportamento do assistente.

O SFT é a maneira mais direta de ensinar a um LLM uma nova habilidade ou comportamento quando você pode especificar qual é o comportamento correto. Ele aproveita a compreensão da linguagem existente do modelo e a concentra em sua tarefa. Não use o SFT quando a lacuna de conhecimento em vez de comportamento; isso não fará com que o modelo aprenda novos fatos, jargões ou eventos recentes. Nesses casos, prefira o pré-treinamento contínuo em grandes corpora do domínio ou a geração aumentada via recuperação (RAG) para fornecer conhecimento externo na inferência. Quando você pode avaliar a qualidade, mas não consegue rotular uma única resposta certa, o ajuste fino por reforço com recompensas verificáveis ou um LLM como avaliador pode ser preferível ao SFT.

Dependendo da complexidade da tarefa e da performance do modelo Nova sem ajustes, planeje de milhares a dezenas de milhares de demonstrações por tarefa, com a qualidade, a consistência e a diversidade de dados sendo mais importantes do que o volume bruto.

## Quando usar o ajuste eficiente de parâmetros e quando usar o SFT full-rank?
<a name="parameter-efficient-vs-full-rank"></a>

As fórmulas de personalização do Nova permitem que você execute parâmetros com eficiência, em particular LoRA ou SFT full-rank. Se você deseja uma atualização de modelo direta e econômica, ou se tem poucos dados, prefira métodos eficientes em termos de ajuste de parâmetros para treinar adaptadores pequenos e deixar a maior parte da estrutura intocada (o SFT full-rank atualiza todos os parâmetros do modelo).

## Combinação de dados para o SFT
<a name="data-mixing"></a>

A combinação de dados permite que você combine seus conjuntos de dados de treinamento personalizados com os dados de treinamento proprietários do Nova. Esse recurso está disponível para os modelos Nova 1.0 e Nova 2.0.

**Tipo de dados proprietários do Nova**: o Nova é compatível com tipos de dados SFT de texto e multimodais. Ele é organizado em várias categorias de dados, cada uma contendo uma combinação de tarefas relevantes para a categoria correspondente.

**Categorias de dados proprietários do Nova**: os conjuntos de dados de texto incluem várias categorias, incluindo: tomada de decisão autônoma, conclusão de tarefas, conjuntos de dados orientados a metas (agentes), conjuntos de dados de execução de tarefas precisos com e sem raciocínio (seguimento de instruções com raciocínio, seguimento de instruções), sequências que demonstram pensamento estratégico e divisão de tarefas passo a passo (planejamento), IA responsável (rai), contexto longo, factualidade, matemática, áreas de exatas e muitas outras. Da mesma forma, conjuntos de dados multimodais incluem vídeos, capturas de tela, gráficos e muito mais.

O recurso de combinação de dados permite que você combine suas próprias amostras de treinamento de ajuste fino com amostras dos conjuntos de dados do Nova usados para ajustar o Nova. Isso pode evitar o sobreajuste de seu treinamento personalizado e o “esquecimento catastrófico” dos recursos do Nova, ou pode ajudar a desenvolver recursos ao treinar em um novo ponto de verificação pré-treinado.

Para combinar dados do Nova, basta adicionar um bloco data\$1mixing ao arquivo YAML da fórmula, na seção training\$1config. Os blocos de combinação de dados de texto e multimodais têm tipos de conteúdo diferentes, e os blocos de combinação de dados são um pouco diferentes para o Nova 1.0 e o Nova 2.0. Consulte as fórmulas correspondentes.

### Modelos compatíveis
<a name="supported-models"></a>
+ Nova 1.0 (Micro, Lite, Pro)
+ Nova 2.0 Lite

### Modalidades compatíveis
<a name="supported-modality"></a>
+ Texto
+ Multimodal

## Exemplos de configuração YAML
<a name="yaml-configuration-examples"></a>

### Exemplo de bloco de combinação de dados para combinação de texto do Nova 1.0
<a name="nova-1-text-mixing"></a>

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

  ## MLFlow configs
  mlflow_tracking_uri: "" # Required for MLFlow
  mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty
  
## Training specific configs
training_config:
  max_length: 32768               # Maximum context window size (tokens).
  global_batch_size: 64           # Global batch size, allowed values are 16, 32, 64

  trainer:
    max_epochs: 2                # Number of training epochs

  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
    ffn_dropout: 0.0             # Dropout for feed-forward networks, must be between 0.0 and 1.0

    optim:
      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
      betas:                   # Adam optimizer betas, must be between 0.0 and 1.0
        - 0.9
        - 0.999
      sched:
        warmup_steps: 10     # Learning rate warmup steps
        constant_steps: 0    # Steps at constant learning rate
        min_lr: 1e-6         # Minimum learning rate

    peft:
      peft_scheme: "lora"      # Enable LoRA for parameter-efficient fine-tuning
      lora_tuning:
        loraplus_lr_ratio: 8.0  # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0
        alpha: 32            # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192
        adapter_dropout: 0.01  # Regularization for LoRA parameters. Must be between 0.0 and 1.0

data_mixing:
  dataset_catalog: sft_text       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 1                   # autonomous decision-making, task completion, goal-oriented behavior in AI systems
      chat: 51                    # Conversational exchanges demonstrating natural dialogue flow
      code: 8                     # Programming examples and solutions spanning multiple languages
      rai: 1                      # ethical AI principles, safety considerations, and responsible technology deployment
      instruction-following: 13   # precise task execution based on varying levels of user prompts and directives
      stem: 6                     # science, technology, engineering, and mathematics content
      planning: 2                 # sequences demonstrating strategic thinking and step-by-step task breakdown
      reasoning: 8                # logical problem-solving and analytical thinking demonstrations
      rag: 1                      # retrieval-augmented generation examples
      translation: 9              # language translation tasks
```

### Exemplo de configuração do Nova 2.0
<a name="nova-2-configuration"></a>

```
run:
  name: my-lora-sft-run
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  data_s3_path: s3://my-bucket-name/train.jsonl
  replicas: 4
  output_s3_path: s3://my-bucket-name/outputs/
  mlflow_tracking_uri: ""
  mlflow_experiment_name: "my-lora-sft-experiment"
  mlflow_run_name: "my-lora-sft-run"
  
training_config:
  max_steps: 100
  save_steps: 10
  save_top_k: 5
  max_length: 32768
  global_batch_size: 32
  reasoning_enabled: true
  lr_scheduler:
    warmup_steps: 15
    min_lr: 1e-6
  optim_config:
    lr: 1e-5
    weight_decay: 0.0
    adam_beta1: 0.9
    adam_beta2: 0.95
  peft:
    peft_scheme: "lora"
    lora_tuning:
      alpha: 64
      lora_plus_lr_ratio: 64.0
```

### Combinação de dados de texto do Nova 2.0
<a name="nova-2-text-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_text_chat
  sources:
    customer_data:
      percent: 50
    nova_data:
      agents: 1
      baseline: 10
      chat: 0.5
      code: 10
      factuality: 0.1
      identity: 1
      long-context: 1
      math: 2
      rai: 1
      instruction-following: 13
      stem: 0.5
      planning: 10
      reasoning-chat: 0.5
      reasoning-code: 0.5
      reasoning-factuality: 0.5
      reasoning-instruction-following: 45
      reasoning-math: 0.5
      reasoning-planning: 0.5
      reasoning-rag: 0.4
      reasoning-rai: 0.5
      reasoning-stem: 0.4
      rag: 1
      translation: 0.1
```

### Combinação de dados multimodais do Nova 1.0
<a name="nova-1-multimodal-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_mm
  sources:
    customer_data:
      percent: 50
    nova_data:
      agents: 11
      docs: 17
      perception: 10
      rag: 4
      rai: 3
      reasoning: 10
      stem: 17
      text: 10
      video: 18
```

### Combinação de dados multimodais do Nova 2.0
<a name="nova-2-multimodal-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_mm_chat
  sources:
    customer_data:
      percent: 50
    nova_data:
      charts: 1
      chat: 38
      code: 20
      docs: 3
      general: 2
      grounding: 1
      rag: 4
      screenshot: 4
      text: 8
      translation: 4
      video: 15
```

## Pontos de verificação do modelo
<a name="model-checkpoints"></a>

### Pontos de verificação do Nova 1.0
<a name="nova-1-checkpoints"></a>
+ **PRÉ-TREINADO** [`nova-<micro/lite/pro>/pretraining-text-partial`]: ponto de verificação após a etapa de taxa de aprendizado constante do pré-treinamento do Nova, em que o modelo é treinado em trilhões de tokens de texto. [Resultado da etapa 1]
+ **TREINAMENTO INTERMEDIÁRIO** [`nova-<micro/lite/pro>/pretraining-text-full`]: ponto de verificação somente com texto após todas as etapas do pré-treinamento e do treinamento intermediário do Nova com trilhões de tokens de texto. Use se você não quiser que o modelo tenha sido treinado com nenhum dado multimodal. [Resultado da etapa 3]
+ **TREINADO INTERMEDIÁRIO** [`nova-<lite/pro>/pretraining-mm-full`]: ponto de verificação após todas as etapas do pré-treinamento e do treinamento intermediário do Nova, incluindo dados multimodais, com trilhões de tokens. [Resultado da etapa 3 com dados multimodais]
+ **FINAL** [`nova-<micro/lite/pro>/prod`]: ponto de verificação final totalmente alinhado que passou por todas as etapas de pré-treinamento e pós-treinamento. [Resultado da etapa 4]

### Pontos de verificação do Nova 2.0
<a name="nova-2-checkpoints"></a>
+ **PRÉ-TREINADO** [`nova-lite-2/pretraining-text-RD`]: ponto de verificação após uma taxa de aprendizado constante e etapas de desaceleração, em que o modelo é treinado em trilhões de tokens. [Resultado da etapa 2]
+ **TREINAMENTO INTERMEDIÁRIO** [`nova-lite-2/pretraining-text-CE`]: permite que clientes com volumes intermediários de dados não estruturados apresentem seus dados com uma taxa de aprendizado mais conservadora do que a do pré-treinamento, absorvendo conhecimento específico do domínio e evitando um esquecimento catastrófico. [Resultado da etapa 3]
+ **FINAL** [`nova-lite-2/prod`]: ponto de verificação final totalmente alinhado que passou por todas as etapas de pré-treinamento e pós-treinamento. [Resultado da etapa 4]

**Etapas de treinamento:**
+ Etapa 1: ponto de verificação de PT, pré-treinamento inicial com taxa de aprendizado constante
+ Etapa 2: ponto de verificação de PT, desaceleração da taxa de aprendizado
+ Etapa 3: ponto de verificação de PT, treinamento de extensão de contexto
+ Etapa 4: treinamento de segurança e alinhamento para seguir as instruções

## Abordagens de treinamento
<a name="training-approaches"></a>


**Guia de seleção da abordagem de treinamento**  

| Tipo de dado | Volume de dados | Executar | Com ponto de verificação | 
| --- | --- | --- | --- | 
| Dados brutos de domínio não estruturados em grande escala (documentos, logs, artigos, código etc.) | Mais de 1 trilhão de tokens | Pré-treinamento contínuo | Fim da taxa de aprendizado constante (CLR) | 
| Dados brutos de domínio não estruturados em grande escala | Mais de 100 bilhões de tokens | Treinamento intermediário | Fim da CLR | 
| Volumes menores de dados brutos não estruturados; rastros de raciocínio estruturado/dados de CoT | Mais de 1 bilhão de tokens | Treinamento intermediário | Modelo de base do Nova | 
| Demonstrações estruturadas (pares de entrada e saída de alta qualidade, instruções de tarefas selecionadas, diálogos de várias etapas) | Mais de 1 mil exemplos | Ajuste fino supervisionado (SFT) | Modelo de base do Nova | 

## Pré-requisitos antes de começar
<a name="prerequisites"></a>
+ Presumimos que você já tenha configurado um cluster do SMHP com um grupo de instâncias restritas (RIG) com capacidade ativa. Caso contrário, consulte aqui para concluir a configuração do cluster do SMHP e do RIG [[Link do documento](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-forge.html), [Link do workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US)]
+ Você precisará de instâncias **p5.48xlarge** do EC2 para executar essa fórmula. O número mínimo de instâncias necessárias para executar essa fórmula com eficiência é o seguinte:
  + **Nova Lite 2.0: 4 p5.48xlarge**
  + **Nova Lite 1.0: 4 p5.48xlarge**
  + **Nova Micro 1.0: 4 p5.48xlarge**
  + **Nova Pro 1.0: 6 p5.48xlarge**
+ Instale a CLI do SageMaker HyperPod específica para o Forge usando as instruções fornecidas [aqui](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US)
+ Confirme se você pode se conectar ao cluster usando `hyperpod get-clusters`
  + Observe que esse comando listará todos os clusters do SMHP em sua conta
+ Confirme se seu treinamento e, opcionalmente, os dados de validação, estão disponíveis em um bucket do S3 que pode ser acessado pelo perfil de execução do seu cluster do SMHP. Para preparação de dados, consulte a próxima seção.
+ Conclua a configuração. Se você não tiver concluído a configuração, siga o [guia](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) abaixo.
+ **Verificação**: depois de concluir a configuração, confirme se você pode executar com êxito os comandos abaixo

  ```
  aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region>
  
  hyperpod connect-cluster --cluster-name cluster-name
  ```

## Uma abordagem sistemática para obter êxito no SFT
<a name="systematic-approach"></a>
+ **Preparação de dados**: siga as diretrizes estabelecidas para criar, limpar ou reformatar conjuntos de dados na estrutura necessária. Certifique-se de que as entradas, saídas e informações auxiliares (como metadados e rastros de raciocínio) estejam alinhadas e formatadas adequadamente.
+ **Configuração de treinamento**: defina como o modelo será treinado. Ao usar o Amazon SageMaker HyperPod, essa configuração é gravada em um arquivo de fórmula YAML, que inclui:
  + Caminhos da fonte de dados (conjuntos de dados de treinamento e validação)
  + Hiperparâmetros principais (número de etapas de treinamento, taxa de aprendizado, tamanho do lote)
  + Componentes opcionais (parâmetros de treinamento distribuídos etc.)
  + Configuração da combinação de dados (define as proporções das categorias de dados do cliente e do Nova)
+ **Otimização dos hiperparâmetros do SFT**: os valores dos parâmetros da fórmula do SFT que recomendamos são um excelente ponto de partida e uma escolha robusta. Se você quiser otimizá-los ainda mais para seu caso de uso, faça várias execuções de SFT com diferentes combinações de parâmetros e escolha a melhor. Você pode selecionar combinações de parâmetros seguindo o método de otimização de hiperparâmetros de sua escolha. Uma abordagem simples é variar o valor de um parâmetro (padrão\$10,5, padrão, padrão\$12) mantendo outro valor padrão para outros parâmetros, repetir isso para cada parâmetro que você deseja otimizar e iterar, se necessário. Os parâmetros mais relevantes para LoRA são taxa de aprendizado, alfa (parâmetro de escalabilidade), número de épocas para treinar e etapas de aquecimento; para full-stack, é principalmente a taxa de aprendizado, o número de épocas e as etapas de aquecimento.

## Sequenciamento de experimentos e combinação de dados
<a name="experiment-sequencing"></a>
+ Se você tem apenas dados do SFT (treinamento/dev/teste) para um conjunto de tarefas e seu foco é apenas na performance do teste nessas tarefas
  + Faça o SFT sem combinar no ponto de verificação do Nova [FINAL]. Use os hiperparâmetros padrão do SFT e, opcionalmente, otimize-os para seu caso de uso. Monitore as métricas de validação e avalie pontos de verificação intermediários para conjuntos de dados maiores.
+ Se você tem apenas dados do SFT (treinamento/dev/teste) para um conjunto de tarefas e seu foco é na performance dos testes nessas tarefas e nas avaliações comparativas gerais no domínio de interesse
  + Comece fazendo a combinação de dados do SFT com o Nova em um ponto de verificação de pré-treinamento (ponto de verificação PRÉ-TREINADO ou INTERMEDIÁRIO, não o FINAL). O uso de um ponto de verificação intermediário permite que o modelo integre melhor seus dados personalizados aos dados proprietários do Nova, preservando seus recursos gerais de forma robusta.
  + Execute treinamentos de SFT mais curtos com quantidades variáveis de dados do Nova na combinação (p. ex., 10%, 25%, 50%, 75%) e seleções de categorias de dados do Nova que complementam seu caso de uso (p. ex., escolha a categoria de seguimento de instruções se seu foco for na habilidade de seguir instruções gerais). Monitore as métricas de validação e avalie se a combinação ajuda na performance das avaliações comparativas gerais. Selecione a combinação de treinamento e o ponto de verificação que levam à melhor combinação de performance em sua tarefa e performance geral. Dependendo do caso de uso, tanto a tarefa quanto a performance geral podem ser aprimoradas ainda mais usando o ajuste fino por reforço (RFT).

## Preparar o conjunto de dados para o SFT
<a name="dataset-preparation"></a>

**Nova 1.0**: a preparação de dados é descrita em [https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html)

**Nova 2.0**: use o formato Converse API como para o Nova 1.0 [https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html). O formato de dados do Nova 2.0 pode conter campos de raciocínio adicionais: [https://docs.aws.amazon.com/bedrock/latest/APIReference/API\$1runtime\$1ReasoningContentBlock.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html)

O conteúdo de raciocínio captura as etapas intermediárias do pensamento do modelo antes de gerar uma resposta final. Na vez de `assistant`, use o campo `reasoningContent` para incluir rastros de raciocínio. Use texto simples para conteúdo de raciocínio, evite tags de marcação como `<thinking>` e `</thinking>`, a menos que sejam especificamente exigidas por sua tarefa, e garanta que o conteúdo de raciocínio seja claro e relevante para o processo de solução de problemas.

## Kit de ferramentas de IA responsável e moderação de conteúdo
<a name="responsible-ai"></a>

**Configurações de moderação de conteúdo**: os clientes do Nova Forge têm acesso às configurações de moderação de conteúdo personalizáveis (CCMS) para os modelos Nova Lite 1.0 e Pro 1.0. O CCMS permite que você ajuste os controles de moderação de conteúdo para se alinhar aos seus requisitos empresariais específicos, mantendo as proteções essenciais de IA responsável. Para determinar se seu caso de uso empresarial se qualifica para o CCMS, entre em contato com seu gerente de conta da Amazon Web Services.

O Nova Forge fornece um kit de ferramentas de IA responsável que inclui dados de treinamento, avaliações comparativas e controles de runtime para ajudar você a alinhar seus modelos às diretrizes de IA responsável do Nova.

**Dados de treinamento**: a categoria “RAI” na combinação de dados contém casos e cenários que enfatizam os princípios de IA responsável, as considerações de segurança e a implantação responsável de tecnologia. Use-os para alinhar modelos com responsabilidade durante o pré-treinamento contínuo.

**Avaliações**: tarefas de avaliações comparativas estão disponíveis para testar a capacidade do modelo de detectar e rejeitar conteúdo impróprio, prejudicial ou incorreto. Use essas avaliações para analisar a diferença entre a performance do modelo de base e a do modelo personalizado.

**Controles de runtime**: por padrão, o runtime do Nova controla respostas moderadas do modelo durante a inferência. Para modificar esses controles para seu caso empresarial específico, solicite as configurações de moderação de conteúdo personalizáveis (CCMS) entrando em contato com seu gerente de conta da Amazon Web Services.

### Responsabilidade compartilhada pela segurança
<a name="shared-responsibility"></a>

A segurança é uma responsabilidade compartilhada entre a Amazon Web Services e nossos clientes. Alterar o modelo de base ou usar o pré-treinamento contínuo para melhorar a performance em um caso de uso específico pode afetar a segurança, a imparcialidade e outras propriedades do novo modelo.

Usamos um método de adaptação robusto para minimizar as alterações na segurança, imparcialidade e outras proteções incorporadas em nossos modelos de base, ao mesmo tempo em que minimizamos o impacto na performance do modelo em tarefas para as quais ele não foi personalizado.

Você é responsável por:
+ Testes completos de suas aplicações em conjuntos de dados representativos de seus casos de uso
+ Decidir se os resultados dos testes atendem às expectativas específicas de segurança, imparcialidade e outras propriedades, bem como da eficácia geral

Para obter mais informações, consulte o Guia de uso responsável da IA da Amazon Web Services, a Política de IA responsável da Amazon Web Services, a Política de uso aceitável da AWS e os Termos de serviço da AWS dos serviços que você planeja usar.

### Configurações de moderação de conteúdo personalizáveis (CCMS)
<a name="ccms"></a>

O CCMS permite que você ajuste os controles relevantes aos requisitos de sua empresa, mantendo controles essenciais e não configuráveis que garantem o uso responsável da IA.

Essas configurações permitem a geração de conteúdo por meio de três configurações disponíveis:
+ Somente segurança
+ Segurança, conteúdo sensível e equidade combinados
+ Todas as categorias combinadas

As quatro categorias de moderação de conteúdo são:

1. **Segurança**: abrange atividades perigosas, armas e substâncias controladas.

1. **Conteúdo sensível**: inclui palavrões, nudez e intimidação

1. **Equidade**: aborda vieses e considerações culturais

1. **Segurança**: envolve crimes cibernéticos, malware e conteúdo malicioso

Independentemente da configuração do CCMS, o Amazon Nova aplica controles essenciais e não configuráveis para garantir o uso responsável da IA, como controles para prevenir danos às crianças e preservar a privacidade.

#### Recomendações para usar o CCMS
<a name="ccms-recommendations"></a>

Ao usar o CCMS, recomendamos usar o pré-treinamento contínuo (CPT) e partir de um ponto de verificação de alinhamento pré-RAI (pré-treinamento inicial, pré-treinamento intermediário ou pré-treinamento final) em vez do ponto de verificação GA/FINAL. Esses pontos de verificação não passaram por treinamento de segurança nem foram direcionados para comportamentos específicos de RAI, permitindo que você os personalize com mais eficiência de acordo com seus requisitos de moderação de conteúdo.

**Dica**: ao usar o CCMS com uma combinação de dados, considere ajustar a porcentagem da categoria “rai” em sua configuração nova\$1data para se alinhar aos seus requisitos específicos de moderação de conteúdo.

#### Disponibilidade
<a name="ccms-availability"></a>

Atualmente, o CCMS está disponível para clientes aprovados usando:
+ Modelos Nova Lite 1.0 e Pro 1.0
+ Inferência sob demanda do Amazon Bedrock
+ A região us-east-1 (Norte da Virgínia)

Para habilitar o CCMS para seus modelos do Forge, entre em contato com seu gerente de conta da Amazon Web Services.

## Métodos de avaliação
<a name="evaluation"></a>

### Pré-requisitos
<a name="evaluation-prerequisites"></a>
+ URI do ponto de verificação do S3 do arquivo `manifest.json` da sua tarefa de treinamento (para modelos treinados)
+ Conjunto de dados de avaliação enviado para o S3 no formato correto
+ Caminho do S3 de saída para os resultados da avaliação

**Avaliações comparativas prontas para uso**: use avaliações comparativas prontas para uso para validar a performance em tarefas gerais. Para obter mais detalhes, confira aqui: [https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html)

### Traga seus próprios dados
<a name="bring-your-own-data"></a>

Você também pode fornecer seus dados personalizados formatando-os no formato abaixo e, em seguida, usando os contêineres mencionados a seguir para obter resultados de inferência junto com probabilidades logarítmicas para calibrações, se necessário.

Crie um arquivo JSONL por tarefa com a seguinte estrutura:

```
{
  "metadata": "{key:4, category:'apple'}",
  "system": "arithmetic-patterns, please answer the following with no other words: ",
  "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?",
  "response": "32"
}
```

Os resultados gerados durante a fase de inferência da tarefa de avaliação terão a seguinte estrutura:

```
{
  "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]",
  "inference": "['32']",
  "gold": "32",
  "metadata": "{key:4, category:'apple'}"
}
```

**Descrições dos campos:**
+ `prompt`: entrada formatada enviada ao modelo
+ `inference`: resposta gerada do modelo
+ `gold`: resposta correta esperada do conjunto de dados de entrada, campo de resposta da entrada
+ `metadata`: metadados opcionais transmitidos da entrada

### Preparar a configuração da avaliação
<a name="evaluation-config"></a>

Comando para iniciar a tarefa de avaliação. Use `"--override-parameters"` para modificar qualquer entrada da fórmula.

```
hyperpod start-job -n kubeflow \
  --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \
  --override-parameters '{
    "instance_type": "p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest",
    "recipes.run.name": "<your-eval-job-name>",
    "recipes.run.model_name_or_path": "<checkpoint-s3-uri>",
    "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/",
    "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl"
  }'
```

## Práticas recomendadas
<a name="best-practices"></a>
+ **Priorize a qualidade dos dados em detrimento do volume**: dados de treinamento de alta qualidade, diversos e representativos são mais valiosos do que grandes quantidades de dados de baixa qualidade.
+ **Inclua a categoria de seguimento de instrução com raciocínio**: ao usar a combinação de dados, inclua a categoria de “seguimento de instrução com raciocínio” para manter uma forte performance genérica em todas as tarefas.
+ **Use as taxas de aprendizado padrão**: comece com as taxas de aprendizado padrão (1e-5 para LoRA, 5e-6 para SFT full-stack) e ajuste somente se necessário com base nas métricas de validação.
+ **Equilibre a combinação de dados do Nova**: combine no máximo 50% de dados do Nova para obter um equilíbrio ideal entre latência e performance. Porcentagens mais altas podem melhorar os recursos gerais, mas podem aumentar o tempo de treinamento.
+ **Monitore as métricas de validação**: avalie regularmente os pontos de verificação intermediários durante o treinamento para detectar precocemente o sobreajuste ou a degradação da performance.
+ **Teste em conjuntos de dados representativos**: garanta que seus conjuntos de dados de avaliação representem com precisão seus casos de uso de produção para uma avaliação significativa da performance.

## Preparar a configuração da tarefa de treinamento
<a name="prepare-training-job-config"></a>

### Hiperparâmetros
<a name="hyper-parameters"></a>

Conjunto completo de hiperparâmetros além da combinação de dados:

```
## Run config
run:
  name: my-lora-sft-run
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  data_s3_path: s3://my-bucket-name/train.jsonl  # SageMaker HyperPod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job
  replicas: 4                      # Number of compute instances for training, allowed values are 4, 8, 16, 32
  output_s3_path: s3://my-bucket-name/outputs/               # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job
  
  ## MLFlow configs
  mlflow_tracking_uri: "" # Required for MLFlow
  mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty
  
training_config:
  max_steps: 100                   # Maximum training steps. Minimal is 4.
  save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4)
  save_top_k: 5                    # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1.
  max_length: 32768                # Sequence length (options: 8192, 16384, 32768 [default], 65536)
  global_batch_size: 32            # Golbal batch size (options: 32, 64, 128)
  reasoning_enabled: true          # If data has reasoningContent, set to true; otherwise False

  lr_scheduler:
    warmup_steps: 15               # Learning rate warmup steps. Recommend 15% of max_steps
    min_lr: 1e-6                   # Minimum learning rate, must be between 0.0 and 1.0

  optim_config:                    # Optimizer settings
    lr: 1e-5                       # Learning rate, must be between 0.0 and 1.0
    weight_decay: 0.0              # L2 regularization strength, must be between 0.0 and 1.0
    adam_beta1: 0.9                # Exponential decay rate for first-moment estimates, must be between 0.0 and 1.0
    adam_beta2: 0.95               # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0

  peft:                            # Parameter-efficient fine-tuning (LoRA)
    peft_scheme: "lora"            # Enable LoRA for PEFT
    lora_tuning:
      alpha: 64                    # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192),
      lora_plus_lr_ratio: 64.0     # LoRA+ learning rate scaling factor (0.0–100.0)
```

Os parâmetros mais relevantes para LoRA são taxa de aprendizado, alfa (parâmetro de escalabilidade), número de épocas para treinar e etapas de aquecimento; para full-stack, é principalmente a taxa de aprendizado, o número de épocas e as etapas de aquecimento. As fórmulas são pré-preenchidas com os padrões recomendados.

## Configurar o bloco de combinação de dados
<a name="set-up-data-mixing-block"></a>

Adicione a seção data\$1mix à sua fórmula com a distribuição percentual apropriada nas categorias do conjunto de dados.

Abaixo, descrevemos cada categoria de dados disponível do Nova.

### Configuração do Nova 1.0 com combinação de dados
<a name="nova-1-config-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_text       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 1                   # autonomous decision-making, task completion, goal-oriented behavior in AI systems
      chat: 51                    # Conversational exchanges demonstrating natural dialogue flow
      code: 8                     # Programming examples and solutions spanning multiple languages
      rai: 1                      # ethical AI principles, safety considerations, and responsible technology deployment
      instruction-following: 13   # precise task execution based on varying levels of user prompts and directives
      stem: 6                     # Technical content covering science, technology, engineering, and mathematics
      planning: 2                 # Sequences demonstrating strategic thinking and step-by-step task breakdown
      reasoning: 8                # Logical deduction, critical thinking, and analytical problem-solving scenarios
      rag: 1                      # combining retrieved external knowledge with generated responses
      translation: 9              # Multi-language content pairs showing accurate translation
```

O que essas categorias significam?


**Categorias de dados de texto do Nova 1.0**  

| Nome da categoria | Detalhes das informações | 
| --- | --- | 
| agentes | 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 | 
| chat | Trocas conversacionais demonstrando um fluxo natural de diálogo, a manutenção do contexto e interações sociais apropriadas | 
| código | Exemplos e soluções de programação abrangendo vários idiomas, cenários de depuração e práticas recomendadas de desenvolvimento de software | 
| IA responsável (RAI) | Casos e cenários enfatizando os princípios éticos da IA, considerações de segurança e implantação responsável de tecnologia | 
| seguimento de instruções | Exemplos de execução precisa de tarefas com base em diversos níveis de prompts e diretrizes dos usuários | 
| radical | Conteúdo técnico que abrange ciência, tecnologia, engenharia e matemática, incluindo resolução de problemas e conceitos teóricos | 
| planejamento | Sequências que demonstram pensamento estratégico, divisão de tarefas passo a passo e alocação eficiente de recursos | 
| reasoning | Dedução lógica, pensamento crítico e cenários analíticos de solução de problemas com cadeias de raciocínio claras | 
| RAG | Exemplos de combinação eficaz do conhecimento externo recuperado com as respostas geradas para fornecer informações contextuais precisas | 
| conversão | Pares de conteúdo em vários idiomas que mostram uma tradução precisa, preservando o contexto, o tom e as nuances culturais | 

### Combinação de dados multimodais (Nova 1.0)
<a name="nova-1-mm-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_mm        # Nova multi-modal dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 11                  # Combining visual and textual inputs
      docs: 17                    # Document-centric data combining text, images, layouts, and formatting
      perception: 10              # Visual-linguistic pairs t
      rag: 4                      # Combining retrieved external knowledge with generated responses
      rai: 3                      # Ethical AI principles, safety considerations, and responsible technology deployment
      reasoning: 10               # Logical analysis, problem-solving, and drawing conclusions
      stem: 17                    # Technical content pairing visual elements (diagrams, charts, equations) with text
      text: 10                    # A balanced pool of contextual text data create from the text-only SFT datasets
      video: 18                   # Video datasets
```

O que essas categorias significam?


**Categorias de dados multimodais do Nova 1.0**  

| Nome da categoria | Detalhes das informações | 
| --- | --- | 
| agentes | Pares de treinamento que combinam entradas visuais e textuais que demonstram como os sistemas de IA devem interpretar, agir e interagir com informações ambientais multissensoriais | 
| docs | Dados centrados em documentos que combinam texto, imagens, layouts e formatação para treinar modelos na compreensão e no processamento de vários tipos e estruturas de documentos para ajudar com conceitos como reconhecimento de conteúdo em PDF | 
| percepção | Pares visual-linguísticos para treinamento de modelos para descrever, interpretar e raciocinar com precisão sobre imagens, vídeos e outras entradas visuais em linguagem natural | 
| RAG | Exemplos de recuperação multimodal que mostram como combinar e referenciar com eficácia o conhecimento externo visual e textual para gerar respostas contextuais precisas | 
| reasoning | Casos que combinam elementos visuais e textuais que demonstram análise lógica, solução de problemas e conclusões em várias modalidades | 
| radical | Conteúdo técnico que combina elementos visuais (diagramas, gráficos, equações) com texto para ensinar conceitos científicos, matemáticos e técnicos e resolução de problemas | 
| texto | Um conjunto equilibrado de dados contextuais de texto criado com base nas categorias dos conjuntos de dados do SFT somente com texto do Nova para fornecer recursos generalistas | 
| video | Conteúdo visual baseado em movimento focado na compreensão temporal e na compreensão visual-narrativa sequencial | 

### Configuração do Nova 2.0 com combinação de dados
<a name="nova-2-config-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_text_chat       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 1                   # autonomous decision-making, task completion, goal-oriented behavior in AI systems
      baseline: 10                 # [New in Nova 1.5]
      chat: 0.5                    # Conversational exchanges demonstrating natural dialogue flow
      code: 10                     # Programming examples and solutions spanning multiple languages
      factuality: 0.1               # [New in Nova 1.5]
      identity: 1                 # [New in Nova 1.5]
      long-context: 1             # [New in Nova 1.5]
      math: 2                     # [New in Nova 1.5]
      rai: 1                      # ethical AI principles, safety considerations, and responsible technology deployment
      instruction-following: 13   # precise task execution based on varying levels of user prompts and directives
      stem: 0.5                     # Technical content covering science, technology, engineering, and mathematics
      planning: 10                 # Sequences demonstrating strategic thinking and step-by-step task breakdown
      reasoning-chat: 0.5
      reasoning-code: 0.5
      reasoning-factuality: 0.5
      reasoning-instruction-following: 45
      reasoning-math: 0.5
      reasoning-planning: 0.5
      reasoning-rag: 0.4
      reasoning-rai: 0.5
      reasoning-stem: 0.4
      rag: 1                      # combining retrieved external knowledge with generated responses
      translation: 0.1
```

O que essas categorias significam?


**Categorias de dados de texto do Nova 2.0**  

| Nome da categoria | Detalhes das informações | 
| --- | --- | 
| agentes | 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 | 
| linha de base | 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 | 
| código | Código fonte de programação, documentação e discussões técnicas de várias plataformas e linguagens de programação. | 
| factualidade | Materiais de referência e informações verificadas com foco na precisão, na validação da fonte e na avaliação da verdade | 
| identidade | 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. | 
| IA responsável (RAI) | Casos e cenários enfatizando os princípios éticos da IA, considerações de segurança e implantação responsável de tecnologia | 
| seguimento de instruções | Exemplos de execução precisa de tarefas com base em diversos níveis de prompts e diretrizes dos usuários | 
| radical | Conteúdo técnico que abrange ciência, tecnologia, engenharia e matemática, incluindo resolução de problemas e conceitos teóricos | 
| planejamento | 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 | 
| conversão | Pares de conteúdo em vários idiomas que mostram uma tradução precisa, preservando o contexto, o tom e as nuances culturais | 

### Combinação de dados multimodais (Nova 2.0)
<a name="nova-2-mm-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_mm_chat       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      charts: 1
      chat: 38
      code: 20
      docs: 3
      general: 2
      grounding: 1
      rag: 4
      screenshot: 4
      text: 8
      translation: 4
      video: 15
```

Observação: o Nova 2.0 inclui suporte para categorias de dados de vídeo que não está disponível no Nova 1.0.

O que essas categorias significam?


**Categorias de dados multimodais do Nova 2.0**  

| Nome da categoria | Detalhes das informações | 
| --- | --- | 
| grafos | Representações visuais e descrições de gráficos, gráficos circulares, gráficos de barras, gráficos de linhas e outras visualizações estatísticas para ajudar o modelo a entender e a comunicar informações quantitativas de forma eficaz | 
| chat | Dados conversacionais combinados com elementos visuais focados na compreensão contextual do diálogo e nas interações baseadas em imagens | 
| código | Interfaces de programação e ambientes de desenvolvimento focados na interpretação visual do código, capturas de tela do IDE e diagramas técnicos | 
| docs | Dados centrados em documentos que combinam texto, imagens, layouts e formatação para treinar modelos na compreensão e no processamento de vários tipos e estruturas de documentos para ajudar com conceitos como reconhecimento de conteúdo em PDF | 
| general | Conteúdo textual visual diversificado focado na ampla compreensão de imagens, gráficos e texto descritivo que o acompanha | 
| grounding | Materiais de referência visual e imagens rotuladas focados em conectar conceitos de linguagem a representações visuais do mundo real | 
| RAG | Exemplos de recuperação multimodal que mostram como combinar e referenciar com eficácia o conhecimento externo visual e textual para gerar respostas contextuais precisas | 
| captura de tela | Capturas de interface de aplicações e imagens de exibição digital com foco na compreensão de interfaces de software e interações digitais | 
| texto | Um conjunto equilibrado de dados contextuais de texto criado com base nas categorias dos conjuntos de dados do SFT somente com texto do Nova para fornecer recursos generalistas | 
| conversão | Conteúdo visual multilíngue focado na interpretação multilíngue de texto em imagens e elementos visuais culturais | 
| video | Conteúdo visual baseado em movimento focado na compreensão temporal e na compreensão visual-narrativa sequencial | 

## Como iniciar uma tarefa
<a name="how-to-launch-job"></a>

Você também pode consultar o README, se precisar apenas obter os detalhes essenciais para iniciar a primeira execução do SFT.

Informações dos contêineres:


**Informações dos contêineres e comandos de inicialização**  

| Modelo | Técnica | Subcategory | URI da imagem | Comando do inicializador do Hyperpod | 
| --- | --- | --- | --- | --- | 
| Nova 1.0 | Ajustar | SFT/PEFT | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine-tuning/nova/nova\$11\$10/nova\$1micro/SFT/nova\$1micro\$11\$10\$1p5\$1gpu\$1sft \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest" \$1' | 
| Nova 1.0 | Ajustar | SFT com combinação de dados | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine-tuning/nova/forge/nova\$11\$10/nova\$1micro/SFT/nova\$1micro\$11\$10\$1p5\$1gpu\$1sft\$1text\$1with\$1datamix \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX" \$1' | 
| Nova 2.0 | Ajustar | Texto de SFT | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine-tuning/nova/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" \$1' | 
| Nova 2.0 | Ajustar | Texto de SFT \$1 combinação de dados | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine-tuning/nova/forge/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft\$1text\$1with\$1datamix \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" \$1' | 
| Nova 2.0 | Ajustar | SFT multimodal | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine-tuning/nova/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" \$1' | 
| Nova 2.0 | Ajustar | SFT multimodal \$1 combinação de dados | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest | hyperpod start-job \$1 -n kubeflow \$1 --recipe fine-tuning/nova/forge/nova\$12\$10/nova\$1lite/SFT/nova\$1lite\$12\$10\$1p5\$1gpu\$1sft\$1mm\$1with\$1datamix \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" \$1' | 

Quando estiver tudo configurado, começando pela raiz do repositório sagemaker-hyperpod-cli, navegue até a pasta padrão de fórmulas do SFT do Nova
+ cd /src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/training/nova/
+ Aqui você pode escolher se deseja executar fórmulas do Nova 1 ou do Nova 2 com base na escolha do modelo de base.

No SFT do Nova 1.0:
+ Se quiser usar uma tarefa regular do SFT, você deverá encontrar uma fórmula nesta pasta
  + cd /src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/fine-tuning/nova\$11\$10/nova\$1lite/SFT and then you should be able to see one recipe under this folder called nova\$1lite\$11\$10\$1p5x8\$1gpu\$1sft.yaml
+ Se você quiser usar uma tarefa de combinação de dados do SFT, é possível navegar até a pasta de fórmulas do SFT do Forge
  + cd /src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/fine-tuning/nova/forge/nova\$11\$10/nova\$1lite/SFT and you should be able to see one recipe under this folder called: nova\$1lite\$11\$10\$1p5x8\$1gpu\$1sft\$1with\$1datamix.yaml
+ Edite as seções na fórmula exigida pelo trabalho, como name, data\$1s3\$1path, validation\$1s3\$1path, output\$1s3\$1path e max\$1steps. Como estamos executando o SFT, a noção de épocas não se aplica aqui.

No SFT do Nova 2.0:
+ Se quiser usar uma tarefa regular do SFT, você deverá encontrar uma fórmula nesta pasta
  + cd /src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/fine-tuning/nova\$12\$10/nova\$1lite/SFT and then you should be able to see one recipe under this folder called nova\$1lite\$12\$10\$1p5x8\$1gpu\$1sft.yaml
+ Se você quiser usar uma tarefa de combinação de dados do SFT, é possível navegar até a pasta de fórmulas do SFT do Forge
  + cd /src/hyperpod\$1cli/sagemaker\$1hyperpod\$1recipes/recipes\$1collection/recipes/fine-tuning/nova/forge/nova\$12\$10/nova\$1lite/SFT and you should be able to see one recipe under this folder called: nova\$1lite\$12\$10\$1p5x8\$1gpu\$1sft\$1with\$1datamix.yaml
+ Edite as seções na fórmula exigida pelo trabalho, como name, data\$1s3\$1path, validation\$1s3\$1path, output\$1s3\$1path e max\$1steps. Como estamos realizando o SFT, a noção de épocas não se aplica aqui.

A configuração da combinação de dados será a mesma, mas com uma seção extra de combinação de dados na parte inferior, semelhante a esta:

```
data_mixing:
  dataset_catalog: sft_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: 20
      scientific: 20
      code: 20
      factual-and-news: 20
      longform-text: 0
      health-and-medicine: 0
      humanities-and-education: 0
      legal: 0
      math: 0
      additional-languages: 0
      social-and-personal-interest: 0
      entertainment: 0
      reasoning: 0
      other: 0
      tables: 0
    customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above
      percent: 25
```

Há duas categorias de dados de alto nível aqui:
+ nova\$1data: esta é a combinação real de dados e é subdividida em ainda mais categorias. É imperativo que eles totalizem até 100%
  + Uma análise completa dessas categorias, incluindo a contagem de tokens, pode ser encontrada abaixo
+ customer\$1data: estes são seus dados de treinamento referenciados na chave data\$1s3\$1path na parte superior do seu YAML. A porcentagem fornecida aqui determina qual será a porcentagem resultante para nova\$1data. Por exemplo, nas seleções percentuais acima, durante o treinamento, usaremos 25% de customer\$1data e 75% de nova\$1data, dos quais 15% serão agentes, 15% serão negócios e finanças, 15% serão científicos, 15% serão códigos e 15% serão fatos e notícias

Dica: execute pip install -e . mais uma vez e tudo estará pronto para enviar sua tarefa.

Vamos substituir alguns parâmetros aqui para usar a combinação de dados:

```
hyperpod start-job \
 -n kubeflow \
 --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5x8_gpu_sft_with_datamix \
 --override-parameters '{
 "instance_type": "ml.p5.48xlarge",
 "recipes.run.name": "nova-sft-datamixing",
 "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix",
 "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl",
 "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl",
 "recipes.run.output_s3_path": "s3://sft-data/output/
 }'
```

Sua saída deve conter um nome de tarefa da seguinte forma:

```
⚡ MY Desktop ⚡ % hyperpod start-job \
 -n kubeflow \
 --recipe training/nova/forge/nova_2_0/nova_lite/sft/nova_lite_2_0_p5x8_gpu_pretrain_with_datamix \
 --override-parameters '{
 "instance_type": "ml.p5.48xlarge",
 "recipes.run.name": "nova-sft-datamixing",
 "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix",
 "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl",
 "recipes.run.validation_data_s3_path": "3://sft-data/sft_val_data.jsonl",
 "recipes.run.output_s3_path": "3://sft-data/output/
 }'
```

A saída seria assim:

```
Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=training/nova/nova_micro_p5x8_gpu_pretrain cluster_type=k8s cluster=k8s base_results_dir=/local/home/niphaded/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="p5d.48xlarge" container="900867814919.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:sft-datamix-rig-final"
Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates
Found credentials in shared credentials file: ~/.aws/credentials
Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh
Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh

NAME: my-sft-run-wzdyn
LAST DEPLOYED: Tue Aug 26 16:21:06 2025
NAMESPACE: kubeflow
STATUS: deployed
REVISION: 1
TEST SUITE: None
Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT

{
 "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703"
}
```

Você pode ver o status da sua tarefa usando hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn

```
hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn 
{
 "pods": [
  {
   "PodName": "my-sft-run-wzdyn-master-0",
   "Namespace": "kubeflow",
   "Status": "Pending",
   "CreationTime": "2025-08-26 16:21:06+00:00"
  },
  {
   "PodName": "my-sft-run-wzdyn-worker-0",
   "Namespace": "kubeflow",
   "Status": "Pending",
   "CreationTime": "2025-08-26 16:21:06+00:00"
  }
 ]
}
```

ou use diretamente o comando kubectl para encontrá-los.

Por exemplo,

```
kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run)

NAME                                                         READY   STATUS      RESTARTS   AGE     IP              NODE                           NOMINATED NODE   READINESS GATES
my-sft-run-5suc8-master-0                              0/1     Completed   0          3h23m   172.31.32.132   hyperpod-i-00b3d8a1bf25714e4   <none>           <none>
my-sft-run-5suc8-worker-0                              0/1     Completed   0          3h23m   172.31.44.196   hyperpod-i-0aa7ccfc2bd26b2a0   <none>           <none>
my-sft-run-5suc8-worker-1                              0/1     Completed   0          3h23m   172.31.46.84    hyperpod-i-026df6406a7b7e55c   <none>           <none>
my-sft-run-5suc8-worker-2                              0/1     Completed   0          3h23m   172.31.28.68    hyperpod-i-0802e850f903f28f1   <none>           <none>
```

Dica profissional: certifique-se de sempre usar o sinalizador -o wide, pois o nó do EKS em que o trabalho é executado ajudará você a encontrar seus logs ainda mais rapidamente na interface do usuário da AWS

## Como monitorar a tarefa
<a name="how-to-monitor-job"></a>

Você pode visualizar seus logs de três maneiras:

### a) Usando o CloudWatch
<a name="using-cloudwatch"></a>

Seus logs estão disponíveis na sua conta da Amazon Web Services que contém o cluster do Hyperpod no CloudWatch. Para visualizá-los em seu navegador, navegue até a página inicial do CloudWatch em sua conta e pesquise o nome do seu cluster. Por exemplo, se seu cluster se chamasse my-hyperpod-rig, o grupo de logs teria o prefixo:
+ Grupo de logs: /aws/sagemaker/Clusters/my-hyperpod-rig/\$1UUID\$1
+ Quando estiver no grupo de logs, você poderá encontrar seu log específico usando o ID da instância do nó, como - hyperpod-i-00b3d8a1bf25714e4.
  + i-00b3d8a1bf25714e4 aqui representa o nome da máquina compatível com o Hyperpod em que seu trabalho de treinamento está sendo executado. Lembre-se de como, na saída anterior do comando kubectl get pods -o wide -w -n kubeflow \$1 (head -n1 ; grep my-cpt-run), capturamos uma coluna chamada NODE.
  + Nesse caso, a execução do nó “principal” estava sendo executada em hyperpod-i-00b3d8a1bf25714e4 e, portanto, usaremos essa string para selecionar o grupo de logs a ser visualizado. Selecione aquele que diz SagemakerHyperPodTrainingJob/rig-group/[NODE]

Seus logs devem ser semelhantes ao seguinte:

### b) Usando o CloudWatch Insights
<a name="using-cloudwatch-insights"></a>

Se você souber o nome da sua tarefa e não quiser seguir todas as etapas acima, basta consultar todos os logs em /aws/sagemaker/Clusters/my-hyperpod-rig/\$1UUID\$1 para encontrar o log individual.

CPT

```
fields @timestamp, @message, @logStream, @log 
| filter @message like /(?i)Starting CPT Job/
| sort @timestamp desc 
| limit 100
```

Para a conclusão da tarefa, substitua Starting SFT Job por SFT Job completed

Em seguida, você pode clicar nos resultados e escolher aquele que diz “Epoch 0”, pois este será seu nó principal.

### C) Usando a AWS CLI
<a name="using-aws-cli"></a>

Você pode optar por rastrear seus logs usando a CLI. Antes de fazer isso, verifique sua versão da AWS CLI usando aws --version. Também é recomendável usar esse script utilitário que ajuda no rastreamento de logs em tempo real em seu terminal.

para V1:

```
aws logs get-log-events \
 --log-group-name /aws/sagemaker/YourLogGroupName \
 --log-stream-name YourLogStream \
 --start-from-head | jq -r '.events[].message'
```

para V2:

```
aws logs tail /aws/sagemaker/YourLogGroupName \
  --log-stream-name YourLogStream \
 --since 10m \
 --follow
```

### D) Configurando o MLflow:
<a name="setup-mlflow"></a>

Você pode acompanhar as métricas por meio do MLflow.

Criar uma aplicação MLflow

Usando a interface do usuário do Studio: se você criar uma tarefa de treinamento por meio da interface do usuário do Studio, uma aplicação MLflow padrão será criada automaticamente e estará selecionada por padrão em Opções avançadas.

Usando a CLI: se você usar a CLI, deverá criar uma aplicação MLflow e passá-la como uma entrada para a solicitação da API da tarefa de treinamento.

```
mlflow_app_name="<enter your MLflow app name>"  
role_arn="<enter your role ARN>"   
bucket_name="<enter your bucket name>"   
region="<enter your region>"  
  
mlflow_app_arn=$(aws sagemaker create-mlflow-app \  
  --name $mlflow_app_name \  
  --artifact-store-uri "s3://$bucket_name" \  
  --role-arn $role_arn \  
  --region $region)
```

Acessar a aplicação MLflow

Usando a CLI: crie um URL pré-assinado para acessar a interface do usuário da aplicação MLflow:

```
aws sagemaker create-presigned-mlflow-app-url \  
  --arn $mlflow_app_arn \  
  --region $region \  
  --output text
```

Depois que o MLflow estiver configurado, você poderá passar o URI em sua fórmula ou usar a substituição ao iniciar o trabalho. Um exemplo de como fazer isso pode ser encontrado no README.

## Como avaliar seu modelo após o SFT?
<a name="how-to-evaluate-after-sft"></a>

### Pré-requisitos
<a name="eval-prerequisites"></a>
+ URI do ponto de verificação do S3 do arquivo manifest.json da sua tarefa de treinamento (para modelos treinados)
+ Conjunto de dados de avaliação enviado para o S3 no formato correto
+ Caminho do S3 de saída para os resultados da avaliação

Avaliações comparativas prontas para uso: use avaliações comparativas prontas para uso para validar a performance em tarefas gerais. Para obter mais detalhes, confira aqui.

### Traga seus próprios dados:
<a name="bring-your-own-eval-data"></a>

Você também pode fornecer seus dados personalizados formatando-os no formato abaixo e, em seguida, usando os contêineres mencionados a seguir para obter resultados de inferência junto com probabilidades logarítmicas para calibrações, se necessário.

Crie um JSONL por tarefa com a seguinte estrutura:

```
{
  "metadata": "{key:4, category:'apple'}",
  "system": "arithmetic-patterns, please answer the following with no other words: ",
  "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?",
  "response": "32"
}
```

Os resultados gerados durante a fase de inferência da tarefa de avaliação terão a seguinte estrutura:

```
{
  "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]",
  "inference": "['32']",
  "gold": "32",
  "metadata": "{key:4, category:'apple'}"
}
```

Descrições dos campos:
+ prompt: entrada formatada enviada para o modelo
+ inferência: resposta gerada pelo modelo
+ gold: a resposta correta esperada do conjunto de dados de entrada, campo de resposta da entrada
+ metadados: metadados opcionais transmitidos da entrada

### Preparar a configuração da avaliação
<a name="prepare-eval-config"></a>

Comando para iniciar a tarefa de avaliação. Use “--override-parameters” para modificar qualquer entrada da fórmula.

```
hyperpod start-job -n kubeflow \
  --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \
  --override-parameters '{
    "instance_type": "p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest",
    "recipes.run.name": "<your-eval-job-name>",
    "recipes.run.model_name_or_path": "<checkpoint-s3-uri>",
    "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/",
    "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl"
  }'
```

### Iniciar sua tarefa de avaliação
<a name="launch-eval-job"></a>

Comandos de inicialização de tarefas para diferentes fórmulas com imagens correspondentes.


**Comandos de inicialização de tarefas de avaliação**  

| Modelo | Técnica | Subcategory | URI da imagem | Command | 
| --- | --- | --- | --- | --- | 
| Nova 1.0 | Avaliação | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest | hyperpod start-job \$1 -n kubeflow \$1 --recipe evaluation/nova/nova\$11\$10/nova\$1lite/nova\$1lite\$12\$10\$1p5\$148xl\$1gpu\$1ft\$1eval \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" \$1' | 
| Nova 2.0 | Avaliação | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest | hyperpod start-job -n kubeflow \$1 --recipe evaluation/nova/nova\$12\$10/nova\$1lite/nova\$1lite\$12\$10\$1p5\$148xl\$1gpu\$1ft\$1eval \$1 --override-parameters '\$1 "instance\$1type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" \$1' | 

## Dicas e lições aprendidas
<a name="lessons-learned-tips"></a>
+ A qualidade do conjunto de dados do SFT é fundamental. Você deve empenhar todos os esforços para filtrar dados de baixa qualidade. Se você tiver um pequeno subconjunto de dados de altíssima qualidade, em termos de complexidade e precisão, considere colocá-lo no final do treinamento para ajudar o modelo a convergir melhor.
+ Utilizamos conjuntos de dados de texto e multimodais (MM) para combinação de dados. Nossos experimentos com conjuntos de dados de texto mostram que adicionar a categoria proprietária de “seguimento de instrução com raciocínio” do Nova melhora significativamente a performance em avaliações comparativas genéricas. Recomendamos incluir essa categoria em sua estratégia de combinação de dados se você se preocupa com a avaliação comparativa genérica que é regredida após a realização do SFT com seus conjuntos de dados.
+ Para conjuntos de dados MM, nossos experimentos indicam que incorporar mais de 20% das categorias de vídeo à combinação é benéfico para manter a performance das avaliações comparativas genéricas.
+ Além disso, o SFT com combinação de dados é bastante sensível à taxa de aprendizado, então nossa descoberta sugere um ajuste fino com a taxa de aprendizado padrão, ou seja, 1e-5 para LoRA e 5e-6 para FR.
+ Finalmente, haverá um equilíbrio entre latência e performance se você combinar conjuntos de dados proprietários do Nova, então nossas descobertas sugerem combinar 50%, no máximo, para obter um bom equilíbrio.

# Kit de ferramentas de IA responsável e moderação de conteúdo
<a name="nova-responsible-ai-toolkit"></a>

## Kit de ferramentas de IA responsável
<a name="nova-responsible-ai-toolkit-overview"></a>

O Nova Forge fornece um kit de ferramentas de IA responsável que inclui dados de treinamento e avaliação para alinhar os modelos às diretrizes de IA responsável do Amazon Nova durante o processo de treinamento e controles de runtime para moderar as respostas do modelo durante a inferência.

**Dados de treinamento**: casos e cenários que enfatizam os princípios da IA responsável, considerações de segurança e implantação responsável de tecnologia estão disponíveis para a combinação de dados a fim de alinhar modelos de forma responsável durante o pré-treinamento contínuo.

**Avaliações**: as avaliações que testam a capacidade do modelo de detectar e rejeitar conteúdo impróprio, prejudicial ou incorreto estão disponíveis como uma tarefa de avaliação comparativa para determinar o delta entre a performance do modelo de base e a do modelo personalizado.

**Controles de runtime**: por padrão, o runtime do Amazon Nova controla as respostas moderadas dos modelos durante a inferência. Para modificar esses controles de runtime, solicite as configurações de moderação de conteúdo personalizáveis do Amazon Nova entrando em contato com um gerente de conta da Amazon Web Services.

A segurança é uma responsabilidade compartilhada entre a Amazon Web Services e seus usuários. Alterar o modelo de base ou usar o pré-treinamento contínuo para melhorar a performance em um caso de uso específico pode afetar a segurança, a imparcialidade e outras propriedades do novo modelo. Um método de adaptação robusto minimiza as alterações na segurança, na imparcialidade e em outras proteções incorporadas aos modelos de base, ao mesmo tempo em que minimiza o impacto na performance do modelo em tarefas para as quais o modelo não foi personalizado. É necessário testar as aplicações de ponta a ponta em conjuntos de dados representativos de casos de uso para determinar se os resultados dos testes atendem às expectativas específicas de segurança, imparcialidade e outras propriedades, bem como à eficácia geral. Para obter mais informações, consulte o Guia de uso responsável da IA da Amazon Web Services, a Política de IA responsável da Amazon Web Services, a Política de uso aceitável da Amazon Web Services e os Termos de serviço da Amazon Web Services.

## Moderação de conteúdo personalizável
<a name="nova-customizable-content-moderation"></a>

As configurações de moderação de conteúdo personalizáveis (CCMS) permitem o ajuste de controles relevantes aos requisitos da empresa, mantendo controles essenciais e não configuráveis para garantir o uso responsável da IA.

Essas configurações permitem a geração de conteúdo por meio de três configurações disponíveis:
+ Somente segurança
+ Segurança, conteúdo sensível e equidade combinados
+ Todas as categorias combinadas

As quatro categorias de moderação de conteúdo são:

1. **Segurança**: abrange atividades perigosas, armas e substâncias controladas.

1. **Conteúdo sensível**: inclui palavrões, nudez e intimidação

1. **Equidade**: aborda vieses e considerações culturais

1. **Segurança**: envolve crimes cibernéticos, malware e conteúdo malicioso

Independentemente da configuração do CCMS, o Amazon Nova aplica controles essenciais e não configuráveis para garantir o uso responsável da IA, como controles para prevenir danos às crianças e preservar a privacidade.

Ao usar o CCMS, recomendamos usar o pré-treinamento contínuo (CPT) e começar com um ponto de verificação de alinhamento pré-RAI (somente texto pré-treinado parcial ou totalmente) em vez do ponto de verificação de produção totalmente alinhado. Esses pontos de verificação não passaram por treinamento de segurança nem foram direcionados para comportamentos específicos de RAI, permitindo que você os personalize com mais eficiência de acordo com seus requisitos de moderação de conteúdo.

**dica**  
Ao usar o CCMS com a combinação de dados, considere ajustar a porcentagem da categoria “RAI” em sua configuração de nova\$1data para se alinhar aos requisitos específicos de moderação de conteúdo.

### Disponibilidade
<a name="nova-ccms-availability"></a>

Atualmente, o CCMS está disponível para clientes aprovados usando:
+ Modelos do Amazon Nova Lite 1.0 e Pro 1.0
+ Inferência sob demanda do Amazon Bedrock
+ A região us-east-1 (Norte da Virgínia)

Para habilitar o CCMS para seus modelos do Forge, entre em contato com um gerente de conta da Amazon Web Services.