Ajustar los modelos de Gemini con el ajuste supervisado

En este documento, se describe cómo ajustar un modelo de Gemini mediante el ajuste supervisado.

Antes de comenzar

Antes de comenzar, debes preparar un conjunto de datos de ajuste fino supervisado. Según tu caso de uso, existen diferentes requisitos.

Modelos compatibles

  • gemini-1.5-pro-002 (En DG)
  • gemini-1.5-flash-002(En DG)
  • gemini-1.0-pro-002 (en versión preliminar, solo admite el ajuste de texto)

Crea un trabajo de ajuste.

Puedes crear un trabajo de ajuste fino supervisado con la API de REST, el SDK de Vertex AI para Python, la consola de Google Cloud o Colab Enterprise.

REST

Para crear un trabajo de ajuste de modelos, envía una solicitud POST mediante el método tuningJobs.create. 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 y 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 .
  • 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.

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"
}

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:

Ejemplo del comando curl

PROJECT_ID=myproject
LOCATION=us-central1
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": "gemini-1.5-pro-002",
   "supervisedTuningSpec" : {
      "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
      "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl"
   },
   "tunedModelDisplayName": "tuned_gemini_pro"
}'

Python


import time

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

sft_tuning_job = sft.train(
    source_model="gemini-1.5-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_train_data.jsonl",
    # The following parameters are optional
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_validation_data.jsonl",
    epochs=4,
    adapter_size=4,
    learning_rate_multiplier=1.0,
    tuned_model_display_name="tuned_gemini_1_5_pro",
)

# Polling for job completion
while not sft_tuning_job.has_ended:
    time.sleep(60)
    sft_tuning_job.refresh()

