FATOS Sobre a Construção de Chatbots Baseados em Geração Aumentada por Recuperação

    From Marovi AI
    This page is a translated version of the page FACTS About Building Retrieval Augmented Generation-based Chatbots and the translation is 91% complete.
    Outdated translations are marked like this.

    Licença: O trabalho original e as traduções estão licenciados sob CC BY 4.0.

    Aviso de modificação: O texto nesta página foi modificado por modelos de IA ou crowdsourcing. Pode haver erros ou interpretações imprecisas.

    """Autores:""" Rama Akkiraju, Anbang Xu, Deepak Bora, Tan Yu, Lu An, Vishal Seth, Aaditya Shukla, Pritam Gundecha, Hridhay Mehta, Ashwin Jha, Prithvi Raj, Abhinav Balasubramanian, Murali Maram, Guru Muthusamy, Shivakesh Reddy Annepally, Sidney Knowles, Min Du, Nick Burnett, Sean Javiya, Ashok Marannan, Mamta Kumari, Surbhi Jha, Ethan Dereszenski, Anupam Chakraborty, Subhash Ranjan, Amina Terfai, Anoop Surya, Tracey Mercer, Vinodh Kumar Thanigachalam, Tamar Bar, Sanjana Krishnan, Jasmine Jaksic, Nave Algarici, Jacob Liberman, Joey Conway, Sonu Nayyar, e Justin Boitano - NVIDIA - rakkiraju, anbangx, dbora@nvidia.com

    Link do ArXiv: https://arxiv.org/abs/2407.07858v1

    Resumo

    Os chatbots empresariais, impulsionados por IA generativa, estão rapidamente emergindo como as aplicações iniciais mais exploradas dessa tecnologia na indústria, com o objetivo de aumentar a produtividade dos funcionários. A Geração Aumentada por Recuperação (RAG), Modelos de Linguagem de Grande Escala (LLMs), e frameworks de orquestração de LLMs do tipo Langchain/Llamaindex servem como componentes tecnológicos chave na construção de chatbots baseados em IA generativa. No entanto, construir chatbots empresariais bem-sucedidos não é fácil. Eles exigem uma engenharia meticulosa dos pipelines de RAG. Isso inclui o ajuste fino de embeddings semânticos e LLMs, extração de documentos relevantes de bancos de dados vetoriais, reformulação de consultas, reclassificação de resultados, design de prompts eficazes, respeito aos controles de acesso a documentos, fornecimento de respostas concisas, inclusão de referências pertinentes, proteção de informações pessoais e construção de agentes para orquestrar todas essas atividades. Neste artigo, apresentamos uma estrutura para construir chatbots eficazes baseados em RAG com base em nossa experiência prática na construção de três chatbots na NVIDIA: chatbots para benefícios de TI e RH, ganhos financeiros da empresa e conteúdo empresarial geral. Nossas contribuições neste artigo são três. Primeiro, introduzimos nossa estrutura FACTS para construir chatbots empresariais baseados em RAG que abordam os desafios mencionados. O mnemônico FACTS refere-se às cinco dimensões que os chatbots baseados em RAG devem acertar - a saber, frescor do conteúdo (F), arquiteturas (A), economia de custos dos LLMs (C), testes (T) e segurança (S). Em segundo lugar, apresentamos quinze pontos de controle dos pipelines de RAG e técnicas para otimizar o desempenho dos chatbots em cada estágio. Finalmente, apresentamos resultados empíricos de nossos dados empresariais sobre as compensações entre precisão e latência entre grandes LLMs e pequenos LLMs. Até onde sabemos, este é o primeiro artigo desse tipo que fornece uma visão holística dos fatores, bem como soluções para construir chatbots empresariais seguros.

    1 Introdução

    Os chatbots estão se tornando cada vez mais uma extensão das ferramentas de busca nas empresas para encontrar informações relevantes. Seja para benefícios de RH, ajuda de TI, consultas de vendas ou questões de engenharia, os chatbots empresariais são agora ferramentas de produtividade indispensáveis. Antes do lançamento do Chat-GPT da OpenAI (2) em novembro de 2022, as empresas dependiam de chatbots desenvolvidos internamente com base em fluxos de diálogo. Esses bots exigiam um treinamento extenso para compreensão de intenções e uma orquestração meticulosa para a geração de respostas e, ainda assim, só podiam fornecer respostas extrativas na melhor das hipóteses. Esses primeiros bots, construídos em sistemas de gerenciamento de diálogo emparelhados com soluções de recuperação de informações e resposta a perguntas (IRQA), eram frágeis e limitados em capacidade. Embora modelos de linguagem de gerações anteriores e modelos GPT existissem, eles careciam da precisão, robustez e confiabilidade necessárias para um uso amplo em empresas (5).

    O lançamento do Chat-GPT, o surgimento de bancos de dados vetoriais e o uso generalizado de geração aumentada por recuperação (RAGs) (8) marcaram o início de uma nova era no domínio dos Chatbots. Agora, os LLMs podem entender as intenções dos usuários com prompts simples em linguagem natural, eliminando a necessidade de treinamento complexo de variantes de intenção, sintetizar conteúdo empresarial de forma coerente, capacitando assim os chatbots com capacidade de conversação além do reconhecimento de intenções roteirizadas. Enquanto os LLMs trazem suas capacidades generativas para construir respostas coerentes, factuais e lógicas às consultas dos usuários, os sistemas de recuperação de informações (IR) alimentados por bancos de dados vetoriais aumentam a capacidade dos LLMs de recuperar conteúdo atualizado. Ferramentas como LangChain (1) e Llamaindex (9) facilitam a construção de chatbots e a orquestração de fluxos de trabalho complexos, incluindo memória, agentes, modelos de prompts e fluxo geral. Juntos, os sistemas de IR baseados em busca vetorial, LLMs e frameworks como LangChain formam componentes centrais de um pipeline RAG e estão impulsionando chatbots de IA generativa na era pós-Chat-GPT.

    Chatbot Domínio Fontes de Dados Tipos de Dados Controle de Acesso Consultas de Exemplo Estado
    NVInfo Bot Conhecimento Interno da Empresa SharePoint, GoogleDrive, Slack, Confluence, ServiceNow, Jira etc. Docs, HTML, PDFs, Slides Sim Posso estacionar durante a noite nos estacionamentos da sede? Teste de Acesso Antecipado
    NVHelp Bot Ajuda de TI, Benefícios de RH Artigos de Conhecimento para Ajuda de TI, páginas de benefícios de RH Texto, PDFs, Docs Sim Como se inscrever no plano de compra de ações para funcionários? Produção
    Scout Bot Resultados Financeiros Notícias da empresa, blogs, registros da SEC, entrevistas relacionadas a ganhos HTML, PDFs, Docs Não Quais são as receitas da NVIDIA nos últimos 3 anos? Produção

    Na NVIDIA, nossa principal motivação foi melhorar a produtividade dos nossos funcionários através da construção de chatbots empresariais. Nosso entusiasmo inicial rapidamente encontrou a realidade de enfrentar inúmeros desafios. Aprendemos que criar um chatbot empresarial bem-sucedido, mesmo na era pós-Chat-GPT, embora promissor, não é fácil. O processo exige uma engenharia meticulosa de pipelines RAG, ajuste fino de LLMs e engenharia de prompts, garantindo a relevância e precisão do conhecimento empresarial, respeitando as permissões de controle de acesso a documentos, fornecendo respostas concisas, incluindo referências pertinentes e protegendo informações pessoais. Tudo isso requer um design cuidadoso, execução habilidosa e avaliação minuciosa, exigindo muitas iterações. Além disso, manter o engajamento do usuário enquanto se otimiza para velocidade e eficiência de custos é essencial. Ao longo da nossa jornada, aprendemos que acertar um assistente virtual conversacional empresarial é como alcançar uma sinfonia perfeita onde cada nota tem significado!

    Neste artigo, compartilhamos nossas experiências e estratégias na construção de chatbots eficazes, seguros e econômicos. Respondemos às seguintes perguntas do ponto de vista de um profissional:

    • Quais são os principais desafios a considerar ao construir e implantar chatbots baseados em IA generativa de nível empresarial? Apresentamos nossas descobertas ao tentar entregar conteúdo novo (F) com arquiteturas flexíveis (A) que são econômicas (C), bem testadas (T) e seguras (S) - (FACTS).
    • Como alcançar níveis aceitáveis de qualidade para o usuário com sistemas RAG na construção de chatbots? Apresentamos os quinze pontos de controle das pipelines RAG e técnicas para otimizar cada ponto de controle e a pipeline RAG como um todo.

    2 Estudo de Caso

    O cenário de conteúdo da nossa empresa inclui tanto conhecimento autoritativo quanto conteúdo não autoritativo. O conteúdo autoritativo abrange artigos de ajuda de TI, recursos de RH em plataformas como ServiceNow e documentação de projetos no Confluence, SharePoint, Google Drive e ferramentas de engenharia como NVBugs e GitHub. O conteúdo gerado por funcionários complementa essas fontes em plataformas como Slack e MS Teams. Neste artigo, apresentamos três bots que desenvolvemos na NVIDIA usando RAGs e LLMs. Esses bots são brevemente introduzidos abaixo. Todos os três bots são construídos na nossa plataforma interna de chatbot de IA generativa chamada plataforma NVBot. Algumas das consultas que nossos bots são capazes de responder estão mostradas na Tabela 1.

    • NVInfo Bot responde a perguntas sobre conteúdo empresarial (aproximadamente 500 milhões de documentos com tamanho ≈ 7 TB), complementando a busca na intranet. Ele gerencia formatos de dados diversos e aplica controles de acesso a documentos. A pilha tecnológica inclui LangChain, um banco de dados vetorial de fornecedor para recuperação e para lidar com controles de acesso a documentos, modelo LLM (vários modelos LLM podem ser selecionados) e uma interface web personalizada.
    • NVHelp Bot foca-se em ajuda de TI e benefícios de RH (aproximadamente 2 mil documentos multimodais contendo texto, tabelas, imagens, PDFs e páginas HTML), utilizando uma pilha tecnológica semelhante à do NVInfo bot, mas com um volume de dados menor.
    • Scout Bot lida com perguntas sobre ganhos financeiros de fontes públicas, gerenciando dados estruturados e não estruturados (aproximadamente 4 mil documentos multimodais contendo texto, tabelas, PDFs e páginas HTML). A pilha tecnológica inclui um banco de dados vetorial de código aberto, LangChain, avaliação Ragas, modelos LLM selecionáveis e uma interface web personalizada.

    No restante do artigo, apresentamos nossa estrutura FACTS que resume os desafios enfrentados e os aprendizados adquiridos na construção dos três chatbots mencionados. Começamos com o desafio de lidar com a entrega de conteúdo empresarial atualizado em cada um dos chatbots.

    Figura 1. Pontos de Controle em um pipeline RAG típico ao construir Chatbots.
    Figura 1. Pontos de Controle em um pipeline RAG típico ao construir Chatbots.

    3 Garantindo a Atualidade dos Dados Empresariais em Chatbots com LLM (F)

    Garantir a atualidade dos dados empresariais em chatbots alimentados por LLM apresenta vários desafios. Os modelos de base, embora poderosos, muitas vezes falham por não possuírem conhecimento específico de domínio e de empresa. Uma vez treinados, esses modelos ficam essencialmente congelados no tempo e podem alucinar, fornecendo informações indesejadas ou imprecisas quando usados em conteúdos empresariais para os quais não foram treinados.

    A Geração Aumentada por Recuperação (RAG) é um processo onde informações relevantes são recuperadas de bancos de dados vetoriais através de correspondência semântica e, em seguida, alimentadas para LLMs para geração de respostas. Em um pipeline RAG, bancos de dados vetoriais e LLMs colaboram para garantir a entrega de conhecimento empresarial atualizado. No entanto, pipelines RAG possuem muitos pontos de controle, cada um dos quais, quando não ajustado adequadamente, pode levar a menor precisão, alucinações e respostas irrelevantes por Chatbots. Além disso, permissões de controle de acesso a documentos complicam o processo de busca e recuperação, exigindo uma gestão cuidadosa para garantir a segurança e relevância dos dados. Ademais, o conteúdo multimodal exige o uso de recuperadores multimodais para lidar com dados estruturados, não estruturados e semi-estruturados, incluindo apresentações, diagramas, vídeos e gravações de reuniões. Abordar esses desafios é crítico para manter a precisão e confiabilidade dos chatbots empresariais. Inspirados por (3), identificamos quinze pontos de controle de RAG a partir de nossos estudos de caso visualizados na Figura 1. Cada ponto de controle é rotulado com um número. No restante desta seção, apresentamos nossas percepções e aprendizados para abordar os pontos de controle de RAG.

    3.1 Aprendizados

    Na figura 4, apresentamos uma descrição resumida dos quinze pontos de controle dos pipelines RAG, os desafios associados a cada ponto de controle e nossas abordagens sugeridas para otimizar cada ponto de controle. Cada ponto de controle é rotulado como RAG-C[num] e RAG-Op[num] para os fluxos RAG e RAGOps, respectivamente. Abaixo, apresentamos algumas aprendizagens e insights chave para gerenciar o conteúdo empresarial atualizado.

    Enriquecimento de Metadados, Fragmentação, Reformulação de Consultas, Reclassificação de Consultas: Notamos que as etapas de enriquecimento de metadados, fragmentação, reformulação de consultas e reclassificação de consultas do pipeline RAG têm o maior impacto na qualidade das respostas do Chatbot. A qualidade da geração de respostas do LLM é altamente dependente da relevância da recuperação. A relevância da recuperação, por sua vez, depende muito do enriquecimento de metadados dos documentos, da fragmentação e da reformulação de consultas. Implementamos capacidades de auto-ML baseadas em busca em grade para encontrar as configurações corretas de tamanhos de tokens de fragmentos, experimentamos várias variações de prompts e exploramos diferentes estratégias de reclassificação de fragmentos para encontrar as configurações ideais para cada um. Embora tenhamos feito melhorias significativas na relevância da recuperação e na qualidade e precisão das respostas, acreditamos que ainda temos mais trabalho a fazer para otimizar todo o pipeline.

    Pesquisa Híbrida: Notamos que os bancos de dados vetoriais não são tão bons em lidar com entidades correspondentes (por exemplo, nomes de pessoas, lugares, nomes de empresas, etc.). Usar uma combinação de pesquisa lexical (por exemplo, elastic search) e pesquisa vetorial proporcionou melhor relevância na recuperação e maior cobertura. Configurar uma infraestrutura que suporte capacidades de pesquisa híbrida, que combine as forças das pesquisas baseadas em léxico e em vetores, pode melhorar a precisão e a velocidade do processo de recuperação.

    Figura 2. Arquitetura do agente para lidar com consultas complexas
    Figura 2. Arquitetura do agente para lidar com consultas complexas

    Arquiteturas Agenciais: Perguntas como 'compare a receita da NVIDIA do Q1 ao Q4 do FY2024 e forneça um comentário analítico sobre os principais fatores que contribuíram para as mudanças nas receitas durante esse período' exigem agentes complexos capazes de decomposição e orquestração de consultas. A Figura 2 mostra um mecanismo que implementamos para lidar com tais perguntas no bot Scout. A partir da nossa experiência na construção dos três bots, percebemos que os sistemas de IR e LLMs são insuficientes para responder a consultas complexas. Agentes complexos e arquiteturas multiagentes são necessários para lidar com consultas complexas.

    Ajustar ou não ajustar os LLMs? Uma decisão crucial é se deve ajustar os LLMs, equilibrando o uso de modelos fundamentais com personalizações específicas de domínio. Um único modelo não atende a todas as necessidades quando se trata de LLMs. Alguns casos de uso podem funcionar bem com modelos fundamentais, enquanto outros exigem personalização. Ao considerar a personalização, várias opções estão disponíveis, incluindo engenharia de prompts, P-tuning, ajuste fino eficiente em parâmetros (PEFT) e ajuste fino completo (FT). O ajuste fino requer um investimento significativo em rotulagem de dados, treinamento e avaliações, cada um dos quais pode ser demorado e caro. Automatizar os processos de teste e avaliação de qualidade torna-se crítico para garantir eficiência e precisão ao personalizar LLMs. A Figura 3 mostra as avaliações de tradeoff entre precisão e latência que fizemos comparando o modelo GPT-4 da OpenAI com alguns dos modelos de código aberto em cerca de 245 consultas do domínio do bot NVHelp. Nossos resultados mostram que o modelo Llama3-70B se destaca em vários aspectos da qualidade das respostas, mantendo uma latência aceitável.

    Figura 3. Comparação de métricas de qualidade e latência de resposta do NVHelp entre diferentes modelos
    Figura 3. Comparação de métricas de qualidade e latência de resposta do NVHelp entre diferentes modelos

    Manipulação de dados multimodais: Os dados empresariais são multimodais. Lidar com dados estruturados, não estruturados e multimodais é crucial para um pipeline RAG versátil. A partir da nossa experiência, se a estrutura do documento for consistente e conhecida previamente (como aquelas encontradas em bancos de dados EDGAR para dados de registros da SEC no domínio de resultados financeiros que o Scout bot estava lidando), implementar a divisão em nível de seção, usando os títulos das seções e subtítulos e incorporando-os no contexto dos fragmentos melhora a relevância da recuperação. Também encontramos soluções como Unstructured.io, que se especializam em extrair e estruturar conteúdo de PDFs, úteis na análise e fragmentação de documentos não estruturados com contexto.

    RAGOps: O monitoramento eficaz da saúde dos pipelines RAG é essencial uma vez que eles são implantados. Quando a qualidade das respostas é baixa, uma análise de erros minuciosa é necessária para determinar se o problema está na relevância da recuperação ou na geração de respostas do LLM. Para depurar a relevância da recuperação, os desenvolvedores precisam de informações detalhadas sobre quais fragmentos foram armazenados em bancos de dados vetoriais com seus metadados associados, como as consultas foram reformuladas, quais fragmentos foram recuperados e como esses fragmentos foram classificados. Da mesma forma, se uma resposta do LLM estiver incorreta, é crucial revisar o prompt final usado para a geração da resposta. Para problemas com citações, os desenvolvedores devem rastrear os links dos documentos originais e seus fragmentos correspondentes. RAGOps/LLMOps e frameworks de avaliação, como o Ragas, são críticos para fornecer a automação necessária para permitir iterações rápidas durante os ciclos de melhoria de precisão nos pipelines RAG.

    Mais detalhes sobre cada ponto de controle são apresentados na Figura 4. Em resumo, embora promissores, a implementação de sistemas RAG para chatbots exige um planejamento meticuloso e uma avaliação contínua para garantir a recuperação de dados segura e precisa.

    Figura 4. Pontos de controle RAG, desafios e remediações
    Figura 4. Pontos de controle RAG, desafios e remediações
    Figura 5. Scout Bot: Consulta de múltiplas partes
    Figura 5. Scout Bot: Consulta de múltiplas partes
    Figura 6. NVHelp Bot: Respondendo a perguntas sobre benefícios de RH
    Figura 6. NVHelp Bot: Respondendo a perguntas sobre benefícios de RH

    4 Construindo Arquiteturas Flexíveis para Chatbots de IA Generativa (A)

    Acompanhar o rápido progresso da IA é como navegar em um rio de correnteza forte. Cada aspecto, desde bancos de dados vetoriais e modelos de incorporação até LLMs, arquiteturas agenticas, plataformas low-code/no-code, frameworks de avaliação RAG e técnicas de prompting, está evoluindo rapidamente. Paralelamente, departamentos dentro das empresas estão explorando a IA generativa ao construir seus próprios chatbots e copilotos de IA.

    Neste ambiente dinâmico, construir plataformas comuns, flexíveis e adaptáveis é crucial. Na NVIDIA, nosso ecossistema de chatbots cresceu significativamente, refletindo uma tendência provavelmente observada em muitas empresas. Ao desenvolver três chatbots iniciais, percebemos a importância de uma plataforma comum para evitar esforços duplicados em segurança, diretrizes, autenticação, prompts, interfaces de usuário, mecanismos de feedback, relatórios de uso, monitoramento e avaliações.

    Para resolver isso, desenvolvemos a plataforma NVBot (Figura 7), uma plataforma modular com uma arquitetura plugável. Ela permite que os desenvolvedores selecionem LLMs, bancos de dados vetoriais, modelos de incorporação, agentes e frameworks de avaliação RAG que melhor se adequem ao seu caso de uso. Também fornece componentes comuns para recursos essenciais como segurança, barreiras de proteção, autenticação, autorização, experiência do usuário e monitoramento. Além disso, a plataforma suporta o desenvolvimento cidadão, permitindo que várias equipes contribuam com seus prompts testados, fluxos de trabalho, barreiras de proteção e modelos ajustados para uso coletivo.

    À medida que nosso ecossistema de bots se expandiu, enfrentamos uma questão crítica: as organizações devem construir muitos bots específicos de domínio, um único bot empresarial ou adotar uma abordagem híbrida? Os chatbots específicos de domínio se destacam em ambientes personalizados, enquanto os chatbots empresariais atuam como generalistas, fornecendo uma base de conhecimento centralizada para todos os funcionários. Através de nossa experiência, percebemos que não há necessidade de escolher um em detrimento do outro.

    Novos padrões arquitetônicos estão surgindo onde chatbots em toda a empresa atuam como 'centrais', direcionando consultas para bots especializados ajustados com dados específicos de domínio. Esta arquitetura multibot permite o desenvolvimento simultâneo de chatbots especializados, enquanto fornece aos usuários uma interface unificada. Nossa plataforma NVBot suporta a coexistência e orquestração de múltiplos chatbots dentro de uma empresa. O debate sobre um único bot ou múltiplos bots especializados está em andamento. Visualizamos um cenário onde bots específicos de domínio coexistem com um bot central de informações, apoiados por 'copilotos'—capacidades de IA generativa integradas em ambientes de trabalho como IDEs de programação e ferramentas de colaboração. Na NVIDIA, estamos explorando ativamente as três variações de chatbots—específicos de domínio, em toda a empresa e copiloto, à medida que a IA generativa remodela a eficiência no local de trabalho e a acessibilidade à informação.

    Figura 7. Arquitetura da plataforma NVBot sobre a qual vários chatbots estão sendo construídos.
    Figura 7. Arquitetura da plataforma NVBot sobre a qual vários chatbots estão sendo construídos.

    5 Economia de Custos de Implementações de Chatbots (C)

    Compreender a economia de custos dos chatbots baseados em IA generativa envolve vários fatores críticos. Os altos custos dos LLMs principais e comerciais podem ser insustentáveis, com despesas acumulando-se significativamente em vários casos de uso. Além disso, despesas não visíveis frequentemente se acumulam à medida que as equipes testam vários LLMs para atender a necessidades específicas. Ademais, ao usar APIs de fornecedores comerciais de LLM, proteger dados empresariais sensíveis requer medidas de segurança para detectar e prevenir vazamentos de dados sensíveis, bem como gateways para auditoria e aprendizado legalmente permitido. Também há compensações entre custo e latência a serem consideradas, já que LLMs grandes com longos comprimentos de contexto geralmente têm tempos de resposta mais lentos, impactando a eficiência geral.

    Modelos Maiores Vs. Menores: Modelos LLMs comerciais maiores e modelos LLMs de código aberto menores estão se tornando cada vez mais viáveis para muitos casos de uso, oferecendo assim alternativas econômicas para as empresas. À medida que os modelos de código aberto se aproximam dos modelos comerciais maiores, eles estão oferecendo uma precisão comparável, como demonstrado em nossa avaliação empírica do bot NVHelp na Figura 3, e geralmente apresentam melhor desempenho de latência em comparação com modelos maiores. Além disso, a otimização de modelos de inferência em GPUs pode acelerar ainda mais os tempos de processamento. Modelos de código aberto otimizados com as bibliotecas de inferência Tensor RT-LLM da NVIDIA, por exemplo, mostraram desempenho mais rápido do que modelos não otimizados. Essas estratégias ajudam a equilibrar a necessidade de eficiência de custos com a manutenção de altos padrões de desempenho e segurança.

    LLM Gateway: Se você precisar usar uma API de LLM de fornecedor, é melhor implementar um LLM Gateway interno da empresa para auditoria, assinatura e gerenciamento de custos em toda a empresa. Implementar um LLM Gateway interno da empresa pode simplificar o uso de LLM, assinaturas e rastreamento de dados para auditorias de segurança. Este hub central simplifica a gestão e garante uma alocação eficiente de recursos. Na NVIDIA IT, implementamos um LLM Gateway que registra as cargas de entrada e saída para fins de auditoria e esses dados são protegidos com permissões de controle de acesso. Nosso LLM Gateway ajuda a gerenciar as assinaturas e os custos das invocações da API de LLM.

    Em resumo, desenvolver uma estratégia de LLM híbrida e equilibrada é essencial para gerenciar custos e possibilitar a inovação. Isso envolve o uso de LLMs menores e personalizados para controlar despesas, ao mesmo tempo que permite a exploração responsável com LLMs grandes através de um Gateway de LLM. É crucial medir e monitorar o ROI, acompanhando assinaturas e custos de LLM, além de avaliar o uso de recursos de Gen-AI e melhorias de produtividade. Garantir a segurança dos dados empresariais sensíveis no uso de LLMs baseados em nuvem requer a implementação de barreiras para prevenir vazamento de dados e a construção de um Gateway de LLM para auditorias e aprendizado legalmente permitido. Finalmente, esteja ciente das compensações entre custo, precisão e latência, personalizando LLMs menores para corresponder à precisão de modelos maiores, observando que LLMs grandes com longos comprimentos de contexto tendem a ter um tempo de resposta mais longo.

    6 Testando Chatbots Baseados em RAG (T)

    Testar soluções de IA generativa pode ser um processo demorado devido à necessidade de validação de respostas humanas. Os LLMs estão sendo cada vez mais utilizados na abordagem de 'LLM-como-juiz'. No entanto, é aconselhável ter cautela ao usar LLMs como substitutos humanos, pois usá-los como juízes pode levar a cenários de profecia autorrealizável, reforçando também seus preconceitos inerentes nas avaliações.

    • Teste de Segurança: Automatizar o teste de segurança é crucial para manter a velocidade de desenvolvimento sem comprometer a segurança. Um forte framework de segurança e conjuntos de dados de teste de regressão garantem que o chatbot permaneça resiliente a potenciais ameaças. Estamos colaborando com nossas equipes internas RED em segurança para preparar um conjunto de conjuntos de dados que possam ser testados a cada grande iteração do chatbot.
    • Teste de Mudança de Prompt: Modelos de IA generativa podem ser altamente sensíveis a alterações de prompt. Para manter a precisão, é necessário realizar testes de regressão completos a cada alteração de prompt.
    • Feedback Loops: A incorporação de feedbacks coletados e o ciclo RLHF é fundamental para a melhoria contínua. Isso permite que os modelos LLM refinem tanto nossas soluções quanto os Modelos de Linguagem ao longo do tempo, garantindo que o chatbot se torne cada vez mais proficiente. No entanto, se os modelos fundamentais escolhidos não oferecem personalização, torna-se difícil alinhar os modelos ao feedback humano. Se o feedback for significativo e abranger muitas áreas, então a personalização do modelo pode ser uma opção. Até o momento, começamos a coletar feedback dos usuários, mas ainda não construímos nossos pipelines de aprendizado contínuo usando RLHF. Ter ferramentas para automatizar isso é crítico para a gestão do ciclo de vida pós-produção desses chatbots.

    6.1 Aprendizados

    Plano para Ciclos de Teste Longos: O teste eficaz de chatbots baseados em RAG requer a antecipação de ciclos de teste prolongados. Comece concentrando-se na automação de testes e no aprimoramento das avaliações de precisão para otimizar esta fase essencial.

    Construir Conjuntos de Dados de Verdade Terrestre Representativos: É crucial construir conjuntos de dados de verdade terrestre abrangentes que reflitam todo o espectro das forças das soluções visadas. Isso garante que o chatbot seja testado em cenários que encontrará no uso real.

    Automatizar Avaliações: Embora utilizar LLMs como avaliadores possa oferecer opções de teste escaláveis, lembre-se de que a qualidade das avaliações humanas é incomparável. Ferramentas automatizadas devem ser usadas onde for viável para complementar, mas não substituir a supervisão humana.

    Incorporar Feedback Humano e Aprendizado Contínuo: Estabelecer mecanismos que permitam o feedback humano e a análise sistemática de erros. Priorizar melhorias iterativas com base nesse feedback para refinar continuamente o desempenho e a adaptabilidade do chatbot.

    7 Protegendo Chatbots Baseados em RAG (S)

    Construir confiança é fundamental ao implantar chatbots de IA generativa. Para mitigar riscos, é crucial estabelecer limites para alucinações, toxicidade, justiça, transparência e segurança. Modelos fundamentais robustos estão cada vez melhores nesses aspectos. No entanto, ainda existem muitas possibilidades de falhas de segurança, ataques adversários e outros problemas de segurança. Além desses riscos de segurança, chatbots baseados em IA generativa são suscetíveis a riscos derivados (explicados abaixo). Como nossos bots são todos chatbots empresariais internos, nosso foco tem sido mais na segurança do conteúdo empresarial e na proteção de dados sensíveis. Abaixo, resumimos nossos aprendizados e insights para proteger chatbots baseados em RAG com base em nossa experiência. Abordar esses desafios é imperativo para manter a integridade e a segurança dos chatbots baseados em RAG dentro de ambientes corporativos.

    7.1 Aprendizados

    Controle de Acesso ao Conteúdo Empresarial: Os documentos empresariais são protegidos por controles de acesso, exigindo que chatbots baseados em RAG cumpram as Listas de Controle de Acesso (ACLs) durante a geração de respostas. Para garantir essa conformidade, selecionamos especificamente um produto de IR conhecido por sua capacidade de respeitar essas ACLs de documentos de forma eficaz.

    Riscos Derivativos com IA Generativa: Chatbots podem gerar respostas que carecem de contexto de suas fontes de dados originais, potencialmente levando a interpretações errôneas. Além disso, métodos de busca aprimorados podem, inadvertidamente, aumentar o risco de exposição de dados sensíveis se o conteúdo empresarial não estiver devidamente protegido. Como parte da nossa jornada com o bot NVInfo, implementamos barreiras de proteção para dados sensíveis, além de utilizar capacidades de filtragem e classificação de dados sensíveis fornecidas pela solução de busca vetorial que usamos para filtrar automaticamente dados sensíveis durante a recuperação.

    Governança de Dados e Segurança de Conteúdo: O acesso eficiente ao conhecimento pode aumentar os riscos de vazamento de dados sensíveis. Portanto, é essencial priorizar a governança de dados antes da implementação para proteger contra acessos não autorizados e violações de dados. Na NVIDIA, embarcamos em uma iniciativa de segurança de conteúdo empresarial para classificação de sensibilidade de documentos e exclusão de conteúdo sensível de chatbots.

    Proteção Empresarial: Implementar proteções que alinhem as respostas de IA generativa com políticas e regras específicas da empresa é essencial. Essas proteções ajudam a mitigar riscos, garantindo que o conteúdo gerado pelo Chatbot adira a normas estabelecidas e diretrizes éticas, prevenindo possíveis danos legais e de reputação. No bot NVInfo, implementamos muitas proteções em prompts de LLM inicialmente. No entanto, percebemos mais tarde que nem todos os LLMs seguem esses prompts de forma consistente. Portanto, implementamos essas proteções durante o pré e pós-processamento de consultas e respostas, respectivamente, usando Nemo Guardrails (13).

    8 Trabalhos relacionados

    Nosso trabalho pode ser comparado com artigos RAG sobre vários tópicos que lidam com a qualidade RAG em todas as dimensões FACTS que apresentamos (atualidade, arquitetura, custos, testes e segurança). Devido à falta de espaço, contrastamos nosso trabalho com obras seletivas. Barnett et. al. (3) apresentou sete pontos de falha ao projetar sistemas RAG. Em seu trabalho, eles destacam os desafios de acertar a geração aumentada por recuperação, apresentando suas descobertas após construir três chatbots. Wenqi Glantz (6) elaborou 12 pontos problemáticos do RAG e apresentou soluções. Experimentamos desafios semelhantes em primeira mão ao construir nossos chatbots. No entanto, nenhum desses trabalhos discute os desafios com consultas complexas, testes, lidar com a segurança de documentos e a necessidade de arquiteturas flexíveis. Em nosso trabalho, não apenas construímos sobre os pontos de falha/dor dos RAGs mencionados acima, mas também apresentamos nossos 15 pontos de controle em pipelines RAG e oferecemos soluções específicas para cada estágio. Além disso, ampliamos nossos insights e apresentamos técnicas práticas para lidar com consultas complexas, testes e segurança. Apresentamos uma arquitetura de referência para uma das implementações de arquiteturas agenticas para lidar com consultas complexas, estratégias para testar e avaliar respostas de consultas subjetivas, e aumentamos a conscientização para lidar com ACLs de documentos e segurança. Além disso, apresentamos uma arquitetura de referência para uma plataforma de Chatbot flexível baseada em IA generativa.

    ChipNemo (10) apresenta evidências do uso de um modelo de linguagem adaptado ao domínio para melhorar o desempenho do RAG em perguntas específicas de domínio. Eles ajustaram o modelo e5-small-unsupervised com 3.000 amostras auto-geradas específicas de domínio. Tentamos ajustar o modelo de embeddings e5-large no Scout Bot. Nossos resultados não demonstraram melhorias significativas. Atualmente, estamos coletando dados de alta qualidade anotados por humanos para repetir os experimentos. Esta pode ser uma direção importante a explorar no futuro para o nosso trabalho. Outra técnica interessante foi apresentada por Setty et. al. (15), ao melhorar o desempenho do RAG usando a técnica de Embeddings de Documentos Hipotéticos (HyDE). HyDE usa um LLM para gerar um documento teórico ao responder a uma consulta e, em seguida, faz a busca de similaridade tanto com a pergunta original quanto com a resposta hipotética. Esta é uma abordagem promissora, mas pode tornar a arquitetura complexa.

    A Recuperação Ativa aumentada por geração (FLARE) (7) sintetiza iterativamente uma próxima frase hipotética. Se a frase gerada contiver tokens de baixa probabilidade, o FLARE usaria a frase como a nova consulta para recuperação e regeneraria a frase. Mialon et al. (12) revisa trabalhos sobre métodos avançados de geração aumentada em modelos de linguagem. Self-refine (11) constrói um agente para melhorar a resposta inicial do RAG através de feedback e refinamento iterativos. O Agente ReAct (16) é amplamente utilizado para lidar com consultas complexas de maneira recursiva. Na frente de avaliação do RAG, RAGAS (4) e ARES (14) utilizam LLMs como juízes e constroem um benchmark automático de RAG para avaliar o sistema RAG. Zhu et al. (17) apresentam uma visão geral dos usos intensivos de LLM em um pipeline RAG, incluindo recuperador, geração de dados, reescritor e leitor. Acreditamos que nosso trabalho oferece uma perspectiva única sobre a construção de chatbots seguros de nível empresarial através de nossa estrutura FACTS.

    9 Conclusões

    Neste artigo, apresentamos nossa abordagem para desenvolver chatbots eficazes baseados em RAG, destacando nossas experiências na construção de três chatbots na NVIDIA. Descrevemos nosso framework FACTS, enfatizando a importância da atualização de conteúdo (F), arquitetura (A), gestão de custos de LLM (C), planejamento para testes (T) e segurança (S) na criação de chatbots robustos, seguros e de nível empresarial. Também identificamos e elaboramos quinze pontos de controle críticos dentro das pipelines RAG, fornecendo estratégias para melhorar o desempenho dos chatbots em cada etapa. Além disso, nossa análise empírica revela os trade-offs entre precisão e latência ao comparar LLMs grandes e pequenos. Este artigo oferece uma perspectiva holística sobre os fatores essenciais e soluções práticas para construir chatbots seguros e eficientes de nível empresarial, fazendo uma contribuição única para o campo. Mais trabalho é necessário em várias áreas para construir chatbots eficazes baseados em RAG. Isso inclui desenvolver arquiteturas agenticas para lidar com consultas complexas, multipartes e analíticas; resumir eficientemente grandes volumes de dados empresariais frequentemente atualizados; incorporar capacidades de auto-ML para otimizar automaticamente vários pontos de controle RAG; e criar frameworks de avaliação mais robustos para avaliar respostas e conversas subjetivas.

    Referências

    • (1) Langchain. https://github.com/langchain-ai.
    • (2) Achiam, J., Adler, S., Agarwal, S., Ahmad, L., Akkaya, I., Aleman, F. L., Almeida, D., Altenschmidt, J., Altman, S., Anadkat, S., et al. GPT-4 technical report. arXiv preprint arXiv:2303.08774 (2023).
    • (3) Barnett, S., Kurniawan, S., Thudumu, S., Brannelly, Z., e Abdelrazek, M. Seven failure points when engineering a retrieval augmented generation system. arXiv preprint arXiv:2401.05856 (2024).
    • (4) Es, S., James, J., Espinosa-Anke, L., e Schockaert, S. Ragas: Automated evaluation of retrieval augmented generation. arXiv preprint arXiv:2309.15217 (2023).
    • (5) Galitsky, B. Developing enterprise chatbots. Springer, 2019.
    • (6) Glantz, W. 12 rag pain points and proposed solutions.
    • (7) Jiang, Z., Xu, F. F., Gao, L., Sun, Z., Liu, Q., Dwivedi-Yu, J., Yang, Y., Callan, J., e Neubig, G. Active retrieval augmented generation. arXiv preprint arXiv:2305.06983 (2023).
    • (8) Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., Küttler, H., Lewis, M., Yih, W.-t., Rocktäschel, T., et al. Retrieval-augmented generation for knowledge-intensive nlp tasks. Advances in Neural Information Processing Systems 33 (2020), 9459–9474.
    • (9) Liu, J. LlamaIndex. https://github.com/jerryjliu/llama_index(2022).
    • (10) Liu, M., Ene, T.-D., Kirby, R., Cheng, C., Pinckney, N., Liang, R., Alben, J., Anand, H., Banerjee, S., Bayraktaroglu, I., et al. Chipnemo: Domain-adapted llms for chip design. arXiv preprint arXiv:2311.00176 (2023).
    • (11) Madaan, A., Tandon, N., Gupta, P., Hallinan, S., Gao, L., Wiegreffe, S., Alon, U., Dziri, N., Prabhumoye, S., Yang, Y., et al. Self-refine: Iterative refinement with self-feedback. Advances in Neural Information Processing Systems 36 (2024).
    • (12) Mialon, G., Dessì, R., Lomeli, M., Nalmpantis, C., Pasunuru, R., Raileanu, R., Rozière, B., Schick, T., Dwivedi-Yu, J., Celikyilmaz, A., et al. Augmented language models: a survey. arXiv preprint arXiv:2302.07842 (2023).
    • (13) Rebedea, T., Dinu, R., Sreedhar, M., Parisien, C., e Cohen, J. Nemo guardrails: A toolkit for controllable and safe llm applications with programmable rails. arXiv preprint arXiv:2310.10501 (2023).
    • (14) Saad-Falcon, J., Khattab, O., Potts, C., e Zaharia, M. Ares: An automated evaluation framework for retrieval-augmented generation systems. arXiv preprint arXiv:2311.09476 (2023).
    • (15) Setty, S., Jijo, K., Chung, E., e Vidra, N. Improving retrieval for rag based question answering models on financial documents. arXiv preprint arXiv:2404.07221 (2024).
    • (16) Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., e Cao, Y. React: Synergizing reasoning and acting in language models. arXiv preprint arXiv:2210.03629 (2022).
    • (17) Zhu, Y., Yuan, H., Wang, S., Liu, J., Liu, W., Deng, C., Dou, Z., e Wen, J.-R. Large language models for information retrieval: A survey. arXiv preprint arXiv:2308.07107 (2023).