Prepara datos de ajuste supervisado

En este documento, se describe cómo definir un conjunto de datos de ajuste supervisado para un modelo de Gemini Pro. Para obtener información general sobre cómo funciona el ajuste, consulta Descripción general del ajuste de modelos para Gemini.

Modelos compatibles

Los siguientes modelos de base de Gemini admiten la optimización supervisada:

  • gemini-1.0-pro-002

Casos de uso para usar ajustes supervisados en modelos de texto

Los modelos de texto base funcionan bien cuando el resultado o la tarea esperados se pueden definir de forma clara y concisa en un mensaje y el mensaje produce el resultado esperado de manera coherente. Si deseas que un modelo aprenda algo específico o que se desvíe de los patrones generales de lenguaje, deberías considerar ajustar ese modelo. Por ejemplo, puedes usar el ajuste de modelos para enseñarle al modelo lo siguiente:

  • Estructuras o formatos específicos para generar salidas.
  • Comportamientos específicos, como cuándo proporcionar una salida tersa o verbosa.
  • Salidas específicas personalizadas para tipos específicos de entradas.

Los siguientes ejemplos son casos prácticos que son difíciles de capturar solo con instrucciones rápidas:

  • Clasificación: La respuesta esperada es una palabra o frase específica.

    El ajuste del modelo puede ayudar a evitar que el modelo genere respuestas detalladas.

  • Resumen: El resumen sigue un formato específico. Por ejemplo, es posible que debas quitar la información de identificación personal (PII) de un resumen de chat.

    Este formato de reemplazo de los nombres de los interlocutores con #Person1 y #Person2 es difícil de describir y el modelo de base podría no producir esa respuesta de forma natural.

  • Respuestas extractivas: La pregunta se relaciona con un contexto, y la respuesta es una substring del contexto.

    La respuesta "Último máximo glacial" (Last Glacial Maximum) es una frase específica del contexto.

  • Chat: Necesitas personalizar la respuesta del modelo para seguir a una persona, un rol o un carácter.

También puedes ajustar un modelo en las siguientes situaciones:

  • Los mensajes no producen los resultados esperados de forma coherente.
  • La tarea es demasiado complicada para definirla en una instrucción. Por ejemplo, deseas que el modelo clone el comportamiento para un comportamiento que es difícil de articular en una instrucción.
  • Tienes intuiciones complejas sobre una tarea que son fáciles de obtener, pero difíciles de formalizar en una instrucción.
  • Quieres quitar la longitud de contexto para quitar los ejemplos de tomas.

Prepara un conjunto de datos de ajuste supervisado

Tu conjunto de datos debe incluir un mínimo de 10 ejemplos, pero recomendamos al menos de 100 a 500 ejemplos para obtener buenos resultados. Cuantos más ejemplos proporciones en tu conjunto de datos, mejores serán los resultados.

Para ver conjuntos de datos de muestra, consulta Conjuntos de datos de muestra en esta página.

Formato del conjunto de datos

El conjunto de datos de ajuste de modelos debe estar en el formato líneas JSON (JSONL), en el que cada línea contiene un solo ejemplo de ajuste. Antes de ajustar tu modelo, debes subir tu conjunto de datos a un bucket de Cloud Storage.

Cada ejemplo de conversación en un conjunto de datos de ajuste se compone de un campo messages obligatorio.

  • El campo messages consta de un array de pares de rol y contenido. El campo role se refiere al autor del mensaje y se configura como system, user o model. El rol system es opcional y solo puede ocurrir en el primer elemento de la lista de mensajes. Se requieren los roles user o model y se pueden repetir de forma alternada.

  • El campo content es el contenido del mensaje.

  • En cada ejemplo, la longitud máxima del token combinada para context y messages es de 32,768 tokens. Además, cada campo content para el campo model no debe exceder los 8,192 tokens.

Ejemplo de un solo turno

Para obtener más detalles sobre el siguiente esquema de Gemini, consulta Migra el ajuste de la API de PaLM a la API de Gemini.

{"messages": [{"role": "system", "content": "You should classify the text into one of the following classes:[business, entertainment]"}{"role": "user","content": "Diversify your investment portfolio"},{"role": "model","content": "business"}]}
{"messages": [{"role": "system", "content": "You should classify the text into one of the following classes:[business, entertainment]"}{"role": "user","content": "Watch a live concert"},{"role": "model","content": "entertainment"}]}

Ejemplo de varios turnos

Para obtener más detalles sobre el siguiente esquema de Gemini, consulta Migra el ajuste de la API de PaLM a la API de Gemini.

{
  "messages": [
    {
      "role": "system",
      "content": "You are a pirate dog named Captain Barktholomew."
    },
    {
      "role": "user",
      "content": "Hi"
    },
    {
      "role": "model",
      "content": "Argh! What brings ye to my ship?"
    },
    {
      "role": "user",
      "content": "What's your name?"
    },
    {
      "role": "model",
      "content": "I be Captain Barktholomew, the most feared pirate dog of the seven seas."
    }
  ]
}

Conjunto de datos de muestra

Puedes usar un conjunto de datos de muestra para probar cómo funciona el ajuste de un modelo gemini-1.0-pro-002.

Para usar estos conjuntos de datos, especifica los URI en los parámetros aplicables cuando crees un trabajo de ajuste supervisado del modelo de texto.

Por ejemplo:

...
"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",
...

Mantén la coherencia con los datos de producción

Los ejemplos en tu conjunto de datos deben coincidir con tu tráfico de producción esperado. Si tu conjunto de datos contiene formato, palabras clave, instrucciones o información específicas, los datos de producción deben tener el mismo formato y contener las mismas instrucciones.

Por ejemplo, si los ejemplos de tu conjunto de datos incluyen una "question:" y un "context:", el tráfico de producción también debe tener el formato de modo que incluya una "question:" y un "context:" en el mismo orden en que aparecen en ejemplos de conjuntos de datos. Si excluyes el contexto, el modelo no reconocerá el patrón, incluso si la pregunta exacta estaba en un ejemplo en el conjunto de datos.

Sube conjuntos de datos de ajuste a Cloud Storage

Para ejecutar un trabajo de ajuste, debes subir uno o más conjuntos de datos a un bucket de Cloud Storage. Puedes crear un depósito de Cloud Storage nuevo o usar uno existente para almacenar archivos de conjuntos de datos. La región del bucket no es importante, pero te recomendamos que uses un bucket que se encuentre en el mismo proyecto de Google Cloud en el que planeas ajustar tu modelo.

Una vez que tu bucket esté listo, sube tu archivo del conjunto de datos al bucket.

¿Qué sigue?