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á.
Ajustando os modelos do Amazon Nova usando SageMaker trabalhos de treinamento
O ajuste fino dos modelos do Amazon Nova com trabalhos de SageMaker treinamento oferece uma maneira poderosa de personalizar modelos básicos para seus casos de uso específicos.
Tópicos
Pré-requisitos
Antes de iniciar um trabalho de treinamento, observe o seguinte.
-
Buckets do Amazon S3 para armazenar seus dados de entrada e saída de trabalhos 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 obter mais informações, consulte Criação de um bucket de uso geral.
-
Uma função do IAM com permissões para executar um trabalho de treinamento. Certifique-se de anexar uma política do IAM com
AmazonSageMakerFullAccess. Para obter mais informações, consulte Como usar funções SageMaker de execução. -
Receitas básicas do Amazon Nova, vejaObtendo receitas da Amazon Nova.
Preparação de dados
Preparar dados de alta qualidade e formatados adequadamente é uma primeira etapa essencial no processo de ajuste fino para grandes modelos de linguagem. Se você estiver usando abordagens de ajuste fino supervisionado (SFT) ou Otimização de Preferência Direta (DPO), com abordagens de adaptação completa ou baixa classificação (LoRa), seus dados devem cumprir requisitos de formato específicos para garantir o sucesso do treinamento do modelo. Esta seção descreve os formatos de dados, os métodos de validação e as melhores práticas necessários para ajudá-lo a preparar seus conjuntos de dados de forma eficaz para ajustar os 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 Converse. Para obter exemplos e restrições desse formato, consulte Preparação de dados para ajuste fino. Compreendendo os modelos.
Validação de dados SFT — Para validar o formato do conjunto de dados antes do envio, recomendamos usar o seguinte script de validação do repositório de amostras Amazon Bedrockjsonl arquivos estejam de acordo com as especificações de formato exigidas e a identificar possíveis problemas antes de enviar seu trabalho 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 Converse. O conjunto de dados também precisa estar no formato semelhante ao SFT, exceto que o último turno precisa ter pares de preferências.
Outras restrições do conjunto de dados do DPO - Outras restrições nos conjuntos de dados são as mesmas para o SFT. Para obter mais informações, consulte Restrições do conjunto de dados. Espera-se um único arquivo JSONL para treinamento e um único arquivo JSONL para validação. O conjunto de validação é opcional.
Recomendações do conjunto de dados do DPO - Um mínimo de 1.000 pares de preferências para um treinamento eficaz. Dados de preferências de alta qualidade resultarão em resultados mais eficientes.
Exemplo de formato de dados do 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" } ] }
Formato de dados do DPO de amostra (várias voltas)
{ "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" } ] } ], }
Formato de dados do DPO de amostra (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" } ] } ], }
Os trabalhos de treinamento têm como padrão um limite de tempo de 1 dia, embora as estimativas nas tabelas abaixo assumam uma duração de treinamento de 5 dias para fins ilustrativos. Como prática recomendada, recomendamos aumentar seu limite de tempo de treinamento para 28 dias no máximo para acomodar cargas de trabalho de treinamento mais longas. Para solicitar um aumento de limite, consulte Solicitar um aumento de cota.
Limites do conjunto de dados SFT
| Duração do contexto | Modelo | Método | Conjuntos de dados | Descrição |
|---|---|---|---|---|
|
Trabalhos de 32k com duração de contexto |
Amazon Nova Micro | Classificação completa e LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você só poderá ter até 100k registros. |
|
Amazon Nova Lite |
Classificação completa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 100k registros. |
|
| Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 50k registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 100k registros. |
||
| Imagem e vídeo | Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 90k registros. | |||
|
Amazon Nova Pro |
Classificação completa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 40k registros. |
|
| Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 30k registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 40k registros. |
||
| Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 35k registros. |
|||
|
Trabalhos de 64k com duração de contexto |
Amazon Nova Micro | Classificação completa e LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham um comprimento de contexto de 64k e, por exemplo, sejam executados por 5 épocas, você só poderá ter até 50k registros. |
|
Amazon Nova Lite |
Classificação completa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham um comprimento de contexto de 64k e, por exemplo, sejam executados por 5 épocas, você pode ter até 50k registros. |
|
|
Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham um comprimento de contexto de 64k e, por exemplo, sejam executados por 5 épocas, você pode ter até 30k registros. |
|||
| LoRa | - |
LoRa não é suportado em 64k para Nova Lite. |
||
| Amazon Nova Pro | Classificação completa e LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham um comprimento de contexto de 64k e, por exemplo, sejam executados por 5 épocas, você poderá ter até 17k registros. |
|
|
Imagem e vídeo |
Se você usar um conjunto de dados em que todos os registros tenham um comprimento de contexto de 64k e, por exemplo, sejam executados por 5 épocas, você pode ter até 15k registros. |
Limites do conjunto de dados do DPO
| Duração do contexto | Modelo | Método | Conjuntos de dados | Descrição |
|---|---|---|---|---|
|
Trabalhos de 16k com duração de contexto |
Amazon Nova Micro | Classificação completa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você só poderá ter até 120k registros. |
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 16k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você só poderá ter até 125k registros. |
||
|
Amazon Nova Lite |
Classificação completa | Somente texto |
Se você usa um conjunto de dados em que todos os registros têm 16k de comprimento de contexto e, por exemplo, são executados por 5 épocas, você pode ter até 130k registros. |
|
|
Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 16k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, poderá concluir 20k amostras em 2 dias |
|||
| LoRa | Somente texto |
Se você usa um conjunto de dados em que todos os registros têm 16k de comprimento de contexto e, por exemplo, são executados por 5 épocas, você pode ter até 140k registros. |
||
|
Imagem |
se você usar um conjunto de dados em que todos os registros tenham 16k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá concluir 20k amostras em 2 dias. |
|||
|
Amazon Nova Pro |
Classificação completa | Somente texto |
Se você usa um conjunto de dados em que todos os registros têm 16k de comprimento de contexto e, por exemplo, são executados por 5 épocas, você pode ter até 45k registros. |
|
|
Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 16k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, poderá concluir 20k amostras em 4 dias |
|||
| LoRa | Somente texto |
Se você usa um conjunto de dados em que todos os registros têm 16k de comprimento de contexto e, por exemplo, são executados por 5 épocas, você pode ter até 55k registros. |
||
|
Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 16k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, poderá concluir 20k amostras em 4 dias |
|||
|
Trabalhos de 32k com duração de contexto |
Amazon Nova Micro | Classificação completa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você só poderá ter até 45k registros. |
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você só poderá ter até 50k registros. |
||
|
Amazon Nova Lite |
Classificação completa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 55k registros. |
|
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 35k registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 60k registros. |
||
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 35k registros. |
|||
| Amazon Nova Pro | Classificação completa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 20k registros. |
|
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham um comprimento de contexto de 64k e, por exemplo, sejam executados por 5 épocas, você pode ter até 16k registros. |
|||
| LoRa | Somente texto |
Se você usar um conjunto de dados em que todos os registros tenham 32k de comprimento de contexto e, por exemplo, sejam executados por 5 épocas, você poderá ter até 22k registros. |
||
| Imagem |
Se você usar um conjunto de dados em que todos os registros tenham um comprimento de contexto de 64k e, por exemplo, sejam executados por 5 épocas, você poderá ter até 18k registros. |
Ao reduzir o número de épocas ou o tamanho do contexto de seus registros, você pode fornecer mais registros.
Configurações SFT e LoRa PEFT de classificação completa
Esta seção aborda orientações sobre configurações de receitas para abordagens de ajuste fino supervisionado (SFT) de classificação completa e ajuste fino eficiente de parâmetros de adaptação (LoRa PEFT). Esses arquivos de receita servem como modelo para seus trabalhos de personalização de modelos, permitindo que você especifique parâmetros de treinamento, hiperparâmetros e outras configurações críticas que determinam como seu modelo aprende com seus dados. Para ajustar os hiperparâmetros, siga as diretrizes em Seleção de hiperparâmetros.
Configurações de ajuste fino (Full-rank SFT e LoRa PEFT)
A única diferença entre SFT de classificação completa e LoRa PEFT em termos de receita é a configuração LoRa PEFT, que é definida como 'nula' para classificação completa e definida com valores apropriados se estiver usando o ajuste fino baseado em LoRa PEFT. Exemplos de receitas estão disponíveis no GitHub repositório de SageMaker HyperPod receitas
Sobre a configuração de “execução”.
| Chave | Definição | Micro | Light | Pro | |
|---|---|---|---|---|---|
| Configuração da execução | tipo_modelo |
Especifica a variante do modelo 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” |
| nome_ou_caminho_modelo |
O caminho para o modelo básico. |
“nova-micro/prod” |
“nova-lite/prod” |
“nova-pro/prod” |
|
| réplicas |
O número de instâncias de computação a serem usadas para treinamento distribuído. |
2, 4 ou 8 |
4, 8 ou 16 |
6, 12 ou 24 |
Sobre a configuração “training_config”.
| Chave raiz | Chaves infantis | 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 1024 mais próximo, valor máximo: 65536 (para Lite Lora 32768). |
1024 |
65536, exceto Lite LoRa, que suporta 32768. | ||
| tamanho_do_lote_global |
Total de amostras por etapa, os valores permitidos são 16, 32, 64. Valor máximo: 32 para Nova Pro, 64 para Nova Lite e Micro. |
16 | 32 para Nova Pro, 64 para Nova Lite e Micro. | ||
| Configuração do treinador | treinador | épocas máximas |
O número de passagens completas pelo seu conjunto de dados de treinamento. Para a maioria das tarefas de personalização, de 1 a 5 épocas geralmente são suficientes. Recomendado manter até 5. |
1 | - |
| Configuração do modelo | modelo | desistência_oculta |
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 |
| modelo | abandono de atenção |
Probabilidade de perder os pesos de atenção. Pode ajudar na generalização. Os limites estão entre 0 e 1. |
0 | 1 | |
| modelo | ffn_dropout |
Probabilidade de queda das saídas da rede de feed-forward. Os limites estão entre 0 e 1. |
0 | 1 | |
| Configuração do otimizador | model.optim | ou |
Taxa de aprendizado, controla o tamanho da etapa 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 | nome |
Algoritmo otimizador. No momento, só há compatibilidade com |
- | - | |
| model.optim | adam_w_mode |
Ative o modo AdamW (verdadeiro/falso). |
- | - | |
| model.optim | eps |
Epsilon para estabilidade numérica. |
|||
| model.optim | decaimento de peso |
A força de regularização 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 | agendar etapas de aquecimento |
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 | cronograma de etapas constantes |
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 decadência. Os limites estão entre 0 e 1, mas devem ser menores que a taxa de aprendizado. |
0 | 1 | |
|
Configuração LoRa PEFT |
modelo.peft | esquema_esquerdo |
Use “lora” ou “null”. “lora” usa o método LoRa PEFT para um ajuste fino com eficiência de parâmetros. “null” inicia um ajuste fino de classificação completa. |
- | - |
| modelo.peft | lora_tuning.loraplus_lr_ratio |
O fator de escala da taxa de aprendizagem LoRa+ deve estar entre 0,0 e 100,0. |
0 | 100 | |
| modelo.peft | lora_tuning.alpha |
Fator de escala para pesos LoRa. Os valores permitidos são 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
| modelo.peft | lora_tuning.adapter_dropout |
Regularização para parâmetros LoRa. Deve estar entre 0,0 e 1,0. |
0 | 1 |
Ajustando 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 de permissões específicas para DPO. Exemplos de receitas estão disponíveis no GitHub repositório de SageMaker HyperPod receitas
| Chave raiz | Chaves infantis | 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 1024 mais próximo, valor máximo: 32.768. |
1024 |
32768 |
||
| tamanho_do_lote_global |
Tamanho global do lote, os valores permitidos são {16, 32, 64, 128, 256}. |
16 | 256 | ||
| Configuração do treinador | treinador | épocas máximas |
O número de passagens completas pelo seu conjunto de dados de treinamento. Para a maioria das tarefas de personalização, de 1 a 5 épocas geralmente são suficientes. O máximo de épocas é 5. |
1 | 5 |
| Configuração do modelo | modelo | desistência_oculta |
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 |
| modelo | abandono de atenção |
Probabilidade de perder os pesos de atenção. Pode ajudar na generalização. Os limites estão entre 0 e 1. |
0 | 1 | |
| modelo | ffn_dropout |
Probabilidade de queda das saídas da rede de feed-forward. Os limites estão entre 0 e 1. |
0 | 1 | |
| Configuração do otimizador | model.optim | ou |
Taxa de aprendizado, controla o tamanho da etapa 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 | nome |
Algoritmo otimizador. No momento, só há compatibilidade com |
- | - | |
| model.optim | adam_w_mode |
Ative o modo AdamW (verdadeiro/falso). |
- | - | |
| model.optim | eps |
Epsilon para estabilidade numérica. |
1.00E-10 | 1.00E-06 | |
| model.optim | decaimento de peso |
A força de regularização 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 | agendar etapas de aquecimento |
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 | cronograma de etapas constantes |
Etapas em uma taxa de aprendizado constante. |
|||
| model.optim | sched.min_lr |
Taxa mínima de aprendizado no final da decadência. Os limites estão entre 0 e 1, mas devem ser menores que a taxa de aprendizado. |
0 | 1 | |
|
Configuração LoRa PEFT |
modelo.peft | esquema_esquerdo |
Use “lora” ou “null”. “lora” usa o método LoRa PEFT para um ajuste fino com eficiência de parâmetros. “null” inicia um ajuste fino de classificação completa. |
- | - |
| modelo.peft | lora_tuning.loraplus_lr_ratio |
O fator de escala da taxa de aprendizagem LoRa+ deve estar entre 0,0 e 100,0. |
0 | 100 | |
| modelo.peft | lora_tuning.alpha |
Fator de escala para pesos LoRa. Os valores permitidos são 32, 64, 96, 128, 160 e 192. |
32 | 192 | |
| modelo.peft | lora_tuning.adapter_dropout |
Regularização para parâmetros LoRa. Deve estar entre 0,0 e 1,0. |
0 | 1 | |
| Configuração do DPO | modelo-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.
Seleção do URI da imagem
| Fórmula | URI da imagem |
|---|---|
|
URI da imagem SFT |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
|
URI da imagem DPO |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest |
Seleção do 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) |
p5.48xlarge |
2 | 2,4,8 |
| Amazon Nova Lite | Ajuste fino (SFT/DPO) |
p5.48xlarge |
4 | 4,8,16 |
| Amazon Nova Pro | Ajuste fino (SFT/DPO) |
p5.48xlarge |
6 | 6,12,24 |
Exemplo de bloco de notas
O exemplo de caderno a seguir demonstra como executar um trabalho 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. 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}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")
Guia de otimização de hiperparâmetros
O ajuste fino do seu modelo Nova LLM requer uma seleção cuidadosa dos hiperparâmetros. Embora esta seção explique a estrutura e os componentes básicos da receita, a otimização de hiperparâmetros para seu caso de uso específico geralmente requer orientação adicional. Para recomendações abrangentes sobre seleção de hiperparâmetros, melhores práticas e estratégias de otimização, consulte Seleção de hiperparâmetros. Esse recurso fornece orientação detalhada sobre como selecionar taxas de aprendizado, tamanhos de lote, épocas de treinamento e outros parâmetros críticos adequados com base nas características do conjunto de dados e nos objetivos do treinamento. Recomendamos consultar este guia ao ajustar a configuração da receita 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 entender os modelos.
Modificações comuns na receita
Aqui estão alguns ajustes comuns de receitas 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