O que é ajuste fino?

15 de março de 2024

Autores

Dave Bergmann

Senior Writer, AI Models, IBM

O que é ajuste fino?

O ajuste fino no aprendizado de máquina é o processo de adaptação de um modelo treinado previamente para tarefas ou casos de uso específicos. Ele se tornou uma técnica fundamental de deep learning, especialmente no processo de treinamento de modelos de base utilizados para IA generativa.

O ajuste fino pode ser considerado um subconjunto da técnica mais ampla de aprendizagem por transferência: a prática de aproveitar o conhecimento que um modelo existente já aprendeu como ponto de partida para aprender novas tarefas.

A ideia por trás do ajuste fino é que é mais fácil e mais barato aprimorar os recursos de um modelo base treinado previamente que já adquiriu amplos conhecimentos relevantes para a tarefa em questão do que treinar um novo modelo do zero para esse propósito específico. Isso é especialmente válido para modelos de deep learning com milhões ou até mesmo bilhões de parâmetros, como os grandes modelos de linguagem (LLMs) que ganharam destaque no campo do processamento de linguagem natural (PLN) ou as complexas redes neurais convolucionais (CNNs) e os transformadores de visão (ViTs) utilizados para tarefas de computer Vision, como classificação de imagens, detecção de objetos ou segmentação de imagens.

Ao aproveitar o treinamento anterior do modelo por meio do aprendizado de transferência, o ajuste fino pode reduzir a quantidade de poder computacional caro e de dados rotulados necessários para obter grandes modelos adaptados a casos de uso de nicho e necessidades comerciais. Por exemplo, o ajuste fino pode ser usado para simplesmente ajustar o tom de conversa de um LLM pré-treinado ou o estilo de ilustração de um modelo de geração de imagem pré-treinado; ele também pode ser usado para complementar o aprendizado do conjunto de dados de treinamento original de um modelo com dados proprietários ou conhecimento especializado e específico do domínio.

O ajuste fino desempenha, portanto, um papel importante na aplicação real de modelos de aprendizado de máquina, ajudando a democratizar o acesso e a personalização de modelos sofisticados.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionadas por especialistas sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Ajuste fino vs. treinamento

Embora o ajuste fino seja aparentemente uma técnica usada no treinamento de modelos, trata-se de um processo distinto do que é convencionalmente chamado de "treinamento". Por uma questão de desambiguação, os cientistas de dados normalmente se referem ao último como pré-treinamento nesse contexto.

(Pré-)treinamento

No início do treinamento (ou, neste contexto, treinamento prévio), o modelo ainda não "aprendeu" nada. O treinamento começa com uma inicialização aleatória dos parâmetros do modelo – os vieses e pesos variáveis aplicados às operações matemáticas que ocorrem em cada nó da rede neural.

O treinamento ocorre de forma iterativa em duas fases: em uma passagem adiante, o modelo faz previsões para um lote de inputs de amostra do conjunto de dados de treinamento e uma função de perda mede a diferença (ou perda) entre as previsões do modelo para cada input e as respostas "corretas" (ou verdade fundamental); durante a retropropagação, um algoritmo de otimização, normalmente gradiente descendente, é utilizado para ajustar os pesos do modelo em toda a rede para reduzir a perda. Esses ajustes nos pesos do modelo são a forma como o modelo "aprende". O processo é repetido em várias épocas de treinamento até que o modelo seja considerado suficientemente treinado.

O aprendizado supervisionado convencional, que normalmente é utilizado para treinar previamente modelos para tarefas de computer vision, como classificação de imagens, detecção de objetos ou segmentação de imagens, utiliza dados rotulados: os rótulos (ou anotações) apresentam a variedade de respostas possíveis e o output da verdade fundamental de cada amostra.

Em geral, os LLMs são treinados previamente por meio de aprendizado autossupervisionado (SSL), no qual os modelos aprendem por meio de tarefas pré-textuais projetadas para extrair a verdade fundamental a partir da estrutura inerente dos dados não rotulados. Essas tarefas de pretexto transmitem conhecimentos valiosos para as tarefas posteriores. Em geral, elas adotam uma das duas abordagens:

  • Autoprevisão: mascarar uma parte do input original e incumbir o modelo de reconstruí-la. Esse é o modo de treinamento dominante para LLMs.

  • Aprendizado contrastiva: treinamento de modelos para aprender incorporações semelhantes para inputs relacionados e incorporações diferentes para inputs não relacionados. É utilizado principalmente em modelos de computer vision projetados para aprendizado few-shot ou zero-shot, como treinamento prévio de imagem-linguagem contrastante (CLIP).

Assim, o SSL permite o uso de conjuntos de dados extremamente grandes no treinamento sem o ônus de ter que anotar milhões ou bilhões de pontos de dados. Isso economiza uma enorme quantidade de trabalho, mas, ainda assim, exige muitos recursos computacionais.

Ajuste fino

Por outro lado, o ajuste fino envolve técnicas para treinar ainda mais um modelo cujos pesos já foram atualizados por meio de treinamento prévio. Usando o conhecimento prévio do modelo base como ponto de partida, o ajuste fino adapta o modelo treinando-o em um conjunto de dados menor e específico da tarefa.

Embora esse conjunto de dados específico da tarefa pudesse teoricamente ter sido utilizado para o treinamento inicial, treinar um modelo grande do zero em um pequeno conjunto de dados apresenta o risco de sobreajuste: o modelo pode aprender a ter um bom desempenho nos exemplos de treinamento, mas ter um desempenho ruim com novos dados. Isso tornaria o modelo inadequado para a tarefa específica e anularia o propósito do treinamento do modelo.

O ajuste fino, portanto, oferece o melhor dos dois mundos: aproveitar o amplo conhecimento e a estabilidade obtidos com o pré-treinamento em um enorme conjunto de dados e aprimorar a compreensão do modelo de conceitos mais detalhados e específicos. Dada a crescente proeza dos modelos de base de código aberto, os benefícios muitas vezes podem ser desfrutados sem qualquer ônus financeiro, computacional ou logístico do pré-treinamento.

Mistura de Especialistas | Podcast

Decodificando a IA: resumo semanal das notícias

Junte-se a nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Como funciona o ajuste fino?

O ajuste fino utiliza os pesos de um modelo treinado previamente como ponto de partida para um treinamento adicional em um conjunto menor de dados de exemplos que refletem mais diretamente as tarefas específicas e os casos de uso para os quais o modelo será utilizado. Em geral, envolve aprendizado supervisionado, mas também pode envolver aprendizado por reforço, aprendizado autossupervisionado ou aprendizado semissupervisionado.

Os conjuntos de dados usados para o ajuste fino transmitem o conhecimento específico do domínio, o estilo, as tarefas ou os casos de uso para os quais o modelo pré-treinado está sendo ajustado. Por exemplo: 

  • Um LLM pré-treinado para linguagem geral pode ser ajustado para codificação com um novo conjunto de dados contendo solicitações de programação relevantes e trechos de código correspondentes para cada uma delas.

  • Um modelo de classificação de imagens usado para identificar determinadas espécies de aves pode aprender novas espécies por meio de amostras de treinamento rotuladas adicionais.

  • Um LLM pode aprender a emular um estilo de escrita específico por meio do aprendizado autossupervisionado em textos de amostra que representam esse estilo.

Aprendizado semissupervisionado, um subconjunto de aprendizado de máquina que incorpora dados rotulados e não rotulados, é vantajoso quando o cenário exige um aprendizado supervisionado, mas há uma escassez de exemplos rotulados adequados. O ajuste fino semissupervisionado produziu resultados promissores para tarefas de computer vision1 e PNL2 e ajuda a reduzir a carga de aquisição de uma quantidade suficiente de dados rotulados.

O ajuste fino pode ser utilizado para atualizar os pesos de toda a rede, mas, por motivos práticos, nem sempre é esse o caso. Há uma grande variedade de métodos alternativos de ajuste fino, geralmente chamados de ajuste fino com eficiência de parâmetros (PEFT), que atualizam apenas um determinado subconjunto de parâmetros do modelo. Os métodos PEFT, que serão explorados posteriormente nesta seção, podem diminuir as demandas computacionais e reduzir o esquecimento catastrófico– o fenômeno no qual o ajuste fino causa a perda ou a desestabilização do conhecimento básico do modelo – geralmente sem comprometer consideravelmente o desempenho.

Dada a grande variedade de técnicas de ajuste fino e as muitas variáveis inerentes a cada uma, alcançar o desempenho ideal do modelo geralmente requer várias iterações de estratégias e configurações de treinamento, ajuste dos conjuntos de dados e dos hiperparâmetros, como o tamanho do lote, a taxa de aprendizado e os termos de regularização, até que se chegue a um resultado satisfatório, de acordo com as métricas mais relevantes para seu caso de uso.

Ajuste fino completo

O meio mais conceitualmente simples de fazer o ajuste fino é simplesmente atualizar toda a rede neural. Essa metodologia simples se assemelha basicamente ao processo de pré-treinamento: as únicas diferenças fundamentais entre os processos de ajuste fino completo e de pré-treinamento são o conjunto de dados que está sendo usado e o estado inicial dos parâmetros do modelo.

