https://www.spaceandtime.io/blog/vector-search-to-success
Antes de 2022, se você quisesse lembrar rapidamente uma passagem específica de seu livro favorito ou uma citação de um filme que acabou de assistir sem a obra em si à sua frente, provavelmente recorreria a um mecanismo de busca. Você solicitaria uma entrada de pesquisa bem formulada, analisaria os resultados retornados, visitaria o link SparkNotes ou IMDB que parece conter sua resposta e encontraria o texto que você está procurando na página em poucos minutos. Agora, basta abrir o ChatGPT e digitar “qual é a citação mais famosa do Terminator?” ou “escreva a passagem de abertura de A Tale of Two Cities” e receba sua resposta literal em segundos.
Um dos usos mais simples de um modelo de linguagem grande (LLM) é como banco de dados de conhecimento. Os LLMs foram treinados em vastos conjuntos de dados de informações ricas, cujas interfaces como ChatGPT facilitaram a recuperação. Ao solicitar que o ChatGPT retorne o conteúdo de um filme ou livro, por exemplo, você está simplesmente aproveitando a capacidade do modelo de recuperar informações às quais foi exposto durante seu treinamento. Mas e se não tiver sido treinado no roteiro do Exterminador do Futuro, ou se seus pesos não derem importância às obras de Dickens? Para fornecer os resultados mais precisos e relevantes até mesmo para os casos de uso mais simples, como a recuperação de informações básicas, os LLMs precisam de mecanismos sofisticados de indexação e recuperação que possam acessar um amplo espectro de informações com precisão.
Compreendendo a geração e treinamento de conteúdo LLM O conteúdo do LLM é gerado por meio de um processo conhecido como previsão do próximo token, que garante que as respostas sejam contextualmente apropriadas, variadas e que reflitam um pouco a compreensão humana. Veja como funciona a previsão do próximo token, passo a passo:
Processamento de entrada: quando você digita um prompt ou pergunta, essa entrada é convertida em tokens: palavras ou pedaços de palavras. Compreensão do Contexto: O modelo analisa os tokens que você forneceu e, com base em seu treinamento, tenta entender o contexto, que inclui tudo, desde o tópico em questão até o tom que você pode estar usando. Previsão do próximo token: usando o contexto compreendido, o modelo prevê qual é o próximo token mais provável. Não se trata apenas de adivinhar com base na palavra anterior imediata; é considerar todo o contexto da conversa até aquele ponto. Seleção de token: Depois de prever uma série de próximos tokens possíveis, ele seleciona um. Essa seleção é baseada na probabilidade – o token com maior probabilidade de vir a seguir com base nos dados nos quais o modelo foi treinado. É importante notar, entretanto, que aqui também há alguma aleatoriedade, o que ajuda a gerar respostas mais variadas e que parecem naturais. Geração de saída: o token selecionado é então convertido novamente em texto legível por humanos. Se a resposta não estiver completa (o que geralmente não ocorre após apenas um token), o processo se repete. O novo token é adicionado à sequência e o modelo prevê o próximo token com base neste contexto atualizado. Refinamento Iterativo: Este processo de prever o próximo token e adicioná-lo à sequência se repete até que o modelo atinja um ponto de parada. Isso pode ocorrer quando a resposta atinge um determinado comprimento, o modelo prevê um token que significa o final de uma frase ou passagem ou quando cumpre as instruções incorporadas no prompt. Limitações de compressão no treinamento LLM Quando um LLM prevê um token, ele está efetivamente recuperando e utilizando o conhecimento compactado incorporado em seus pesos para produzir resultados contextualmente apropriados. Dessa forma, o treinamento LLM reflete a compactação do banco de dados. Assim como um banco de dados é otimizado para recuperar rapidamente dados acessados com frequência, um LLM é projetado para recuperar informações – memórias interpoladas específicas – de seus pesos. Essa capacidade permite produzir respostas precisas a consultas sobre materiais familiares que encontrou durante seu treinamento, de forma semelhante a consultar um banco de dados em busca de informações bem indexadas. No entanto, surgem limitações quando o modelo encontra conteúdos menos familiares ou obscuros. Por exemplo, quando você pede ao LLM passagens específicas da Bíblia, ele as cita palavra por palavra, mas não pode citar palavra por palavra qualquer conceito que não tenha “testemunhado” redundantemente durante o treinamento, pois os pesos associados a esse conceito são muito insignificante. Também nesse sentido, o LLM é análogo a um banco de dados. Assim como um banco de dados pode retornar apenas dados que foram explicitamente armazenados nele, um LLM pode ter dificuldade em gerar conteúdo sobre tópicos que não viu extensivamente durante o treinamento.
É claro que os LLMs estão além do escopo desta analogia, pois possuem um modelo de mundo interno que lhes permite “entender” as coisas de maneira puramente além de apenas pesquisas. No entanto, esta simplificação excessiva ajuda-nos a compreender algumas das principais limitações na forma como os LLMs são treinados para gerar conteúdo.
Outras limitações do treinamento LLM Além disso, o próximo sistema de previsão de token tem outras limitações inerentes que decorrem da sua abordagem fundamental para gerar texto:
Tamanho da janela de contexto: um dos principais constraints é o tamanho da janela de contexto do modelo – a quantidade máxima de texto (em tokens) que o modelo pode considerar ao fazer uma previsão. Para muitos modelos, incluindo versões anteriores do GPT, esta janela não é grande o suficiente para manter o contexto durante longas conversas ou documentos, o que pode levar à perda de coerência em textos mais longos ou discussões complexas que exigem a manutenção do contexto além dos tokens imediatamente anteriores. Generalização versus especificidade: embora esses modelos sejam treinados em vastos conjuntos de dados, sua capacidade de generalizar a partir desse treinamento pode, às vezes, levá-los a produzir conteúdo genérico ou vagamente relevante. Eles podem errar o alvo ao gerar respostas altamente específicas ou diferenciadas que exigem compreensão detalhada ou conhecimento atualizado fora de seus dados de treinamento. Falta de acesso ao conhecimento externo: os modelos de previsão do próximo token são limitados às informações contidas em seus conjuntos de dados de treinamento. Eles não podem acessar ou incorporar novas informações após o treinamento, o que significa que podem rapidamente ficar desatualizados ou perder o contexto atual, como eventos recentes, descobertas ou tópicos de tendência. Repetitividade e previsibilidade: A natureza algorítmica da previsão do próximo token pode, às vezes, resultar na geração de texto repetitivo ou previsível. Como o modelo geralmente favorece tokens que são estatisticamente mais prováveis de seguir dado o contexto, ele pode cair em loops ou preferir frases comuns, reduzindo a variabilidade do resultado. Geração aumentada de recuperação (RAG) Conforme mencionado acima, os LLMs geram respostas com base nos pesos atribuídos a diferentes aspectos dos dados durante o treinamento. Esses pesos refletem o quão importantes ou significativos vários elementos dos dados de entrada são percebidos pelo modelo. Se o prompt de um usuário incluir elementos que não foram significativamente representados nos dados de treinamento, o modelo poderá não gerar uma resposta precisa ou relevante.
Quando uma conversa excede a janela de contexto de um LLM ou quando um prompt excede o limite de pesos significativos no próprio conjunto de dados de treinamento de um LLM (o que significa que não é possível lembrar exatamente a resposta que o usuário está procurando), o modelo normalmente depende de um banco de dados de pesquisa vetorial externo , o que permite pesquisar contexto relevante ou dados recentes que podem ser anexados a um prompt do usuário. Este processo é conhecido como geração aumentada de recuperação (RAG).
“Pesquisa vetorial para o sucesso” O processo RAG é possível através de um banco de dados de pesquisa vetorial: um tipo avançado de banco de dados que armazena e gerencia dados como vetores. Esses vetores representam os dados em um espaço altamente dimensional, onde cada dimensão captura algum aspecto do significado dos dados, permitindo a representação de relacionamentos e atributos complexos. No contexto de texto e linguagem, os bancos de dados de pesquisa vetorial usam técnicas como embeddings para converter texto em vetores numéricos. Essa conversão permite que o sistema meça semelhanças semânticas entre diferentes trechos de texto, calculando as distâncias entre seus vetores correspondentes neste espaço multidimensional.
Durante o RAG, tanto a consulta (ou seja, a entrada de um usuário no LLM) quanto os dados armazenados (como artigos, documentos ou frases) são convertidos em vetores usando incorporações de texto. Essas incorporações transformam os dados textuais em vetores numéricos onde significados semelhantes são mapeados para pontos próximos no espaço vetorial. O banco de dados então calcula as distâncias entre o vetor de consulta e os vetores dos dados armazenados para determinar o quão próximos os significados dos textos estão relacionados. O banco de dados recupera os pontos de dados (conteúdo textual) cujos vetores estão mais próximos do vetor de consulta, ou seja, aqueles que são semanticamente mais semelhantes à entrada. Esses pontos de dados são considerados os “vizinhos mais próximos” em termos de contexto e significado.
Estes vizinhos mais próximos fornecem informações adicionais contextualmente relevantes às quais o LLM de base pode não ter tido acesso nos seus próprios dados de formação, o que pode melhorar significativamente a precisão, relevância, riqueza e variedade dos resultados do LLM. Sam Altman, entre outros, defendeu a abordagem de “busca vetorial para o sucesso” – confiando no RAG para o desenvolvimento de agentes, em vez de apenas no ajuste fino do modelo.
RAG como alternativa ao ajuste fino O ajuste fino de um LLM envolve ajustar os pesos de um modelo com base em treinamento adicional em um conjunto de dados específico para melhorar o desempenho em tarefas específicas ou melhorar a compreensão em determinados domínios. Este processo não só é mais lento do que o ritmo da inovação, o que significa que os modelos aperfeiçoados se tornam obsoletos quase tão rapidamente quanto são atualizados, como também não aborda a questão dos dados novos.
Em contraste, o RAG permite que o modelo acesse bancos de dados externos em tempo real para recuperar as informações mais atuais e relevantes para a consulta em questão. Mesmo que o modelo subjacente não tenha sido atualizado ou ajustado recentemente, ele ainda poderá gerar respostas que incluam os dados mais recentes. Os modelos permanecem relevantes por mais tempo porque podem se adaptar a novos dados e mudanças.
