RAG da OpenAI vs. seu RAG personalizado: qual é melhor?
Este post foi originalmente publicado em The New Stack e é republicado aqui com permissão.
A recente introdução do recurso de recuperação dos Assistants da OpenAI gerou discussões significativas na comunidade de IA. Esse recurso integrado incorpora as capacidades de Retrieval Augmented Generation (RAG) para perguntas e respostas, permitindo que os modelos de linguagem GPT acessem conhecimento adicional para gerar respostas mais precisas e relevantes. Em um post anterior, exploramos as limitações da recuperação RAG integrada da OpenAI e discutimos situações em que criar uma solução de recuperação personalizada pode ser benéfico.
Neste post, vamos nos aprofundar nesse tópico comparando o desempenho do RAG da OpenAI com um RAG personalizado criado sobre um banco de dados vetorial como o Milvus. Vamos avaliar os pontos fortes, fracos e nuances de cada abordagem, respondendo, por fim, à pergunta crucial: qual é melhor?
O que é Retrieval Augmented Generation (RAG)?
Antes de avaliarmos os sistemas RAG integrado da OpenAI vs. RAG personalizado, vamos começar entendendo o que é RAG.
RAG, ou Retrieval Augmented Generation, é uma estrutura de IA que recupera fatos de uma base de conhecimento externa para garantir que large language models (LLMs) estejam fundamentados nas informações mais precisas e atualizadas. Um sistema RAG típico é composto por um LLM, um banco de dados vetorial como o Milvus e alguns prompts como código.
Ferramenta de avaliação de RAG: Ragas
Avaliar o desempenho do RAG é uma tarefa complexa. Precisamos de uma ferramenta de avaliação de RAG justa e objetiva para avaliar múltiplas métricas em um conjunto de dados adequado, garantindo resultados reproduzíveis.
Ragas é um framework de código aberto dedicado a avaliar o desempenho de sistemas RAG. Ele fornece uma variedade de métricas de pontuação que medem diferentes aspectos de um sistema RAG para oferecer uma avaliação abrangente e sob múltiplos ângulos da qualidade das aplicações RAG.
Este post usará fidelidade, relevância da resposta, precisão do contexto, similaridade da resposta e correção da resposta como as principais métricas para avaliar o RAG da OpenAI e nossos sistemas RAG personalizados.
Fidelidade: Avaliar a precisão factual da resposta gerada no contexto fornecido.
Relevância da Resposta: Avaliar a relevância da resposta gerada para a pergunta.
Precisão do Contexto: Relação sinal-ruído no contexto recuperado.
Correção da Resposta: Avaliar a precisão da resposta gerada em comparação com a verdade de referência.
Similaridade da Resposta: Avaliar a semelhança semântica entre a resposta gerada e a verdade de referência.
Consulte a documentação do Ragas para obter informações mais detalhadas sobre o Ragas e todas as métricas.
Conjunto de dados de avaliação de RAG: FiQA
Selecionamos o conjunto de dados Financial Opinion Mining and Question Answering (FiQA) para nossa avaliação. Esse conjunto de dados tem várias características que o tornam ideal para nossa avaliação, incluindo:
Ele contém conhecimento financeiro altamente especializado, improvável de estar presente nos dados de treinamento dos modelos GPT.
Ele foi inicialmente projetado para avaliar capacidades de Information Retrieval e, portanto, fornece trechos de conhecimento bem anotados que servem como respostas padrão (verdade de referência).
Ragas e sua comunidade reconheceram amplamente o FiQA como um conjunto de dados de teste introdutório padrão.
Configurando os sistemas RAG
Agora, vamos construir os dois sistemas RAG para comparação: um RAG da OpenAI e um RAG personalizado construído sobre o banco de dados vetorial Milvus.
Configurando o RAG da OpenAI
Vamos criar um sistema RAG usando OpenAI Assistants seguindo a documentação oficial da OpenAI, incluindo a construção dos Assistants, o upload do conhecimento externo, a recuperação de informações contextuais e a geração de respostas. Todas as outras configurações permanecerão como padrão.
Configurando um RAG personalizado usando Milvus
Devemos configurar manualmente o sistema RAG personalizado usando o banco de dados vetorial Milvus para armazenar o conhecimento externo. Usaremos `BAAI/bge-base-en` da HuggingFace como modelo de embedding, com vários componentes do LangChain para importação de documentos e construção de agentes.
Para informações detalhadas, consulte este guia passo a passo.
Comparação de configuração
Resumimos os detalhes de configuração dos dois sistemas RAG na tabela abaixo. Para mais informações, consulte nosso código de implementação.
| RAG da OpenAI | RAG personalizado | |
|---|---|---|
| Modelo LLM | gpt-4-1106-preview | gpt-4-1106-preview |
| BD vetorial | Não divulgado | milvus |
| Modelo de embedding | Não divulgado | BAAI/bge-base-en |
| Tamanho do chunk | Não divulgado | 1000 |
| Sobreposição de chunks | Não divulgado | 40 |
| topk | Não divulgado | 5 |
| Usa Agent | Sim | Sim |
Tabela: Comparação de configuração do RAG da OpenAI e do RAG personalizado
Como mostrado na tabela acima, ambos os sistemas RAG usam `gpt-4-1106-preview` como modelo LLM. O RAG personalizado usa o Milvus como banco de dados vetorial. No entanto, o RAG da OpenAI não divulga seu banco de dados vetorial integrado nem outros parâmetros de configuração.
Resultados e análise da avaliação
Usando o Ragas, pontuamos ambos os sistemas RAG em várias métricas, incluindo precisão do contexto, fidelidade, relevância da resposta, similaridade e correção. O gráfico abaixo mostra as pontuações experimentais que obtivemos do Ragas.
Embora o sistema RAG da OpenAI tenha superado ligeiramente o sistema RAG personalizado com Milvus em similaridade da resposta, ficou atrás em outras métricas cruciais, incluindo precisão do contexto, fidelidade, relevância da resposta e correção da resposta.
O Ragas também nos permite comparar dois sistemas RAG usando Ragas Scores, um valor médio gerado pelo cálculo da média harmônica de várias métricas. A média harmônica é usada para penalizar itens com baixa pontuação. Quanto maiores os Ragas Scores, melhor o desempenho geral de um sistema RAG. O gráfico abaixo mostra os Ragas Scores de dois sistemas RAG.
Como mostrado no gráfico, o sistema RAG personalizado com Milvus tem Ragas Scores mais altos do que o sistema RAG da OpenAI.
Em conclusão, o sistema RAG personalizado com Milvus superou o sistema RAG da OpenAI em relação aos Ragas Scores e a outras métricas cruciais, incluindo precisão do contexto, fidelidade, relevância e correção da resposta.
Por que o RAG personalizado supera o RAG integrado da OpenAI?
Por meio de muitas comparações individuais, descobrimos que o pipeline RAG personalizado baseado em um banco de dados vetorial tem desempenho melhor do que o sistema RAG baseado em OpenAI Assistants. Por quê? Aqui estão alguns dos motivos mais importantes.
OpenAI Assistants dependem do conhecimento interno de pré-treinamento em vez do conhecimento externo.
Devido à sua configuração interna de agentes, os assistentes da OpenAI dependem mais do pré-treinamento do que do conhecimento carregado. Por exemplo, quando perguntado sobre aulas de finanças pessoais no ensino médio, o sistema RAG da OpenAI forneceu uma resposta que se baseou em algo diferente da verdade factual.
| Pergunta | Aulas de finanças pessoais/gestão de dinheiro são ensinadas no ensino médio, em algum lugar? |
|---|---|
| Resposta do sistema RAG da OpenAI | Aulas de finanças pessoais e gestão de dinheiro são de fato ensinadas em algumas escolas de ensino médio, embora a disponibilidade e a obrigatoriedade dessas aulas possam variar muito dependendo do país e até mesmo entre regiões de um país. Nos Estados Unidos, por exemplo, o Council for Economic Education (CEE) realiza pesquisas e publica relatórios sobre educação financeira em escolas K-12. Suas conclusões sugerem que, até minha última atualização, um número crescente de estados integrou finanças pessoais aos seus padrões educacionais, e alguns exigiram que os estudantes façam um curso de finanças pessoais para se formar. Embora eu não tenha acesso a um banco de dados ao vivo ou aos estudos mais recentes, muitas vezes é possível encontrar informações sobre educação financeira nas escolas: 1. Consultando sites governamentais de educação. 2. Analisando relatórios de organizações sem fins lucrativos e conselhos de educação financeira. 3. Entrando em contato com conselhos escolares locais ou departamentos de educação. Se você tiver interesse em locais específicos ou tiver um foco específico em mente, poderia especificar isso para que eu pudesse fornecer informações mais diretas, se disponíveis. |
| Resposta do sistema RAG personalizado | Aulas de finanças pessoais e gestão de dinheiro são de fato ensinadas em algumas escolas de ensino médio, mas a disponibilidade e os requisitos dessas aulas podem variar muito. Por exemplo, em Houston, Texas, uma escola particular de ensino médio oferecia uma aula opcional de meio semestre em finanças pessoais que não concedia créditos para a formatura. A Staples High School em Westport, Connecticut, introduziu uma aula de gestão financeira pessoal focada no uso da matemática para desenvolver habilidades de alfabetização financeira, abordando tópicos como ganhos, serviços bancários, cartões de crédito, empréstimos, impostos, seguros, investimentos, orçamento e compra de bens pessoais. Escolas públicas em Ann Arbor, Michigan, ofereciam uma aula de 'educação cívica' que incluía tópicos básicos de gestão de dinheiro. Além disso, no Reino Unido, a estrutura 'Every Child Matters' inclui 'alcançar o bem-estar econômico' como um elemento importante, e algumas escolas usam um Sistema de Recompensas Escolares para ensinar crianças sobre finanças e economia. Embora esses exemplos mostrem que tais aulas existem, elas não são universalmente obrigatórias nem padronizadas, e a profundidade e o foco do currículo podem variar. |
| Verdade factual no conjunto de dados | Em Houston, Texas, EUA, onde frequentei uma escola particular de ensino médio, havia uma aula de meio semestre em finanças pessoais, mas era opcional e não dava nenhum crédito para a formatura. Você tem razão, porém, deveria ser uma aula padrão. Afinal, quem não precisa dessa informação na vida adulta, e nem todo mundo vai para a faculdade." ... Tínhamos uma aula de "educação cívica" quando eu era calouro no ensino médio. Isso foi nas escolas públicas de Ann Arbor, MI. Ela cobria o básico (como equilibrar seu talão de cheques, o que são ações, como funcionam os impostos de renda, o que são juros etc.) da gestão de dinheiro, juntamente com uma visão geral da política e do sistema jurídico. Era uma aula bem leve, porém, e não se aprofundava em finanças pessoais e gestão de dinheiro. Concordo que uma aula assim seria muito valiosa, assim como culinária, nutrição e reparos básicos domésticos e de automóveis. |
Embora a resposta do sistema RAG da OpenAI não esteja errada, ela carece de especificidade e seu reconhecimento de não acessar os estudos mais recentes sugere uma utilização incompleta do conhecimento do documento carregado. Em contraste, o sistema RAG Personalizado fornece uma resposta mais precisa ao integrar perfeitamente informações específicas da verdade fundamental. Esta comparação demonstra a capacidade superior do RAG personalizado de aproveitar dados externos de forma eficaz, distinguindo-o como uma solução mais confiável e proficiente.
O RAG Personalizado é melhor em segmentação de documentos e recuperação de dados do que o RAG da OpenAI
A estratégia de segmentação e recuperação de conhecimento da OpenAI pode precisar de otimização. Às vezes, o trecho recuperado é inadequado, como fornecer apenas 'PRÓS: CONTRAS' para uma pergunta sobre investimentos em IRA. Em contraste, o Pipeline de RAG Personalizado se destaca ao recuperar trechos relevantes, oferecendo uma resposta mais abrangente.
| Pergunta | Prós/contras de estar mais envolvido com investimentos em IRA |
|---|---|
| Trecho recuperado pelo RAG da OpenAI | ['PRÓS: CONTRAS'] |
| Trecho recuperado pelo RAG Personalizado | ['na alíquota de imposto, há também uma diferença significativa no valor sendo tributado. Assim, retirar de um IRA geralmente não é uma boa ideia, e você nunca estará em melhor situação retirando de um IRA do que resgatando investimentos tributáveis (do ponto de vista fiscal). Isso é intencional."' "Parece uma má ideia. O IRA é construído sobre o poder dos juros compostos. Remover contribuições prejudicará sua poupança para a aposentadoria, e você nunca conseguirá compensar isso. Em vez disso, considere investimentos isentos de impostos. Títulos estaduais, títulos federais, títulos municipais, etc. Por exemplo, eu invisto em um fundo de títulos municipais da Califórnia que me dá cerca de 3-4% de renda anual em dividendos - completamente isenta de impostos. Além disso - há valorização de capital das participações do seu fundo. Existem riscos, é claro; por exemplo, mudanças nas taxas afetarão os rendimentos e a valorização de capital, então consulte alguém com conhecimento nessa área (ou faça outra pergunta aqui, para o básico). Isso lhe dará o mesmo resultado que você espera do seu truque com o Roth IRA, sem prejudicar o potencial da sua poupança para a aposentadoria." "Além do excelente conselho de George Marian, acrescentarei que, se você estiver atingindo os limites de contribuições para o IRA, então voltaria ao seu 401(k). Portanto, coloque o suficiente no seu 401(k) para obter a contribuição correspondente, depois maximize as contribuições para o IRA para ter acesso a mais e melhores opções de investimento, depois volte ao seu 401(k) até também atingir o limite dele, supondo que você tenha tanto disponível para investir para a aposentadoria." "Embora o diferimento de impostos seja um recurso interessante, o 401k não é o Santo Graal. Já vi muitos 401k em que as opções de investimento são horríveis: desempenho abaixo da média, taxas altas, opções limitadas. É ótimo que você tenha maximizado seu Roth IRA. Eu o parabenizo por isso. Desde que as opções de investimento no seu 401k sejam boas, eu continuaria com ele." "planos de aposentadoria que lhes oferecem bons fundos de índice baratos. Essas pessoas provavelmente não precisam se preocupar tanto. Por fim, ter duas contas é mais complicado. Entre em contato com alguém que saiba mais sobre impostos do que eu para descobrir quais limitações se aplicam a contribuir para IRAs e 401(k)s no mesmo ano."] |
O OpenAI Assistants recuperou um trecho falso. Em contraste, o RAG Personalizado recuperou trechos mais relevantes, oferecendo uma resposta mais abrangente que se alinha às nuances da pergunta.
Outros motivos
O OpenAI Assistants não permite que os usuários ajustem parâmetros no pipeline de RAG para personalização ou otimização. No entanto, com o RAG personalizado, os usuários podem ter flexibilidade total para ajustes e otimização.
O OpenAI Assistants tem limitações de armazenamento de arquivos, enquanto o RAG personalizado com Milvus pode escalar rapidamente sem um limite superior, tornando-o uma opção melhor para usuários que exigem maior capacidade de armazenamento.
Conclusão
Em conclusão, nossa comparação e análise abrangentes usando a ferramenta de avaliação Ragas destacam os pontos fortes e fracos do OpenAI RAG e de um RAG personalizado baseado em um banco de dados vetorial como o Milvus. Embora o RAG da OpenAI tenha bom desempenho na recuperação, o RAG personalizado se destaca na qualidade e relevância das respostas, no desempenho de recall e em muitos outros aspectos. Desenvolvedores que buscam aplicações RAG poderosas e eficazes acharão a flexibilidade e os recursos de uma solução RAG baseada em banco de dados vetorial preferíveis para alcançar melhores resultados.
Continue lendo

Introducing Zilliz Cloud Global Cluster: Region-Level Resilience for Mission-Critical AI
Zilliz Cloud Global Cluster delivers multi-region resilience, automatic failover, and fast global AI search with built-in security and compliance.

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.



