As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Ajuste o Nova 1.0
Pré-requisitos
Antes de iniciar uma tarefa de treinamento, observe o seguinte:
-
Os buckets do Amazon S3 para armazenar seus dados de entrada e as saídas das tarefas de treinamento. Você pode usar um bucket para ambos ou buckets separados para cada tipo de dados. Certifique-se de que seus buckets estejam no mesmo Região da AWS local em que você cria todos os outros recursos para treinamento. Para ter mais informações, consulte Criar um bucket de uso geral.
-
Um perfil do IAM com permissões para executar uma tarefa de treinamento. Você deve anexar uma política do IAM com
AmazonSageMakerFullAccess. Para obter mais informações, consulte Como usar funções SageMaker de execução. -
Fórmulas básicas do Amazon Nova, consulte Obter fórmulas do Amazon Nova.
Preparação de dados
Preparar dados de alta qualidade e formatados adequadamente é uma etapa inicial essencial no processo de ajuste fino de grandes modelos de linguagem. Se você estiver usando ajuste fino supervisionado (SFT) ou otimização direta de preferências (DPO), com abordagens de adaptação de classificação completa ou de baixa classificação (LoRA), seus dados deverão aderir a requisitos de formato específicos para garantir o êxito do treinamento do modelo. Esta seção descreve os formatos de dados necessários, os métodos de validação e as práticas recomendadas para ajudar você a preparar conjuntos de dados de forma eficaz e ajustar modelos do Amazon Nova.
SFT
Requisitos de formato de dados SFT - tanto para SFT de classificação completa quanto para LoRa SFT, os dados devem seguir o formato mostrado abaixo. Para ver exemplos e restrições desse formato, consulte Preparar dados para o ajuste dos modelos de compreensão.
Validação de dados de SFT: para validar o formato do conjunto de dados antes do envio, recomendamos usar o script de validação a seguir do repositório de amostras do Amazon Bedrockjsonl estejam de acordo com as especificações de formato exigidas e a identificar possíveis problemas antes de enviar sua tarefa de ajuste fino.
DPO
Requisitos de formato de dados do DPO - tanto para o DPO em nível completo quanto para o DPO com LoRa, os dados devem seguir o formato mostrado abaixo. O conjunto de dados também precisa estar no formato semelhante ao do SFT, exceto que o último turno precisa ter pares de preferências.
Outras restrições do conjunto de dados de DPO: as outras restrições nos conjuntos de dados são iguais às do SFT. Para ter mais informações, consulte Restrições de conjuntos de dados. Espera-se um único arquivo JSONL para treinamento e um único arquivo JSONL para validação. O conjunto de validação é opcional.
Recomendamos que de conjunto de dados de DPO: no mínimo mil pares de preferências para que o treinamento seja eficaz. Dados de preferência de alta qualidade vão gerar resultados mais eficientes.
Exemplo de formato de dados de DPO
// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }
Exemplo de formato de dados de DPO (vários turnos)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Exemplo de formato de dados de DPO (com imagens)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
As tarefas de treinamento têm como padrão um limite de tempo de um dia, embora as estimativas nas tabelas abaixo assumam uma duração de treinamento de cinco dias para fins ilustrativos. Como prática recomendada, sugerimos aumentar o limite de tempo de treinamento para no máximo 28 dias para atender a workloads de treinamento mais longas. Para solicitar um aumento de limite, consulte Solicitar um aumento de cota.
Limites do conjunto de dados de SFT
| Tamanho do contexto | Modelo | Método | Conjuntos de dados | Description |
|---|---|---|---|---|
|
Tarefas com comprimento de contexto de 32 mil |
Amazon Nova Micro | Nível completo e LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você só poderá ter até 100 mil registros. |
|
Amazon Nova Lite |
Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 100 mil registros. |
|
| Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 50 mil registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 100 mil registros. |
||
| Imagem e vídeo | Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 90 mil registros. | |||
|
Amazon Nova Pro |
Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 40 mil registros. |
|
| Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 30 mil registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 40 mil registros. |
||
| Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 35 mil registros. |
|||
|
Tarefas com comprimento de contexto de 64 mil |
Amazon Nova Micro | Nível completo e LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 64 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você só poderá ter até 50 mil registros. |
|
Amazon Nova Lite |
Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 64 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 50 mil registros. |
|
|
Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 64 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 30 mil registros. |
|||
| LoRa | - |
Não é possível usar LoRa de 64 mil para o Nova Lite. |
||
| Amazon Nova Pro | Nível completo e LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 64 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 17 mil registros. |
|
|
Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 64 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 15 mil registros. |
Limites do conjunto de dados de DPO
| Tamanho do contexto | Modelo | Método | Conjuntos de dados | Description |
|---|---|---|---|---|
|
Trabalhos com comprimento de contexto de 16 mil |
Amazon Nova Micro | Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você só poderá ter até 120 mil registros. |
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você só poderá ter até 125 mil registros. |
||
|
Amazon Nova Lite |
Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 130 mil registros. |
|
|
Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá concluir 20 mil amostras em 2 dias. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 140 mil registros. |
||
|
Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá concluir 20 mil amostras em 2 dias. |
|||
|
Amazon Nova Pro |
Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 45 mil registros. |
|
|
Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá concluir 20 mil amostras em 4 dias. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 55 mil registros. |
||
|
Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 16 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá concluir 20 mil amostras em 4 dias. |
|||
|
Tarefas com comprimento de contexto de 32 mil |
Amazon Nova Micro | Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você só poderá ter até 45 mil registros. |
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você só poderá ter até 50 mil registros. |
||
|
Amazon Nova Lite |
Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 55 mil registros. |
|
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 35 mil registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 60 mil registros. |
||
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 35 mil registros. |
|||
| Amazon Nova Pro | Nível completo | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 20 mil registros. |
|
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 64 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 16 mil registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 22 mil registros. |
||
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 64 mil de comprimento de contexto e, por exemplo, seja executado por 5 épocas, você poderá ter até 18 mil registros. |
Ao reduzir o número de épocas ou o tamanho do contexto de seus registros, você pode fornecer mais registros.
Configurações de SFT de classificação completa e PEFT LoRa
Esta seção aborda orientações sobre configurações de fórmulas para abordagens de ajuste fino supervisionado (SFT) de classificação completa e ajuste fino com eficiência de parâmetros com adaptação de baixa classificação (PEFT LoRa). Esses arquivos de fórmula servem como esquema para seus trabalhos de personalização de modelo, permitindo que você especifique parâmetros de treinamento, hiperparâmetros e outras configurações essenciais que determinam como o modelo aprende com os dados. Para ajustar os hiperparâmetros, siga as diretrizes em Selecionar hiperparâmetros.
Configurações de ajuste fino (SFT de classificação completa e PEFT LoRA)
A única diferença entre SFT de classificação completa e PEFT LoRa em termos de fórmula é a configuração PEFT LoRa, que é definida como “nula” para classificação completa e com valores apropriados se estiver usando o ajuste fino baseado em PEFT LoRa. Exemplos de receitas estão disponíveis no GitHub repositório de SageMaker HyperPod receitas
Sobre a configuração “run”.
| Chave | Definição | Micro | Light | Pro | |
|---|---|---|---|---|---|
| Configuração da execução | model_type |
Especifica a variante do modelo do Nova a ser usada. Não modifique esse campo. |
“amazônia. nova-micro-v1:0:128 k” |
“amazônia. nova-lite-v1:0:300 k” |
“amazônia. nova-pro-v1:0:300 k” |
| model_name_or_path |
O caminho para o modelo de base. |
“nova-micro/prod” |
“nova-lite/prod” |
“nova-pro/prod” |
|
| réplicas |
O número de instâncias de computação de ML a serem utilizadas no trabalho de transformação. |
2, 4 ou 8 |
4, 8 ou 16 |
6, 12 ou 24 |
Sobre a configuração “training_config”.
| Chave raiz | Chaves secundárias | Definição | Mín. | Máx | |
|---|---|---|---|---|---|
| max_length |
O comprimento máximo da sequência em tokens. Isso determina o tamanho da janela de contexto para treinamento. Ajustável para o múltiplo mais próximo de 1.024; valor máximo: 65.536 (para o Lite, LoRa de 32.768). |
1024 |
65.536, exceto para LoRa do Lite, que permite 32.768. | ||
| global_batch_size |
Total de amostras por etapa (os valores permitidos são 16, 32 e 64). Valor máximo: 32 para o Nova Pro, 64 para o Nova Lite e Micro. |
16 | 32 para o Nova Pro, 64 para o Nova Lite e Micro. | ||
| Configuração de trainer | trainer | max_epochs |
O número de passagens completas pelo conjunto de dados de treinamento. Para a maioria das tarefas de personalização, de uma a cinco épocas geralmente são suficientes. Recomendado manter até cinco. |
1 | - |
| Configuração de modelo | model | hidden_dropout |
Probabilidade de descartar saídas de estado oculto. Aumente (0,0-0,2) para reduzir o sobreajuste em conjuntos de dados menores. Os limites estão entre 0 e 1. |
0 | 1 |
| model | attention_dropout |
Probabilidade de descarte dos pesos de atenção. Pode ajudar na generalização. Os limites estão entre 0 e 1. |
0 | 1 | |
| model | ffn_dropout |
Probabilidade de descarte das saídas de rede de alimentação direta. Os limites estão entre 0 e 1. |
0 | 1 | |
| Configuração do otimizador | model.optim | lr |
Taxa de aprendizado. Controla o tamanho do passo durante a otimização. Os limites estão entre 0 e 1. Normalmente é definido entre 1e-6 e 1e-4 para um bom desempenho. |
0 | 1 |
| model.optim | name |
Algoritmo do otimizador. No momento, só há compatibilidade com |
- | - | |
| model.optim | adam_w_mode |
Habilita o modo AdamW (verdadeiro/falso). |
- | - | |
| model.optim | eps |
Épsilon para estabilidade numérica. |
|||
| model.optim | weight_decay |
A força de regularização de L2. Deve estar entre 0,0 e 1,0. |
0 | 1 | |
| model.optim | betas |
Os betas do otimizador Adam. Devem estar entre 0,0 e 1,0. |
0 | 1 | |
| model.optim | sched_warmup_steps |
Número de etapas para aumentar gradualmente a taxa de aprendizado. Isso melhora a estabilidade do treinamento. Entre 1 e 20. |
1 | 20 | |
| model.optim | sched_constant_steps |
Etapas em uma taxa de aprendizado constante. |
1.00E-10 | 1.00E-06 | |
| model.optim | sched.min_lr |
Taxa mínima de aprendizado no final da queda. Os limites estão entre 0 e 1, mas devem ser menores do que a taxa de aprendizado. |
0 | 1 | |
|
Configuração PEFT LoRa |
model.peft | peft_scheme |
Use “lora” ou “null”. “lora” usa o método PEFT LoRa para ajuste fino com eficiência de parâmetros. “null” inicia um ajuste fino de nível completo. |
- | - |
| model.peft | lora_tuning.loraplus_lr_ratio |
O fator de ajuste de escala da taxa de aprendizado de LoRa+. Deve estar entre 0,0 e 100,0. |
0 | 100 | |
| model.peft | lora_tuning.alpha |
Fator de ajuste de escala para pesos de LoRa. Os valores permitidos são 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
| model.peft | lora_tuning.adapter_dropout |
Regularização dos parâmetros de LoRa. Deve estar entre 0,0 e 1,0. |
0 | 1 |
Ajustar configurações específicas (DPO)
A única diferença entre a Otimização de Preferência Direta (DPO) em comparação com LoRa PEFT e FullRank SFT é em termos de configuração de dpo_cfg e valores permitidos. Consulte a tabela abaixo do exemplo para ver as permissões específicas de DPO. Exemplos de receitas estão disponíveis no GitHub repositório de SageMaker HyperPod receitas
| Chave raiz | Chaves secundárias | Definição | Mín. | Máx | |
|---|---|---|---|---|---|
| max_length | O comprimento máximo da sequência em tokens. Isso determina o tamanho da janela de contexto para treinamento. Ajustável para o múltiplo de 1.024 mais próximo. Valor máximo: 32.768. |
1024 |
32768 |
||
| global_batch_size |
Tamanho do lote global. Os valores permitidos são {16, 32, 64, 128, 256}. |
16 | 256 | ||
| Configuração de trainer | trainer | max_epochs |
O número de passagens completas pelo conjunto de dados de treinamento. Para a maioria das tarefas de personalização, de uma a cinco épocas geralmente são suficientes. O máximo de épocas é 5. |
1 | 5 |
| Configuração de modelo | model | hidden_dropout |
Probabilidade de descartar saídas de estado oculto. Aumente (0,0-0,2) para reduzir o sobreajuste em conjuntos de dados menores. Os limites estão entre 0 e 1. |
0 | 1 |
| model | attention_dropout |
Probabilidade de descarte dos pesos de atenção. Pode ajudar na generalização. Os limites estão entre 0 e 1. |
0 | 1 | |
| model | ffn_dropout |
Probabilidade de descarte das saídas de rede de alimentação direta. Os limites estão entre 0 e 1. |
0 | 1 | |
| Configuração do otimizador | model.optim | lr |
Taxa de aprendizado. Controla o tamanho do passo durante a otimização. Os limites estão entre 0 e 1. Normalmente é definido entre 1e-6 e 1e-4 para um bom desempenho. |
0 | 1 |
| model.optim | name |
Algoritmo do otimizador. No momento, só há compatibilidade com |
- | - | |
| model.optim | adam_w_mode |
Habilita o modo AdamW (verdadeiro/falso). |
- | - | |
| model.optim | eps |
Épsilon para estabilidade numérica. |
1.00E-10 | 1.00E-06 | |
| model.optim | weight_decay |
A força de regularização de L2. Deve estar entre 0,0 e 1,0. |
0 | 1 | |
| model.optim | betas |
Os betas do otimizador Adam. Devem estar entre 0,0 e 1,0. |
0 | 1 | |
| model.optim | sched_warmup_steps |
Número de etapas para aumentar gradualmente a taxa de aprendizado. Isso melhora a estabilidade do treinamento. Entre 1 e 20. |
1 | 20 | |
| model.optim | sched_constant_steps |
Etapas em uma taxa de aprendizado constante. |
|||
| model.optim | sched.min_lr |
Taxa mínima de aprendizado no final da queda. Os limites estão entre 0 e 1, mas devem ser menores do que a taxa de aprendizado. |
0 | 1 | |
|
Configuração PEFT LoRa |
model.peft | peft_scheme |
Use “lora” ou “null”. “lora” usa o método PEFT LoRa para ajuste fino com eficiência de parâmetros. “null” inicia um ajuste fino de nível completo. |
- | - |
| model.peft | lora_tuning.loraplus_lr_ratio |
O fator de ajuste de escala da taxa de aprendizado de LoRa+. Deve estar entre 0,0 e 100,0. |
0 | 100 | |
| model.peft | lora_tuning.alpha |
Fator de ajuste de escala para pesos de LoRa. Os valores permitidos são 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
| model.peft | lora_tuning.adapter_dropout |
Regularização para parâmetros de LoRa. Deve estar entre 0,0 e 1. |
0 | 1 | |
| Configuração da DPO | model-dpo_cfg | beta |
Força da aplicação de preferências. |
0.001 | 0.1 |
Executando um modelo Nova personalizado em trabalhos SageMaker de treinamento
Esta seção demonstra como executar um modelo Nova personalizado em trabalhos de SageMaker treinamento por meio de um ambiente de notebook Jupyter. Você encontrará um exemplo completo que mostra o processo de configuração e lançamento de um trabalho de treinamento, junto com tabelas de referência para selecionar a imagem de contêiner URIs e as configurações de instância apropriadas. Essa abordagem oferece controle programático sobre seus fluxos de trabalho de ajuste fino e, ao mesmo tempo, aproveita a infraestrutura gerenciada SageMaker da empresa para personalização do modelo. Para obter mais informações, consulte Usar um estimador de SageMaker IA para executar um trabalho de treinamento.
Tabelas de referência
Antes de executar o notebook de amostra, consulte as tabelas a seguir para selecionar a imagem do contêiner URIs e as configurações de instância apropriadas.
Selecionar o URI da imagem
| Fórmula | URI da imagem |
|---|---|
|
URI da imagem de SFT |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
|
URI da imagem de DPO |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest |
Selecionar o tipo e da contagem de instâncias
| Modelo | Tipo de trabalho | Tipo de instância | Contagem de instâncias recomendada | Contagem de instâncias permitidas |
|---|---|---|---|---|
| Amazon Nova Micro | Ajuste fino (SFT/DPO, LoRa) | g5.12xlarge, g6.12xlarge, g5.48xlarge,
g6.48xlarge |
1 | 1 |
| Amazon Nova Micro | Ajuste fino (SFT, FFT) |
g5.48xlarge, g6.48xlarge |
1 | 1 |
| Amazon Nova Lite | Ajuste fino (SFT, LoRa) |
g5.12xlarge, g6.12xlarge, g5.48xlarge,
g6.48xlarge |
1 | 1 |
| Amazon Nova Lite | Ajuste fino (DPO, LoRa) |
g5.48xlarge, g6.48xlarge |
1 | 1 |
| Amazon Nova Micro | Ajuste fino (SFT) |
p5.48xlarge, p5en.48xlarge |
2 | 1,2,4,8 |
| Amazon Nova Lite | Ajuste fino (SFT) |
p5.48xlarge, p5en.48xlarge |
4 | 2,4,8,16 |
| Amazon Nova Pro | Ajuste fino (SFT) |
p5.48xlarge, p5en.48xlarge |
6 | 3,6,12,24 |
| Amazon Nova Micro | Ajuste fino (DPO) |
p5.48xlarge, p5en.48xlarge |
2 | 2,4,8 |
| Amazon Nova Lite | Ajuste fino (DPO) |
p5.48xlarge, p5en.48xlarge |
4 | 4,8,16 |
| Amazon Nova Pro | Ajuste fino (DPO) |
p5.48xlarge, p5en.48xlarge |
6 | 6,12,24 |
Exemplo de bloco de notas
O exemplo de caderno a seguir demonstra como executar uma tarefa de treinamento. Para obter mais cadernos de introdução sobre como personalizar modelos Nova usando trabalhos de treinamento de SageMaker IA, consulte Usar um estimador de SageMaker IA para executar um trabalho de treinamento.
# 1. Install dependencies !pip install sagemaker==2.254.1 # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput})
Orientação sobre otimização de hiperparâmetros
Para ajustar um LLM do Nova, é necessário selecionar cuidadosamente os hiperparâmetros. Embora esta seção explique a estrutura e os componentes básicos das fórmulas, a otimização de hiperparâmetros para seu caso de uso específico geralmente requer orientação adicional. Para ver recomendações abrangentes sobre seleção de hiperparâmetros, práticas recomendadas e estratégias de otimização, consulte Selecionar hiperparâmetros. Esse recurso oferece orientação detalhada sobre como selecionar taxas de aprendizado, tamanhos de lote, épocas de treinamento e outros parâmetros essenciais apropriados com base nas características do conjunto de dados e nos objetivos do treinamento. Recomendamos consultar este guia ao ajustar a configuração da fórmula para obter o desempenho ideal do modelo.
Para obter detalhes sobre valores mínimos, máximos e padrão para épocas, taxa de aprendizado e etapas de aquecimento do aprendizado, consulte Hiperparâmetros para modelos de compreensão.
Modificações comuns nas fórmulas
Veja abaixo alguns ajustes de fórmula comuns com base em casos de uso específicos:
-
Para conjuntos de dados menores (< 1.000 exemplos)
training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
-
Para eficiência com computação limitada
peft: peft_scheme: "lora" lora_tuning:
-
Para ajustes complexos de instruções
optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability