Considerações sobre o ajuste fino do Microsoft Foundry

O ajuste fino é o processo de pegar num modelo de linguagem pré-treinado e adaptá-lo para realizar uma tarefa específica ou melhorar o seu desempenho num determinado conjunto de dados. Isto envolve treinar o modelo num conjunto de dados menor, específico para cada tarefa, ajustando ligeiramente os pesos do modelo. O ajuste fino aproveita o conhecimento adquirido pelo modelo durante o seu treino inicial num conjunto de dados grande e diversificado, permitindo-lhe especializar-se sem começar do zero. Esta abordagem é frequentemente mais eficiente do que treinar um novo modelo do zero; por exemplo, muitas equipas refinam com centenas ou milhares de exemplos rotulados em vez de re-treinar milhões de amostras.

Principais benefícios do ajuste fino

Maior precisão e relevância

O ajuste fino melhora o desempenho do modelo em tarefas específicas ao treiná-lo com dados específicos da tarefa. Isto resulta frequentemente em resultados mais precisos e relevantes de alta qualidade em comparação com o uso de prompts gerais.

Ao contrário do "few-shot learning", onde apenas um número limitado de exemplos pode ser incluído num prompt, o "fine-tuning" permite treinar o modelo com um conjunto de dados suplementar. O ajuste fino ajuda o modelo a aprender padrões mais subtis e melhora o desempenho das tarefas.

Eficiência e potenciais poupanças de custos

Modelos afinados requerem prompts mais curtos porque são treinados com exemplos relevantes. Este processo reduz o número de tokens necessários em cada pedido, o que pode levar a poupanças de custos dependendo do caso de uso.

Como modelos finamente ajustados precisam de menos exemplos no prompt, processam pedidos mais rapidamente, resultando em tempos de resposta mais rápidos.

Escalabilidade e especialização

O ajuste fino aplica o pré-treino extensivo dos modelos de linguagem e aprimora as suas capacidades para aplicações específicas, tornando-os mais eficientes e eficazes para casos de uso específicos.

O ajuste fino de modelos mais pequenos pode alcançar níveis de desempenho comparáveis a modelos maiores e mais caros para tarefas específicas. Esta abordagem reduz os custos computacionais e aumenta a velocidade, tornando-se uma solução escalável e económica para implementar IA em ambientes com recursos limitados.

Quando afinar

O ajuste fino é adequado para quando possui um conjunto de dados pequeno e de alta qualidade (por exemplo, centenas a alguns milhares de pares comando-resposta específicos para a tarefa) e quer melhorar o desempenho do seu modelo. O ajuste fino aplica-se a muitos casos de uso, que frequentemente se enquadram nas seguintes categorias.

  • Redução da sobrecarga de engenharia de prompts: Muitos utilizadores começam com aprendizagem de poucos exemplos, acrescentando exemplos de resultados desejados à mensagem do sistema. Com o tempo, este processo pode levar a prompts cada vez mais longos, aumentando a contagem de tokens e a latência. O ajuste fino permite-lhe incorporar estes exemplos no modelo treinando nos resultados esperados, o que é valioso em cenários com inúmeros casos excecionais.

  • Modificar o estilo e o tom: O ajuste fino ajuda a alinhar os resultados dos modelos com um estilo ou tom desejado, garantindo consistência em aplicações como chatbots de atendimento ao cliente e comunicação específica da marca.

  • Geração de saídas em formatos ou esquemas específicos: Os modelos podem ser ajustados para produzir resultados em formatos ou esquemas específicos, tornando-os ideais para geração de dados estruturados, relatórios ou respostas formatadas.

  • Melhorar o uso de ferramentas: Embora a API de conclusão de chat suporte chamadas de ferramentas, listar muitas ferramentas aumenta o uso de tokens e pode levar a informações incorretas. O ajuste fino com exemplos de ferramentas melhora a precisão e consistência, mesmo sem definições completas de ferramentas.

  • Melhorar o desempenho baseado na recuperação: Combinar o ajuste fino com métodos de recuperação melhora a capacidade de um modelo integrar conhecimento externo, realizar tarefas complexas e fornecer respostas mais precisas e conscientes do contexto. O ajuste fino treina o modelo para utilizar eficazmente os dados recuperados, enquanto filtra informações irrelevantes.

  • Otimização para eficiência: O ajuste fino também pode ser usado para transferir conhecimento de um modelo maior para um mais pequeno, permitindo que o modelo mais pequeno alcance desempenho semelhante em tarefas com menor custo e latência. Por exemplo, dados de produção de um modelo de alto desempenho podem ser usados para afinar finamente um modelo mais pequeno e eficiente. Esta abordagem ajuda a escalar soluções de IA, mantendo a qualidade e reduzindo a sobrecarga computacional.

  • Destilação: A destilação por modelo utiliza as saídas de um modelo grande para afinar um modelo mais pequeno, permitindo-lhe desempenhar de forma semelhante numa tarefa específica. Por exemplo, pode recolher tráfego de produção de uma instalação e usar os dados para aperfeiçoar . Este processo pode reduzir custos e latência, uma vez que modelos mais pequenos são mais eficientes.

