Compartilhar via


Quando usar o ajuste fino do Azure OpenAI

Ao decidir se o ajuste fino é ou não a solução certa para explorar um determinado caso de uso, há alguns termos-chave com os quais é útil estar familiarizado:

  • Engenharia de prompt é uma técnica que envolve a criação de prompts para modelos de processamento de linguagem natural. Esse processo aprimora a precisão e a relevância das respostas, otimizando o desempenho do modelo.
  • RAG (Geração Aumentada de Recuperação) melhora o desempenho do LLM (Modelo de Linguagem Grande) recuperando dados de fontes externas e incorporando-os em um prompt. A RAG permite que as empresas obtenham soluções personalizadas, mantendo a relevância dos dados e otimizando os custos.
  • Ajuste fino treina novamente um Modelo de Linguagem Grande existente usando dados de exemplo, resultando em um novo modelo de linguagem grande "personalizado" que foi otimizado usando os exemplos fornecidos.

O que é ajuste fino com o Azure OpenAI?

Quando falamos em ajuste fino, realmente queremos dizer ajuste fino supervisionado não treinamento pré-treinamento contínuo ou aprendizado por reforço por meio de RLHF (Feedback Humano). O ajuste supervisionado refere-se ao processo de retreinamento de modelos pré-treinados em conjuntos de dados específicos, normalmente para melhorar o desempenho do modelo em tarefas específicas ou introduzir informações que não estavam bem representadas quando o modelo base foi originalmente treinado.

O ajuste fino é uma técnica avançada que requer conhecimento para usar adequadamente. As perguntas abaixo ajudarão você a avaliar se está pronto para o ajuste fino e até que ponto você refletiu bem sobre o processo. Você pode usá-las para orientar suas próximas etapas ou identificar outras abordagens que possam ser mais apropriadas.

Por que você quer fazer o ajuste fino de um modelo?

  • Você deve ser capaz de articular claramente um caso de uso específico para ajuste fino e identificar o modelo você espera ajustar.
  • Bons casos de uso para ajuste fino incluem direcionar o modelo para produzir conteúdo em um estilo, tom ou formato específico e personalizado, ou cenários onde as informações necessárias para orientar o modelo são muito longas ou complexas para caber na janela de prompt.

Sinais comuns de que você talvez ainda não esteja pronto para o ajuste fino:

  • Nenhum caso de uso claro para ajuste fino ou incapacidade de articular muito mais do que “Quero melhorar um modelo”.
  • Se você identificar o custo como seu principal motivador, prossiga com cuidado. O ajuste fino pode reduzir os custos para determinados casos de uso, encurtando prompts ou permitindo que você use um modelo menor, mas há um custo inicial mais alto para treinar e você terá que pagar pela hospedagem do seu modelo personalizado. Consulte a página de preços para obter mais informações sobre os custos de ajuste fino do Azure OpenAI.
  • Se você quiser adicionar conhecimento fora do domínio ao modelo, comece com a RAG (Geração Aumentada de Recuperação) com recursos como o Azure OpenAI em seus dados ou inserções. Geralmente, essa é uma opção mais barata, mais adaptável e potencialmente mais eficaz, dependendo do caso de uso e dos dados.

O que você tentou até agora?

O ajuste fino é uma funcionalidade avançada, não o ponto de partida para sua jornada de IA generativa. Você já deve estar familiarizado com os conceitos básicos do uso de LLMs (Modelos de Linguagem Grande). Você deve começar avaliando o desempenho de um modelo base com engenharia de prompt e/ou RAG (Geração Aumentada de Recuperação) para obter uma linha de base para o desempenho.

Ter uma linha de base para desempenho sem ajuste fino é essencial para saber se o ajuste fino melhorou ou não o desempenho do modelo. O ajuste fino com dados incorretos piora o modelo base, mas sem uma linha de base, é difícil detectar regressões.

Se você estiver pronto para o ajuste fino:

  • Deve ser capaz de demonstrar evidências e conhecimento de abordagens baseadas em Engenharia de Prompts e RAG.
  • Seja capaz de compartilhar experiências e desafios específicos com técnicas diferentes do ajuste fino que já foram tentados para seu caso de uso.
  • Precisa ter avaliações quantitativas do desempenho da linha de base, sempre que possível.