print(sft_tuning_job.tuned_model_name)
print(sft_tuning_job.tuned_model_endpoint_name)
print(sft_tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# <google.cloud.aiplatform.metadata.experiment_resources.Experiment object at 0x7b5b4ae07af0>

Console

Para ajustar un modelo de texto con ajuste supervisado mediante la consola de Google Cloud, sigue estos pasos:

  1. En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.

    Ir a Vertex AI Studio

  2. Haz clic en Crear modelo ajustado.

  3. En Método de ajuste, selecciona el botón de selección para Ajuste supervisado.

  4. En Detalles del modelo, configura lo siguiente:

    1. En el campo Nombre del modelo ajustado, ingresa un nombre para el modelo ajustado nuevo, de hasta 128 caracteres.
    2. En el campo Modelo base, selecciona gemini-1.5-pro-002.
    3. En el campo desplegable Región, selecciona la región en la que se ejecuta el trabajo de ajuste de canalización y en la que se implementa el modelo ajustado.
  5. De manera opcional, expande la flecha desplegable Opciones avanzadas y configura lo siguiente:

    1. En el campo Cantidad de ciclos de entrenamiento, ingresa la cantidad de pasos que se ejecutarán para el ajuste del modelo.
    2. En el campo Adapter Size, ingresa el tamaño del adaptador que se usará para el ajuste del modelo.
    3. En el campo Multiplicador de tasa de aprendizaje, ingresa un Ingresa el tamaño del paso en cada iteración. El valor predeterminado es 1.
  6. Haz clic en Continuar.

    Se abrirá la página Conjunto de datos de ajuste.

  7. Para subir un archivo de conjunto de datos, selecciona una de las siguientes opciones:

    1. Si aún no subiste un conjunto de datos, selecciona el botón de selección para Subir archivo a Cloud Storage.
    2. En el campo Seleccionar archivo JSONL, haz clic en Explorar y elige tu archivo de conjunto de datos.
    3. En Ubicación del conjunto de datos, haz clic en Explorar y elige el bucket de Cloud Storage en el que deseas almacenar el archivo del conjunto de datos.
    4. Si tu archivo de conjunto de datos ya se encuentra en un bucket de Cloud Storage, selecciona el botón de selección de Archivo existente en Cloud Storage.
    5. En Ruta del archivo de Cloud Storage, haz clic en Explorar y elige el bucket de Cloud Storage en el que se encuentra el archivo de conjunto de datos.
  8. Para obtener métricas de validación durante el entrenamiento, haz clic en el botón de activación Habilitar validación del modelo (opcional).

    1. En el archivo Conjunto de datos de validación, ingresa la ruta de Cloud Storage de tu conjunto de datos de validación.
  9. Haz clic en Iniciar ajuste.

    Tu modelo nuevo aparece en la sección Modelos ajustados de Gemini Pro en la página Ajustar y sintetizar. Cuando el modelo termina de ajustarse, el Estado dice Completado.

Colab Enterprise

Puedes crear un trabajo de ajuste de modelos en Vertex AI con el panel lateral de Colab Enterprise. El panel lateral añade los fragmentos de código relevantes a tu notebook. Luego, modifica los fragmentos de código y ejecútalos para crear tu trabajo de optimización. Para obtener más información sobre el uso del panel lateral con tus trabajos de ajuste de Vertex AI, consulta Interactúa con Vertex AI para ajustar un modelo.

  1. En la consola de Google Cloud, ve a la página Notebooks de Colab Enterprise.

    Ir a Notebooks

  2. En el menú Región, selecciona la región que contiene el notebook.

  3. En la pestaña Mis notebooks, haz clic en el notebook que deseas abrir. Si aún no creaste un notebook, crea uno.

  4. A la derecha de la notebook, en el panel lateral, haz clic en el botón  Ajuste.

    El panel lateral expande la pestaña Ajuste.

  5. Haz clic en el botón Ajustar un modelo de Gemini.

    Colab Enterprise agrega celdas de código a tu notebook para ajustar un modelo de Gemini.

  6. En tu notebook, busca la celda de código que almacena los valores de los parámetros. Usarás estos parámetros para interactuar con Vertex AI.

  7. Actualiza los valores de los siguientes parámetros:

    • PROJECT_ID: Es el ID del proyecto en el que se encuentra tu notebook.
    • REGION: Es la región en la que se encuentra tu notebook.
    • TUNED_MODEL_DISPLAY_NAME: Es el nombre del modelo ajustado.
  8. En la siguiente celda de código, actualiza los parámetros de ajuste del modelo:

    • source_model: El modelo de Gemini que deseas usar, por ejemplo, gemini-1.0-pro-002.
    • train_dataset: Es la URL de tu conjunto de datos de entrenamiento.
    • validation_dataset: Es la URL de tu conjunto de datos de validación.
    • Ajusta los parámetros restantes según sea necesario.
  9. Ejecuta las celdas de código que el panel lateral agregó a tu notebook.

  10. Después de que se ejecute la última celda de código, haz clic en el botón  Ver trabajo de optimización que aparece.

  11. En el panel lateral, se muestra información sobre tu trabajo de ajuste de modelos.

    • La pestaña Supervisar muestra las métricas de ajuste cuando estas están listas.
    • En la pestaña Conjunto de datos, se muestra un resumen y métricas sobre tu conjunto de datos después de que se haya procesado.
    • En la pestaña Detalles, se muestra información sobre tu trabajo de ajuste, como el método de ajuste y el modelo base (modelo de origen) que usaste.
  12. Una vez que se complete el trabajo de ajuste, puedes ir directamente de la pestaña Detalles de ajuste a una página en la que puedes probar tu modelo. Haz clic en Probar.

    La consola de Google Cloud se abrirá en la página Text chat de Vertex AI, donde puedes probar tu modelo.

Ajuste de hiperparámetros

Se recomienda que envíes tu primer trabajo de ajuste sin cambiar los hiperparámetros. El valor predeterminado es el valor recomendado según nuestros resultados de comparativas para obtener la mejor calidad de los resultados del modelo.

  • Épocas: Es la 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.
  • Tamaño del adaptador: Es 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.
  • Multiplicador de la tasa de aprendizaje: Es un multiplicador para aplicar a la tasa de aprendizaje recomendada. Puedes aumentar el valor para que converja más rápido o disminuirlo para evitar el sobreajuste.

Visualiza una lista de trabajos de ajuste

Puedes ver una lista de trabajos de ajuste en tu proyecto actual con la consola de Google Cloud, el SDK de Vertex AI para Python o mediante el envío de una solicitud GET con el método tuningJobs.

REST

Para ver una lista de trabajos de ajuste de modelos, envía una solicitud GET mediante el método tuningJobs.list.

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

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

responses = sft.SupervisedTuningJob.list()

for response in responses:
    print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7c85287b2680>
# resource name: projects/12345678/locations/us-central1/tuningJobs/123456789012345

Console

Para ver tus trabajos de ajuste en la consola de Google Cloud, ve a la página Vertex AI Studio.

Ir a Vertex AI Studio

Tus trabajos de ajuste de Gemini se enumeran en la tabla en la sección Modelos ajustados de Gemini Pro.

Obtén detalles de un trabajo de ajuste

Puedes obtener los detalles de un trabajo de ajuste en tu proyecto actual con la consola de Google Cloud, el SDK de Vertex AI para Python o mediante el envío de una solicitud GET con el método tuningJobs.

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

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
response = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)

print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7cc4bb20baf0>
# resource name: projects/1234567890/locations/us-central1/tuningJobs/4982013113894174720

Console

  1. Para ver los detalles de un modelo ajustado en la consola de Google Cloud, ve a la página Generative AI Studio.

    Ir a Vertex AI Studio

  2. En la tabla Modelos ajustados de Gemini Pro, busca tu modelo y haz clic en Detalles.

    Se muestran los detalles de tu modelo.

Cancela un trabajo de ajuste

Puedes cancelar un trabajo de ajuste en tu proyecto actual con la consola de Google Cloud, el SDK de Vertex AI para Python o mediante el envío de una solicitud POST con el método tuningJobs.

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

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
job = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)
job.cancel()

Console

  1. Para cancelar un trabajo de ajuste en la consola de Google Cloud, ve a la página Vertex AI Studio.

    Ir a Vertex AI Studio

  2. En la tabla Modelos ajustados de Gemini Pro, haz clic en Administrar ejecución.

  3. Haz clic en Cancelar.

Prueba el modelo ajustado con un mensaje

Puedes probar un trabajo de ajuste en tu proyecto actual con el SDK de Vertex AI para Python o mediante el envío de una solicitud POST con el método tuningJobs.

En el siguiente ejemplo, se le presenta al modelo la pregunta "¿Por qué el cielo es azul?".

REST

Para probar un modelo ajustado con un mensaje, envía una solicitud POST y especifica el TUNED_ENDPOINT_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.
  • ENDPOINT_ID: El ID de extremo del modelo ajustado de la API de GET.
  • TEMPERATURE: La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican topP y topK. La temperatura controla el grado de aleatoriedad en la selección de tokens. Las temperaturas más bajas son buenas para los mensajes que requieren una respuesta menos abierta o de creativa, mientras que las temperaturas más altas pueden generar resultados más diversos o creativos. Una temperatura de 0 significa que siempre se seleccionan los tokens de probabilidad más alta. En este caso, las respuestas para un mensaje determinado son, en su mayoría, deterministas, pero es posible que haya una pequeña cantidad de variación.

    Si el modelo muestra una respuesta demasiado genérica, demasiado corta o el modelo proporciona una respuesta de resguardo, intenta aumentar la temperatura.

  • TOP_P: Top-P cambia la manera en la que el modelo selecciona los tokens para el resultado. Los tokens se seleccionan del más (consulta top-K) al menos probable, hasta que la suma de sus probabilidades sea igual al valor de P superior. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor P superior es 0.5, el modelo elegirá A o B como el siguiente token mediante la temperatura y excluirá a C como candidato.

    Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias.

  • TOP_K: El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. Un top-K de 1 significa que el siguiente token seleccionado es el más probable entre todos los tokens en el vocabulario del modelo (también llamado decodificación codiciosa), mientras que un top-K de 3 significa que el siguiente token se selecciona de los tres tokens más probables con la temperatura.

    Para cada paso de selección de tokens, se muestran los tokens de K superior con las probabilidades más altas. Luego, los tokens se filtran según el superior con el token final seleccionado mediante el muestreo de temperatura.

    Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias.

  • MAX_OUTPUT_TOKENS: Cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene casi cuatro caracteres. 100 tokens corresponden a casi 60 u 80 palabras.

    Especifica un valor más bajo para las respuestas más cortas y un valor más alto para las respuestas potencialmente más largas.

