O ajuste de instruções é uma técnica para fazer ajuste fino de grandes modelos de linguagem (LLMs) em um conjunto de dados rotulado de prompts instrucionais e outputs correspondentes. Ele melhora o desempenho do modelo não apenas em tarefas específicas, mas também no seguimento de instruções em geral, ajudando assim a adaptar modelos pré-treinados para uso prático.
O ajuste de instrução é um subconjunto da categoria mais ampla de técnicas de ajuste fino usadas para adaptar modelos de base pré-treinados para tarefas subsequentes. Modelos de base podem ser ajustados finamente para uma variedade de propósitos, desde a personalização de estilo até o complemento do conhecimento central e vocabulário do modelo pré-treinado, ou a otimização do desempenho para um caso de uso específico. Embora o ajuste fino não seja exclusivo de nenhum domínio específico ou arquitetura de modelo de inteligência artificial, ele se tornou parte integrante do ciclo de vida dos LLMs. Por exemplo, a família de modelos Llama 2 da Meta é oferecida (em vários tamanhos) como um modelo base, como uma variante ajustada finamente para diálogo (Llama-2-chat) e como uma variante ajustada finamente para codificação (Code Llama).
O ajuste de instrução não é mutuamente exclusivo com outras técnicas de ajuste fino. Por exemplo, os modelos de bate-papo geralmente passam por ajustes de instruções e aprendizagem por reforço a partir do feedback humano (RLHF), uma técnica de ajuste fino que visa melhorar qualidades abstratas como utilidade e honestidade; modelos ajustados finamente para codificação frequentemente passam por ajuste de instruções (para otimizar amplamente respostas para seguimento de instruções) e ajuste adicional em dados específicos de programação (para aumentar o conhecimento do modelo sobre sintaxe e vocabulário de codificação).
Enquanto a geração dos LLMs remonta ao artigo de 2017 "Attention is All You Need", que introduziu modelos de transformadores em larga escala para tarefas de processamento de linguagem natural (PLN), a incorporação do ajuste de instrução e do RLHF, impulsionada por artigos influentes da Google (em 2021)1 e da OpenAI (em 2022)2, respectivamente, resultou nos LLMs modernos que iniciaram a atual era da IA generativa com o lançamento do ChatGPT.
A utilidade do ajuste de instrução, como a da maioria das técnicas de ajuste fino, reside no fato de que os LLMs pré-treinados não são otimizados para conversas ou seguimento de instruções. No sentido literal, os LLMs não respondem a um prompt: eles apenas adicionam texto a ele. O ajuste de instrução ajuda a tornar esse texto adicionado mais útil.
O processo de pré-treinamento para modelos de linguagem autorregressivos, LLMs usados para gerar texto, como o Llama 2 da Meta, o GPT da OpenAI, o Gemini do Google ou o Granite da IBM, otimiza esses LLMs para simplesmente prever a(s) próxima(s) palavra(s) em uma determinada sequência até que ela esteja completa.
Os LLMs são pré-treinados usando aprendizado autossupervisionado em um grande corpus de conteúdo escrito. No pré-treinamento, modelos autorregressivos recebem o início de uma amostra de texto e são repetidamente encarregados de prever a próxima palavra na sequência até o final do trecho. Para cada previsão, a próxima palavra real da frase de amostra original serve como "verdade absoluta". Através de algoritmos de otimização como gradiente descendente, que ajustam iterativamente os parâmetros do modelo, os pesos e vieses variáveis aplicados às operações matemáticas que ocorrem em cada nó de uma rede neural, de uma maneira que aproxima as previsões do modelo do texto original, o modelo "aprende" os padrões linguísticos em seus dados de treinamento (e, por extensão, o "conhecimento" transmitido nesses padrões linguísticos).
Embora esse processo de pré-treinamento proporcione uma habilidade impressionante de gerar texto linguisticamente coerente, ele não necessariamente alinha o desempenho do modelo com as necessidades práticas dos usuários humanos. Sem ajuste fino, um modelo de base pode responder a uma solicitação de "me ensine a fazer pão" com "em um forno de casa". Isso é uma forma gramaticalmente correta de completar a frase, mas não é o que o usuário queria.
No entanto, pré-treinar um LLM para qualquer propósito específico (como seguir instruções) é impraticável. O "grande" em "grandes modelos de linguagem" refere-se ao fato de que esses modelos frequentemente possuem bilhões de parâmetros: treinar esses enormes modelos do zero exige uma quantidade tremenda de energia, tempo, recursos computacionais e dados de treinamento. Por outro lado, o ajuste fino de um LLM já treinado requer muito menos dados e, especialmente ao usar métodos de ajuste fino com eficiência de parâmetros (PEFT), como ajuste fino parcial ou adaptação de baixa classificação (LoRA), apenas uma fração das demandas computacionais.
Embora o ajuste fino possa ser realizado através de praticamente qualquer paradigma de aprendizado de máquina, incluindo aprendizado por reforço, aprendizado semissupervisionado ou aprendizado autossupervisionado adicional, o ajuste de instrução envolve aprendizado supervisionado em pares rotulados (input, output). O que distingue o ajuste de instrução de outras formas de ajuste fino supervisionado (SFT) é que as amostras de input em um conjunto de dados de instrução consistem inteiramente em tarefas que se assemelham a solicitações que os usuários podem fazer em seus prompts; os outputs demonstram respostas desejáveis a essas solicitações. Ao ajustar os pesos do modelo para fazer com que os outputs do LLM se assemelhem aos exemplos no conjunto de dados de instrução, o LLM "aprende" a responder a um prompt como "me ensine a fazer pão " anexando texto que contém conselhos reais sobre como fazer pão.
Assim, o ajuste de instruções ajuda a preencher a lacuna entre o objetivo fundamental do modelo (a previsão da próxima palavra) e o objetivo do usuário de fazer com que o modelo siga instruções e execute tarefas específicas. Isso torna o comportamento do modelo mais útil e previsível.
O ajuste fino dos LLMs em um conjunto de dados rotulado de tarefas variadas de seguimento de instruções resulta em uma maior capacidade de seguir instruções em geral, reduzindo a quantidade de informação no contexto necessária para prompts eficazes. Conjuntos de dados de instrução podem ser tanto criados manualmente quanto gerados por outro LLM.
Como articulado no influente artigo de 2022 da Google Research, "Finetuned Language Models are Zero-Shot Learners", o objetivo do ajuste de instrução é melhorar a capacidade dos LLMs de responder a instruções de PLN. Para isso, o ajuste de instrução "combina aspectos atraentes dos paradigmas de pré-treinamento-ajuste fino e de prompt". Em essência, ao incorporar organicamente os princípios de engenharia de prompt no ajuste fino supervisionado, o ajuste de instrução reduz a quantidade de engenharia de prompt e exemplares few-shot necessários para obter uma resposta útil e precisa do modelo ajustado finamente1.
Cada amostra de treinamento em um conjunto de dados de instrução compreende três elementos:
O artigo da Google observou que a variante ajustada de instrução de seu modelo LaMDA-PT, apelidada de FLAN (Finetuned Language Net), experimentou as maiores melhorias em tarefas que são naturalmente articuladas, como instruções, tradução, perguntas e respostas, compreensão de leitura e inferência de linguagem natural (NLI), que é a tarefa de determinar se uma determinada "hipótese" segue logicamente de uma determinada "premissa".
Para explicar isso, o artigo do FLAN nota uma observação feita por Brown, et al no artigo de pesquisa lançado para o modelo GPT-3 original em 2020: uma explicação para o motivo pelo qual os LLMs pré-treinados (sem ajuste fino adicional) têm dificuldades com tarefas como NLI é que passagens que se assemelham a uma tarefa típica de NLI são improváveis de ocorrer naturalmente no corpus de dados não rotulados usados para o pré-treinamento autossupervisionado3. Por outro lado, para tarefas que se assemelham mais ao objetivo direto de modelagem de linguagem do pré-treinamento (como tarefas de raciocínio de senso comum que, em última análise, exigem que o modelo complete uma frase corretamente), as instruções são amplamente redundantes (e, portanto, o ajuste de instrução proporciona menos benefício).
Talvez o mais importante, o artigo demonstrou que adicionar tarefas adicionais ao conjunto de dados de ajuste de instrução melhorou o desempenho do modelo ajustado de instrução mesmo em tarefas novas que não estavam representadas no conjunto de dados. Aqui reside o benefício fundamental do ajuste de instrução: uma melhoria holística na capacidade do modelo de seguir instruções em geral.
O artigo do FLAN também continha um estudo que explorava se os aparentes benefícios do ajuste fino de instruções eram devidos às próprias instruções ou simplesmente atribuíveis ao ajuste fino do modelo em múltiplas tarefas de PLN. Para examinar o papel das instruções no ajuste fino, o estudo de revocação fez o ajuste fino do modelo base em três configurações diferentes:
O estudo então mediu os resultados de cada modelo de linguagem ajustado finamente em uma série de tarefas de seguimento de instruções zero-shot. O modelo ajustado por instruções obteve uma precisão 18% maior do que o "sem modelo" e 8% maior do que o modelo de "nome do conjunto de dados". Isso indica que treinar com as próprias instruções é crucial para aprimorar o desempenho zero-shot em tarefas não vistas.
O ajuste fino da cadeia de pensamento (CoT) solicita a um LLM não apenas responder a uma pergunta, mas também gerar uma justificativa de como chegou a uma resposta. Isso pode ser alcançado por meio de prompt few-shot com exemplares de raciocínio sequencial ou simplesmente adicionando "pense passo a passo" ao final de um prompt. Pesquisas demonstraram que o CoT prompting melhora significativamente as capacidades zero-shot de grandes modelos em diversas tarefas aritméticas, de raciocínio simbólico e outras tarefas de raciocínio lógico5. Wei, et al. descobriram que o ajuste de instrução que não inclui tarefas CoT no conjunto de dados de instrução diminui significativamente o desempenho do modelo nas avaliações de CoT, mas que adicionar conjuntos de dados CoT melhora o desempenho em todas as avaliações6.
Além disso, sua pesquisa descobriu que o ajuste fino de instrução em tarefas CoT, tanto com quanto sem exemplares few-shot, aumenta a capacidade de raciocínio CoT de um modelo em um ambiente zero-shot. Uma compreensão intuitiva desse benefício seria que, ao ser ajustado finamente para resolver um problema em etapas lógicas em vez de pular para uma resposta que simplesmente parece linguisticamente coerente, os modelos aprendem a produzir e aplicar melhor suas próprias habilidades de raciocínio.
Há diversos conjuntos de dados para o propósito de ajuste de instrução de LLMs, muitos dos quais são de código aberto. Esses conjuntos de dados podem conter pares de linguagem natural (instrução, produção) escritos diretamente (ou coletados), usar modelos para converter conjuntos de dados anotados existentes em instruções ou mesmo utilizar outros LLMs para gerar exemplos.
Embora a criação direta de pares (instrução, output) seja simples, é um processo que demanda muito trabalho e, por fim, envolve uma quantidade significativa de tempo e custo. Diversos métodos foram propostos para transformar conjuntos de dados de linguagem natural em instruções, tipicamente aplicando modelos. O lançamento de múltiplos conjuntos de dados criados manualmente e de código aberto ajudou a reduzir o custo do ajuste fino em dados orgânicos.
Conjuntos de dados de instrução criados por humanos e de código aberto proeminentes incluem:
Motivados pela quantidade proibitiva de custo e trabalho necessários para gerar manualmente instruções e outputs, muitos conjuntos de dados de instrução usam as respostas de LLMs maiores para gerar prompts, outputs ou ambos. O uso de conjuntos de dados gerados por LLMs frequentemente tem o efeito adicional de ensinar modelos menores a emular o comportamento de modelos maiores, às vezes em uma dinâmica deliberada de professor/aluno.
Com o aumento do poder dos LLMs, a utilidade dos conjuntos de dados de ajuste de instrução gerados por LLMs também aumentou. Um artigo de 2023 replicou o paradigma de ajuste fino do Alpaca, que ajustou o LLaMA com instruções geradas pelo InstructGPT, enquanto repetia o processo em paralelo com GPT-4 para gerar instruções. O modelo resultante, que denominaram LLaMA-GPT4, superou consideravelmente as pontuações de "utilidade" do equivalente Alpaca e chegou perto de igualar o próprio GPT-4 nas medidas de "utilidade", "honestidade" e "inofensivo"11.
Embora as técnicas de ajuste de instrução tenham gerado avanços importantes nos LLMs, ainda é necessário diversificar os conjuntos de dados de ajuste de instrução e esclarecer completamente seus benefícios.
O principal desafio do ajuste de instrução é a criação de instruções de alta qualidade para uso no ajuste fino. Os recursos necessários para criar um conjunto de dados de instrução suficientemente grande centralizaram as instruções em um punhado de conjuntos de dados de código aberto, o que pode ter o efeito de diminuir a diversidade dos modelos. Embora o uso de LLMs proprietários maiores para gerar instruções tenha ajudado a reduzir os custos, isso tem a desvantagem potencial de reforçar os vieses e deficiências desses LLMs proprietários em todo o espectro dos LLMs de código aberto. Esse problema é agravado pelo fato de que modelos proprietários são frequentemente, na tentativa de contornar o viés intrínseco dos pesquisadores humanos, usados para avaliar o desempenho de modelos menores.
Em um nível técnico, alguns pesquisadores levantaram preocupações de que o uso de modelos maiores para melhorar modelos menores pode ajudar os menores a imitar o estilo dos modelos maiores, mas não sua funcionalidade real. Um estudo empírico de 2023 sugeriu que muitos dos impressionantes ganhos de desempenho obtidos através do ajuste de instrução podem resultar da captura de padrões superficiais, em vez de uma melhoria mais genuína no raciocínio lógico12.
Da mesma forma, outros pesquisadores postularam que algumas melhorias relatadas podem depender um pouco da avaliação do desempenho de modelos ajustados por instrução em tarefas muito relacionadas às do conjunto de dados de treinamento de instruções. Através de testes mais direcionados de modelos ajustados por instrução dessa forma, Gudibande, et al. concluíram que "a ação de maior alavancagem para melhorar os modelos de código aberto é enfrentar o desafio difícil de desenvolver melhores modelos de base de linguagem, em vez de tomar o atalho de imitar sistemas proprietários"13.
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.
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.
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.
Aprenda como os CEOs podem equilibrar o valor que a IA generativa pode criar com o investimento que ela exige e os riscos que ela introduz.
Aprenda conceitos fundamentais e desenvolva suas habilidades com laboratórios práticos, cursos, projetos guiados, avaliações e muito mais.
Saiba como incorporar com confiança a IA generativa e o aprendizado de máquina em sua empresa.
Quer ter mais retorno sobre seus investimentos em IA? Saiba como o dimensionamento da IA generativa em áreas importantes promove mudanças, ajudando suas melhores mentes a criar e oferecer soluções novas e inovadoras.
Entrevistamos duas mil organizações a respeito de suas iniciativas de IA para descobrir o que está funcionando, o que não está e como se preparar.
O IBM® Granite é nossa família de modelos de IA abertos, de alto desempenho e confiáveis, personalizados para a empresa e otimizados para escalar suas aplicações de IA. Explore as opções de linguagens, código, séries temporais e proteções.
Saiba como selecionar o modelo de base de IA mais adequado para seu caso de uso.
Aprofunde-se nos três elementos críticos de uma estratégia de IA forte: gerar vantagem competitiva, escalar a IA em toda a empresa e avançar na IA confiável.
OBSERVAÇÃO: todos os links fora do ibm.com.
1 "Finetuned Language Models Are Zero-Shot Learners", Google (via arXiv), 3 de setembro de 2021 (última revisão em 8 de fevereiro de 2022).
2 "Aligning language models to follow instructions", OpenAI, 27 de janeiro de 2022.
3 "Language Models are Few-Shot Learners", arXiv, 22 de julho de 2020.
4 "WMT 2014", Papers With Code, 27 de junho de 2014.
5 "Language Models are Zero-Shot Logicers", arXiv, 24 de maio de 2022 (última revisão em 29 de janeiro de 2023).
6 "Scaling Instruction-Finetuned Language Models", Google (via arXiv), 6 de dezembro de 2022.
7 "Alpaca: A Strong, Replicable Instruction-Following Model", Stanford Center for Research on Foundation Models, 13 de março de 2023.
8 "WizardLM: Empowering Large Language Models to Follow Complex Instructions", arXiv, 10 de junho de 2023.
9 "Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality", LMSYS Org, 30 de março de 2023.
10 "Orca: Progressive Learning from Complex Explanation Traces of GPT-4", Microsoft, junho de 2023.
11 "Instruction Tuning with GPT-4", arXiv, 6 de abril de 2023.
12 "Do Models Really Learn to Follow Instructions? An Empirical Study of Instruction Tuning", arXiv, 19 de maio de 2023.
13 "The False Promise of Imitating Proprietary LLMs", arXiv, 25 de maio de 2023.