Neste documento, descrevemos como definir um conjunto de dados de ajuste fino supervisionado para um modelo do Gemini. É possível ajustar os tipos de dados texto, imagem, áudio e documento.
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. Para melhores resultados, recomendamos que você comece com 100 exemplos. Você pode escalonar verticalmente para milhares de exemplos, se necessário. A qualidade do conjunto de dados é muito mais importante do que a quantidade.
Limitações:
- Máximo de tokens de entrada e saída, por exemplo: 32.000
- Tamanho máximo do arquivo do conjunto de dados de treinamento: até 1 GB para JSONL.
Conjunto de dados de validação
Recomendamos que você forneça 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.
Limitações:
- Máximo de tokens de entrada e saída, por exemplo: 32.000
- Número máximo de exemplos no conjunto de dados de validação: 256
- Tamanho máximo do arquivo do conjunto de dados de treinamento: até 1 GB para JSONL.
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.
Exemplo de conjunto de dados para gemini-1.5-pro
e 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
O corpo da solicitação contém dados com os seguintes parâmetros:
Parâmetros | |
---|---|
|
Obrigatório: O conteúdo da conversa atual com o modelo. Para consultas de turno único, esta é uma instância única. Para consultas com várias interações, esse é um campo repetido que contém o histórico da conversa e a solicitação mais recente. |
|
Opcional: Disponível para Instruções para o modelo gerar um desempenho melhor. Por exemplo, "Responda da forma mais concisa possível" ou "Não use termos técnicos na resposta". As strings O campo |
Conteúdo
O tipo de dados estruturados de base que contém várias partes de uma mensagem.
Essa classe consiste em duas properties principais: role
e parts
. A propriedade role
indica o indivíduo que produz o conteúdo, enquanto a propriedade parts
contém vários elementos, cada um representando um segmento de dados em
uma mensagem.
Parâmetros | |
---|---|
|
Opcional: A identidade da entidade que cria a mensagem. Os valores a seguir são compatíveis:
O valor Para conversas que não têm vários turnos, esse campo pode ser deixado em branco ou sem definição. |
|
Uma lista de partes ordenadas que compõem uma única mensagem. Partes diferentes podem ter tipos MIME IANA distintos. Para ver os limites das entradas, como o número máximo de tokens ou o número de imagens, consulte as especificações do modelo na página Modelos do Google. Para calcular o número de tokens na solicitação, consulte Receber contagem de tokens. |
Partes
Um tipo de dados que contém mídia que faz parte de uma mensagem Content
de várias partes.
Parâmetros | |
---|---|
|
Opcional: Um comando de texto ou snippet de código. |
|
Opcional: Dados armazenados em um arquivo. |
Exemplo de conjunto de dados para o Gemini 1.0 Pro
Cada exemplo de conversa em um conjunto de dados de ajuste é composto por um campo de mensagens 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 content
da mensagem.
Em cada exemplo, o tamanho máximo combinado para context
e messages
é de
32.768 tokens. Além disso, cada campo de conteúdo para o campo de modelo não
pode exceder 8.192 tokens.
{
"messages": [
{
"role": string,
"content": string
}
]
}
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.
Seguir as práticas recomendadas para design de comandos
Depois de ter o conjunto de dados de treinamento e treinar o modelo, é hora de criar comandos. É importante seguir a prática recomendada de design de comando no seu conjunto de dados de treinamento para fornecer uma descrição detalhada da tarefa a ser realizada e de como a saída deve ser.
A seguir
- Escolha uma região para ajustar um modelo.
- Para saber como o ajuste fino supervisionado pode ser usado em uma solução que cria uma base de conhecimento de IA generativa, consulte Solução de início rápido: base de conhecimento de IA generativa.