Ajustar o Nova 1.0
nota
Você pode ajustar a série de modelos do Amazon Nova 1.0 usando o ajuste fino supervisionado (SFT) e a otimização direta de preferências. Para ajustar os modelos Nova 2.0, consulte Ajustar o Nova 2.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. Seus buckets devem estar na mesma Região da AWS onde 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 os perfis de execução do SageMaker AI. -
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 de SFT: tanto para o SFT full-rank quanto para o SFT LoRA, 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 de DPO: tanto para o DPO em full-rank quanto para 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 | Descrição |
|---|---|---|---|---|
|
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 | Descrição |
|---|---|---|---|---|
|
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 fórmulas estão disponíveis no repositório de fórmulas
Sobre a configuração “run”.
| Chave | Definição | Micro | Light | Profissional | |
|---|---|---|---|---|---|
| Configuração da execução | model_type |
Especifica a variante do modelo do Nova a ser usada. Não modifique esse campo. |
“amazon.nova-micro-v1:0:128k” |
“amazon.nova-lite-v1:0:300k” |
“amazon.nova-pro-v1:0:300k” |
| 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 direta de preferências (DPO) em comparação com PEFT LoRA e SFT de classificação completa refere-se à configuração de dpo_cfg e aos valores permitidos. Consulte a tabela abaixo do exemplo para ver as permissões específicas de DPO. Exemplos de fórmulas estão disponíveis no repositório de fórmulas
| 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 |
32.768 |
||
| 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 |
Executar um modelo Nova personalizado em tarefas de treinamento do SageMaker
Esta seção demonstra como executar um modelo Nova personalizado em tarefas de treinamento do SageMaker por meio de um ambiente de caderno Jupyter. Você encontrará um exemplo completo que mostra o processo de configuração e execução de uma tarefa de treinamento, com tabelas de referência para selecionar as configurações de instância e os URIs de imagem de contêiner apropriados. Essa abordagem oferece controle programático sobre seus fluxos de trabalho de ajuste fino e, ao mesmo tempo, utiliza a infraestrutura gerenciada do SageMaker AI para personalização de modelos. Para ter mais informações, consulte Usar um estimador do SageMaker AI para executar uma tarefa de treinamento.
Tabelas de referência
Antes de executar o caderno de amostra, consulte as tabelas a seguir para selecionar as configurações de instância e os URIs de imagem de contêiner apropriados.
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 tarefa de ajuste fino | Tipo de técnica | Tipo de instância | Contagem de instâncias recomendada | Contagem de instâncias permitidas |
|---|---|---|---|---|---|
| Amazon Nova Micro | SFT | LoRa | g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge |
1 | 1 |
| LoRA+Full rank | g5.48xlarge, g6.48xlarge |
1 | 1 | ||
p4d.24xlarge |
2 | 2, 4, 8 | |||
p5.48xlarge, p5en.48xlarge |
1 | 1, 2, 4, 8 | |||
| DPO | LoRa | g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge |
1 | 1 | |
| LoRA+Full rank | p4d.24xlarge, p5.48xlarge, p5en.48xlarge |
2 | 2, 4, 8 | ||
| Amazon Nova Lite | SFT | LoRa | g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge |
1 | 1 |
p5.48xlarge, p5en.48xlarge |
1 | 1, 4, 8, 16 | |||
| LoRA+Full rank | p4d.24xlarge |
4 | 4, 8, 16 | ||
p5.48xlarge, p5en.48xlarge |
2 | 2, 4, 8, 16 | |||
| DPO | LoRa | g5.48xlarge, g6.48xlarge |
1 | 1 | |
| LoRA+Full rank | p4d.24xlarge, p5.48xlarge, p5en.48xlarge |
4 | 4, 8, 16 | ||
| Amazon Nova Pro | SFT | LoRa | p4d.24xlarge |
6 | 6, 12, 24 |
p5.48xlarge, p5en.48xlarge |
3 | 3, 6, 12, 24 | |||
| LoRA+Full rank | p5.48xlarge, p5en.48xlarge |
6 | 6, 12, 24 | ||
| DPO | LoRa | p4d.24xlarge |
6 | 6, 12, 24 | |
| LoRA+Full rank | p4d.24xlarge |
12 | 12, 24 | ||
p5.48xlarge, p5en.48xlarge |
4 | 4, 8, 16 |
Exemplo de bloco de notas
O exemplo de caderno a seguir demonstra como executar uma tarefa de treinamento. Para ver outros cadernos de introdução sobre como personalizar modelos Nova usando tarefas de treinamento do SageMaker, consulte Usar um estimador do SageMaker AI para executar uma tarefa 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>" output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption # 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, output_kms_key=output_kms_key ) 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