Para evitar mudanças desestabilizadoras no processo de ajuste fino, certos hiperparâmetros (atributos do modelo que influenciam o processo de aprendizagem, mas que não são parâmetros aprendíveis) podem ser ajustados em relação às suas especificações durante o pré-treinamento: por exemplo, uma taxa de aprendizagem menor (que reduz a magnitude de cada atualização dos pesos do modelo) tem menos probabilidade de levar a um esquecimento catastrófico.

Ajuste fino com eficiência de parâmetros (PEFT)

O ajuste fino completo, assim como o processo de pré-treinamento ao qual se assemelha, é muito exigente em termos de computação. Para os modelos modernos de deep learning com centenas de milhões ou até mesmo muitos bilhões de parâmetros, isso costuma ser proibitivamente caro e impraticável.

O ajuste fino com eficiência de parâmetros (PEFT) engloba uma variedade de métodos para reduzir o número de parâmetros treináveis que precisam ser atualizados para adaptar efetivamente um grande modelo treinado previamente às aplicações específicas subsequentes. Ao fazer isso, o PEFT diminui consideravelmente os recursos computacionais e o armazenamento de memória necessários para produzir um modelo com um ajuste fino eficaz. Os métodos PEFT geralmente demonstram serem mais estáveis do que os métodos de ajuste fino completo, especialmente para casos de uso de PLN.3

Ajuste fino parcial

Também chamados de ajuste fino seletivo, os métodos parciais de ajuste fino visam reduzir as demandas computacionais, atualizando somente o subconjunto selecionado de parâmetros treinados previamente mais críticos para modelar o desempenho nas tarefas relevantes posteriores. Os parâmetros restantes são "congelados", garantindo que não serão alterados.

A abordagem de ajuste fine parcial mais intuitiva é atualizar somente as camadas externas da rede neural. Na maioria das arquiteturas de modelo, as camadas internas do modelo (mais próximas da camada de input) capturam apenas recursos amplos e genéricos: por exemplo, em uma CNN usada para classificação de imagens, as camadas iniciais normalmente identificam edges e texturas; cada camada subsequente identifica recursos cada vez mais finos até que a classificação final seja prevista na camada mais externa. De modo geral, quanto mais semelhante for a nova tarefa (para a qual o modelo está sendo ajustado) à tarefa original, mais úteis serão os pesos pré-treinados das camadas internas para essa nova tarefa relacionada (e, portanto, menos camadas precisarão ser atualizadas).

Outros métodos de ajuste fino parcial, inclusive a atualização apenas dos termos de viés de toda a camada do modelo (em vez dos pesos específicos do nó)e métodos de ajuste fino "esparsos" que atualizam somente um subconjunto selecionado de pesos gerais em todo o modelo.5

Ajuste fino aditivo

Em vez de ajustar os parâmetros existentes de um modelo treinado previamente, os métodos aditivos adicionam parâmetros ou camadas extras ao modelo, congelam os pesos treinados previamente existentes e treinam apenas esses novos componentes. Essa abordagem ajuda a manter a estabilidade do modelo, garantindo que os pesos treinados previamente originais permaneçam inalterados.

Embora isso possa aumentar o tempo de treinamento, reduz consideravelmente os requisitos de memória porque há muito menos gradientes e estados de otimização para armazenar: de acordo com Lialin, et al, treinar todos os parâmetros de um modelo exige de 12 a 20 vezes mais memória de GPU do que somente o peso do modelo.6 É possível alcançar mais economias de memória através da quantização dos pesos do modelo congelado: uma redução na precisão utilizada para representar os parâmetros do modelo, conceitualmente semelhante à redução da taxa de bits de um arquivo de áudio.

Um sub-ramo dos métodos aditivos é o ajuste de prompt. Conceitualmente, é semelhante à engenharia de prompts, que se refere à adaptação de "prompts fixos", ou seja, instruções escritas por um humano em linguagem natural para orientar o modelo para chegar ao resultado desejado, como a definição de um determinado tom ou a apresentação de exemplos que facilitem o aprendizado few-shot. O ajuste de prompt introduz os prompts flexíveis criados por IA: incorporações vetoriais aprendíveis concatenadas ao prompt fixo do usuário. Em vez de treinar novamente o modelo, o ajuste de prompt envolve o congelamento dos pesos do modelo e, em vez disso, treina o próprio prompt flexível. Rápido e eficiente, o ajuste de prompt permite que os modelos alternem mais facilmente entre tarefas específicas, embora com uma desvantagem na capacidade de interpretação.

Adaptadores

