Preparar datos de ajuste fino supervisado para modelos de Gemini

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

Acerca de los conjuntos de datos de ajuste fino supervisado

Un conjunto de datos de ajuste supervisado se usa para ajustar un modelo preentrenado para una tarea o un dominio específicos. Los datos de entrada deben ser similares a los que esperas que el modelo encuentre en el mundo real. Las etiquetas de salida deben representar las respuestas o los resultados correctos de cada entrada.

Conjunto de datos de entrenamiento

Para ajustar un modelo, debes proporcionar un conjunto de datos de entrenamiento. Para obtener los mejores resultados, te recomendamos que empieces con 100 ejemplos. Puedes ampliar la escala a miles de ejemplos si es necesario. La calidad del conjunto de datos es mucho más importante que la cantidad.

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

Para consultar las limitaciones de los conjuntos de datos, como el número máximo de tokens de entrada y de salida, el tamaño máximo del conjunto de datos de validación y el tamaño máximo del archivo del conjunto de datos de entrenamiento, consulta el artículo Acerca del ajuste fino supervisado de los modelos de Gemini.

Formato del conjunto de datos

Admitimos los siguientes formatos de datos:

Ejemplo de conjunto de datos para Gemini

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

En el caso de las consultas de un solo turno, se trata de una sola instancia. En las consultas multiturno, se trata de un campo repetido que contiene el historial de la conversación y la última solicitud.

systemInstruction

Opcional: Content

Consulta los modelos compatibles.

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 tienen en cuenta para el límite de tokens.

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

tools

Opcional. Fragmento de código que permite al sistema interactuar con sistemas externos para realizar una acción o un conjunto de acciones fuera del conocimiento y del ámbito del modelo. Consulta Llamadas a funciones.

Contenido

Tipo de datos estructurados base que contiene el contenido de varias partes de un mensaje.

Esta clase consta de dos propiedades principales: role y parts. La propiedad role indica la persona que produce el contenido, mientras que la propiedad parts contiene varios elementos, cada uno de los cuales representa un segmento de datos 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 ha enviado una persona real, normalmente un usuario.
  • model: indica que el mensaje lo ha generado el modelo.

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

En las conversaciones que no son de varias interacciones, este campo se puede dejar en blanco o sin definir.

parts

part

Lista de partes ordenadas que componen un único mensaje. Las distintas partes pueden tener diferentes tipos MIME de IANA.

Para consultar los límites de las entradas, como el número máximo de tokens o el número de imágenes, consulta las especificaciones del modelo en la página Modelos de Google.

Para calcular el número de tokens de tu solicitud, consulta Obtener el recuento de tokens.

Partes

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

Parámetros

text

Opcional: string

Una petición de texto o un fragmento de código.

fileData

Opcional: fileData

Datos almacenados en un archivo.

functionCall

Opcional: FunctionCall.

Contiene una cadena que representa el campo FunctionDeclaration.name y un objeto JSON estructurado que contiene los parámetros de la llamada a la función predicha por el modelo.

Consulta Llamadas a funciones.

functionResponse

Opcional: FunctionResponse.

El resultado de una FunctionCall que contiene una cadena que representa el campo FunctionDeclaration.name y un objeto JSON estructurado que contiene cualquier salida de la llamada a la función. Se usa como contexto para el modelo.

Consulta Llamadas a funciones.

Ejemplo de conjunto de datos

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

El campo messages consta de una matriz de pares de rol y contenido:

  • El campo role hace referencia al autor del mensaje y tiene el valor system, user o model. El rol system es opcional y solo puede aparecer en el primer elemento de la lista de mensajes. Los roles user y model son obligatorios y pueden repetirse de forma alterna.
  • El campo content es el contenido del mensaje.

En cada ejemplo, la longitud máxima de los tokens de context y messages combinados es de 131.072 tokens. Además, cada campo content del campo model no debe superar los 8192 tokens.

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

Mantener la coherencia con los datos de producción

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

Por ejemplo, si los ejemplos de su conjunto de datos incluyen un "question:" y un "context:", el tráfico de producción también debe tener el formato adecuado para incluir un "question:" y un "context:" en el mismo orden en el que aparecen en los ejemplos del conjunto de datos. Si excluyes el contexto, el modelo no reconocerá el patrón, aunque la pregunta exacta esté en un ejemplo del conjunto de datos.

Subir conjuntos de datos de ajuste a Cloud Storage

Para ejecutar una tarea de ajuste, debes subir uno o varios conjuntos de datos a un segmento de Cloud Storage. Puedes crear un segmento de Cloud Storage o usar uno que ya tengas para almacenar los archivos del conjunto de datos. La región del contenedor no importa, pero te recomendamos que uses un contenedor que esté en el mismo proyectoGoogle Cloud en el que quieras ajustar tu modelo.

Cuando el segmento esté listo, suba el archivo del conjunto de datos al segmento.

Sigue las prácticas recomendadas de diseño de peticiones

Una vez que tengas el conjunto de datos de entrenamiento y hayas entrenado el modelo, es el momento de diseñar las peticiones. Es importante seguir las prácticas recomendadas de diseño de peticiones en tu conjunto de datos de entrenamiento para describir detalladamente la tarea que se debe realizar y cómo debe ser el resultado.

Siguientes pasos