Sinais comuns de que você talvez ainda não esteja pronto para o ajuste fino:

  • Começando com ajuste fino sem ter testado outras técnicas.
  • Conhecimento ou compreensão insuficientes sobre como o ajuste fino se aplica especificamente a LLMs (Modelos de Linguagem Grande).
  • Nenhuma medida de parâmetro de comparação para avaliar o ajuste fino.

O que não está funcionando com abordagens alternativas?

Compreender onde a engenharia imediata falha deve fornecer orientação sobre como fazer o ajuste fino. O modelo base está falhando em casos de borda ou exceções? O modelo base não fornece consistentemente a saída no formato certo, e você não pode ajustar exemplos suficientes na janela de contexto para corrigi-lo?

Exemplos de falha com o modelo base e a engenharia de prompt ajudarão você a identificar os dados necessários para ajuste fino e como você deve avaliar seu modelo ajustado.

Aqui está um exemplo: um cliente queria usar GPT-3.5-Turbo para transformar perguntas de linguagem natural em consultas em uma linguagem de consulta específica e não padrão. Ele forneceu diretrizes no prompt (“Sempre retornar GQL”) e usaram RAG para recuperar o esquema de banco de dados. No entanto, a sintaxe nem sempre estava correta e frequentemente falhava em casos de borda. Ele coletou milhares de exemplos de perguntas de linguagem natural e as consultas equivalentes para seu banco de dados, incluindo casos em que o modelo havia falhado antes – e usava esses dados para ajustar o modelo. A combinação de seu novo modelo ajustado com o prompt e a recuperação projetados levou a precisão das saídas do modelo a padrões aceitáveis para uso.

Se você estiver pronto para o ajuste fino:

  • Tenha exemplos claros sobre como você abordou os desafios em abordagens alternativas e o que foi testado, como possíveis resoluções para melhorar o desempenho.
  • Você identificou deficiências usando um modelo básico, como desempenho inconsistente em casos extremos, incapacidade de ajustar poucos prompts de disparo na janela de contexto para orientar o modelo, alta latência, etc.

Sinais comuns de que você talvez ainda não esteja pronto para o ajuste fino:

  • Conhecimento insuficiente do modelo ou da fonte de dados.
  • Incapacidade de encontrar os dados certos para atender ao modelo.

Quais dados você usará para ajuste fino?

Mesmo com um excelente caso de uso, o ajuste fino é bom na medida da qualidade dos dados que você pode fornecer. Você precisa ter a disposição para investir o tempo e o esforço para fazer o ajuste funcionar. Modelos diferentes exigirão volumes de dados diferentes, mas você geralmente precisa ser capaz de fornecer grandes quantidades de dados coletados de alta qualidade.

Outro ponto importante é que, mesmo com dados de alta qualidade, se os dados não estiverem no formato necessário para o ajuste fino, você precisará de recursos de engenharia para formatar corretamente os dados.

Dados Babbage-002
Davinci-002
GPT-3.5-Turbo
GPT-4o e GPT-4o mini
GPT-4
Volume Milhares de exemplos Milhares de exemplos
Formatar Prompt/Conclusão Chat de conversa

Se você estiver pronto para o ajuste fino:

  • Identifique um conjunto de dados para ajuste fino.
  • O conjunto de dados está no formato apropriado para treinamento.
  • Algum nível de curadoria foi empregado para garantir a qualidade do conjunto de dados.

Sinais comuns de que você talvez ainda não esteja pronto para o ajuste fino:

  • O conjunto de dados ainda não foi identificado.
  • O formato do conjunto de dados não corresponde ao modelo que você deseja ajustar.

Como você medirá a qualidade do seu modelo ajustado?

Não há uma única resposta certa para esta pergunta, mas você deve ter metas claramente definidas para a aparência de sucesso com ajuste fino. Idealmente, isso não deve ser apenas qualitativo, mas deve incluir medidas quantitativas de sucesso, como utilizar um conjunto de dados de retenção para validação, bem como testes de aceitação do usuário ou A/B testando o modelo ajustado em um modelo base.

Próximas etapas