Outro subconjunto de ajuste fino aditivo injeta módulos adaptadores, novas camadas específicas da tarefa adicionadas à rede neural, e treina esses módulos adaptadores em vez de ajustar qualquer um dos pesos do modelo treinado previamente (que estão congelados). De acordo com o artigo original que mediu os resultados no modelo de linguagem mascarada BERT, os adaptadores alcançaram um desempenho equivalente ao de um ajuste fino completo, treinando apenas 3,6% dos parâmetros.7

Reparametrização

Métodos baseados em reparametrização, como Adaptação de Baixa Classificação (LoRA), utilizam a transformação de baixa classificação de matrizes de alta dimensão (como a enorme matriz de pesos de um modelo treinado previamente em um modelo transformador). Essas representações de baixa classificação omitem informações irrelevantes de alta dimensão para capturar a estrutura subjacente de baixa dimensão dos pesos do modelo, reduzindo muito o número de parâmetros treináveis. Isso acelera drasticamente o ajuste fino e reduz a memória necessária para armazenar as atualizações do modelo.

A LoRA evita a otimização direta da matriz de pesos do modelo e, em vez disso, otimiza uma matriz de atualizações dos pesos do modelo (ou pesos delta), que é inserida no modelo. Essa matriz de atualizações de peso é, por sua vez, representada como duas matrizes menores (isto é, de classificação inferior), reduzindo bastante o número de parâmetros a serem atualizados, o que por sua vez acelera drasticamente o ajuste fino e reduz a memória necessária para armazenar atualizações do modelo. Os próprios pesos do modelo treinado previamente permanecem congelados.

Um benefício adicional da LoRA é que, como o que está sendo otimizado e armazenado não são novos pesos do modelo, mas sim a diferença (ou delta) entre os pesos pré-treinados originais e os pesos ajustados, diferentes LoRAs específicas da tarefa podem ser "trocadas" conforme necessário para adaptar o modelo pré-treinado, cujos parâmetros reais permanecem inalterados, a um determinado caso de uso.

Diversos derivados da LoRA foram desenvolvidos, como a QLoRA, que reduz ainda mais a complexidade computacional quantificando o modelo do transformador antes do LoRA.

Ajuste fino de grandes modelos de linguagem

O ajuste fino é uma parte essencial do ciclo de desenvolvimento do LLM, permitindo que os recursos linguísticos brutos dos modelos de base sejam adaptados para uma variedade de casos de uso, de chatbots a programação e outras áreas criativas e técnicas.

Os LLMs são treinados previamente com aprendizado autossupervisionado em um enorme corpo de dados não rotulados. Modelos de linguagem autorregressiva, como o GPT da OpenAI, o Gemini do Google ou os modelos Llama da Meta são treinados para simplesmente prever as próximas palavras de uma sequência até que ser concluída. No treinamento prévio, os modelos recebem o início de uma frase de amostra extraída dos dados de treinamento e são repetidamente encarregados de prever a próxima palavra na sequência até o final da amostra. Para cada previsão, a próxima palavra real da frase de amostra original serve como verdade fundamental.

Apesar de este pré-treinamento proporcionar recursos poderosos de geração de texto, ele não oferece uma compreensão real da intenção do usuário. De forma fundamental, os modelos de linguagem autorregressivos não respondem a um prompt; eles apenas adicionam texto a ele. Sem uma orientação muito específica na forma de engenharia de prompts, um LLM pré-treinado (que não foi ajustado) simplesmente prevê, de uma forma gramaticalmente coerente, quais podem ser as próximas palavras em uma determinada sequência que é iniciada pelo prompt. Se o prompt for "ensine-me a fazer um currículo", um LLM pode responder "usando o Microsoft Word". É uma maneira válida de concluir a frase, mas não está alinhada com o objetivo do usuário. O modelo pode já ter um conhecimento substancial sobre a elaboração de currículos, obtido a partir de conteúdos relevantes incluídos no seu corpus de pré-treinamento, mas sem um ajuste fino, este conhecimento pode não ser acessado.

O processo de ajuste fino, portanto, desempenha um papel crucial não apenas na adaptação de modelos de base para o tom e os casos de uso exclusivos seus ou do seu negócio, mas também em torná-los totalmente adequados para uso prático.

Ajuste de instruções

