O mecanismo surpreendentemente simples que LLMs usam para recuperar conhecimento armazenado
(news.mit.edu)- Pesquisadores do MIT e de outras instituições constataram que modelos de linguagem de grande porte (LLMs), base de chatbots de IA como o ChatGPT, muitas vezes usam uma função linear simples ao extrair alguns fatos armazenados
- Essa função varia conforme o tipo de fato, como “instrumento que uma pessoa toca” ou “estado onde uma pessoa nasceu”, e a mesma função de decodificação é aplicada a fatos de tipos semelhantes
- Depois de estimar funções para 47 relações e testá-las trocando o sujeito, elas recuperaram as informações corretas do objeto em mais de 60% dos casos em relações como “capital de um país”
- Mesmo quando o modelo dava uma resposta errada, muitas vezes a resposta correta ainda estava presente internamente, o que levou ao attribute lens, uma forma de ver em qual camada do transformer determinada informação estava armazenada
- Nem todo conhecimento é armazenado linearmente, portanto fatos que não podem ser encontrados por funções lineares e a verificação da precisão em modelos maiores continuam como próximos desafios de pesquisa
Uma forma simples de busca de conhecimento descoberta dentro dos LLMs
- Pesquisadores do MIT e de várias instituições obtiveram resultados indicando que modelos de linguagem transformer complexos frequentemente usam uma função linear simples ao recuperar fatos armazenados
- Uma função linear é uma forma simples que representa uma relação em linha reta entre duas variáveis
- Mesmo dentro de LLMs que realizam cálculos não lineares complexos, parte da recuperação de conhecimento funciona por esse mecanismo simples
- O artigo relacionado é “Linearity of Relation Decoding in Transformer Language Models”, e a pesquisa será apresentada na International Conference on Learning Representations
Fatos são tratados como relações entre sujeito e objeto
- Muito do conhecimento armazenado em transformers pode ser representado como uma relação que liga um sujeito a um objeto
- “Miles Davis plays the trumpet” é uma relação que liga o sujeito Miles Davis ao objeto trumpet
- No prompt “Miles Davis plays the...”, a resposta deve ser trumpet, não Illinois, estado onde Miles Davis nasceu
- À medida que o modelo obtém mais conhecimento sobre um tema, vários fatos sobre esse tema são armazenados ao longo de várias camadas
- Quando uma consulta chega, o modelo precisa decodificar o fato mais relevante para gerar a resposta
Funções de decodificação linear que variam por tipo de relação
- Por meio de experimentos que investigaram LLMs, os pesquisadores confirmaram que há casos em que o modelo decodifica informações relacionais usando uma função linear simples
- A função também varia conforme o tipo de fato a ser recuperado
- A função usada para gerar o instrumento que uma pessoa toca é diferente da função usada para gerar o estado onde uma pessoa nasceu
- Os pesquisadores criaram um método para estimar essas funções e calcularam funções para 47 relações, como “capital de um país” e “vocalista principal de uma banda”
- Como há infinitas relações possíveis, os experimentos usaram um subconjunto que representa tipos de fatos que podem ser tratados dessa maneira
Sucesso de recuperação acima de 60% e limites do armazenamento linear
- Cada função foi testada para verificar se conseguiria recuperar a informação correta do objeto ao variar o sujeito
- A função “capital de um país” deve recuperar Oslo quando o sujeito é Norway, e London quando é England
- A função recuperou a informação correta em mais de 60% dos casos
- Parte da informação dentro dos transformers pode ser codificada e recuperada dessa forma
- Porém, nem toda informação é codificada linearmente
- Em alguns fatos, mesmo que o modelo saiba a informação e preveja textos consistentes com ela, os pesquisadores não conseguiram encontrar uma função linear
- Nesses casos, o modelo está usando uma forma mais complexa para armazenar a informação
Attribute lens para ver o que o modelo sabe
- As funções estimadas são usadas para verificar o que o modelo considera verdadeiro sobre determinado tema
- Um experimento começou com o prompt “Bill Bradley was a” e aplicou funções de decodificação correspondentes a “praticou um esporte” e “frequentou uma universidade”
- É uma forma de verificar se o modelo sabe que o senador Bill Bradley foi jogador de basquete e estudou em Princeton
- Esse método mostra que, mesmo quando o modelo se concentra em outras informações durante a geração de texto, várias informações relacionadas ainda podem estar codificadas internamente
- Com base nisso, foi criada uma grade chamada attribute lens
- O attribute lens visualiza em qual das várias camadas do transformer está armazenada a informação sobre uma relação específica
- Como pode ser gerado automaticamente, pode ser usado como um método simplificado para compreender modelos
Possibilidade de corrigir respostas erradas e questões de pesquisa em aberto
- Mesmo quando o modelo responde incorretamente a um prompt, muitas vezes ele armazena internamente a informação correta
- Essa abordagem pode ser usada para encontrar e corrigir informações incorretas dentro do modelo, e pode contribuir para reduzir a tendência de chatbots de IA produzirem respostas imprecisas ou sem sentido
- As pesquisas futuras se concentrarão em entender melhor o que acontece com fatos que não são armazenados linearmente
- Também há planos de realizar experimentos com modelos maiores e estudar a precisão das funções de decodificação linear
- Mor Geva Pipek, da Tel Aviv University, avaliou que a pesquisa revelou uma peça que faltava para entender como LLMs recordam conhecimento factual durante a inferência, e mostrou que cálculos não lineares complexos para extração de atributos podem ser bem aproximados por funções lineares simples
1 comentários
Comentários do Hacker News
É um trabalho impressionante, mas acho que também expõe um grande problema da onda atual de IA. Na prática, ela não tenta se afastar muito de neurônios ou conjuntos de regras que não são tão diferentes de um perceptron, que é quase uma simples função de soma
Só porque a topologia de feedforward em nível de neurônio único é a mais fácil para treinamento e execução em GPU, fica a dúvida se ela é de fato a melhor para executar tarefas
Há muitos métodos de treinamento e formas de codificação peculiares que não são usados porque as grandes bibliotecas não dão suporte a eles, e, até que haja uma mudança real no conjunto de regras fundamental das redes neurais, acho que vamos continuar brigando com “perceptrons com etapas a mais”
Entendo que um aspecto da NP-completude é que qualquer algoritmo dessa classe de complexidade pode, no fim, ser reduzido a algo como uma “função de soma”
Mesmo que o GPT precise de 10 vezes mais neurônios para alcançar o mesmo desempenho, se comprar a computação e a memória para esses neurônios for mais barato, o GPT é um meio melhor para atingir o objetivo
Se encontrarmos uma estrutura mais simples e treinável, talvez tenhamos achado algo. As tentativas de enfeitar com complexidade já foram feitas e desapareceram
Fico me perguntando se dizer que “fatos são armazenados como funções lineares” significa que existe dentro do LLM algum espaço de fatos N-dimensional codificado de alguma forma, e que os fatos ficam embutidos nele como pontos, hiperesferas, variedades de Voronoi ou algo assim
Se for isso, recuperar um fato seria, abstratamente, a rede neural calcular ou lembrar uma chave a ser usada e então fazer uma consulta chave-valor nesse espaço?
Nesse caso, também fico curioso sobre como inserir um armazenamento chave-valor em um modelo de grafo de propagação por arestas, e se já existem técnicas conhecidas em que humanos fazem isso manualmente
Além disso, a técnica do “palácio da memória” também não poderia ser vista como um exemplo de o cérebro humano colocar fatos em uma função linear para facilitar a recuperação?
Faz-se o produto interno da consulta com as chaves, depois o softmax escolhe em grande parte uma chave vencedora, isto é, a chave mais próxima da consulta, e usa o valor correspondente
A diferença é que isso é um pouco mais suave, podendo acertar várias chaves, e que pode ser otimizado por métodos do tipo descida de gradiente para encontrar os mapeamentos QKV adequados
Dei só uma passada no artigo, mas o ponto central parece ser que há funções relativamente simples, escondidas dentro de redes maiores ou recuperáveis delas, que lidam com certas categorias de relações entre conceitos
Se essas funções puderem ser isoladas, em tese elas poderiam ser otimizadas de forma mais direta, o que talvez leve a avanços na forma como esses modelos são treinados
No fim, uma das boas críticas à IA “moderna” é a ideia de que estamos apenas mexendo uma sopa de álgebra linear; permitir algum grau de modularidade ou reducionismo poderia nos aproximar de uma abordagem baseada em componentes, em vez de uma simples caixa-preta
Para isso, o cérebro precisa ser muito bom em lembrar locais, planejar caminhos dentro e fora deles, e transformar isso em palavras ou movimentos
Muito interessante. Isso me fez pensar imediatamente em que tipo de função codifica conhecimento de programação e, se ela também for uma função linear simples, se seria possível fazer upload direto de uma biblioteca padrão ou de outras bibliotecas para o cérebro de um LLM sem treinamento caro nem fine-tuning que prejudique o desempenho
Por enquanto ainda parece uma capacidade de ficção científica, mas dá a impressão de que estamos chegando cada vez mais perto
Imagino que em algum lugar alguém esteja lendo isso e pensando em como exportar Excel ou bancos de dados para um LLM
É animador ver pesquisas que conseguem espiar com sucesso dentro da caixa-preta
Outro grande resultado nessa área foi um artigo que encontrou uma representação do tabuleiro de jogo dentro de um LLM treinado para jogar. Fico curioso se há outros bons resultados desse tipo
Como os autores apontam, LLMs fazem mais do que codificar informações predicativas; isso é apenas uma parte
Fico curioso se essa relação ainda se mantém nos modelos mais recentes, nos quais foi despejada muito mais computação
Intuitivamente, acho que o Word2Vec foi possível graças à estrutura inerente da linguagem. Depois, ao treinar com terabytes de texto humano codificado com Word2Vec e codificação posicional, parece que o modelo passa a prever a próxima codificação durante o treinamento com um nível de cognição sobre-humano
Sinto que a bolsa de palavras como formato de entrada/saída e a janela de contexto limitada criada para fazer a codificação posicional funcionar geram uma grande incompatibilidade de impedância com a estrutura cognitiva interna
Por isso, como muito mais computação foi colocada em GPT-4 e similares, é bem possível que novas formas de representação tenham evoluído, e que humanos ainda precisem descobri-las sondando todos os pesos
Acho que o MemGPT talvez acabe virando AGI por causa da memória de longo prazo ilimitada, mas o resultado mais provável deve se parecer mais com o protagonista de Memento
[1] https://en.wikipedia.org/wiki/Memento_(film)
Isso me lembra o famoso exemplo de embedding “King - Man + Woman = Queen”. O fato de haver propriedades semânticas nos embeddings explica por que até funções lineares simples funcionam bem
Parece semelhante aos vetores de relação do word2vec. Ao somar um vetor como “de X”, muitas vezes se chega à resposta correta
O princípio continua o mesmo, e talvez os transformers tenham ficado “apenas” melhores em mapear entidades para o espaço de embeddings
Ou seja, em vez de algo como x = 0 ser “voar”, x = 0,01 ser “dirigir” e x = 0,02 ser “roxo”, vejo mais como x < 1,5 sendo “frio” e x > 1,5 sendo “quente”
Por isso, essa é uma das razões pelas quais a quantização, até mesmo a quantização de 1 bit, frequentemente funciona
Também é por isso que, ao colocar texto ou imagens em modelos do tipo BERT ou CLIP e depois aplicar modelos clássicos de machine learning que frequentemente usam fronteiras de decisão lineares, os resultados ainda são bons
LLMs parecem um bom mecanismo de compressão
É impressionante poder ter uma cópia do llama localmente no PC e, na prática, ter acesso a quase toda a internet
Segundo o dump mais recente, o Common Crawl tem 4,3 bilhões de páginas, mas em 2016 o Google estimou que havia 130 trilhões de páginas na web
A diferença entre 130 trilhões e 4,3 bilhões é praticamente 130 trilhões. Mesmo limitando ao índice de texto pesquisável do Google, são “centenas de bilhões de páginas” e cerca de 100 PB, em comparação com os 400 TB do Common Crawl
Aprendibilidade PAC, dimensão VC finita e compressão da forma a seguir são completamente equivalentes
https://arxiv.org/abs/1610.03592
Basicamente, neurônios individuais ou perceptrons apenas dividem o espaço em dois subespaços
Não entendo como um arquivo CSV, banco de dados ou modelo com 70 bilhões de “parâmetros” de pesos de 4 bits se torna um LLM/GPT conversacional quase erudito sobre todos os assuntos
Pesquisando, parece que 4 bits é apenas um método de compressão, e no fim o modelo vê f32?
Dizem que quantização é o processo de mapear números de ponto flutuante de 32 bits, que são os pesos de uma rede neural, para uma representação de bits muito menor, como valores de 4 bits, visando eficiência de armazenamento e memória
A desquantização ocorre quando o modelo é usado, ou seja, durante a inferência ou, em alguns casos, durante o treinamento, e os pesos quantizados de 4 bits são convertidos de volta em números de ponto flutuante usados nos cálculos reais
Então fico curioso sobre qual é a relação entre “parâmetros” e “o número de tokens únicos que o modelo conhece, isto é, o tamanho do vocabulário”
Pelo que parece, dizem que o LLaMA tem apenas um vocabulário de 32.000 itens e 65 bilhões de parâmetros em comparação com o GPT-3
Dizem que os 65 bilhões de parâmetros de um modelo como o LLaMA funcionam como um sistema de mapeamento extremamente complexo que decide como responder à entrada com base nas relações aprendidas entre tokens nos dados de treinamento
De forma um pouco mais complexa, um dump de texto comprimido da Wikipedia também tem menos de 70 GB, e isso é uma compressão com perdas da internet
Se o comprimento do embedding de tokens desse modelo for 1024, mesmo com quantização de 1 bit, cada token terá 2^1024 valores possíveis
Se o comprimento de contexto for de 32.000 tokens, as entradas possíveis são 32.000^2^1024
Dá para dizer, grosso modo, que um LLM, em modo de treinamento, cria automaticamente inúmeras regras IF-THEN a partir de uma quantidade enorme de informação que antes seria impossível?
Este artigo é legal, e também é bom que tenham rodado experimentos para validar esse tipo de ideia. Mas não tenho certeza de quão nova é a ideia em si
Se um LLM aprende naturalmente tendências estatísticas simples entre palavras, esse tipo de resultado não seria esperado?
Acho muito mais interessante o fato de ele mostrar claramente que nem todo comportamento de LLM pode ser explicado de forma tão simples