Estratégias de design de comando, como poucas filmagens, nem sempre produzem os resultados necessários. O ajuste é um processo que pode melhorar a desempenho em tarefas específicas ou ajudar o modelo a aderir a resultados quando as instruções não são suficientes e você tem um conjunto de exemplos que demonstrem os resultados desejados.
Esta página fornece uma visão geral conceitual do ajuste do modelo de texto por trás o serviço de texto da API Gemini. Quando estiver tudo pronto para começar o ajuste, teste o tutorial de ajuste. Se quiser uma introdução mais geral à personalização de LLMs para casos de uso específicos, consulte LLMs: ajuste fino, destilação e engenharia de comando no Curso intensivo de machine learning.
Como funciona o ajuste fino
O objetivo do ajuste fino é melhorar ainda mais o desempenho do modelo para sua tarefa específica. O ajuste fino funciona fornecendo ao modelo um treinamento conjunto de dados que contém muitos exemplos da tarefa. Para tarefas de nicho, é possível conseguir melhorias significativas no desempenho do modelo ajustando o modelo em um número modesto de exemplos. Esse tipo de ajuste de modelo é chamado ajustes supervisionados para distingui-los de outros tipos de ajustes.
Os dados de treinamento precisam ser estruturados como exemplos com entradas de comandos as saídas esperadas de resposta. Também é possível ajustar modelos usando dados de exemplo diretamente no Google AI Studio. O objetivo é ensinar o modelo a imitar o comportamento desejado ou tarefa, fornecendo muitos exemplos que ilustram esse comportamento ou tarefa.
Quando você executa um job de ajuste, o modelo aprende outros parâmetros que o ajudam codificar as informações necessárias para realizar a tarefa desejada ou aprender o comportamento do seu modelo. Esses parâmetros podem ser usados no momento da inferência. A saída do job de ajuste é um novo modelo, que é efetivamente uma combinação dos parâmetros apenas aprendidos e do modelo original.
Preparar o conjunto de dados
Antes de começar o ajuste, você precisa de um conjunto de dados para ajustar o modelo. Para o melhor desempenho, os exemplos no conjunto de dados devem ser de alta qualidade, diversificados e representativos de entradas e saídas reais.
Formato
Os exemplos no seu 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 estivesse
em um exemplo do conjunto de dados.
Como outro exemplo, aqui estão os dados de treinamento do Python para um aplicativo que gera o próximo número em uma sequência:
training_data = [
{"text_input": "1", "output": "2"},
{"text_input": "3", "output": "4"},
{"text_input": "-3", "output": "-2"},
{"text_input": "twenty two", "output": "twenty three"},
{"text_input": "two hundred", "output": "two hundred one"},
{"text_input": "ninety nine", "output": "one hundred"},
{"text_input": "8", "output": "9"},
{"text_input": "-98", "output": "-97"},
{"text_input": "1,000", "output": "1,001"},
{"text_input": "10,100,000", "output": "10,100,001"},
{"text_input": "thirteen", "output": "fourteen"},
{"text_input": "eighty", "output": "eighty one"},
{"text_input": "one", "output": "two"},
{"text_input": "three", "output": "four"},
{"text_input": "seven", "output": "eight"},
]
Adicionar um prompt ou preâmbulo a cada exemplo no conjunto de dados também pode ajudar melhorar o desempenho do modelo ajustado. Observe que, se um prompt ou preâmbulo for no conjunto de dados, ela também deve ser incluída no comando para a resposta no momento da inferência.
Limitações
Observação:o ajuste de conjuntos de dados para o Gemini 1.5 Flash tem o seguinte limitações:
- O tamanho máximo da entrada por exemplo é de 40.000 caracteres.
- O tamanho máximo da saída por exemplo é de 5.000 caracteres.
Tamanho dos dados de treinamento
É possível ajustar um modelo com no mínimo 20 exemplos. Dados adicionais melhora a qualidade das respostas. Sua meta deve ficar entre 100 e 500 exemplos, dependendo do aplicativo. A tabela a seguir mostra tamanhos de conjuntos de dados recomendados para ajustar um modelo de texto para várias tarefas comuns:
Tarefa | Nº de exemplos no conjunto de dados |
---|---|
Classificação | 100+ |
Resumo | 100-500+ |
Pesquisa de documentos | 100+ |
Fazer upload do conjunto de dados de ajuste
Os dados são transmitidos in-line usando a API ou por meio de arquivos enviados ao Google do Vertex AI Studio.
Para usar a biblioteca de cliente, forneça o arquivo de dados na chamada createTunedModel
.
O limite de tamanho do arquivo é de 4 MB. Consulte a
Guia de início rápido de ajuste com Python
para começar.
Para chamar a API REST usando o cURL, forneça exemplos de treinamento no formato JSON para o
argumento training_data
. Consulte a
Guia de início rápido sobre o ajuste com cURL
para começar.
Configurações avançadas de ajuste
Ao criar um job de ajuste, é possível especificar as seguintes configurações avançadas:
- Épocas:um treinamento completo passa por todo o conjunto de treinamento, de modo que cada foi processado uma vez.
- Tamanho do lote: o conjunto de exemplos usados em uma iteração de treinamento. O o tamanho do lote determina o número de exemplos em um lote.
- Taxa de aprendizado:um número de ponto flutuante que informa ao algoritmo como para ajustar os parâmetros do modelo em cada iteração. Por exemplo, uma taxa de aprendizado de 0,3 ajustaria os pesos e os vieses três vezes mais muito mais do que uma taxa de aprendizado de 0,1. Taxas de aprendizado altas e baixas têm as vantagens delas e precisam ser ajustadas com base no seu caso de uso.
- Multiplicador da taxa de aprendizado:esse multiplicador modifica o valor e a taxa de aprendizado original. Um valor de 1 usa a taxa de aprendizado original do modelo. Valores maiores que 1 aumentam a taxa de aprendizado e valores entre 1 e 0 diminui a taxa de aprendizado.
Configurações recomendadas
A tabela a seguir mostra as configurações recomendadas para ajustar um modelo de base:
Hiperparâmetro | Valor padrão | Ajustes recomendados |
---|---|---|
Período | 5 |
Se a perda começar a estabilizar antes de 5 períodos, use um valor menor. Se a perda está convergindo e não parece estagnar, use um valor mais alto. |
Tamanho do lote | 4 | |
Taxa de aprendizado | 0,001 | Use um valor menor para conjuntos de dados menores. |
A curva de perda mostra quanto a previsão do modelo se desvia do ideal
previsões nos exemplos de treinamento após cada período. O ideal é parar
treinando no ponto mais baixo da curva logo antes que ela se estabilize. Por exemplo:
o gráfico abaixo mostra a estabilização da curva de perda entre as épocas 4 e 6, o que significa
é possível definir o parâmetro Epoch
como 4 e ainda ter o mesmo desempenho.
Verificar o status do job de ajuste
É possível conferir o status do job de ajuste no Google AI Studio na guia
guia Minha biblioteca ou usando a propriedade metadata
do modelo ajustado na
API Gemini.
Solucionar erros
Esta seção inclui dicas sobre como resolver erros que podem ser encontrados ao criando o modelo ajustado.
Autenticação
O ajuste usando a API e a biblioteca de cliente requer autenticação do usuário. Uma chave de API
sozinha não é suficiente. Se aparecer um erro 'PermissionDenied: 403 Request had
insufficient authentication scopes'
, configure a configuração de
autenticação.
Para configurar credenciais OAuth para Python, consulte tutorial de configuração do OAuth.
Modelos cancelados
É possível cancelar um job de ajuste a qualquer momento antes da conclusão dele. No entanto, o desempenho de inferência de um modelo cancelado é imprevisível, especialmente se o job de ajuste é cancelado no início do treinamento. Se você cancelou porque quer interromper o treinamento em uma época anterior, crie um novo job de ajuste e defina a época como um valor menor.
Limitações dos modelos ajustados
Observação:os modelos ajustados têm as seguintes limitações:
- O limite de entrada de um modelo Gemini 1.5 Flash ajustado é de 40.000 caracteres.
- O modo JSON não é compatível com modelos ajustados.
- Somente a entrada de texto é aceita.
A seguir
Comece com os tutoriais de ajuste: