El ajuste de modelos es un proceso fundamental para adaptar Gemini y que así realice tareas específicas con mayor precisión y exactitud. El ajuste del modelo proporciona un modelo con un conjunto de datos de entrenamiento que contiene un conjunto de ejemplos de tareas descendentes específicas.
Usa la API de ajuste de Gemini para los siguientes casos de uso:
Modelos compatibles:
Puedes usar el ajuste supervisado en los siguientes modelos de Gemini:
Modelo | Versión |
---|---|
Gemini 1.5 Pro | gemini-1.5-pro-002 |
Gemini 1.5 Flash | gemini-1.5-flash-002 |
Gemini 1.0 Pro | gemini-1.0-pro-002 |
LLM de traducción v2 | translation-llm-002 |
Ejemplo de sintaxis
Sintaxis para ajustar un modelo
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs \ -d '{ "baseModel": "...", "supervisedTuningSpec" : { ... "hyper_parameters": { ... }, }, "tunedModelDisplayName": "", }'
Lista de parámetros
Consulta ejemplos para obtener detalles sobre la implementación.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con los siguientes parámetros:
Parámetros | |
---|---|
|
Opcional: Nombre del modelo de base que se está ajustando. Los valores admitidos son: |
|
El nombre visible del |
supervisedTuningSpec
Parámetros | |
---|---|
|
Es el URI de Cloud Storage de tu conjunto de datos de entrenamiento. Tu conjunto de datos debe tener el formato de un archivo JSONL. Para obtener mejores resultados, proporciona al menos entre 100 y 500 ejemplos. Para obtener más información, consulta Acerca de los conjuntos de datos de ajuste supervisado. |
|
Opcional: El URI de Cloud Storage de tu conjunto de datos de validación. Tu conjunto de datos debe tener el formato de un archivo JSONL. Un conjunto de datos puede contener hasta 256 ejemplos. Si proporcionas este archivo, los datos se usarán para generar métricas de validación de forma periódica durante el ajuste. Para obtener más información, consulta Acerca de los conjuntos de datos de ajuste supervisado . |
|
Opcional: Cantidad de pases completos que el modelo realiza en 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. |
|
Opcional: Multiplicador para ajustar la tasa de aprendizaje predeterminada. |
|
Opcional: Tamaño del adaptador para el ajuste. |
|
Opcional: Nombre visible de |
AdapterSize
Tamaño del adaptador para el trabajo de ajuste.
Parámetros | |
---|---|
|
Tamaño del adaptador no especificado. |
|
Tamaño del adaptador 1. |
|
Tamaño del adaptador 4. |
|
Tamaño del adaptador 8. |
|
Tamaño del adaptador 16. |
Ejemplos
Crea un trabajo de ajuste supervisado
Puedes crear un trabajo de ajuste supervisado con el SDK de Vertex AI para Python o mediante una solicitud POST.
Caso de uso básico
El caso de uso básico solo establece valores para baseModel
y training_dataset_uri
.
Todos los demás parámetros usan los valores predeterminados.
REST
Para crear un trabajo de ajuste de modelos, envía una solicitud POST mediante el método tuningJobs.create
.
Ten en cuenta que algunos de los parámetros no son compatibles con todos los modelos. Asegúrate de incluir solo los parámetros aplicables del modelo que estás ajustando.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- TUNING_JOB_REGION: Es la región en la que se ejecuta el trabajo de ajuste. Esta es también la región predeterminada en la que se sube el modelo ajustado.
- BASE_MODEL: El nombre del modelo de base para ajustar. Valores compatibles:
gemini-1.5-pro-002
,gemini-1.5-flash-002
,gemini-1.0-pro-002
. - TRAINING_DATASET_URI: Es el URI de Cloud Storage de tu conjunto de datos de entrenamiento. Tu conjunto de datos debe tener el formato de un archivo JSONL. Para obtener mejores resultados, proporciona al menos entre 100 y 500 ejemplos. Para obtener más información, consulta Acerca de los conjuntos de datos de ajuste supervisado .
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", "supervisedTuningSpec" : { "training_dataset_uri": "TRAINING_DATASET_URI" }, }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Python
Caso de uso avanzado
El caso de uso avanzado expande el caso de uso básico, pero también establece valores para hyper_parameters
opcional, como epoch_count
, learning_rate_multiplier
y adapter_size
.
REST
Para crear un trabajo de ajuste de modelos, envía una solicitud POST mediante el método tuningJobs.create
.
Ten en cuenta que algunos de los parámetros no son compatibles con todos los modelos. Asegúrate de incluir solo los parámetros aplicables del modelo que estás ajustando.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- TUNING_JOB_REGION: Es la región en la que se ejecuta el trabajo de ajuste. Esta es también la región predeterminada en la que se sube el modelo ajustado.
- BASE_MODEL: El nombre del modelo de base para ajustar. Valores admitidos:
gemini-1.5-pro-002
,gemini-1.5-flash-002
ygemini-1.0-pro-002
. - TRAINING_DATASET_URI: Es el URI de Cloud Storage de tu conjunto de datos de entrenamiento. Tu conjunto de datos debe tener el formato de un archivo JSONL. Para obtener mejores resultados, proporciona al menos entre 100 y 500 ejemplos. Para obtener más información, consulta Acerca de los conjuntos de datos de ajuste supervisado .
- VALIDATION_DATASET_URIOpcional: Es el URI de Cloud Storage de tu archivo de conjunto de datos de validación.
- EPOCH_COUNTOpcional: Es la cantidad de pases completos que el modelo realiza en todo el conjunto de datos de entrenamiento durante el entrenamiento. Déjala sin configurar para usar el valor recomendado propagado previamente.
- ADAPTER_SIZEOpcional: el tamaño del adaptador que se usará para el trabajo de ajuste. El tamaño del adaptador influye en la cantidad de parámetros entrenables para el trabajo de ajuste. Un tamaño de adaptador más grande 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: Un multiplicador para aplicar a la tasa de aprendizaje recomendada. Déjala sin configurar para usar el valor recomendado.
- TUNED_MODEL_DISPLAYNAMEOpcional: Un nombre visible para el modelo ajustado. Si no se establece, se genera un nombre aleatorio.
- KMS_KEY_NAMEOpcional: El identificador de recursos de Cloud KMS de la clave de encriptación administrada 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 que la del recurso de procesamiento. Para obtener más información, consulta Claves de encriptación administradas por el cliente (CMEK). - SERVICE_ACCOUNTOpcional: Es la cuenta de servicio con la que se ejecuta la carga de trabajo de tuningJob. Si no se especifica, se usará el agente de servicio de ajuste fino seguro de Vertex AI en el proyecto. Consulta Agente de servicio de ajuste. Si planeas usar una cuenta de servicio administrada por el cliente, debes otorgarle el rol
roles/aiplatform.tuningServiceAgent
. También otorga el permisovertex-ai-service-account
al agente de servicio de Tuning.
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", "supervisedTuningSpec" : { "trainingDatasetUri": "TRAINING_DATASET_URI", "validationDatasetUri": "VALIDATION_DATASET_URI", "hyperParameters": { "epochCount": EPOCH_COUNT, "adapterSize": "ADAPTER_SIZE", "learningRateMultiplier": LEARNING_RATE_MULTIPLIER }, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME", "encryptionSpec": { "kmsKeyName": "KMS_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Python
Enumera trabajos de ajuste
Puedes ver una lista de trabajos de ajuste en tu proyecto actual mediante el SDK de Vertex AI para Python o mediante el envío de una solicitud GET.
REST
Para crear un trabajo de ajuste de modelos, envía una solicitud POST mediante el método tuningJobs.create
.
Ten en cuenta que algunos de los parámetros no son compatibles con todos los modelos. Asegúrate de incluir solo los parámetros aplicables del modelo que estás ajustando.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- TUNING_JOB_REGION: Es la región en la que se ejecuta el trabajo de ajuste. Esta es también la región predeterminada en la que se sube el modelo ajustado.
Método HTTP y URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Python
Obtén detalles de un trabajo de ajuste
Puedes obtener los detalles de un trabajo de ajuste con el SDK de Vertex AI para Python o mediante el envío de una solicitud GET.
REST
Para ver una lista de trabajos de ajuste de modelos, envía una solicitud GET con el método tuningJobs.get
y especifica TuningJob_ID
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- TUNING_JOB_REGION: Es la región en la que se ejecuta el trabajo de ajuste. Esta es también la región predeterminada en la que se sube el modelo ajustado.
- TUNING_JOB_ID: Es el ID del trabajo de ajuste.
Método HTTP y URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Python
Cancela un trabajo de ajuste
Puedes cancelar un trabajo de ajuste con el SDK de Vertex AI para Python o mediante una solicitud POST.
REST
Para ver una lista de trabajos de ajuste de modelos, envía una solicitud GET con el método tuningJobs.cancel
y especifica TuningJob_ID
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- TUNING_JOB_REGION: Es la región en la que se ejecuta el trabajo de ajuste. Esta es también la región predeterminada en la que se sube el modelo ajustado.
- TUNING_JOB_ID: Es el ID del trabajo de ajuste.
Método HTTP y URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Python
¿Qué sigue?
Para obtener documentación detallada, consulta lo siguiente: