Os Large Language Models (LLMs), como GPT-3 e GPT-4, são modelos de aprendizado profundo (Deep Learning) que foram treinados em grandes quantidades de texto. Eles são capazes de gerar respostas coerentes e contextualmente relevantes para várias solicitações, incluindo responder perguntas, gerar textos, resumir textos, traduzir idiomas e muito mais.

Neste quinto e último artigo da série sobre LLMs vamos compreender como eles funcionam e a relação com o conceito de Machine Unlearning. Se estiver chegando agora, acesse o primeiro artigo da série clicando aqui.

Boa leitura.

Transformer, a Base dos LLMs

No centro dos LLMs está uma arquitetura chamada Transformer, fruto do famoso paper de pesquisa chamado Attention is All You Need (Atenção é Tudo Que Você Precisa) de 2017.

O Transformer utiliza mecanismos de atenção, o que significa que ele pondera a importância relativa de diferentes palavras ao gerar uma resposta. Este processo permite que o modelo considere o contexto mais amplo de uma frase ou parágrafo, em vez de apenas olhar para as palavras de forma isolada. A imagem abaixo ilustra uma visão geral da arquitetura Transformer:

transformer

Os Transformers são treinados usando um método chamado aprendizado supervisionado. Durante o treinamento, o modelo é apresentado a um exemplo de entrada (como uma frase ou um parágrafo) e um exemplo de saída (como a próxima palavra na frase). O modelo faz uma previsão, compara sua previsão com a saída real e, em seguida, ajusta seus parâmetros internos para melhorar suas futuras previsões. Este processo é repetido muitas vezes em muitos exemplos de texto.

Os Large Language Models são caracterizados por terem uma grande quantidade de parâmetros, frequentemente na ordem de bilhões. Estes parâmetros são aprendidos durante o treinamento e representam o “conhecimento” do modelo. Quanto mais parâmetros um modelo tem, mais complexas podem ser as relações que ele pode aprender a partir dos dados.

Um conceito central no treinamento desses modelos é o de “máscaras”. Durante o treinamento, algumas partes do texto de entrada são ocultadas e o modelo é solicitado a prever as partes ocultas com base no contexto restante. Este é conhecido como o método de treinamento “masked language model”.

Após o treinamento, o modelo pode ser usado de várias maneiras. Uma abordagem comum é a geração de texto autoregressiva, na qual o modelo gera um token de saída (como uma palavra ou um caractere) de cada vez e, em seguida, alimenta essa saída de volta para o modelo para gerar o próximo token. Mas esses modelos também estão sendo adaptados e usados com sucesso em Visão Computacional e Modelagem Preditiva de Séries Temporais.

Os Large Language Models não compreendem o texto da mesma maneira que os humanos. Eles não têm consciência ou compreensão do mundo real. Em vez disso, eles aprendem a reconhecer padrões nos dados de treinamento e a reproduzir esses padrões em suas respostas.

Além disso, eles são apenas tão bons quanto os dados nos quais foram treinados. Se os dados de treinamento contêm preconceitos ou erros, o modelo também os terá. Esses são desafios ativos na pesquisa de aprendizado de máquina (especificamente em Machine Unlearning, discutido mais abaixo neste artigo) e estão sendo abordados através de várias estratégias, incluindo melhores técnicas de treinamento, conjuntos de dados mais representativos e melhores maneiras de ajustar e controlar o comportamento do modelo.

Encoder e Decoder

Os termos “encoder” e “decoder” são frequentemente usados no contexto de arquiteturas de aprendizado profundo, especialmente nos modelos Transformer, que estão no núcleo de muitos LLMs, como GPT e BERT.

Um encoder é uma rede neural que converte a entrada (por exemplo, uma frase ou parágrafo de texto) em um conjunto compacto de representações, frequentemente chamado de “representações latentes” ou “vetores de características”. Essas representações capturam a informação necessária da entrada para realizar a tarefa desejada. No caso de um modelo Transformer, o encoder é uma pilha de várias camadas, cada uma delas contendo mecanismos de autoatenção e redes neurais feed-forward.

O decoder é outra rede neural que converte as representações latentes em uma saída na forma desejada. Em um Transformer, o decoder também consiste em várias camadas que contêm mecanismos de atenção. No entanto, além da autoatenção, o decoder também tem camadas de atenção que se concentram nas saídas do encoder. Isso permite que o decoder utilize as informações do encoder ao gerar a saída.

