$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Grandes modelos de linguagem (LLMs), como o ChatGPT da OpenAI ou o Llama da Meta AI, tornaram-se rapidamente um recurso popular para gerar texto relevante para um prompt do usuário. Originalmente funcionando para prever os próximos itens lexicais em uma sequência, esses modelos evoluíram para entender o contexto, codificar informações clínicas e demonstrar alto desempenho em uma variedade de tarefas 1,2,3,4. Embora os modelos de linguagem sejam anteriores a esses recursos e seu nível atual de popularidade em décadas5, avanços recentes em recursos de aprendizado profundo e computação tornaram LLMs comerciais pré-treinados e de alta qualidade amplamente disponíveis para os usuários por meio de tecnologias baseadas na web e interfaces de programação de aplicativos (APIs)6. No entanto, existem várias limitações notáveis para consumir LLMs neste formato.
Desafio 1: Corpus de treinamento estático
Os LLMs são treinados em um corpo enorme (por exemplo, dois trilhões de tokens no caso do Llama 27), mas estático, de dados de texto. Isso representa um desafio para produzir respostas precisas relativas a campos em rápido desenvolvimento ou mudança na literatura. Nessa abordagem estática, os LLMs exigiriam treinamento frequente para acompanhar os dados mais recentes, o que não é prático nem escalável. Além disso, prompts que exigem respostas baseadas em informações não presentes nos dados de treinamento podem impedir a geração de texto útil ou levar a alucinações8. Casos de alucinações ou fabricação de fatos levantam preocupações significativas sobre a confiabilidade dos LLMs, particularmente em ambientes onde a precisão das informações é crítica9.
Desafio 2: Falta de especificidade de domínio
Os modelos pré-treinados geralmente são criados para uso geral, enquanto os usuários podem exigir um modelo especificamente otimizado para desempenho em um domínio específico. Além disso, os recursos computacionais e os dados necessários para treinar um modelo de novo ou realizar ajustes finos significativos são proibitivos para muitos usuários.
Desafio 3: Falta de privacidade
Os usuários que buscam aplicativos envolvendo dados confidenciais ou informações proprietárias podem não querer ou não poder usar determinados serviços LLM, pois não têm informações sobre como os dados podem ser armazenados ou utilizados.
Desafio 4: Falta de estabilidade garantida
Os serviços com LLMs proprietários podem alterar os modelos disponíveis ou alterar o comportamento a qualquer momento, tornando a estabilidade uma preocupação para a implementação de aplicativos que dependem desses serviços.
A geração aumentada por recuperação (RAG) é uma técnica desenvolvida para melhorar o desempenho do LLM, particularmente em consultas relacionadas a informações fora do corpus de treinamento do modelo10,11. Esses sistemas aumentam os LLMs incorporando informações contextuais a serem consideradas ao gerar uma resposta a uma consulta do usuário. Vários trabalhos recentes descreveram aplicações de sistemas RAG e suas vantagens potenciais 12,13,14.
O objetivo do método descrito neste trabalho é demonstrar a construção de tal sistema e fornecer uma estrutura para os pesquisadores experimentarem rapidamente LLMs aumentados e específicos de domínio. Esse método é aplicável a usuários que buscam aumentar um LLM com uma fonte de dados externa baseada em texto. Especificamente, um objetivo abrangente deste protocolo é fornecer código passo a passo que seja extensível a uma variedade de experimentos práticos de LLM e RAG sem a necessidade de conhecimento técnico significativo no domínio de modelagem de linguagem, embora seja necessário um conhecimento prático de Python para aplicar essa abordagem sem modificação. Para maximizar o controle do usuário, a transparência, a portabilidade e a acessibilidade das soluções, são utilizadas ferramentas de código aberto disponíveis publicamente. O sistema proposto aborda as questões anteriormente mencionadas das seguintes maneiras:
Soluções 1 e 2: Corpus de treinamento estático e falta de especificidade de domínio
A metodologia fornecida aproveita uma abordagem RAG, utilizando incorporações para fornecer informações específicas do domínio não incluídas nos dados de treinamento originais. Em um alto nível, a incorporação de modelos transforma texto ou outros dados em uma representação como um vetor ou uma matriz de números de dimensão única. Essa técnica é benéfica, pois converte informações semânticas contidas no texto em uma forma numérica densa. Ao projetar uma consulta do usuário no mesmo espaço de incorporação, vários algoritmos podem ser usados para calcular a distância15 e, portanto, a semelhança semântica aproximada entre a consulta do usuário e as seções de documentos de texto. Assim, a criação de um banco de dados de tais vetores a partir de documentos divididos em seções discretas pode facilitar a pesquisa em um número significativo de documentos pelo texto mais relevante para uma consulta do usuário (Figura 1). Essa abordagem é extensível a qualquer documento de texto. Embora outras abordagens, como recursos de pesquisa on-line, estejam começando a ser implementadas para aumentar os LLMs, essa abordagem permite que os usuários escolham fontes consideradas de qualidade suficientemente alta para seu caso de uso.
Solução 2: Falta de privacidade
Nessa implementação, um ambiente de nuvem seguro foi usado para hospedagem, sem prompts de usuário, respostas geradas ou outros dados saindo desse ecossistema. Todo o código é escrito de maneira independente de plataforma, no entanto, para garantir que outro provedor de nuvem ou hardware local possa ser substituído.
Solução 3: Falta de estabilidade garantida
Essa abordagem utiliza bibliotecas de código aberto e se concentra em aumentar os LLMs com pesos disponíveis publicamente, permitindo um maior grau de transparência, estabilidade e controle de versão, se necessário.
Um esquema completo do nosso sistema proposto é mostrado na Figura 2, e instruções detalhadas sobre como replicar este ou um sistema semelhante são descritas na seção de protocolo. Uma consideração adicional ao alterar o comportamento do modelo por meio de ajuste fino ou aumento é a avaliação do desempenho. Em modelos de geração de linguagem, isso representa um desafio único, pois muitas métricas tradicionais de aprendizado de máquina não são aplicáveis. Embora exista uma variedade de técnicas16, neste estudo, perguntas de múltipla escolha escritas por especialistas (MCQs) foram usadas para avaliar a precisão e comparar o desempenho pré e pós-aumento, bem como com LLMs alternativos populares.