Neste documento, descrevemos como realizar o ajuste de preferência em um modelo do Gemini.
Antes de começar
Antes de começar, prepare um conjunto de dados seguindo as instruções em Preparar dados de ajuste de preferência para modelos do Gemini.
Criar um modelo de ajuste
Console
Para configurar o ajuste de preferência usando o console do Google Cloud , siga estas etapas:
Na seção Gemini Enterprise Agent Platform do console do Google Cloud , acesse a página Ajuste.
Clique em Criar modelo ajustado.
Selecione Ajuste de preferência.
Em Detalhes do modelo, configure o seguinte:
- No campo Nome do modelo ajustado, insira um nome para o novo modelo ajustado com até 128 caracteres.
- No campo Modelo base, selecione o modelo de fundação que será ajustado.
- No campo suspenso Região, selecione a região em que o job de ajuste do pipeline será executado e onde o modelo ajustado será implantado.
Em Configuração de ajuste, configure o seguinte:
- No campo Número de períodos, insira o número de etapas a serem executadas para o ajuste do modelo.
- No campo Tamanho do adaptador, insira o tamanho do adaptador a ser usado para ajuste de modelos.
- Opcional: no campo Beta, insira o valor desejado. Beta é o coeficiente que controla o quanto o modelo ajustado se alinha com o modelo de referência.
- No campo Multiplicador da taxa de aprendizado, insira o tamanho da etapa em cada iteração. O valor padrão é 1. .
Opcional: para desativar os checkpoints intermediários e usar apenas o mais recente, clique no botão Exportar somente o último checkpoint.
Clique em Continuar.
A página Conjunto de dados de ajuste é aberta.
Para fazer upload de um arquivo de conjunto de dados, selecione uma das seguintes opções:
- Se você ainda não fez o upload de um conjunto de dados, selecione o botão de opção Fazer o upload do arquivo para o Cloud Storage.
- No campo Selecionar arquivo JSONL, clique em Procurar e selecione o arquivo do conjunto de dados.
- Em Local do conjunto de dados, clique em Procurar e selecione o bucket do Cloud Storage em que você quer armazenar o arquivo do conjunto de dados.
- Se o arquivo do conjunto de dados já estiver em um bucket do Cloud Storage, selecione o botão de opção Arquivo existente no Cloud Storage.
- Em Caminho do arquivo do Cloud Storage, clique em Procurar e selecione o bucket do Cloud Storage em que o arquivo do conjunto de dados está localizado.
(Opcional) Para receber métricas de validação durante o treinamento, clique em Ativar validação do modelo.
- No arquivo Conjunto de dados de validação, insira o caminho do Cloud Storage referente ao conjunto de dados de validação.
Clique em Iniciar ajuste.
O novo modelo será exibido na seção Ajuste gerenciado na página Ajustar e destilar. Quando o ajuste do modelo for concluído, o Status será Concluído.
REST
Para criar um job de ajuste de modelo, envie uma solicitação POST usando o método
tuningJobs.create. Alguns dos parâmetros não são compatíveis com todos os modelos. Inclua
apenas os parâmetros aplicáveis ao modelo que você está
ajustando.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- TUNING_JOB_REGION: a região onde o job de ajuste é executado. Essa também é a região padrão para onde o modelo ajustado é transferido.
- BASE_MODEL: nome do modelo de fundação a ser ajustado.
- TRAINING_DATASET_URI: URI do Cloud Storage do conjunto de dados de treinamento. O conjunto de dados precisa estar formatado como um arquivo JSONL. Para melhores resultados, forneça pelo menos 100 a 500 exemplos. Para mais informações, consulte Sobre conjuntos de dados de ajuste supervisionados .
- VALIDATION_DATASET_URIOpcional: o URI do Cloud Storage do arquivo do conjunto de dados de validação.
- EPOCH_COUNTOpcional: o número de transmissões completas que o modelo faz em todo o conjunto de dados de treinamento durante o treinamento. Deixe sem definição para usar o valor recomendado pré-preenchido.
- BETAOpcional: o coeficiente que controla o nível de alinhamento do modelo ajustado com o valor de referência.
- ADAPTER_SIZEOpcional: o tamanho do adaptador que será usado para o job de ajuste. O tamanho do adaptador influencia o número de parâmetros treináveis para o job de ajuste. Um tamanho maior do adaptador significa que o modelo pode aprender tarefas mais complexas, mas exige um conjunto de dados de treinamento maior e tempos de treinamento mais longos.
- LEARNING_RATE_MULTIPLIER: Opcional: um multiplicador para aplicar à taxa de aprendizado recomendada. Não defina essa configuração para usar o valor recomendado.
- EXPORT_LAST_CHECKPOINT_ONLYOpcional: defina como
truepara usar apenas o checkpoint mais recente. - TUNED_MODEL_DISPLAYNAMEOpcional: um nome de exibição para o modelo ajustado. Se não for definido, um nome aleatório será gerado.
- KMS_KEY_NAMEOpcional: o identificador de recurso do Cloud Key Management Service da chave de criptografia gerenciada pelo cliente usada para proteger um recurso. A chave tem o formato:
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. A chave precisa estar na mesma região em que o recurso de computação é criado. Para mais informações, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK). - SERVICE_ACCOUNTOpcional: a conta de serviço em que a carga de trabalho tuningJob é executada. Se não for especificado, o agente de serviço de ajuste fino seguro da plataforma de agentes no projeto será usado. Consulte Agente de serviço de ajuste. Se você planeja usar uma conta de serviço gerenciada pelo cliente, conceda o papel
roles/aiplatform.tuningServiceAgenta ela. Conceda também o papel de Agente de serviço de ajusteroles/iam.serviceAccountTokenCreatorà conta de serviço gerenciada pelo cliente.
Método HTTP e URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
Corpo JSON da solicitação:
{
"baseModel": "BASE_MODEL",
"preferenceOptimizationSpec" : {
"trainingDatasetUri": "TRAINING_DATASET_URI",
"validationDatasetUri": "VALIDATION_DATASET_URI",
"hyperParameters": {
"epochCount": "EPOCH_COUNT",
"beta": "BETA",
"adapterSize": "ADAPTER_SIZE",
"learningRateMultiplier": "LEARNING_RATE_MULTIPLIER"
},
"exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY,
},
"tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME",
"encryptionSpec": {
"kmsKeyName": "KMS_KEY_NAME"
},
"serviceAccount": "SERVICE_ACCOUNT"
}
Para enviar a solicitação, expanda uma destas opções:
Exemplo de comando curl
PROJECT_ID=myproject
LOCATION=global
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
"baseModel": "${BASE_MODEL}",
"preferenceOptimizationSpec" : {
"trainingDatasetUri": "gs://mybucket/preference_tuning/data/train_data.jsonl",
"validationDatasetUri": "gs://mybucket/preference_tuning/data/validation_data.jsonl"
},
"tunedModelDisplayName": "tuned_gemini"
}'
SDK de IA Generativa do Google
Como ajustar os hiperparâmetros
Recomendamos que você envie seu primeiro job de ajuste sem alterar os hiperparâmetros. O valor padrão é o recomendado com base nos nossos resultados de comparativo de mercado para produzir a melhor qualidade de saída do modelo.
- Épocas: o número de passagens completas que o modelo faz em todo o conjunto de dados de treinamento durante o treinamento. A Gemini Enterprise Agent Platform ajusta automaticamente o valor padrão ao tamanho do conjunto de dados de treinamento. Esse valor é baseado em resultados de comparativo de mercado para otimizar a qualidade da saída do modelo.
- Beta: o coeficiente que controla o alinhamento do modelo ajustado com o valor de referência. Um beta menor significa atualizações mais agressivas em direção às respostas preferidas. O intervalo recomendado é de 0,01 a 0,5, inclusive. Um valor beta de 0 impede que o modelo aprenda.
- Tamanho do adaptador: o tamanho do adaptador que será usado para o job de ajuste. O tamanho do adaptador influencia o número de parâmetros treináveis para o job de ajuste. Um tamanho maior do adaptador significa que o modelo pode aprender tarefas mais complexas, mas exige um conjunto de dados de treinamento maior e tempos de treinamento mais longos.
- Multiplicador da taxa de aprendizado: um multiplicador para aplicar à taxa de aprendizado recomendada. É possível aumentar o valor para convergir mais rapidamente ou diminuir o valor para evitar o overfitting.
Ver ou cancelar um job de ajuste
Para listar jobs de ajuste, ver detalhes de jobs de ajuste, cancelar um job de ajuste ou excluir um modelo ajustado, consulte as seguintes seções na documentação de ajuste supervisionado:
- Confira uma lista de jobs de ajuste
- Detalhes de um job de ajuste
- Cancelar um job de ajuste
- Excluir um modelo ajustado
Métricas de ajuste de modelos
O job de ajuste de modelo coleta automaticamente as seguintes métricas de ajuste:
/preference_optimization_train_loss: perda de preferência para o conjunto de dados de ajuste em uma etapa de treinamento.
Métricas de validação do modelo
Quando os dados de validação são fornecidos, o job de ajuste de modelo coleta automaticamente as seguintes métricas de validação:
/eval_total_loss: perda de preferência do conjunto de dados em uma etapa de validação.
As visualizações de métricas ficam disponíveis após o início da execução do job de ajuste. Eles são atualizados em tempo real conforme o ajuste avança. Se você não especificar um conjunto de dados de validação ao criar o job de ajuste, apenas as visualizações das métricas de ajuste estarão disponíveis.
A seguir
- Saiba como implantar um modelo ajustado do Gemini.