View a markdown version of this page

DPO - 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á.

DPO

Description

A Otimização de Preferência Direta (DPO) alinha um modelo às preferências humanas treinando pares de respostas escolhidas (preferidas) e rejeitadas (não preferidas) para a mesma solicitação.

Quando usar

  • Você tem dados de preferência que mostram quais respostas são melhores

  • Melhore a qualidade da resposta além do que a SFT alcança

  • O modelo precisa evitar comportamentos indesejáveis específicos

O que ela alcança

O modelo aprende a preferir gerar respostas semelhantes aos exemplos escolhidos e a evitar exemplos rejeitados, sem exigir um modelo de recompensa separado.

Formato do conjunto de dados

O DPO exige pares de respostas escolhidas (preferenciais) e rejeitadas (não preferenciais) para a mesma solicitação. O DPO oferece suporte a dois formatos de conjunto de dados. Todos os conjuntos de dados devem estar no formato JSONL (um objeto JSON por linha). Uma system mensagem é opcional em ambos os formatos.

Formato 1: mensagens

Forneça chosen e rejected como listas completas de mensagens. Se incluída, a system mensagem deve ser o primeiro elemento e deve ser a mesma em chosen rejected e.

{ "chosen": [ {"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."} ], "rejected": [ {"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."} ] }

Formato 2: solicitado/escolhido/rejeitado

Forneça a solicitação e as duas respostas como campos de string separados, com um system campo opcional de nível superior.

{ "system": "...", "prompt": "...", "chosen": "...", "rejected": "..." }

Orientação

  • As respostas escolhidas e rejeitadas devem diferir significativamente em qualidade

  • Use o mesmo prompt para os escolhidos e rejeitados

  • A system mensagem é opcional

Hiperparâmetros - DPO LoRa

nota

As tabelas abaixo mostram os hiperparâmetros disponíveis quando você usa a personalização do modelo sem servidor. Outros hiperparâmetros são predefinidos pela Amazon SageMaker AI usando padrões otimizados. Ao usar o SageMaker AI Training Jobs ou HyperPod, você pode acessar a lista completa de hiperparâmetros disponíveis nas receitas. Consulte o repositório SageMaker AI Recipes para obter uma receita e acessar todos os hiperparâmetros.

Parâmetro Tipo Obrigatório? Intervalo/Valores Description
max_epochsintegerObrigatório1–100Número de passagens completas pelo conjunto de dados de treinamento.
global_batch_sizeintegerObrigatório16, 32, 64, 128Total de amostras processadas por etapa do otimizador em todas as instâncias.
learning_rateflutuaçãoObrigatório5e-07—1e-04Tamanho da etapa para atualizações de peso durante a otimização.
lr_schedulerstringObrigatóriocosseno, constanteCronograma de declínio da taxa de aprendizado durante o treinamento.
lr_warmup_steps_ratioflutuaçãoObrigatório0—1Fração do total de etapas gastas aumentando a taxa de aprendizado de 0.
weight_decayflutuaçãoObrigatório0, 0 a 1,0Coeficiente de regularização L2. Ajuda a evitar o sobreajuste.
gradient_clippingbooleanoObrigatóriotrue, falseReduza os gradientes se a norma exceder o limite.
gradient_clipping_thresholdflutuaçãoObrigatório0,0—5,0Norma de gradiente máxima permitida.
dataset_max_lenintegerObrigatório256—131072Tamanho máximo de sequência em tokens. As sequências mais longas são truncadas.
seedintegerObrigatório0–2147483647Semente aleatória para reprodutibilidade.
logging_stepsintegerObrigatório1–100Frequência do registro de métricas nas etapas do otimizador.
lora_rankintegerObrigatório8, 16, 32, 64, 128Dimensionalidade de matrizes de baixa classificação. Menor = menos parâmetros treináveis.
lora_dropoutflutuaçãoObrigatório0, 0 a 1,0Probabilidade de abandono para camadas LoRA adaptadoras.
lora_alphaintegerObrigatório16, 32, 64, 128, 256LoRAfator de escala. O LR eficaz é escalado como alpha/rank.
merge_weightsbooleanoObrigatóriotrue, falseCombine LoRA pesos no modelo básico após o treinamento.
train_val_split_ratioflutuaçãoOpcional0, 0 a 1,0Fração alocada para treinamento versus validação.
temperatureflutuaçãoObrigatório0,0—2,0Temperatura de amostragem para avaliação.
adam_betaflutuaçãoObrigatório1e-03—0,1Temperatura inversa do DPO. Controla a intensidade com que o modelo impõe classificações de preferências.

Hiperparâmetros - DPO FFT

Parâmetro Tipo Obrigatório? Intervalo/Valores Description
max_epochsintegerObrigatório1–100Número de passagens completas pelo conjunto de dados de treinamento.
global_batch_sizeintegerObrigatório16, 32, 64, 128Total de amostras processadas por etapa do otimizador.
learning_rateflutuaçãoObrigatório5e-07—1e-04Tamanho da etapa para atualizações de peso.
lr_schedulerstringObrigatóriocosseno, constanteCronograma de decaimento da taxa de aprendizado.
lr_warmup_steps_ratioflutuaçãoObrigatório0—1Fração de etapas para aquecimento do LR.
weight_decayflutuaçãoObrigatório0, 0 a 1,0Coeficiente de regularização L2.
gradient_clippingbooleanoObrigatóriotrue, falseReduza os gradientes se a norma exceder o limite.
gradient_clipping_thresholdflutuaçãoObrigatório0,0—5,0Norma de gradiente máxima permitida.
dataset_max_lenintegerObrigatório256—131072Tamanho máximo de sequência em tokens.
max_response_lengthintegerObrigatório100—200000Máximo de tokens para resposta gerada.
seedintegerObrigatório0–2147483647Semente aleatória para reprodutibilidade.
logging_stepsintegerObrigatório1–100Frequência do registro métrico.
train_val_split_ratioflutuaçãoOpcional0, 0 a 1,0Fração alocada para treinamento versus validação.
temperatureflutuaçãoObrigatório0,0—2,0Temperatura de amostragem para avaliação.
adam_betaflutuaçãoObrigatório1e-03—0,1Temperatura inversa do DPO. Controla a intensidade com que o modelo impõe classificações de preferências.