Ajuste o Nova 1.0 - SageMaker IA da Amazon

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 Bedrock. Essa ferramenta de validação ajudará a garantir que seus arquivos jsonl 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. As tabelas a seguir mostram configurações detalhadas que podem ser úteis.

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 distributed_fused_adam.

- -
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. A tabela a seguir mostra configurações detalhadas que podem ser úteis.

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 distributed_fused_adam.

- -
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