Avaliação RAG: detectando alucinações com Patronus AI e MongoDB
Han Heloir, Prakul Agarwal11 min read • Published Aug 15, 2024 • Updated Aug 15, 2024
Avalie esse Tutorial
Um dos maiores feedbacks que escutamos dos clientes que criam aplicativos de AI generativa é sobre confiabilidade. No passado, nos associamos à Padronus AI para mostrar como construir sistemas de AI confiáveis com o MongoDB Atlas Vector Search.
Atualmente, temos o privilégio de anunciar uma associação com a Padronus AI no lançamento de seu modelo de detecção de alterações de última geração: Lince (8b e 70b).
Esse modelo de detecção de auditório de pesos abertos supera todos os modelos LLMs-as-a-juge existentes, incluindo o GPT-4o. Esta versão também introduz o HaluBench, um novo benchmark abrangente projetado para avaliar a fidelidade dos sistemas de geração aumentada de recuperação (RAG) usando dados do mundo real. Este tutorial fornece detalhes sobre como usar modelos de código aberto com o MongoDB Atlas para avaliar a confiabilidade dos sistemas RAG.
Você pode encontrar todo o código apresentado no tutorial no Github
Empresa líder em avaliação e segurança automatizada de AI, o mais recente desenvolvimento da Patronus AI, Lynx, é um modelo de detecção de alucinações de código aberto projetado para resolver o problema crítico de alucinações em grandes modelos de linguagem (LLMs), onde os modelos produzem resultados que são coerentes, mas não factualmente preciso ou alinhado com o contexto de entrada.
Aqui estão os principais pontos sobre o Lynx:
- Detecta alucinações, superando o desempenho de modelos de código aberto e de código fechado
- Opera em tempo real, fornecendo feedback imediato sobre a fidelidade da resposta da AI
- Elimina a necessidade de anotações manuais
- Permite que os desenvolvedores implantem sistemas de AI confiáveis em escala
Em conjunto com a Lince, a Padronus AI desenvolveu o HaluBench, um novo benchmark projetado para avaliar a fidelidade dos sistemas RAG. O HaluBench obtém dados de vários domínios do mundo real, incluindo financeiros, médios e de conhecimento geral, para avaliar de forma abrangente até que ponto as arquiteturas RAG aderem às informações recuperadas. Esse benchmark inclui exemplos de vários conjuntos de dados, como PerformanceBench, DROP, COVID-QA e PubMedQA, garantindo uma ampla variedade de cenários para avaliação robusta.
O gráfico a seguir mostra a precisão de diferentes LLMs no HaluBench do papel Padronus AI.
Número 1: Resultado de benchmark da Patronus AI
A tabela compara a precisão de vários modelos de linguagem grandes (LLMs) no HaluBench, uma referência para avaliar sistemas RAG. Inclui modelos como GPT-4, Claude, Mistral Instruct, Llama-3-Chat e Lynx em conjuntos de dados como HaluEval, DROP, CovidQA e PubMedQA. Modelos maiores, especialmente Lynx 70B, demonstram maior precisão, destacando sua eficácia na detecção e gerenciamento de alucinações e enfatizando os benefícios de modelos maiores e treinamento especializado para sistemas RAG confiáveis.
A introdução do Lince e do HaluBench fornece ferramentas essenciais para detectar e mitigar eficazmente as atordoamentos. Quando integradas ao MongoDB, essas ferramentas aprimoram o desenvolvimento de aplicativos de AI generativa robustos e escaláveis. O processamento de dados em tempo real do MongoDB, o esquema flexível, os recursos avançados de query e as medidas robustas de segurança garantem a confiabilidade e a precisão do conteúdo gerado por IA.
O MongoDB Atlas é uma plataforma exclusiva totalmente gerenciada que integra dados empresariais, pesquisa vetorial e análise, permitindo a criação de aplicativos de AI personalizados. A construção de bases tecnológicas robustas e escaláveis torna-se crucial à medida que as empresas correm para obter o poder transformador da IA generativa. O MongoDB aborda vários desafios importantes nesse campo de rápida evolução, tornando-o uma escolha ideal para aplicativos RAG.
Responsivo em tempo real: a arquitetura do MongoDBde interações de dados em tempo real é crucial para sistemas de AI generativos. Sua capacidade de resposta garante que as respostas sejam entregues aos clientes em segundos ou até milésimos de segundo, mantendo o envolvimento e a satisfa ção do usuário.
Manipulação rápida de dados: a natureza flexível e o modelo de dados flexíveis do MongoDB suportam a rápida iteração de aplicativos, permitindo que as organizações adicionem novos tipos de dados e recursos rapidamente. Essa flexibilidade facilita a melhoria contínua e a readaptação dos aplicativos, garantindo que eles permaneçam comparativos e relevantes.
Integração e queries inteligentes de dados: os principais recursos do Atlas Search vetorial do MongoDBaprimoram a funcionalidade de aplicativos de AI generativa ao oferecer suporte ao Atlas Search semântica. Além disso, o MongoDB fornece recursos de query avançados adicionais, como Atlas Search de texto completo, queries geoespaciais e queries vetorizadas, que são essenciais para recuperar com eficiência dados relevantes de conjuntos de dados grandes e diversos.
Proteção de dados confidenciais: o MongoDB enfatiza fortemente a segurança, especialmente ao gerenciar dados confidenciais em plataformas de engajamento de clientes. Ela emprega controles de segurança robustos para proteger dados contra acesso não autorizado e garantir a integridade e confidencialidade dos dados do cliente. Os recursos de segurança abrangentes do MongoDB, incluindo criptografia de repouso e trânsito, controle de acesso baseado em função e auditoria, ajudam a fortalecer os dados contra violações e acesso não autorizado.
Em todos os lugares: o MongoDB foi projetado para se integrar facilmente a qualquer provedor de nuvem, modelo de linguagem grande (LLM) e framework. Essa flexibilidade é crucial para atender às necessidades dinâmicas de aplicativos de AI generativa em vários setores e casos de uso.
Os sistemas de geração aumentada de recuperação (RAG) combinam modelos baseados em recuperação e em geração para produzir respostas mais precisas e contextualmente relevantes. No entanto, as afirmações que a AI gera informações coerentes, mas imprecisas — representam um desafio significativo, solapando a confiabilidade e a confiança. Uma avaliação robusta garante a precisão, melhora a confiabilidade e aumenta a confiança do usuário.
O HaluBench, desenvolvido pela Padronus AI, fornece um parâmetro abrangente para avaliar a fidelidade dos sistemas RAG usando dados do mundo real. Lynx aprimora os sistemas RAG ao:
Deteção de atordoamento em tempo real: fornece feedback imediato sobre as respostas de AI , permitindo a correção rápida de imprecisões
Avaliação automatizada: acelera o processo de avaliação eliminando a necessidade de anotações manuais, garantindo avaliações consistentes
Integração perfeita: Monitora e avalia continuamente o conteúdo nos sistemas RAG existentes, mantendo a precisão e a confiabilidade
Benchmarking com HaluBench: Quando usados juntos, Lynx e HaluBench oferecem uma estrutura robusta para testar sistemas RAG em diversos cenários do mundo real, melhorando sua robustez e aplicabilidade.
Imagem 2: Processo típico de avaliação do RAG
O diagrama acima ilustra um processo típico de avaliação de RAG envolvendo aplicativos de AI generativa em tempo real, um modelo LLM para geração de RAG , MongoDB Atlas para o Atlas Search vetorial e o Lince da AIdo Padronus como árbitro.
- Aplicativos de generativos em tempo AI real: as perguntas do usuário são inseridas nos aplicativos de generativos em tempo AI RAG real.
- MongoDB Atlas: o MongoDB Atlas gerencia a pesquisa vetorial e processa a pergunta do usuário para encontrar documentos relevantes.
- Modelo LLM usado na geração de RAG: ele recupera documentos relevantes e os usa para formular um prompt. O modelo LLM processa a pergunta do usuário com documentos recuperados para gerar uma resposta.
- LLM como árbitro (Lyx): as entradas incluem os documentos recuperados, a pergunta do usuário e a resposta do LLM. O Lince avalia a fidelidade da resposta e gera uma pontuação binária indicando se a resposta é confiável ou não.
Para consultar e recuperar resultados do armazenamento de vetores do MongoDB Atlas, siga estas três etapas:
- Configure o banco de dados no Atlas. Primeiro, você precisa criar uma conta no MongoDB Atlas. Isso envolve entrar em sua conta do MongoDB Atlas, criar um novo cluster e adicionar um banco de dados e uma collection. Você pode pular esta etapa se você já tiver sua coleção para o Atlas Search vetorial.
- Crie um índice Atlas. Você pode criar um índice via código ou usando a UI do Atlas. Aqui está um exemplo de como criar um índice utilizando a UI do Atlas:
- Navegue até sua coleção.
- Clique em "Atlas search " e depois em "Create Index. "
- Defina os campos e o tipo do índice.
Alternativamente, você pode criar um índice programaticamente. A seguinte definição de índice indexa o campo de incorporações vetoriais (fieldToIndex) para executar a pesquisa vetorial.
Observação: o
create_search_index
só funciona para o Atlas cluster M10+. Use a UI do Atlas para o M0-M5.- Execute uma query vetorial com código. Depois de configurar seu banco de dados e criar os índices necessários, você poderá realizar uma query vetorial. Abaixo está um exemplo de código Python usando a biblioteca PyMongo:
A Padronus disponibiliza duas versões do modelo Lince:
- Usando o modelo grande: O modelo Lince-70B requer recursos computacionais significativos. Verifique se você tem memória e capacidade de computação suficientes para lidar com isso. Você precisará de uma instância com uma CPU A100 ou H100 . Usaremos o vLLM para executar o modelo na CPU e obter um endpoint para o nosso processo de avaliação.
- Usando um modelo menor: se o modelo 70B for muito grande para o seu caso de uso, considere usar uma variante menor do modelo Lince (LyNX-8B-Instruct). Isso pode ser executado em um sistema local usando o Ollama. Você pode encontrar tamanhos diferentes no centro do modelo Hugging Face no repositório PadronusAI.
Siga estas etapas para baixar o modelo Lince do Abraçando o Face. Isso envolve configurar o ambiente e a CLI do Abraçando Face, fazendo login no Abraçando o Face e baixando o modelo.
Etapa 1: instale o Hugging Face Hub CLI
Primeiro, você precisa instalar a CLI do Hugging Face Hub. Isso permite que você interaja diretamente com o hub de modelo do Hugging Face a partir da linha de comando.
Etapa 2: faça login no Abraço do Rosto
Em seguida, faça login na sua conta do Abraçando Face. Se você não tiver uma conta, precisará criar uma em Abraçando a Face.
Você será solicitado a inserir seu token Hugging Face. Você pode encontrar seu token nas configurações da sua conta Hugging Face em “Access Tokens.”
Etapa 3: baixe o modelo Lynx
Após o login, você pode baixar o modelo Lynx. Aqui está um exemplo de comando para baixar a variante 70B do modelo Lynx:
Este comando baixará o modelo para um diretório local chamado Patronus_8B.
Com o servidor de inferênciavLLM em execução, você obterá um URI (por exemplo, http://localhost:5123/). Você pode usar a especificação da API OpenAI para enviar solicitações e avaliar a fidelidade das respostas geradas pela IA. Esta seção aborda o envio de uma solicitação cURL para testar o servidor e a implementação de um modelo de prompt estruturado para detecção de alucinações.
Etapa 1: Crie um novo ambiente conda e instale o vllm
A criação de um ambiente conda dedicado ajuda a gerenciar as dependências e a evitar conflitos. Veja como configurar um novo ambiente com o Python 3.10:
Instale a vLLM, uma biblioteca projetada para atender com eficiência a grandes modelos de linguagem. Se você tiver CUDA 12.1 instalado, você pode instalar o vLLM com suporte CUDA para melhor desempenho.
Etapa 2: Executar o modelo Lince em um servidor
Depois que o vLLM estiver instalado, você poderá iniciar o servidor para hospedar o modelo Lynx. Isso envolve especificar a porta, o modelo e o tokenizador. O seguinte comando executa o modelo na porta 5123:
Com o servidor de inferência vLLM em execução em http://localhost:5123/, você pode usar a especificação da API OpenAI para enviar solicitações e avaliar a fidelidade das respostas geradas pela IA. Esta seção aborda o envio de uma solicitação cURL para testar o servidor e a implementação de um modelo de prompt estruturado para detecção de alucinações.
Etapa 1: testar o servidor com uma solicitação cURL
Verifique se o servidor está funcionando enviando uma solicitação cURL. Essa solicitação consulta o modelo para definir o que é uma alucinação:
Etapa 2: Definir o modelo de prompt
Use um modelo de prompt estruturado para avaliar a fidelidade das respostas geradas por IA. O modelo ajuda a garantir que a resposta seja fiel ao documento fornecido e não contenha alucinações.
Etapa 3: Implemente a função de avaliação
Use o Python para enviar uma solicitação estruturada para a API do Lince local, incluindo a pergunta, o documento e a resposta. O código a seguir demonstra como formatar a solicitação e manipular a resposta:
O Lince e o HaluBench da Patronuus AI avançam significativamente a detecção de atordoamentos e a avaliação do sistema RAG. Lynx fornece feedback automatizado em tempo real, enquanto HaluBench oferece um benchmark robusto usando dados do mundo real. O MongoDB Atlas aprimora essas ferramentas com processamento de dados em tempo real, manuseio rápido, consulta avançada e segurança robusta. Sua integração perfeita com qualquer fornecedor de nuvem, LLM e framework o torna ideal para aplicativos generativos de AI RAG.
O Lix, o HaluBench e o MongoDB permitem o desenvolvimento de aplicativos de RAG AI confiáveis, precisos e escaláveis, impulsionando a melhoria e a novidade contínuas em generativa AI.
1. O que são Lince e HaluBench, e por que são importantes para os sistemas RAG?
O Lince é um modelo de detecção de atordoamento de código aberto desenvolvido pela Padronus AI. Ele detecta atordoamentos em tempo real, superando os modelos de código aberto e fechado. O HaluBench é um benchmark abrangente para avaliar a fidelidade dos sistemas de geração aumentada de recuperação (RAG) usando dados do mundo real. Juntos, eles fornecem uma estrutura robusta para testar e melhorar os sistemas RAG , permitindo que os desenvolvedores implementem aplicativos de AI mais confiáveis em escala.
2. Por que usar o MongoDB Atlas para aplicativos RAG?
O MongoDB Atlas é uma plataforma de banco de dados em nuvem que oferece um ambiente escalável, seguro e de alto desempenho para aplicativos RAG (Reactive Applications). Ele fornece recursos como replicação, balanceamento de carga e failover automático, o que garante alta disponibilidade e confiabilidade para seus aplicativos.
Além disso, o MongoDB Atlas oferece uma variedade de ferramentas e serviços que facilitam o desenvolvimento e a manutenção de aplicativos RAG, como:
* **MongoDB Compass:** Uma interface gráfica de usuário (GUI) que permite gerenciar e monitorar seus bancos de dados MongoDB.
* **MongoDB Shell:** Uma ferramenta de linha de comando que permite interagir com seus bancos de dados MongoDB.
* **MongoDB Stitch:** Um serviço de computação em nuvem que permite criar funções e serviços personalizados para seus aplicativos MongoDB.
Com o MongoDB Atlas, você pode se concentrar em desenvolver seus aplicativos RAG sem se preocupar com a infraestrutura de banco de dados.
O MongoDB Atlas é ideal para aplicativos RAG porque:
- Fornece processamento de dados em tempo real e capacidade de resposta.
- Oferece manuseio flexível de dados para rápida iteração do aplicativo.
- Suporta o Atlas Search vetorial e recursos avançados de query.
- Garante segurança robusta para dados confidenciais.
- Integra-se facilmente a vários provedores de nuvem, LLMs e frameworks.
3. Como posso configurar e implantar o modelo Lynx para avaliar as respostas geradas por IA?
Para configurar e implantar o modelo Lynx:
- Baixe o modelo do Abraçando o Face.
- Crie um novo ambiente conda e instale o vLLM.
- Execute o modelo Lince em um servidor usando o vLLM.
- Use a especificação da API OpenAI para enviar solicitações e avaliar as respostas geradas pela IA.
- Observe que o modelo Lix-70B requer recursos computacionais significativos (normalmente uma CPU A100 ou H100 ), enquanto o modelo Lix-8B-Instruct menor pode ser executado em um sistema local usando o Ollama .
4. Como esse sistema melhora a confiabilidade dos aplicativos de IA generativa?
Este sistema melhora a confiabilidade ao:
- Detecção e mitigação de atordoamentos em tempo real.
- Fornecendo feedback imediato sobre a fidelidade da resposta da AI .
- Oferecendo benchmarking abrangente com dados do mundo real.
- Habilitando o monitoramento e a avaliação contínuos do conteúdo nos sistemas RAG.
- Eliminando a necessidade de anotações manuais no processo de avaliação.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
Relacionado
Tutorial
Descubra seu Airbnb ideal: implementando um Spring Boot e Atlas Search com o driver Kotlin Sync
Aug 06, 2024 | 8 min read
Tutorial
Combinando seu banco de dados com o armazenamento de blog do Azure usando o Data Federation
Aug 29, 2024 | 7 min read