Prepara datos de ajuste fino supervisado para los modelos de Gemini

En este documento, se describe cómo definir un conjunto de datos de ajuste supervisado para un modelo de Gemini. Puedes ajustar los tipos de datos de texto, imagen, audio y documento.

Acerca de los conjuntos de datos de ajuste supervisado

Se usa un conjunto de datos de ajuste supervisado para ajustar un modelo previamente entrenado a una tarea o dominio específico. Los datos de entrada deben ser similares a los que esperas que el modelo encuentre en el uso real. Las etiquetas de salida deben representar las respuestas o los resultados correctos para cada entrada.

Conjunto de datos de entrenamiento

Para ajustar un modelo, debes proporcionar un conjunto de datos de entrenamiento. Para obtener mejores resultados, te recomendamos que comiences con 100 ejemplos. Si es necesario, puedes escalar hasta miles de ejemplos. La calidad del conjunto de datos es mucho más importante que la cantidad.

Limitaciones:

  • Cantidad máxima de tokens de entrada y salida por ejemplo: 32,000
  • Tamaño máximo del archivo del conjunto de datos de entrenamiento: Hasta 1 GB para JSONL.

Conjunto de datos de validación

Te recomendamos que proporciones un conjunto de datos de validación. Un conjunto de datos de validación te ayuda a medir la eficacia de un trabajo de ajuste.

Limitaciones:

  • Cantidad máxima de tokens de entrada y salida por ejemplo: 32,000
  • Cantidad máxima de ejemplos en el conjunto de datos de validación: 256
  • Tamaño máximo del archivo del conjunto de datos de entrenamiento: Hasta 1 GB para JSONL.

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.

Ejemplo de conjunto de datos para gemini-1.5-pro y gemini-1.5-flash

{
  "systemInstruction": {
    "role": string,
    "parts": [
      {
        "text": string
      }
    ]
  },
  "contents": [
    {
      "role": string,
      "parts": [
        {
          // Union field data can be only one of the following:
          "text": string,
          "fileData": {
            "mimeType": string,
            "fileUri": string
          }
        }
      ]
    }
  ]
}

Parámetros

El ejemplo contiene datos con los siguientes parámetros:

Parámetros

contents

Obligatorio: Content

El contenido de la conversación actual con el modelo.

Para consultas de un solo turno, esta es una instancia única. Para las consultas de varios turnos, este es un campo repetido que contiene el historial de conversaciones y la solicitud más reciente.

systemInstruction

Opcional: Content

Disponible para gemini-1.5-flash y gemini-1.5-pro.

Instrucciones para que el modelo mejore su rendimiento. Por ejemplo, "Responde de la forma más concisa posible" o "No uses términos técnicos en tu respuesta".

Las cadenas text se contabilizan para el límite de tokens.

El campo role de systemInstruction se ignora y no afecta el rendimiento del modelo.

Contenido

El tipo de datos estructurados base que incluye contenido de varias partes de un mensaje.

Esta clase consta de dos propiedades principales: role y parts. La propiedad role denota la persona que produce el contenido, mientras que la propiedad parts contiene varios elementos, cada uno de los cuales representa un segmento de datos dentro de un mensaje.

Parámetros

role

Opcional: string

La identidad de la entidad que crea el mensaje. Se admiten los siguientes valores:

  • user: indica que el mensaje lo envía una persona real, por lo general, un mensaje generado por el usuario.
  • model: indica que el modelo genera el mensaje.

El valor model se usa para insertar mensajes del modelo en la conversación durante las conversaciones de varios turnos.

En el caso de las conversaciones que no tengan varios turnos, este campo se puede dejar en blanco o sin configurar.

parts

part

Una lista de partes ordenadas que conforman un solo mensaje. Es posible que las diferentes partes tengan distintos tipos de MIME de IANA.

Para conocer los límites de las entradas, como la cantidad máxima de tokens o de imágenes, consulta las especificaciones del modelo en la página Modelos de Google.

Para calcular la cantidad de tokens en tu solicitud, consulta Obtén el recuento de tokens.

Piezas

Un tipo de datos que contiene contenido multimedia que forma parte de un mensaje Content de varias partes.

Parámetros

text

Opcional: string

Un mensaje de texto o un fragmento de código.

fileData

Opcional: fileData

Datos almacenados en un archivo.

Ejemplo de conjunto de datos para Gemini 1.0 Pro

Cada ejemplo de conversación en un conjunto de datos de ajuste se compone de un campo de mensajes 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 content 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 de contenido para el campo de modelo no debe exceder los 8,192 tokens.

{
  "messages": [
    {
      "role": string,
      "content": string
    }
  ]
}

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.

Sigue las prácticas recomendadas para el diseño de instrucciones

Una vez que tengas tu conjunto de datos de entrenamiento y hayas entrenado el modelo, es hora de diseñar instrucciones. Es importante seguir las prácticas recomendadas de diseño de instrucciones en tu conjunto de datos de entrenamiento para proporcionar una descripción detallada de la tarea que se debe realizar y cómo debería verse el resultado.

¿Qué sigue?