No contexto de modelos de tradução automática, por exemplo, o encoder pode receber uma frase em inglês, convertê-la em representações latentes e então o decoder pode receber essas representações e gerar a tradução correspondente em outra língua.

Caso queira compreender mais detalhes técnicos sobre isso, temos uma introdução ao tema no Deep Learning Book, material online e gratuito fornecido pela DSA.

A Importância da Máscara

A máscara é um conceito usado em modelos Transformer para controlar quais partes da entrada um modelo pode considerar ao fazer previsões. Isso é particularmente importante para garantir que o modelo siga a ordem correta dos dados durante o treinamento.

Por exemplo, ao treinar um modelo de linguagem para prever a próxima palavra em uma frase, você não quer que ele veja as palavras que vêm depois da palavra que ele está tentando prever. Para isso, você pode usar uma “máscara” que oculta essas palavras futuras.

No contexto dos modelos Transformer, as máscaras são frequentemente usadas nos mecanismos de atenção para controlar quais partes da entrada o modelo deve prestar atenção. No caso de um decoder, uma “máscara de atenção à frente” é usada para garantir que o modelo só possa atender aos tokens anteriores (e ao token atual), mas não aos tokens futuros, quando gera uma saída.

Processo de Treinamento

Os Large Language Models (LLMs), como o GPT-3 da OpenAI, são treinados usando uma técnica chamada aprendizado supervisionado, que é um tipo de aprendizado de máquina. A ideia básica é que você tem um conjunto de exemplos de entrada e saída e quer aprender uma função que mapeia a entrada para a saída.

No caso de um LLM, a entrada é uma sequência de texto e a saída é a próxima palavra ou token na sequência. Por exemplo, dada a entrada “O céu é”, o modelo deve prever a próxima palavra, como “azul”.

Durante o treinamento, o modelo é apresentado a um exemplo de entrada e faz uma previsão para a saída. A previsão do modelo é então comparada com a saída real e a diferença entre a previsão e a realidade é calculada usando uma função de perda, como a entropia cruzada.

Em seguida, o modelo ajusta seus parâmetros internos (ou seja, seus pesos) para minimizar a perda. Isso é feito usando uma técnica chamada retropropagação, que calcula o gradiente da função de perda em relação aos parâmetros do modelo e então os parâmetros são ajustados na direção que reduz a perda. Esse processo é repetido muitas vezes para diferentes exemplos de entrada e saída no conjunto de dados de treinamento.

Os LLMs usam exatamente a arquitetura de rede neural chamada Transformer, que é especialmente boa para lidar com sequências. Os Transformers usam o mecanismo chamado atenção, que permite que o modelo pese a importância relativa de diferentes sequências ao fazer suas previsões.

Finalmente, é importante notar que os LLMs são modelos de aprendizado profundo, o que significa que eles têm muitas camadas e podem aprender representações complexas dos dados. Isso também significa que eles precisam de muito poder de computação para serem treinados e o treinamento pode levar dias ou até semanas em hardware de ponta. Entretanto, é possível usar modelos LLM pré-treinados disponíveis no mercado, de forma paga ou gratuita.

Limitações dos LLMs

Os LLMs representam uma conquista tecnológica impressionante. Mas a tecnologia está longe de ser perfeita e ainda há muitas limitações quanto ao que eles podem alcançar. Alguns dos mais notáveis estão listados abaixo:

Compreensão Contextual: Os LLMs conseguem compreender algum contexto para gerar suas respostas, mas nem sempre eles acertam e muitas vezes não conseguem entender o contexto, levando a respostas inadequadas ou simplesmente erradas.

Viés: Qualquer viés presente nos dados de treinamento pode estar presente nas respostas. Isso inclui preconceitos em relação a gênero, raça, geografia e cultura, além de visões políticas.

Senso Comum: O senso comum é difícil de quantificar, mas os humanos aprendem isso desde cedo simplesmente observando o mundo ao seu redor. Os LLMs não têm essa experiência inerente para recorrer. Eles só entendem o que lhes foi fornecido por meio de seus dados de treinamento e isso não lhes dá a verdadeira compreensão do mundo em que existem.

