Ajuste fino supervisionado (SFT) no Nova 2.0 no SageMaker HyperPod
O Amazon Nova Lite 2.0 traz recursos aprimorados para ajuste fino supervisionado, incluindo modo de raciocínio avançado, melhor compreensão multimodal e tratamento de contexto estendido. O SFT no Nova Lite 2.0 permite que você adapte esses recursos avançados aos seus casos de uso específicos, mantendo a performance superior do modelo em tarefas complexas.
Os principais recursos do SFT no Nova Lite 2.0 estão resumidos em Recursos compatíveis.
Para determinar se o SFT é adequado para seu caso de uso, consulte Ajuste fino supervisionado (SFT).
Tópicos
Confira abaixo um exemplo de fórmula para o SFT. Essa e outras fórmulas podem ser encontradas no repositório de fórmulas do SageMaker HyperPod
run: name: my-full-rank-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # SageMaker HyperPod only and not compatible with SageMaker Training Jobs replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (HyperPod job-specific; not compatible with standard SageMaker Training Jobs) mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-full-rank-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-full-rank-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: ${oc.select:training_config.max_steps} # How many training steps the checkpoint will be saved save_top_k: 5 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Global batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates adam_beta2: 0.95 # Exponential decay rate for second-moment estimates peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "null" # Disable LoRA for PEFT
Seleção do modo de raciocínio (somente Nova 2.0)
O Amazon Nova 2.0 é compatível com o modo de raciocínio para recursos analíticos aprimorados:
-
Modo de raciocínio (habilitado):
-
Definir
reasoning_enabled: truena configuração de treinamento -
O modelo treina para gerar rastros de raciocínio antes das respostas finais
-
Melhora o desempenho em tarefas complexas de raciocínio
-
-
Modo sem raciocínio (desabilitado):
-
Definir
reasoning_enabled: falseou omitir o parâmetro (padrão) -
SFT padrão sem raciocínio explícito
-
Adequado para tarefas que não se beneficiam do raciocínio passo a passo
-
nota
-
Quando o raciocínio está habilitado, ele opera com alto esforço de raciocínio. Não há uma opção de baixo raciocínio para o SFT.
-
O conteúdo de raciocínio multimodal não é compatível com o SFT. O modo de raciocínio se aplica a entradas somente de texto.
É permitido treinar o Amazon Nova em um conjunto de dados sem raciocínio com reasoning_enabled:
true. No entanto, isso pode fazer com que o modelo perca suas capacidades de raciocínio, pois o Amazon Nova aprende primariamente a gerar as respostas apresentadas nos dados sem aplicar o raciocínio.
Se estiver treinando o Amazon Nova em um conjunto de dados sem raciocínio, mas ainda quiser usar o raciocínio durante a inferência:
-
Desabilite o raciocínio durante o treinamento (
reasoning_enabled: false) -
Habilite o raciocínio posteriormente durante a inferência
Embora essa abordagem permita o raciocínio no momento da inferência, ela não garante um melhor desempenho em comparação com a inferência sem raciocínio.
Prática recomendada: habilite o raciocínio para treinamento e inferência ao usar conjuntos de dados de raciocínio, e desabilite-o para ambos ao usar conjuntos de dados sem raciocínio.
nota
Para obter mais informações sobre imagens de contêineres e exemplos de fórmilas, consulte Fórmulas do Amazon Nova.
Iniciar um trabalho de ajuste fino no SageMaker HyperPod
Preparar seus dados
Para obter informações sobre formato dos dados, recursos compatíveis, restrições e melhores práticas para preparar os dados de treinamento do SFT, consulte Preparar dados para SFT no Amazon Nova 2.
Carregar seus dados
Faça upload de conjuntos de dados de treinamento e validação para um bucket do S3. Especifique esses locais no bloco run da fórmula:
## Run config run: ... data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"
nota
Substitua <bucket-name>, <training-directory>, <validation-directory>, <training-file> e <validation-file> por caminhos reais do S3.
nota
No momento, os conjuntos de dados de validação não são compatíveis com o SFT com o Amazon Nova 2.0. Se um conjunto de dados de validação for fornecido, ele será ignorado.
Definir a configuração
Defina o modelo base usando os campos model_type e model_name_or_path no bloco run:
## Run config run: ... model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod ...
Parâmetros de ajuste do SFT
Os parâmetros que estão disponíveis para ajuste com o SFT incluem:
Configuração da execução
-
name: um nome descritivo para a tarefa de treinamento. Isso ajuda a identificar sua tarefa no Console de Gerenciamento da AWS.
-
model_type: a variante do modelo do Amazon Nova a ser usada. As opções disponíveis são
amazon.nova-2-lite-v1:0:256k. -
model_name_or_path: o caminho para o modelo de base a ser usado em seu treinamento. As opções disponíveis são
nova-lite-2/prodou o caminho do S3 para o ponto de verificação pós-treinamento (s3://customer-escrow-bucket-unique_id/training_run_name). -
replicas: o número de instâncias de computação a serem usadas no treinamento distribuído. Os valores disponíveis variam de acordo com o modelo escolhido. O Amazon Nova Lite 2.0 é compatível com 4, 8, 16 ou 32 réplicas.
-
data_s3_path: o local no S3 do conjunto de dados de treinamento, que é um arquivo JSONL. Esse arquivo deve residir na mesma conta e região da AWS que o cluster. Todos os locais do S3 fornecidos devem estar na mesma conta e região.
-
validation_data_s3_path: (opcional) o local no S3 do conjunto de dados de validação, que é um arquivo JSONL. Esse arquivo deve estar na mesma conta e região que o cluster. Todos os locais do S3 fornecidos devem estar na mesma conta e região.
-
output_s3_path: o local do S3 onde o manifesto e os logs do TensorBoard são armazenados. Todos os locais do S3 fornecidos devem estar na mesma conta da AWS e região da AWS.
-
mlflow_tracking_uri: o ARN da aplicação MLFlow a ser usada para o registro em log do MLFlow.
-
mlflow_experiment_name: nome do experimento do MLFlow.
-
mlflow_run_name: nome de execução do MLFlow.
Configuração do treinamento
-
max_steps: o número de etapas de treinamento a serem executadas. Cada etapa treinará o modelo com a quantidade de elementos definida no
global_batch_size. -
save_steps: a frequência (em etapas) na qual os pontos de verificação do modelo são salvos durante o treinamento.
-
save_top_k: o número máximo dos melhores pontos de verificação a serem retidos com base nas métricas de validação.
-
max_length: o tamanho máximo da sequência em tokens. Isso determina o tamanho da janela de contexto para treinamento. O valor máximo permitido é 32.768 tokens para o SFT.
Sequências mais longas melhorarão a eficiência do treinamento à custa de maiores requisitos de memória. Recomendamos que você faça a correspondência do parâmetro max_length com sua distribuição de dados.
-
global_batch_size: o número total de exemplos de treinamento processados juntos em uma única etapa de propagação (forward ou backward) em todos os dispositivos e operadores.
Esse valor multiplica o tamanho do lote por dispositivo e o número de dispositivos. Isso afeta a estabilidade do treinamento e o throughput. Recomendamos que você comece com um tamanho de lote que caiba confortavelmente na memória e possa ter a escala aumentada verticalmente a partir daí. Para dados específicos do domínio, lotes maiores podem suavizar demais os gradientes.
-
reasoning_enabled: sinalizador booleano para habilitar recursos de raciocínio durante o treinamento.
Programador da taxa de aprendizado
-
warmup_steps: o número de etapas para aumentar gradualmente a taxa de aprendizado. Isso melhora a estabilidade do treinamento.
-
min_lr: a taxa mínima de aprendizado ao término do decaimento. Os valores válidos estão entre 0-1, inclusive, mas devem ser menores que a taxa de aprendizado.
Configuração do otimizador
-
lr: a taxa de aprendizado, que controla o tamanho da etapa durante a otimização. Recomendamos valores entre 1e-6 e 1e-4 para um obter bom desempenho. Os valores válidos estão entre 0 e 1, inclusive.
-
weight_decay: a força de regularização de L2. Valores mais altos (entre 0,01 e 0,1) aumentam a regularização.
-
adam_beta1: a taxa de decaimento exponencial para as estimativas do primeiro momento no otimizador Adam. O padrão é de 0.9.
-
adam_beta2: a taxa de decaimento exponencial para as estimativas do segundo momento no otimizador Adam. A padrão é 0.95.
Configuração do PEFT
-
peft_scheme: o esquema de ajuste fino com eficiência de parâmetros a ser usado. As opções são
'null'para ajuste fino de full-rank oulorapara ajuste fino baseado em LoRA.
Ajuste LoRA (quando peft_scheme é "lora")
-
alpha: o parâmetro de escala LoRA. Controla a magnitude da adaptação de low-rank. Os valores típicos variam de 8 a 128.
-
lora_plus_lr_ratio: a taxa de aprendizado para a otimização via LoRA+. Esse multiplicador ajusta a taxa de aprendizado especificamente para os parâmetros LoRA.
Orientações de hiperparâmetros
Use os seguintes hiperparâmetros recomendados com base na abordagem de treinamento:
Treinamento de full-rank
-
Épocas: 1
-
Taxa de aprendizado (lr): 1e-5
-
Taxa mínima de aprendizado (min_lr): 1e-6
LoRA (Low-Rank Adaptation)
-
Épocas: 2
-
Taxa de aprendizado (lr): 5e-5
-
Taxa mínima de aprendizado (min_lr): 1e-6
nota
Ajuste os valores com base no tamanho do conjunto de dados e na performance da validação. Monitore as métricas de treinamento para evitar sobreajuste.