Preparar dados de ajuste fino supervisionados para modelos Gemini

Neste documento, descrevemos como definir um conjunto de dados de ajuste fino supervisionado para um modelo do Gemini.

Sobre conjuntos de dados de ajuste fino supervisionados

Um conjunto de dados de ajuste fino supervisionado é usado para ajustar um modelo pré-treinado para uma tarefa ou domínio específico. Os dados de entrada precisam ser semelhantes ao que você espera que o modelo encontre no uso real. Os rótulos de saída precisam representar as respostas ou os resultados corretos para cada entrada.

Conjunto de dados de treinamento

Para ajustar um modelo, você fornece um conjunto de dados de treinamento. Esse conjunto precisa incluir no mínimo 16 exemplos. Para melhores resultados, recomendamos que você forneça pelo menos de 100 a 500 exemplos. Quanto mais exemplos você fornecer no conjunto de dados, melhores serão os resultados. Não há limite para o número de exemplos em um conjunto de dados de treinamento.

Conjunto de dados de validação

Se possível, forneça também um conjunto de dados de validação. Um conjunto de dados de validação ajuda a medir a eficácia de um job de ajuste. Os conjuntos de dados de validação aceitam até 256 exemplos.

Para conjuntos de dados de amostra, consulte Conjuntos de dados de amostra nesta página.

Formato do conjunto de dados

O conjunto de dados de ajuste de modelos precisa estar no formato linhas JSON (JSONL) em que cada linha contém um único exemplo de ajuste. Antes de ajustar o modelo, faça upload do conjunto de dados para um bucket do Cloud Storage.

Cada exemplo de conversa em um conjunto de dados de ajuste é composto por um campo messages obrigatório.

  • O campo messages consiste em uma matriz de pares autor-conteúdo. O campo role se refere ao autor da mensagem e está definido como system, user ou model. O papel system é opcional e só pode ocorrer no primeiro elemento da lista de mensagens. Os papéis user ou model são obrigatórios e podem se repetir de maneira alternada.

  • O campo content é o conteúdo da mensagem.

  • Em cada exemplo, o tamanho máximo combinado para context e messages é de 32.768 tokens. Além disso, cada campo content para o campo model não deve exceder 8.192 tokens.

Exemplo de curva única

Para mais detalhes sobre o esquema do Gemini a seguir, consulte Migrar os ajustes da API PaLM para a API 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" }
    ]
  }
]

Exemplo de várias voltas

Para mais detalhes sobre o esquema do Gemini a seguir, consulte Migrar os ajustes da API PaLM para a API 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."
    }
  ]
}

Conjuntos de dados de amostra

É possível usar um conjunto de dados de exemplo para aprender a ajustar um modelo gemini-1.0-pro-002.

Para usar esses conjuntos de dados, especifique os URIs nos parâmetros aplicáveis ao criar um job de ajuste fino supervisionado de modelo de texto.

Exemplo:

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

Manter a consistência com os dados de produção

Os exemplos nos seus conjunto de dados precisam corresponder ao tráfego de produção esperado. Se o conjunto de dados contiver formatação, palavras-chave, instruções ou informações específicas, os dados de produção deverão ser formatados da mesma maneira e conter as mesmas instruções.

Por exemplo, se os exemplos no seu conjunto de dados incluem um "question:" e um "context:", o tráfego de produção também deve ser formatado para incluir um "question:" e um "context:" na mesma ordem em que aparece no exemplos de conjuntos de dados. Se você excluir o contexto, o modelo não reconhecerá o padrão, mesmo que a pergunta exata esteja em um exemplo no conjunto de dados.

Fazer upload de conjuntos de dados de ajuste para o Cloud Storage

Para executar um job de ajuste, é preciso fazer upload de um ou mais conjuntos de dados para um bucket do Cloud Storage. É possível criar um novo bucket do Cloud Storage ou usar um existente para armazenar arquivos de conjuntos de dados. A região do bucket não importa, mas recomendamos que você use um bucket que esteja no mesmo projeto do Google Cloud em que planeja executar o ajuste do modelo.

Quando o bucket estiver pronto, faça o upload do arquivo do conjunto de dados para o bucket.

A seguir