Um LLM é tão bom quanto seus dados de treinamento e a precisão nunca pode ser garantida. O velho ditado “Garbage In, Garbage Out” (Se Lixo Entra, é Lixo Que Vai Sair) resume essa limitação perfeitamente. Os LLMs são tão bons quanto a qualidade e a quantidade de seus dados de treinamento permitem que eles sejam.

Exemplos de LLMs Populares

O avanço contínuo da IA agora é amplamente sustentado pelos LLMs. Portanto, embora não sejam exatamente uma nova tecnologia, certamente atingiram um ponto crítico e agora existem muitos modelos. Aqui estão alguns dos LLMs mais populares neste momento:

1. GPT (Generative Pre-Trained Transformer)

O transformador pré-treinado generativo (GPT) é talvez o LLM mais conhecido. O GPT-3.5 capacita a plataforma ChatGPT, enquanto a versão mais recente, GPT-4, está disponível por meio de uma assinatura do ChatGPT Plus. A Microsoft também usa a versão mais recente em sua plataforma Bing Chat.

2. LaMDA (Language Model for Dialogue Application)

Este é o LLM inicial usado pelo Google Bard, chatbot AI do Google. A versão com a qual Bard foi inicialmente lançada foi descrita como uma versão “lite” do LLM. A versão PaLM (Pathways Language Model) mais poderosa do LLM substituiu isso.

3. BERT (Bi-direcional Encoder Representation from Transformers)

As características bidirecionais do modelo diferenciam o BERT de outros LLMs como o GPT.

4- LLaMA (Large Language Model Meta AI)

O LLaMA é o LLM de maior desempenho da Meta AI disponível para pesquisadores e casos de uso não comercial. O LLaMA é a alternativa aberta mais eficiente em parâmetros da Meta AI para grandes LLMs comerciais. Apesar de ser menor do que muitos modelos comerciais, o LLaMA superou o GPT-3 em muitos benchmarks, com a principal desvantagem sendo que seu acesso permanece restrito a pesquisadores com restrições de uso comercial.

5- Alpaca

Alpaca é um LLM com ajuste fino de instrução baseado no LLaMA. A primeira de muitas versões do LLaMA com ajuste fino por instrução, o Alpaca é um modelo de acompanhamento de instruções introduzido por pesquisadores de Stanford. De forma impressionante, com apenas US$ 600 em gastos com computação, os pesquisadores demonstraram que, em benchmarks qualitativos, o Alpaca teve um desempenho semelhante ao text-davinci-003 da OpenAI, um modelo significativamente maior.

6- Falcon

O Falcon é um poderoso LLM desenvolvido pelo Technology Innovation Institute. Ao contrário de outros LLMs populares, o Falcon não foi construído a partir do LLaMA, mas sim usando um pipeline de dados personalizado e um sistema de treinamento distribuído. O conjunto de dados é o dataset RefinedWeb (disponível no Hugging Face) e os modelos iniciais estão disponíveis nas formas 7B e 40B. Também estão disponíveis modelos de instruções e ajustes de bate-papo. Talvez o mais empolgante é que o Falcon supera o LLaMA.

7- GPT-J

O GPT-J é um modelo lançado pela EleutherAI, com o objetivo de desenvolver um modelo de código aberto com recursos semelhantes ao modelo GPT-3 da OpenAI. O GPT-J é um modelo semelhante ao GPT-3, mas com 6 bilhões de parâmetros (estima-se que o GPT-3 tenha mais de 170 bilhões de parâmetros). Mas o GPT-3 é uma solução proprietária, enquanto o GPT-J é open-source.

8- BLOOM (BigScience Large Open-science Open-access Multilingual Language Model)

O BLOOM é um Large Language Model (LLM) autorregressivo, treinado em grandes quantidades de dados de texto para continuar um texto a partir de um prompt, usando recursos computacionais em escala industrial. Como tal, é capaz de produzir texto coerente em 46 idiomas e 13 linguagens de programação que dificilmente se distingue do texto escrito por humanos. O BLOOM também pode ser instruído a executar tarefas de texto para as quais não foi explicitamente treinado, lançando-as como tarefas de geração de texto.

Muitos outros LLMs foram desenvolvidos e ramificações são comuns nos principais LLMs. À medida que se desenvolvem, eles continuarão a crescer em complexidade, precisão e relevância. Os principais LLMs do mercado são estudados na prática na Formação Engenheiro de IA.

Aqui tem uma lista completa de LLMs: Awesome LLM

