toco Compreendendo o ajuste fino do LLM: adaptando grandes modelos de linguagem aos seus requisitos exclusivos - Unite.AI
Entre em contato

Engenharia imediata

Compreendendo o ajuste fino do LLM: adaptando grandes modelos de linguagem aos seus requisitos exclusivos

mm
Atualização do on
Representação de ajuste fino LLM - Midjourney

No momento em que estamos em setembro de 2023, o cenário dos Large Language Models (LLMs) ainda testemunha o surgimento de modelos, incluindo Alpaca, Falcon, lhama 2, GPT-4 e muitos outros.

Um aspecto importante para aproveitar o potencial desses LLMs está no processo de ajuste fino, estratégia que permite a customização de modelos pré-treinados para atender tarefas específicas com precisão. É através deste ajuste que estes modelos podem realmente alinhar-se com requisitos individualizados, oferecendo soluções que são inovadoras e adaptadas às necessidades únicas.

No entanto, é essencial observar que nem todos os caminhos de ajuste fino são criados iguais. Por exemplo, o acesso às capacidades de ajuste fino do GPT-4 é caro, exigindo uma assinatura paga que é relativamente mais cara em comparação com outras opções disponíveis no mercado. Por outro lado, o domínio do código aberto está repleto de alternativas que oferecem um caminho mais acessível para aproveitar o poder dos grandes modelos de linguagem. Estas opções de código aberto democratizam o acesso à tecnologia avançada de IA, promovendo a inovação e a inclusão no cenário de IA em rápida evolução.

Por que o ajuste fino do LLM é importante?

O ajuste fino do LLM é mais do que um aprimoramento técnico; é um aspecto crucial do desenvolvimento do modelo LLM que permite uma aplicação mais específica e refinada em diversas tarefas. O ajuste fino ajusta os modelos pré-treinados para melhor atender conjuntos de dados específicos, melhorando seu desempenho em tarefas específicas e garantindo uma aplicação mais direcionada. Ele traz à tona a notável capacidade dos LLMs de se adaptarem a novos dados, demonstrando flexibilidade que é vital no interesse cada vez maior em aplicações de IA.

O ajuste fino de grandes modelos de linguagem abre muitas oportunidades, permitindo que eles se destaquem em tarefas específicas que vão desde análise de sentimentos até revisões de literatura médica. Ao ajustar o modelo básico para um caso de uso específico, desbloqueamos novas possibilidades, melhorando a eficiência e a precisão do modelo. Além disso, facilita uma utilização mais económica dos recursos do sistema, uma vez que o ajuste fino requer menos poder computacional em comparação com o treino de um modelo do zero.

À medida que nos aprofundamos neste guia, discutiremos os meandros do ajuste fino do LLM, fornecendo uma visão geral abrangente baseada nos avanços mais recentes e nas melhores práticas na área.

Ajuste fino baseado em instruções

A fase de ajuste fino no IA generativa O ciclo de vida, ilustrado na figura abaixo, é caracterizado pela integração de entradas e saídas de instruções, juntamente com exemplos de raciocínio passo a passo. Esta abordagem facilita o modelo na geração de respostas que não são apenas relevantes, mas também precisamente alinhadas com as instruções específicas inseridas nele. É nesta fase que os modelos pré-treinados são adaptados para resolver tarefas e casos de utilização distintos, utilizando conjuntos de dados personalizados para melhorar a sua funcionalidade.

Ciclo de vida de IA generativa - ajuste fino, engenharia imediata e RLHF

Ciclo de vida de IA generativa – ajuste fino

Ajuste fino de tarefa única

O ajuste fino de tarefa única concentra-se em aprimorar a experiência do modelo em uma tarefa específica, como o resumo. Essa abordagem é particularmente benéfica na otimização de fluxos de trabalho que envolvem documentos ou conversas substanciais, incluindo documentos legais e tickets de suporte ao cliente. Notavelmente, esse ajuste fino pode alcançar melhorias significativas de desempenho com um conjunto relativamente pequeno de exemplos, variando de 500 a 1000, um contraste com os bilhões de tokens utilizados na fase de pré-treinamento.

Ilustração de exemplo de ajuste fino de tarefa única

Ilustração de exemplo de ajuste fino de tarefa única

 

Fundamentos do LLM Fine-Tuning LLM: Arquitetura do Transformador e Além

A jornada de compreensão do ajuste fino do LLM começa com a compreensão dos elementos fundamentais que constituem os LLMs. No centro destes modelos está o arquitetura do transformador, uma rede neural que aproveita mecanismos de autoatenção para priorizar o contexto das palavras em vez de sua proximidade em uma frase. Esta abordagem inovadora facilita uma compreensão mais profunda das relações distantes entre os tokens na entrada.

À medida que navegamos pelas complexidades dos transformadores, encontramos um processo de várias etapas que começa com o codificador. Esta fase inicial envolve tokenizar a entrada e criar vetores de incorporação que representam a entrada e sua posição na frase. As etapas subsequentes envolvem uma série de cálculos usando matrizes conhecidas como pergunta, Valor e Chave, culminando em uma pontuação de autoatenção que dita o foco em diferentes partes da frase e em vários tokens.

Arquitetura do Transformador

Arquitetura do Transformador

O ajuste fino representa uma fase crítica no desenvolvimento de LLMs, um processo que envolve fazer ajustes sutis para alcançar resultados mais desejáveis. Esta etapa, embora essencial, apresenta um conjunto de desafios, incluindo as demandas computacionais e de armazenamento para lidar com um grande número de parâmetros. O ajuste fino com eficiência de parâmetros (PEFT) oferece técnicas para reduzir o número de parâmetros a serem ajustados, simplificando assim o processo de treinamento.

Pré-treinamento LLM: Estabelecendo uma base sólida

Nos estágios iniciais do desenvolvimento do LLM, o pré-treinamento ocupa o centro das atenções, utilizando transformadores superparametrizados como arquitetura fundamental. Este processo envolve modelar a linguagem natural de várias maneiras, como bidirecional, autorregressiva ou sequência a sequência em corpora não supervisionados em grande escala. O objetivo aqui é criar uma base que possa ser ajustada posteriormente para tarefas específicas a jusante, através da introdução de objetivos específicos para cada tarefa.

Pré-treinamento, ajuste fino

Pré-treinamento, ajuste fino

Uma tendência digna de nota nesta esfera é o inevitável aumento na escala de LLMs pré-treinados, medido pelo número de parâmetros. Os dados empíricos mostram consistentemente que modelos maiores, juntamente com mais dados, quase sempre produzem melhor desempenho. Por exemplo, o GPT-3, com os seus 175 mil milhões de parâmetros, estabeleceu uma referência na geração de linguagem natural de alta qualidade e na execução eficiente de uma vasta gama de tarefas de disparo zero.

Ajuste fino: o caminho para a adaptação do modelo

Após o pré-treinamento, o LLM passa por ajustes para se adaptar a tarefas específicas. Apesar do desempenho promissor demonstrado pela aprendizagem contextual em LLMs pré-treinados, como o GPT-3, o ajuste fino permanece superior em ambientes específicos de tarefas. No entanto, a abordagem predominante de ajuste fino de parâmetros completos apresenta desafios, incluindo altas demandas computacionais e de memória, especialmente quando se trata de modelos de grande escala.

Para modelos de linguagem grandes com mais de um bilhão de parâmetros, o gerenciamento eficiente da RAM da GPU é fundamental. Um único parâmetro de modelo com precisão total de 32 bits requer 4 bytes de espaço, traduzindo-se em um requisito de 4 GB de RAM de GPU apenas para carregar um modelo de 1 bilhão de parâmetros. O processo de treinamento real exige ainda mais memória para acomodar vários componentes, incluindo estados e gradientes do otimizador, exigindo potencialmente até 80 GB de GPU RAM para um modelo desta escala.

Para navegar pelas limitações da RAM da GPU, é utilizada a quantização, que é uma técnica que reduz a precisão dos parâmetros do modelo, diminuindo assim os requisitos de memória. Por exemplo, alterar a precisão de 32 bits para 16 bits pode reduzir pela metade a memória necessária para carregar e treinar o modelo. Mais adiante neste artigo. aprenderemos sobre o Qlora que usa o conceito de quantização para ajuste.

Requisito de memória GPU LLM wrt. número de parâmetros e precisão

Requisito de memória GPU LLM wrt. número de parâmetros e precisão

 

Explorando as categorias de métodos PEFT

No processo de ajuste completo de modelos de linguagem grande, é importante ter uma configuração computacional que possa lidar com eficiência não apenas com os pesos substanciais do modelo, que para os modelos mais avançados estão agora atingindo tamanhos na casa das centenas de gigabytes, mas também gerenciar uma série de outros elementos críticos. Isso inclui a alocação de memória para estados do otimizador, gerenciamento de gradientes, ativações diretas e facilitação da memória temporária durante vários estágios do procedimento de treinamento.

Método Aditivo

Esse tipo de ajuste pode aumentar o modelo pré-treinado com parâmetros ou camadas adicionais, concentrando-se no treinamento apenas dos parâmetros recém-adicionados. Apesar de aumentar a contagem de parâmetros, esses métodos melhoram o tempo de treinamento e a eficiência do espaço. O método aditivo é ainda dividido em subcategorias:

  • adaptadores: Incorporando subcamadas pós-transformadores de pequenas redes totalmente conectadas, com exemplos notáveis ​​sendo AdaMix, coroae Compactador.
  • Solicitações suaves: Ajustando um segmento dos embeddings de entrada do modelo por meio de gradiente descendente, com IPT, ajuste de prefixo, e WARP sendo exemplos proeminentes.
  • Outras abordagens aditivas: Inclui técnicas como LeTS, AttentionFusion e Ladder-Side Tuning.

Método Seletivo

Os PEFTs seletivos ajustam um número limitado de camadas superiores com base no tipo de camada e na estrutura interna do modelo. Esta categoria inclui métodos como BitFit e LN ajuste, que se concentra no ajuste de elementos específicos, como tendências de modelo ou linhas específicas.

Método baseado em reparametrização

Esses métodos utilizam representações de baixa classificação para reduzir o número de parâmetros treináveis, sendo o mais conhecido a Adaptação de Baixa Classificação ou LoRA. Este método aproveita uma decomposição simples de matriz de baixo escalão para parametrizar a atualização de peso, demonstrando um ajuste fino eficaz em subespaços de baixo escalão.

1) LoRA (adaptação de baixa classificação)

LoRA surgiu como uma técnica PEFT inovadora, apresentada em um artigo de Edward J. Hu e outros em 2021. Ele opera dentro da categoria de reparametrização, congelando os pesos originais do LLM e integrando novas matrizes treináveis ​​de baixo escalão em cada camada da arquitetura do Transformer. Esta abordagem não apenas reduz o número de parâmetros treináveis, mas também diminui o tempo de treinamento e os recursos computacionais necessários, apresentando assim uma alternativa mais eficiente ao ajuste fino completo.

Para compreender a mecânica do LoRA, é necessário revisitar a arquitetura do transformador onde o prompt de entrada passa por tokenização e conversão em vetores incorporados. Esses vetores percorrem os segmentos codificadores e/ou decodificadores do transformador, encontrando redes de autoatenção e feed-forward cujos pesos são pré-treinados.

LoRA usa o conceito de Decomposição de valor singular (SVD). Essencialmente, o SVD disseca uma matriz em três matrizes distintas, uma das quais é uma matriz diagonal que abriga valores singulares. Estes valores singulares são fundamentais, pois medem a importância das diferentes dimensões nas matrizes, com valores maiores indicando maior importância e valores menores denotando menor importância.

Decomposição de valores singulares (SVD) de uma matriz retangular m × n

Decomposição de valores singulares (SVD) da matriz m × n

Esta abordagem permite que o LoRA mantenha as características essenciais dos dados enquanto reduz a dimensionalidade, otimizando assim o processo de ajuste fino.

LoRA intervém neste processo, congelando todos os parâmetros do modelo original e introduzindo um par de “matrizes de decomposição de classificação” juntamente com os pesos originais. Essas matrizes menores, denominadas A e B, passam por treinamento por meio de aprendizagem supervisionada.

O elemento central nesta estratégia é o parâmetro denominado classificação ('r'), que determina o tamanho das matrizes de classificação inferior. Uma seleção meticulosa de 'r' pode produzir resultados impressionantes, mesmo com um valor menor, criando assim uma matriz de classificação baixa com menos parâmetros para treinar. Esta estratégia foi implementada de forma eficaz usando bibliotecas de código aberto, como HuggingFace Transformers, facilitando o ajuste fino do LoRA para várias tarefas com notável eficiência.

2) QLoRA: Aumentando a eficiência do LoRA

Com base na base estabelecida pelo LoRA, o QLoRA minimiza ainda mais os requisitos de memória. Apresentado por Tim Dettmers e outros em 2023, combina adaptação de baixo escalão com quantização, empregando um formato de quantização de 4 bits denominado Flutuação Normal or nf4. A quantização é essencialmente um processo que faz a transição de dados de uma representação informacional superior para uma representação com menos informações. Esta abordagem mantém a eficácia dos métodos de ajuste fino de 16 bits, desquantizando os pesos de 4 bits para 16 bits conforme necessário durante os processos computacionais.

Comparando métodos de ajuste fino: QLORA aprimora LoRA com quantização de precisão de 4 bits e otimizadores paginados para gerenciamento de picos de memória

Comparando métodos de ajuste fino: QLORA aprimora LoRA com quantização de precisão de 4 bits e otimizadores paginados para gerenciamento de picos de memória

QLoRA aproveita NumericFloat4 (nf4), visando todas as camadas da arquitetura do transformador, e introduz o conceito de quantização dupla para reduzir ainda mais o consumo de memória necessário para o ajuste fino. Isso é conseguido realizando a quantização nas constantes já quantizadas, uma estratégia que evita picos típicos de memória de checkpoint de gradiente por meio da utilização de otimizadores paginados e gerenciamento de memória unificado.

