É necessária uma assinatura da JoVE para visualizar este conteúdo. Faça login ou comece sua avaliação gratuita.
Method Article
Neste protocolo, a qualidade da resposta do modelo de linguagem grande da base é melhorada por meio do aumento com artigos científicos específicos de domínio revisados por pares por meio de um mecanismo de incorporação de vetores. Além disso, o código é fornecido para ajudar na comparação de desempenho entre grandes modelos de linguagem.
Os modelos de linguagem grande (LLMs) surgiram como um recurso popular para gerar informações relevantes para uma consulta do usuário. Esses modelos são criados por meio de um processo de treinamento intensivo em recursos, utilizando um corpus extenso e estático de dados textuais. Essa natureza estática resulta em limitações para adoção em domínios com conhecimento, informações proprietárias e dados confidenciais em rápida mudança. Neste trabalho, são descritos métodos para aumentar LLMs de uso geral, conhecidos como modelos de fundação, com informações específicas de domínio usando uma abordagem baseada em incorporações para incorporar manuscritos científicos atualizados e revisados por pares. Isso é obtido por meio de ferramentas de código aberto, como o Llama-Index, e modelos disponíveis publicamente, como o Llama-2, para maximizar a transparência, a privacidade e o controle do usuário e a replicabilidade. Embora os manuscritos científicos sejam usados como exemplo de caso de uso, essa abordagem pode ser estendida a qualquer fonte de dados de texto. Além disso, são discutidos métodos para avaliar o desempenho do modelo após esse aprimoramento. Esses métodos permitem o rápido desenvolvimento de sistemas LLM para domínios altamente especializados, independentemente da abrangência das informações no corpus de treinamento.
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.
No caso de uso demonstrado neste artigo, o armazenamento de vetores foi gerado usando diretrizes publicadas do Chicago Consensus Working Group17. Este grupo de especialistas foi estabelecido para desenvolver diretrizes para o tratamento de cânceres peritoneais. A área temática foi escolhida por estar dentro da área de especialização clínica dos investigadores. O conjunto de artigos foi acessado a partir de repositórios de periódicos on-line, incluindo Cancer e Annals of Surgical Oncology. Um modelo de incorporação compacto (33,4 milhões de parâmetros) criado pela Academia de Inteligência Artificial de Pequim (BAAI, https://www.baai.ac.cn/english.html), bge-small-en, foi usado para gerar incorporações a partir de documentos de origem. O banco de dados resultante foi então usado para aumentar os modelos de fundação Llama 2 e Open-AI7. Para conveniência do leitor, o código é disponibilizado através do GitHub (https://github.com/AnaiLab/AugmentedLLM). Para garantir a replicabilidade, é recomendável usar as mesmas versões das bibliotecas usadas na lista de requisitos fornecida, bem como a mesma versão do Python. Detalhes adicionais sobre a instalação ou documentação sobre as ferramentas usadas nos métodos a seguir podem ser localizados nos sites oficiais dos provedores para Python (https://www.python.org), git (https://git-scm.com), Llama-Index (https://llamaindex.ai) e Chroma (https://trychroma.com).
1. Pré-requisitos: Revise o código e instale as bibliotecas necessárias
2. Criação de um banco de dados vetorial com Llama-Index
3. Aumento de um modelo de Lhama com banco de dados vetorial gerado na seção 2
4. Comparação programática de LLMs alternativos
Um conjunto de 22 publicações das diretrizes de gerenciamento do Grupo de Trabalho do Consenso de Chicago foi usado para aumentar o modelo básico Llama-7b17. Os documentos foram convertidos em um índice vetorial usando a ferramenta Llama-Index para gerar Llama-2-7b-CCWG-Embed. Modelos populares da OpenAI, como GPT-3.5 e GPT-4, também foram aumentados de maneira semelhante para produzir modelos GPT-XX-CCWG-Embed. Um total de 20 questões de múltipla escolha (...
Os métodos fornecidos aqui visam facilitar a pesquisa de aplicações específicas de domínio de LLMs sem a necessidade de treinamento de novo ou ajuste fino extensivo. À medida que os LLMs estão se tornando uma área de interesse significativo de pesquisa, as abordagens para aumentar as bases de conhecimento e melhorar a precisão das respostas se tornarão cada vez mais importantes 18,19,20,21.
Os autores não têm conflitos de interesse a declarar.
Este trabalho foi facilitado por várias bibliotecas de código aberto, principalmente llama-index (https://www.llamaindex.ai/), ChromaDB (https://www.trychroma.com/) e LMQL (https://lmql.ai/).
Name | Company | Catalog Number | Comments |
pip3 version 22.0.2 | |||
Python version 3.10.12 |
Solicitar permissão para reutilizar o texto ou figuras deste artigo JoVE
Solicitar PermissãoThis article has been published
Video Coming Soon
Copyright © 2025 MyJoVE Corporation. Todos os direitos reservados