Machine Unlearning

Por estar lendo este artigo, é bem provável que você saiba o que é (ou pelo menos tenha uma ideia do que seja) Machine Learning. E Machine UNLEARNING, você sabe o que é?

O conceito de “Machine Unlearning” se refere ao processo de um modelo de aprendizado de máquina ser capaz de esquecer ou “desaprender” informações específicas que foram previamente aprendidas. Em uma tradução livre o conceito seria algo como “Desaprendizado de Máquina” (o ser humano não tem limites em sua criatividade…rs).

O conceito não é novo e um paper de 2019/2020 já abordava o assunto (embora alguns papers desde 2017 já tivessem sido publicados):

https://arxiv.org/abs/1912.03817

O conceito ficou meio que em segundo plano, mas começou a receber mais atenção com vários papers sendo publicados em 2022 e 2023 (alto número de papers publicados indica pesquisa ativa naquela área):

https://github.com/jjbrophy47/machine_unlearning

E então veio o desafio proposto pelo Google no final de Junho/2023:

https://ai.googleblog.com/2023/06/announcing-first-machine-unlearning.html

Traduzimos abaixo o trecho inicial do desafio, que explica muito bem o conceito:

“O aprendizado profundo recentemente impulsionou um tremendo progresso em uma ampla gama de aplicações, desde a geração de imagens realistas e sistemas de recuperação impressionantes até modelos de linguagem que podem manter conversas semelhantes às humanas, como os modelos GPT.

Embora esse progresso seja muito empolgante, o uso generalizado de modelos de redes neurais profundas requer cautela visando desenvolver tecnologias de IA de forma responsável, compreendendo e mitigando riscos potenciais, como a propagação e amplificação de vieses injustos e protegendo privacidade do usuário.

Apagar totalmente a influência dos dados solicitados a serem excluídos é um desafio, pois, além de simplesmente excluí-los dos bancos de dados onde estão armazenados, também requer apagar a influência desses dados em outros artefatos, como modelos de aprendizado de máquina treinados. Além disso, pesquisas recentes mostraram que, em alguns casos, pode ser possível inferir com alta precisão se um exemplo foi usado para treinar um modelo de aprendizado de máquina usando ataques de inferência de associação (Membership Inference Attacks – MIAs). Isso pode gerar preocupações com a privacidade, pois implica que, mesmo que os dados de um indivíduo sejam excluídos de um banco de dados, ainda é possível inferir se os dados desse indivíduo foram usados para treinar um modelo.

Dado o exposto, o “Desaprendizado de Máquina” é um subcampo emergente do aprendizado de máquina que visa remover a influência de um subconjunto específico de exemplos de treinamento – o “conjunto de esquecimento” – de um modelo treinado.

Além disso, um algoritmo de desaprendizagem ideal removeria a influência de certos exemplos, mantendo outras propriedades benéficas, como a precisão no restante do conjunto de treino e a generalização para exemplos retidos. Uma maneira direta de produzir esse modelo é retreinar o modelo em um conjunto de treinamento ajustado que exclua as amostras do conjunto de esquecimento. No entanto, essa nem sempre é uma opção viável, pois o retreinamento de modelos profundos pode ser computacionalmente caro. Um algoritmo de desaprendizado ideal usaria o modelo já treinado como ponto de partida e faria ajustes de forma eficiente para remover a influência dos dados solicitados.”

O Google lançou o desafio exatamente para ajudar no desenvolvimento desse tipo de técnica. Com o número cada vez maior de LLMs (Large Language Models) e aumento da capacidade computacional, a verdade é que teremos de fazer o modelo aprender, desaprender e aprender novamente. Seres humanos que trabalham especialmente com tecnologia já estão acostumados a isso. Agora é a vez das máquinas.

À medida que aumentar a regulação sobre IA (isso será inevitável), cuidados com privacidade do usuário e com a propagação e amplificação de vieses, serão regras básicas, levando a uma corrida para que os modelos “desaprendam” o que não deveriam ter aprendido em primeira mão.

Estamos vivendo a revolução da IA e ajudando a escrever a história.

Você pode aprender sobre LLMs e tecnologias de IA na Formação Engenheiro de IA.

Obrigado por acompanhar esta série de artigos e o Blog da DSA.

Equipe DSA

Referências:

LLaMA

Alpaca

Falcon

GPT-J

OPT