Tipos de afinação fina

A Microsoft Foundry oferece as seguintes técnicas de ajuste fino:

  • Ajuste fino supervisionado: Isto permite-lhe fornecer dados personalizados (prompt/conclusão ou chat conversacional, dependendo do modelo) para ensinar novas competências ao modelo base. Este processo envolve um treino adicional do modelo num conjunto de dados rotulado de alta qualidade, onde cada ponto de dados está associado à saída ou resposta correta. O objetivo é melhorar o desempenho do modelo numa tarefa específica, ajustando os seus parâmetros com base nos dados rotulados. Esta técnica funciona melhor quando existem formas finitas de resolver um problema e se quer ensinar ao modelo uma tarefa específica e melhorar a sua precisão e concisão.

  • Ajuste fino por reforço (RFT): Uma técnica de personalização de modelos benéfica para otimizar o comportamento do modelo em ambientes altamente complexos ou dinâmicos, permitindo que o modelo aprenda e se adapte através de feedback iterativo e tomada de decisões. Por exemplo, os prestadores de serviços financeiros podem otimizar o modelo para avaliações de risco mais rápidas e precisas, ou as organizações de saúde podem adaptar certos modelos para uma análise de dados e geração de hipóteses mais eficientes. A RFT funciona melhor quando existem muitas formas possíveis de resolver um problema. O avaliador recompensa o modelo de forma incremental e melhora a qualidade do raciocínio.

  • Otimização por Preferência Direta (DPO): Uma técnica de alinhamento para grandes modelos de linguagem, concebida para ajustar os pesos dos modelos com base nas preferências humanas. Ao contrário do Aprendizado por Reforço com Feedback Humano (RLHF), o DPO não requer adaptação a um modelo de recompensa e utiliza preferências binárias para o treino. Este método é computacionalmente mais leve e rápido, tornando-o igualmente eficaz no alinhamento ao mesmo tempo que mais eficiente. Forneça as respostas preferidas e não preferidas no conjunto de treino para usar esta técnica.

Pode também combinar técnicas: primeiro utilize o ajuste fino supervisionado (SFT) para criar um modelo personalizado otimizado para o seu caso de uso, depois use DPO para alinhar as respostas às suas preferências específicas. Durante a etapa SFT, foca-se na qualidade dos dados e na representatividade das tarefas, enquanto a etapa DPO ajusta as respostas com comparações específicas.

Desafios e limitações do ajuste fino

Afinar modelos de linguagem grandes pode ser uma técnica poderosa para os adaptar a domínios e tarefas específicas. No entanto, o ajuste fino também traz alguns desafios e limitações que deve considerar antes de o aplicar a um problema do mundo real. A seguir estão alguns desses desafios.

  • O ajuste fino requer dados de treino de alta qualidade, suficientemente grandes e representativos que correspondam ao domínio e tarefa alvo. Os dados de qualidade são relevantes, precisos, consistentes e suficientemente diversos para abranger os possíveis cenários e variações que o modelo irá encontrar no mundo real. Dados de má qualidade ou não representativos conduzem a sobreajustamento, subajuste ou viés no modelo finamente ajustado, o que prejudica a sua generalização e robustez.
  • Ajustar modelos de linguagem grandes implica custos adicionais associados ao treino e à hospedagem do modelo personalizado.
  • Formatar pares de entrada/saída usados para afinar um grande modelo de linguagem pode ser crucial para o seu desempenho e usabilidade.
  • O ajuste fino pode ser necessário repetir sempre que os dados são atualizados ou quando um modelo base atualizado é lançado. Isto envolve monitorização e atualização regular.
  • O ajuste fino é uma tarefa repetitiva (tentativa e erro), por isso, os hiperparâmetros precisam de ser cuidadosamente definidos. O ajuste fino requer muita experimentação e testes para encontrar a melhor combinação de hiperparâmetros e definições que permitam alcançar o desempenho e a qualidade desejados.
  • Importar dados de treino do Armazenamento de Blobs do Azure requer que a conta de armazenamento tenha acesso à rede pública ativado. Se o seu ambiente empresarial restringir o acesso público às contas de armazenamento, use o método local de upload de ficheiros ou o SDK para carregar diretamente os dados de treino.

Próximos passos