Guanaco, que é um conjunto ajustado para QLORA, estabelece uma referência em soluções de chatbot de código aberto. Seu desempenho, validado por meio de avaliações humanas e automatizadas sistemáticas, ressalta seu domínio e eficiência no campo.

As versões 65B e 33B do Guanaco, ajustadas utilizando uma versão modificada do OASST1 conjunto de dados, surgem como concorrentes formidáveis ​​​​para modelos renomados como ChatGPT e até GPT-4.

Ajuste fino usando aprendizado por reforço a partir de feedback humano

A Aprendizagem por Reforço com Feedback Humano (RLHF) entra em ação ao ajustar modelos de linguagem pré-treinados para se alinharem mais estreitamente com os valores humanos. Este conceito foi introduzido pela Open AI em 2017, estabelecendo as bases para uma melhor sumarização de documentos e o desenvolvimento de Instruir GPT.

No centro do RLHF está o paradigma de aprendizagem por reforço, um tipo de técnica de aprendizagem de máquina onde um agente aprende como se comportar em um meio Ambiente executando ações e recebendo recompensas. É um loop contínuo de açao e retornos, onde o agente é incentivado a fazer escolhas que renderão a maior recompensa.

Traduzindo isso para o domínio dos modelos de linguagem, o agente é o modelo em si, operando dentro do meio Ambiente de uma determinada janela de contexto e tomar decisões com base no estado, que é definido pelos tokens atuais na janela de contexto. O "espaço de ação”abrange todos os tokens potenciais que o modelo pode escolher, com o objetivo de selecionar o token que mais se alinha às preferências humanas.

O processo RLHF aproveita extensivamente o feedback humano, utilizando-o para treinar um modelo de recompensa. Este modelo desempenha um papel crucial na orientação do modelo pré-treinado durante o processo de ajuste fino, incentivando-o a gerar resultados mais alinhados com os valores humanos. É um processo dinâmico e iterativo, onde o modelo aprende por meio de uma série de “implementações”, termo usado para descrever a sequência de estados e ações que levam a uma recompensa no contexto de geração de linguagem.

Um dos potenciais notáveis ​​do RLHF é a sua capacidade de promover a personalização em assistentes de IA, adaptando-os para corresponder às preferências individuais dos utilizadores, seja o seu sentido de humor ou as suas rotinas diárias. Abre caminhos para a criação de sistemas de IA que não sejam apenas tecnicamente proficientes, mas também emocionalmente inteligentes, capazes de compreender e responder às nuances da comunicação humana.

Contudo, é essencial notar que o RLHF não é uma solução infalível. Os modelos ainda são suscetíveis de gerar resultados indesejáveis, um reflexo dos dados vastos, muitas vezes não regulamentados e tendenciosos, nos quais são treinados.

Conclusão

O processo de ajuste fino, uma etapa crítica para aproveitar todo o potencial de LLMs como Alpaca, Falcon e GPT-4, tornou-se mais refinado e focado, oferecendo soluções personalizadas para uma ampla gama de tarefas.

Vimos o ajuste fino de tarefa única, especializado em modelos em funções específicas, e métodos de ajuste fino com eficiência de parâmetros (PEFT), incluindo LoRA e QLoRA, que visam tornar o processo de treinamento mais eficiente e econômico. Estes desenvolvimentos estão a abrir portas a funcionalidades de IA de alto nível para um público mais vasto.

Além disso, a introdução do Reinforcement Learning from Human Feedback (RLHF) pela Open AI é um passo para a criação de sistemas de IA que compreendem e se alinham mais estreitamente com os valores e preferências humanas, preparando o terreno para assistentes de IA que não são apenas inteligentes, mas também sensíveis a necessidades individuais do usuário. Tanto o RLHF quanto o PEFT trabalham em sinergia para aprimorar a funcionalidade e a eficiência dos modelos de linguagem grande.

À medida que empresas, empresas e indivíduos procuram integrar estes LLMs afinados nas suas operações, estão essencialmente a acolher um futuro onde a IA é mais do que uma ferramenta; é um parceiro que compreende e se adapta aos contextos humanos, oferecendo soluções inovadoras e personalizadas.

Passei os últimos cinco anos mergulhando no fascinante mundo do Machine Learning e Deep Learning. Minha paixão e experiência me levaram a contribuir para mais de 50 projetos diversos de engenharia de software, com foco particular em AI/ML. Minha curiosidade contínua também me atraiu para o Processamento de Linguagem Natural, um campo que estou ansioso para explorar mais.