Método HTTP y URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent

Cuerpo JSON de la solicitud:

{
    "contents": [
        {
            "role": "USER",
            "parts": {
                "text" : "Why is sky blue?"
            }
        }
    ],
    "generation_config": {
        "temperature":TEMPERATURE,
        "topP": TOP_P,
        "topK": TOP_K,
        "maxOutputTokens": MAX_OUTPUT_TOKENS
    }
}

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/endpoints/ENDPOINT_ID:generateContent"

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/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Python

from vertexai.generative_models import GenerativeModel

sft_tuning_job = sft.SupervisedTuningJob("projects/<PROJECT_ID>/locations/<TUNING_JOB_REGION>/tuningJobs/<TUNING_JOB_ID>")
tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name)
print(tuned_model.generate_content(content))

Console

  1. Para ver los detalles de un modelo ajustado en la consola de Google Cloud, ve a la página Generative AI Studio.

    Ir a Vertex AI Studio

  2. En la tabla Modelos ajustados de Gemini Pro, selecciona Probar.

    Se abrirá una página en la que puedes crear una conversación con tu modelo ajustado.

Ajustes y métricas de validación

Puedes configurar un trabajo de ajuste de modelos para recopilar e informar los ajustes y métricas de evaluación del modelo, que luego se pueden visualizar Vertex AI Studio.

  1. Para ver los detalles de un modelo ajustado en la consola de Google Cloud, ve a la página Generative AI Studio.

    Ir a Vertex AI Studio

  2. En la tabla Ajustar y sintetizar, haz clic en el nombre del modelo ajustado del que deseas ver las métricas.

    Las métricas de ajuste aparecen en la pestaña Supervisar.

Métricas de ajuste de modelos

El trabajo de ajuste de modelos recopila de forma automática las siguientes métricas de ajuste para gemini-1.5-pro-002.

  • /train_total_loss: Pérdida del conjunto de datos de ajuste en un paso de entrenamiento
  • /train_fraction_of_correct_next_step_preds: La precisión del token en un paso de entrenamiento. Una predicción individual consiste en una secuencia de tokens. Esta métrica mide la exactitud de los tokens previstos en comparación con la verdad fundamental del conjunto de datos de ajuste.
  • /train_num_predictions: Cantidad de tokens previstos en un paso de entrenamiento

Métricas de validación de modelos:

Puedes configurar un trabajo de ajuste de modelos a fin de recopilar las siguientes métricas de validación para gemini-1.5-pro-002.

  • /eval_total_loss: La pérdida del conjunto de datos de validación en un paso de validación.
  • /eval_fraction_of_correct_next_step_preds: La precisión del token en un paso de evaluación. Una predicción individual consiste en una secuencia de tokens. Esta métrica mide la exactitud de los tokens previstos en comparación con la verdad fundamental del conjunto de datos de evaluación.
  • /eval_num_predictions Cantidad de tokens previstos en un paso de validación.

Las visualizaciones de métricas están disponibles después de que se inicia el trabajo de ajuste. Se actualizará en tiempo real a medida que avance el ajuste. Si no especificas un conjunto de datos de validación cuando creas el trabajo de ajuste, solo las visualizaciones para las métricas de ajuste están disponibles.

¿Qué sigue?