O ajuste de instrução é um subconjunto do ajuste fino supervisionado (SFT), frequentemente usado para ajustar LLMs para uso em chatbot, que prepara o LLM para gerar respostas que atendam mais diretamente às necessidades do usuário: em outras palavras, para seguir melhor as instruções. Exemplos rotulados, seguindo o formato (prompt, resposta) – em que os exemplos de prompt compreendem tarefas orientadas por instruções, como "traduza a seguinte frase do inglês para o espanhol" ou "classifique a seguinte frase como positiva ou negativa" – demonstram como responder a prompts que representam uma variedade de casos de uso, como resposta a perguntas, resumo ou tradução. Ao atualizar os pesos do modelo para minimizar a perda entre os outputs do modelo e as amostras rotuladas, o LLM aprende a acrescentar texto aos prompts de uma maneira mais útil e a seguir melhor as instruções em geral.

Continuando com o exemplo de prompt anterior de "ensine-me a fazer um currículo", o conjunto de dados usado para SFT pode conter vários pares de (prompt, resposta), demonstrando que a maneira desejada de responder aos prompts que começam com "ensine-me a fazer" é fornecer sugestões passo a passo, em vez de simplesmente completar a frase.

Aprendizado por reforço com feedback humano (RLHF)

Embora o ajuste de instruções possa ensinar ao modelo comportamentos tangíveis e diretos, como a estruturação de suas respostas, pode ser proibitivamente trabalhoso e difícil ensinar qualidades humanas abstratas, como ajuda, precisão dos fatos, humor ou empatia, por meio de exemplos rotulados.

Para alinhar melhor os resultados do modelo ao comportamento humano ideal, especialmente para casos de uso conversacional, como chatbots, o SFT pode ser complementado com aprendizado por reforço, mais especificamente aprendizado por reforço com feedback humano (RLHF). O RLHF, também conhecido como aprendizado por reforço a partir de preferências humanas, ajuda a ajustar os modelos com qualidades complexas, mal definidas ou difíceis de especificar por meio de exemplos discretos.

Considere a comédia: ensinar um modelo a ser "engraçado" com o SFT não requer apenas o custo e o trabalho de escrever (ou adquirir) piadas suficientes para criar um padrão que possa ser aprendido, mas também exige que o que um determinado cientista de dados considera engraçado esteja alinhado com o que a base de usuários acharia engraçado. Basicamente, o RLHF oferece uma alternativa matematicamente de crowdsourcing: solicitar que o LLM gere piadas e fazer com que os testadores humanos avaliem sua qualidade. Essas classificações podem ser usadas para treinar um modelo de recompensa para prever os tipos de piadas que receberão feedback positivo e, por sua vez, esse modelo de recompensa pode ser usado para treinar o LLM por meio do aprendizado por reforço. 

De forma mais prática, o RLHF visa enfrentar os desafios existenciais dos LLMs, como alucinações, refletindo preconceitos sociais inerentes aos dados de treinamento ou lidando com inputs de usuários rudes ou combativos.

Casos de uso comuns de ajuste fino

O ajuste fino pode ser usado para uma ampla variedade de finalidades, desde a personalização até a complementação do conhecimento central do modelo, até a extensão do modelo para tarefas e áreas totalmente novas.

  • Estilo de personalização: os modelos podem ser ajustados para refletir o tom desejado de uma marca, desde a implementação de padrões comportamentais complexos e estilos de ilustração idiossincráticos até modificações simples, como iniciar cada troca com uma saudação educada.

  • Especialização: as habilidades linguísticas gerais dos LLMs podem ser aprimoradas para tarefas específicas. Por exemplo, os modelos Llama 2 da Meta foram lançados como modelos de base, variantes ajustadas por chatbot (Llama-2-chat) e variantes ajustadas por código (Code Llama).

  • Adição de conhecimento específico do domínio: embora os LLMs sejam pré-treinados em um enorme corpus de dados, eles não são oniscientes. O uso de amostras de treinamento adicionais para complementar o conhecimento do modelo de base é particularmente relevante em contextos jurídicos, financeiros ou médicos, que normalmente implicam o uso de um vocabulário especializado que pode não ter sido suficientemente representado no pré-treinamento.

  • Aprendizado "few-shot": os modelos que já têm um forte conhecimento generalizado muitas vezes podem ser ajustados para textos de classificação mais específicos usando comparativamente poucos exemplos demonstrativos. 

  • Lidar com casos extremos: você pode querer que seu modelo lide com determinadas situações que provavelmente não foram abordadas no pré-treinamento de uma maneira específica. Ajustar um modelo com exemplos rotulados dessas situações é uma maneira eficaz de garantir que elas sejam tratadas adequadamente.

  • Incorporação de dados proprietários: sua empresa pode ter seu próprio pipeline de dados proprietários, algo altamente relevante para seu caso de uso específico. O ajuste fino permite incorporar esse conhecimento ao modelo sem precisar treiná-lo do zero.

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Serviços de IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real