Ajuste fino de modelos no Estúdio de IA do Azure
Importante
Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.
O ajuste fino treina novamente um LLM (modelo de linguagem grande) existente usando dados de exemplo. O resultado é uma LLM nova e personalizada otimizada para os exemplos fornecidos.
Este artigo pode ajudar você a decidir se o ajuste fino é ou não a solução certa para seu caso de uso. Este artigo também descreve como o Estúdio de IA do Azure pode dar suporte às suas necessidades de ajuste fino.
Neste artigo, o ajuste fino refere-se ao ajuste fino supervisionado, não ao pré-treinamento contínuo ou ao aprendizado por reforço por meio de RLHF (comentários de pessoas). O ajuste fino supervisionado é o processo de retreinamento de modelos pré-treinados em conjuntos de dados específicos. A finalidade normalmente é aprimorar o desempenho do modelo em tarefas específicas ou introduzir informações que não foram bem representadas quando você treinou originalmente o modelo base.
Introdução ao ajuste fino
Quando você está decidindo se o ajuste fino é ou não a solução certa para seu caso de uso, é útil estar familiarizado com estes termos-chave:
- 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 em respostas, para otimizar o desempenho do modelo.
- RAG (Geração Aumentada por Recuperação) aprimora o desempenho do LLM (Modelo de Linguagem Grande) recuperando dados de fontes externas e incorporando-os em um prompt. A RAG pode ajudar as empresas a obter soluções personalizadas, mantendo a relevância dos dados e otimizando os custos.
O ajuste fino é uma ótima maneira de obter resultados de maior qualidade, reduzindo a latência. As perguntas a seguir podem ajudar você a entender melhor por que ajustar e avaliar se você está pronto(a) para ajustar o processo. Você pode usar essas perguntas para orientar suas próximas etapas.
Por que você quer fazer o ajuste fino de um modelo?
Antes de começar a ajustar um modelo, considere se você identificou deficiências ao usar um modelo base. Você identificou deficiências usando um modelo básico, como desempenho inconsistente em casos extremos, incapacidade de acomodar prompts de disparo suficientes na janela de contexto para orientar o modelo ou alta latência.
Os modelos base já são previamente treinados em grandes quantidades de dados, mas na maioria das vezes você adicionará instruções e exemplos ao prompt para obter as respostas de qualidade que você está procurando. Esse processo de "aprendizado com poucas tentativas" pode ser aprimorado com ajuste fino.
O ajuste fino permite que você treine um modelo com muitos outros exemplos. Você pode adaptar seus exemplos para atender ao seu caso de uso específico. Isso pode ajudar você a reduzir o número de tokens no prompt, levando a possíveis reduções de custos e solicitações com menor latência.
Os casos de uso para ajustar um modelo podem ser:
- Direcionar o modelo para o conteúdo de saída em um estilo, tom ou formato específico e personalizado.
Se você identificar o custo como seu principal motivador, prossiga com cuidado. O ajuste fino pode reduzir os custos para determinados casos de uso, reduzindo prompts ou permitindo que você use um modelo menor. Mas normalmente há um custo inicial mais alto para o treinamento, e você precisa pagar pela hospedagem de seu modelo personalizado.
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 básico não está fornecendo resultados consistentes no formato correto e você não consegue encaixar exemplos suficientes na janela de contexto para corrigi-lo?
Exemplos de falha com o modelo base e a engenharia de prompt podem ajudar você a identificar os dados necessários para ajuste fino e como você deve avaliar seu modelo ajustado.
Aqui está um exemplo: Um cliente quer usar o GPT-3.5-Turbo para transformar perguntas de linguagem natural em consultas em uma linguagem de consulta específica e não padrão. Esse cliente fornece as diretrizes no prompt ("Sempre retornar GQL") e usa a RAG para recuperar o esquema do banco de dados. No entanto, a sintaxe nem sempre está correta e frequentemente falha em casos de borda. O cliente coleta milhares de exemplos de perguntas de linguagem natural e as consultas equivalentes para o banco de dados, incluindo casos prévios em que o modelo falhou. Em seguida, o cliente usa esses dados para ajustar o modelo. A combinação de seu novo modelo ajustado com o prompt e a recuperação projetados faz com que a precisão das saídas do modelo atinja padrões aceitáveis para uso.
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. Você deve começar avaliando o desempenho de um modelo base com engenharia de prompt e/ou RAG 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 aprimora 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.
Antes de começar a ajustar um modelo, você precisa garantir que:
- Você consegue demonstrar evidências e conhecimento de uso de abordagens baseadas em engenharia de prompts e RAG no seu LLM.
- Você é capaz de compartilhar experiências e desafios específicos com técnicas diferentes do ajuste fino que você experimentou para o seu caso de uso.
- Você tem avaliações quantitativas do desempenho da linha de base, sempre que possível.
- Você tem um conjunto de dados rotulado que corresponde ao caso de uso específico em que você deseja treinar seu LLM.
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 exigem volumes de dados diferentes, mas você geralmente precisa ser capaz de fornecer grandes quantidades de dados coletados de alta qualidade. No ajuste fino supervisionado, um modelo genérico é treinado em um conjunto de dados rotulado específico de um tópico. Ajuste os parâmetros do modelo aos novos dados e aplique o conhecimento pré-existente ao gerar novo conteúdo.
Outro ponto importante é que, mesmo usando dados de alta qualidade, se os dados não estiverem no formato necessário para ajuste fino, você precisa confirmar recursos de engenharia para a formatação.
Talvez você esteja pronto para o ajuste fino se:
- Identifique um conjunto de dados para ajuste fino.
- O conjunto de dados está no formato apropriado para treinamento em seu modelo existente.
- Você empregou algum nível de curadoria para garantir a qualidade do conjunto de dados.
Como você medirá a qualidade do seu modelo ajustado?
Não há uma única resposta certa para essa pergunta, mas você deve ter metas claramente definidas sobre como será o ajuste fino bem-sucedido. O ideal é que esse esforço não seja apenas qualitativo. Ele 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.
Modelos com suporte para ajuste fino no Estúdio de IA do Azure
Agora que você sabe quando usar o ajuste fino para seu caso de uso, pode acessar o Estúdio de IA do Azure para encontrar modelos disponíveis para ajuste fino. A tabela a seguir descreve os modelos que você pode ajustar no Estúdio de IA do Azure e as regiões em que você pode ajustá-los.
Família do modelo | ID do Modelo | Regiões com ajuste fino |
---|---|---|
Modelos do OpenAI do Azure | Modelos do Serviço OpenAI do Azure que você pode ajustar incluem entre outros gpt-4 e gpt-4o-mini .Para obter detalhes sobre os modelos do OpenAI do Azure disponíveis para ajuste, consulte a Documentação de modelos do Serviço OpenAI do Azure ou a tabela de modelos do OpenAI do Azure mais adiante neste guia. |
Os modelos do Serviço OpenAI do Azure que você pode ajustar incluem, entre outros, o Centro-Norte dos EUA e a Suécia Central. As regiões com suporte podem variar se você usar modelos OpenAI do Azure em um projeto do Estúdio de IA ou fora dele. Para obter detalhes sobre regiões de ajuste fino, consulte a Documentação de modelos do Serviço OpenAI do Azure. |
Modelos da família Phi-3 | Phi-3-mini-4k-instruct Phi-3-mini-128k-instruct Phi-3-medium-4k-instruct Phi-3-medium-128k-instruct |
Leste dos EUA 2 |
Modelos da família Meta Llama 2 | Meta-Llama-2-70b Meta-Llama-2-7b Meta-Llama-2-13b Llama-2-7B-chat Llama-2-70B-chat |
Oeste dos EUA 3 |
Modelos da família Meta Llama 3.1 | Meta-Llama-3.1-70b-Instruct Meta-Llama-3.1-8b-Instruct |
Oeste dos EUA 3 |
Esta tabela fornece mais detalhes sobre os modelos do Serviço OpenAI do Azure que dão suporte ao ajuste fino e às regiões em que o ajuste fino está disponível.
Modelos OpenAI do Azure de ajuste fino
Observação
gpt-35-turbo
: o ajuste fino desse modelo é limitado a um subconjunto de regiões e não está disponível em todas as regiões em que o modelo base está.
As regiões compatíveis para o ajuste fino podem variar ao usar modelos do OpenAI do Azure em um projeto do AI Studio ou fora dele.
ID do Modelo | Regiões com ajuste fino | Máx. de solicitações (tokens) | Dados de treinamento (até) |
---|---|---|---|
babbage-002 |
Centro-Norte dos EUA Suécia Central Oeste da Suíça |
16.384 | Setembro de 2021 |
davinci-002 |
Centro-Norte dos EUA Suécia Central Oeste da Suíça |
16.384 | Setembro de 2021 |
gpt-35-turbo (0613) |
Leste dos EUA 2 Centro-Norte dos EUA Suécia Central Oeste da Suíça |
4\.096 | Setembro de 2021 |
gpt-35-turbo (1106) |
Leste dos EUA 2 Centro-Norte dos EUA Suécia Central Oeste da Suíça |
Input: 16,385 Output: 4,096 |
Setembro de 2021 |
gpt-35-turbo (0125) |
Leste dos EUA 2 Centro-Norte dos EUA Suécia Central Oeste da Suíça |
16.385 | Setembro de 2021 |
gpt-4 (0613) 1 |
Centro-Norte dos EUA Suécia Central |
8192 | Setembro de 2021 |
gpt-4o-mini 1 (2024-07-18) |
Centro-Norte dos EUA Suécia Central |
Input: 128,000 Saída: 16.384 Comprimento do contexto do exemplo de treinamento: 64.536 |
Outubro de 2023 |
gpt-4o 1 (2024-08-06) |
Leste dos EUA 2 Centro-Norte dos EUA Suécia Central |
Input: 128,000 Saída: 16.384 Comprimento do contexto do exemplo de treinamento: 64.536 |
Outubro de 2023 |
No momento, 1 GPT-4 está em visualização pública.