En este documento se describe cómo ajustar las preferencias de un modelo de Gemini.
Antes de empezar
Antes de empezar, debe preparar un conjunto de datos siguiendo las instrucciones que se indican en el artículo Preparar datos de ajuste de preferencias para los modelos de Gemini.
Crear una tarea de ajuste
Consola
Para configurar el ajuste de preferencias mediante la consola Google Cloud , sigue estos pasos:
En la sección Vertex AI de la Google Cloud consola, ve a la página Vertex AI Studio.
Haz clic en Crear modelo ajustado.
Selecciona Ajuste de preferencias.
En Detalles del modelo, configura lo siguiente:
- En el campo Nombre del modelo ajustado, introduce un nombre para el nuevo modelo ajustado (hasta 128 caracteres).
- En el campo Modelo base, selecciona el modelo básico que quieras ajustar.
- En el campo desplegable Región, selecciona la región en la que se ejecuta el trabajo de ajuste de la canalización y en la que se implementa el modelo ajustado.
En Ajuste, configura lo siguiente:
- En el campo Número de épocas, introduce el número de pasos que se deben ejecutar para ajustar el modelo.
- En el campo Tamaño del adaptador, introduce el tamaño del adaptador que quieras usar para ajustar el modelo.
- Opcional: En el campo Beta, introduce el valor beta que quieras. Beta es el coeficiente que controla el grado de alineación del modelo ajustado con su línea de base.
- En el campo Multiplicador de tasa de aprendizaje, introduce el tamaño del paso en cada iteración. El valor predeterminado es 1. .
Opcional: Para inhabilitar los puntos de control intermedios y usar solo el último, haz clic en el interruptor Exportar solo el último punto de control.
Haz clic en Continuar.
Se abrirá la página Conjunto de datos de ajuste.
Para subir un archivo de conjunto de datos, selecciona una de las siguientes opciones:
- Si aún no ha subido ningún conjunto de datos, seleccione el botón de radio Subir archivo a Cloud Storage.
- En el campo Seleccionar archivo JSONL, haz clic en Examinar y selecciona el archivo de tu conjunto de datos.
- En el campo Ubicación del conjunto de datos, haz clic en Examinar y selecciona el segmento de Cloud Storage en el que quieras almacenar el archivo del conjunto de datos.
- Si el archivo del conjunto de datos ya está en un segmento de Cloud Storage, selecciona el botón de radio Archivo en Cloud Storage.
- En el campo Ruta del archivo de Cloud Storage, haz clic en Examinar y selecciona el segmento de Cloud Storage en el que se encuentra el archivo del conjunto de datos.
(Opcional) Para obtener métricas de validación durante el entrenamiento, haz clic en el interruptor Habilitar validación del modelo.
- En el archivo Validation dataset (Conjunto de datos de validación), introduce la ruta de Cloud Storage de tu conjunto de datos de validación.
Haz clic en Iniciar ajuste.
El nuevo modelo aparece en la sección Ajuste gestionado de la página Ajustar y destilar. Cuando el modelo haya terminado de ajustarse, el Estado será Correcto.
REST
Para crear un trabajo de ajuste de un modelo, envía una solicitud POST mediante el método tuningJobs.create. Algunos parámetros no son compatibles con todos los modelos. Asegúrate de incluir solo los parámetros aplicables al modelo que estés ajustando.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto.
- TUNING_JOB_REGION: la región en la que se ejecuta el trabajo de ajuste. También es la región predeterminada en la que se sube el modelo ajustado.
- BASE_MODEL: nombre del modelo base que se va a ajustar.
- TRAINING_DATASET_URI: URI de Cloud Storage de tu conjunto de datos de entrenamiento. El conjunto de datos debe tener el formato de un archivo JSONL. Para obtener los mejores resultados, proporcione entre 100 y 500 ejemplos. Para obtener más información, consulta Acerca de los conjuntos de datos de ajuste supervisado .
- VALIDATION_DATASET_URIOpcional: URI de Cloud Storage del archivo del conjunto de datos de validación.
- EPOCH_COUNTOpcional: número de pases completos que realiza el modelo en todo el conjunto de datos de entrenamiento durante el entrenamiento. No lo defina para usar el valor recomendado rellenado previamente.
- BETAOpcional: Coeficiente que controla el grado de alineación del modelo optimizado con su modelo de referencia.
- ADAPTER_SIZEOpcional: el tamaño del adaptador que se va a usar en la tarea de ajuste. El tamaño del adaptador influye en el número de parámetros entrenables de la tarea de ajuste. Un tamaño de adaptador mayor implica que el modelo puede aprender tareas más complejas, pero requiere un conjunto de datos de entrenamiento más grande y tiempos de entrenamiento más largos.
- LEARNING_RATE_MULTIPLIER: opcional. Es un multiplicador que se aplica a la tasa de aprendizaje recomendada. Si no lo define, se usará el valor recomendado.
- EXPORT_LAST_CHECKPOINT_ONLYOpcional: Asigna el valor
truepara usar solo el último punto de control. - TUNED_MODEL_DISPLAYNAMEOpcional: nombre visible del modelo ajustado. Si no se define, se genera un nombre aleatorio.
- KMS_KEY_NAMEOpcional: identificador de recurso de Cloud KMS de la clave de cifrado gestionada por el cliente que se usa para proteger un recurso. La clave tiene el formato
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. La clave debe estar en la misma región en la que se cree el recurso de computación. Para obtener más información, consulta Claves de cifrado gestionadas por el cliente (CMEK). - SERVICE_ACCOUNTOpcional: Cuenta de servicio con la que se ejecuta la carga de trabajo tuningJob. Si no se especifica, se usa el agente del servicio de ajuste fino seguro de Vertex AI del proyecto. Consulta Ajustar el agente de servicio. Si tienes previsto usar una cuenta de servicio gestionada por el cliente, debes asignar el rol
roles/aiplatform.tuningServiceAgenta la cuenta de servicio. También debes asignar el rol Agente de servicio de ajusteroles/iam.serviceAccountTokenCreatora la cuenta de servicio gestionada por el cliente.
Método HTTP y URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
Cuerpo JSON de la solicitud:
{
"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 tu solicitud, despliega una de estas opciones:
Comando curl de ejemplo
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"
}'
Ajustar hiperparámetros
Te recomendamos que envíes tu primera tarea de ajuste sin cambiar los hiperparámetros. El valor predeterminado es el valor recomendado según nuestros resultados de las pruebas comparativas para obtener la mejor calidad de salida del modelo.
- Épocas: número de pases completos que realiza el modelo por todo el conjunto de datos de entrenamiento durante el entrenamiento. Vertex AI ajusta automáticamente el valor predeterminado al tamaño de tu conjunto de datos de entrenamiento. Este valor se basa en los resultados de las comparativas para optimizar la calidad de los resultados del modelo.
- Beta: coeficiente que controla el grado de alineación del modelo ajustado con su línea de base. Cuanto menor sea el valor de beta, más agresivas serán las actualizaciones hacia las respuestas preferidas. El intervalo recomendado es de 0,01 a 0,5, ambos incluidos. Si el valor beta es 0, el modelo deja de aprender.
- Tamaño del adaptador: el tamaño del adaptador que se va a usar en la tarea de ajuste. El tamaño del adaptador influye en el número de parámetros entrenables de la tarea de ajuste. Un tamaño de adaptador mayor implica que el modelo puede aprender tareas más complejas, pero requiere un conjunto de datos de entrenamiento más grande y tiempos de entrenamiento más largos.
- Multiplicador de la tasa de aprendizaje: multiplicador que se aplica a la tasa de aprendizaje recomendada. Puedes aumentar el valor para que la convergencia sea más rápida o disminuirlo para evitar el sobreajuste.
Ver o cancelar una tarea de ajuste
Para enumerar tareas de ajuste, ver los detalles de una tarea de ajuste, cancelar una tarea de ajuste o eliminar un modelo ajustado, consulta las siguientes secciones de la documentación sobre el ajuste fino supervisado:
- Ver una lista de tareas de ajuste
- Obtener los detalles de un trabajo de ajuste
- Cancelar una tarea de ajuste
- Eliminar un modelo ajustado
Métricas de ajuste de modelos
El trabajo de ajuste de modelos recoge automáticamente las siguientes métricas de ajuste:
/preference_optimization_train_loss: pérdida de preferencias del conjunto de datos de ajuste en un paso de entrenamiento.
Métricas de validación del modelo
Cuando se proporcionan datos de validación, el trabajo de ajuste del modelo recoge automáticamente las siguientes métricas de validación:
/eval_total_loss: pérdida de preferencia del conjunto de datos de validación en un paso de validación.
Las visualizaciones de métricas están disponibles después de que se inicie el trabajo de ajuste. Se actualizan en tiempo real a medida que avanza la optimización. Si no especifica un conjunto de datos de validación al crear el trabajo de ajuste, solo estarán disponibles las visualizaciones de las métricas de ajuste.
Siguientes pasos
- Consulta información sobre cómo desplegar un modelo de Gemini ajustado.