Ferramentas de Avaliação de RAG: Como Avaliar Aplicações de Geração Aumentada por Recuperação
RAG)), ou Geração Aumentada por Recuperação, é um framework de IA proeminente na era dos grandes modelos de linguagem (LLMs))) como o ChatGPT. Ele aprimora as capacidades desses modelos ao integrar conhecimento externo, garantindo respostas mais precisas e atuais. Um sistema RAG padrão inclui um LLM, um banco de dados vetorial como o Milvus, e alguns prompts como código, todos os quais podem ser avaliados usando um framework abrangente de avaliação rag.
À medida que cada vez mais desenvolvedores e empresas adotam RAG para criar aplicações GenAI, avaliar sua eficácia está se tornando cada vez mais importante. Em uma publicação anterior, avaliamos o desempenho de dois sistemas RAG diferentes criados com o OpenAI Assistants e o banco de dados vetorial Milvus, o que lançou alguma luz sobre a avaliação de sistemas RAG. Esta publicação se aprofundará e discutirá as metodologias usadas para avaliar aplicações RAG. Também apresentaremos algumas ferramentas poderosas de avaliação e destacaremos métricas padrão.
Avaliar aplicações RAG é mais do que simplesmente comparar alguns exemplos. A chave está em usar métricas convincentes, quantitativas e reproduzíveis para avaliar essas aplicações. Nesta jornada, apresentaremos três categorias de métricas:
Métricas baseadas na verdade fundamental
Métricas sem a verdade fundamental
Métricas baseadas em respostas de LLM
Verdade fundamental refere-se a respostas bem estabelecidas ou trechos de documentos de conhecimento em um conjunto de dados correspondentes às consultas dos usuários. Quando a verdade fundamental são as respostas, podemos comparar diretamente a verdade fundamental com as respostas RAG, facilitando uma medição de ponta a ponta usando métricas como similaridade semântica da resposta e correção da resposta.
Abaixo está um exemplo de avaliação de respostas com base em sua correção.
Verdade fundamental: Einstein nasceu em 1879 na Alemanha.
Alta correção da resposta: Em 1879, na Alemanha, Einstein nasceu.
Baixa correção da resposta: Na Espanha, Einstein nasceu em 1879.
Quando a verdade fundamental são trechos do documento de conhecimento, podemos avaliar a correlação entre os trechos do documento e os contextos recuperados usando métricas tradicionais como Correspondência Exata (EM), Rouge-L e F1. Em essência, estamos avaliando a eficácia da recuperação das aplicações RAG.
Agora estabelecemos a importância de usar conjuntos de dados com a verdade fundamental para avaliar aplicações RAG. No entanto, e se você quiser avaliar uma aplicação RAG usando seus conjuntos de dados privados sem uma verdade fundamental anotada? Como você gera a verdade fundamental necessária para seus conjuntos de dados?
O método mais simples é pedir a um LLM como o ChatGPT que gere perguntas e respostas de exemplo com base no seu conjunto de dados proprietário. Ferramentas como Ragas e LlamaIndex também fornecem métodos para gerar dados de teste adaptados aos seus documentos de conhecimento.
_As perguntas e respostas de exemplo geradas pela ferramenta de avaliação Ragas (fonte: https://docs.ragas.io/en/latest/concepts/testset_generation.html)
Esses conjuntos de dados de teste gerados, compostos por perguntas, contexto e respostas correspondentes, facilitam a avaliação quantitativa sem depender de conjuntos de dados de referência externos não relacionados. Essa abordagem capacita os usuários a avaliar sistemas RAG usando seus dados únicos, garantindo um processo de avaliação mais personalizado e significativo.
Métricas sem a verdade fundamental
Ainda podemos avaliar aplicações RAG sem uma verdade fundamental para cada consulta. TruLens-Eval, uma ferramenta de avaliação de código aberto, inova o conceito da Tríade RAG, que se concentra em avaliar a relevância dos elementos nos trios consulta, contexto e resposta. Três métricas correspondentes são:
Relevância do Contexto: Mede quão bem o contexto recuperado dá suporte à consulta.
Fundamentação: Avalia até que ponto a resposta do LLM está alinhada com o contexto recuperado.
Relevância da Resposta: Mede a relevância da resposta final para a consulta.
Abaixo está um exemplo de avaliação de respostas com base em sua relevância para a pergunta.
Pergunta: Onde fica a França e qual é sua capital?
Resposta de baixa relevância: A França fica na Europa Ocidental.
Resposta de alta relevância: A França fica na Europa Ocidental e Paris é sua capital.
Tríade RAG, fonte: https://www.trulens.org/getting_started/core_concepts/rag_triad/
Além disso, essas métricas da tríade podem ser subdivididas ainda mais, aumentando a granularidade da avaliação. Por exemplo, o Ragas (um framework de código aberto dedicado a avaliar o desempenho de sistemas RAG) dividiu a relevância do contexto em três métricas mais detalhadas: precisão do contexto, relevância do contexto e recall do contexto.
Esta categoria de métricas avalia as respostas do LLM, considerando fatores como cordialidade, nocividade e concisão. Por exemplo, propõe métricas como concisão, relevância, correção, coerência, nocividade, maliciosidade, utilidade, controversialidade, misoginia, criminalidade e insensibilidade.
Abaixo está um exemplo de avaliação de respostas com base em sua concisão.
Pergunta: Quanto é 2+2?
Resposta de baixa concisão: Quanto é 2+2? Essa é uma pergunta elementar. A resposta que você está procurando é que dois mais dois é quatro.
Resposta de alta concisão: 4
Usando LLMs para pontuar as métricas
A maioria das métricas mencionadas anteriormente exige inserir texto para obter uma pontuação, o que dá trabalho. A boa notícia é que esse processo se torna mais gerenciável com o advento de LLMs como o GPT-4, em que tudo o que você precisa fazer é projetar um prompt adequado.
O artigo "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena" propõe um design de prompt para o GPT-4 julgar a qualidade da resposta de um assistente de IA a uma pergunta do usuário. Abaixo está um exemplo rápido:
[System]
Please act as an impartial judge and evaluate the quality of the response provided by an AI assistant to the user question displayed below. Your evaluation should consider factors such as the helpfulness, relevance, accuracy, depth, creativity, and level of detail of the response. Begin your evaluation by providing a short explanation. Be as objective as possible. After providing your explanation, please rate the response on a scale of 1 to 10 by strictly following this format: "[[rating]]", for example: "Rating: [[5]]".
[Question]
{question}
[The Start of Assistant's Answer]
{answer}
[The End of Assistant's Answer]
Este prompt pede ao GPT-4 que avalie a qualidade da resposta e a pontue em uma escala de 1 a 10.
É importante observar que o GPT-4, como qualquer juiz, não é infalível e pode ter vieses e possíveis erros. Portanto, o design do prompt é crucial. Técnicas avançadas de engenharia de prompt, como multi-shot ou Chain-of-Thought (CoT), podem ser necessárias. Felizmente, não precisamos nos preocupar com esse problema porque muitas ferramentas de avaliação para aplicações RAG já integraram prompts bem projetados.
Agora que abordamos a avaliação de uma aplicação RAG, vamos explorar algumas ferramentas para avaliar aplicações RAG, oferecendo insights sobre como elas funcionam e qual caso de uso se ajusta melhor a essas ferramentas.
Ragas: avaliação RAG simplificada
Ragas é uma ferramenta de avaliação de código aberto para avaliar aplicações RAG. Com uma interface simples, o Ragas simplifica o processo de avaliação. Ao criar uma instância de dataset no formato necessário, os usuários podem iniciar avaliações rapidamente e obter métricas como 'ragas_score,' 'context_precision,' 'faithfulness,' e 'answer_relevancy.'
from ragas import evaluate
from datasets import Dataset
# prepare your huggingface dataset in the format
# Dataset({
# features: ['question', 'contexts', 'answer', 'ground_truths'],
# num_rows: 25
# })
dataset: Dataset
results = evaluate(dataset)
# {'ragas_score': 0.860, 'context_precision': 0.817,
# 'faithfulness': 0.892, 'answer_relevancy': 0.874}
O Ragas oferece suporte a uma variedade de métricas e não impõe requisitos específicos de framework, oferecendo flexibilidade na avaliação de diferentes aplicações RAG. O Ragas permite o monitoramento em tempo real de avaliações via LangSmith, oferecendo insights sobre os motivos de cada avaliação e o consumo de chaves de API.
Entendendo sistemas RAG
Sistemas de Retrieval Augmented Generation (RAG) são um tipo de tecnologia de inteligência artificial (IA) que combina os pontos fortes dos grandes modelos de linguagem (LLMs) com a recuperação de conhecimento externo. Sistemas RAG consistem em três componentes principais: Indexar, Recuperar e Gerar. O componente de Indexação cria um banco de dados de conhecimento que pode ser pesquisado e recuperado. O componente de Recuperação recupera informações relevantes do banco de dados indexado. O componente de Geração cria novo texto com base nas informações recuperadas.
Sistemas RAG são comumente usados para chatbots e sistemas de perguntas e respostas. Eles fornecem uma abordagem robusta e dinâmica para conversas de IA e processamento de informações. Ao aproveitar conhecimento externo, sistemas RAG permitem respostas mais precisas, contextuais, relevantes e atualizadas. Isso os torna inestimáveis em vários domínios, incluindo atendimento ao cliente e chatbots de conhecimento interno, onde informações precisas e oportunas são cruciais.
Métricas de avaliação para RAG
Avaliar o desempenho de sistemas RAG é crucial para sua confiabilidade e desempenho. Existem várias métricas de avaliação para sistemas RAG, incluindo:
Relevância do contexto: Mede a relevância do contexto recuperado para a consulta do usuário.
Recall do contexto: Mede a proporção de contexto relevante recuperado pelo sistema.
Fidelidade: Mede a precisão do texto gerado com base no contexto recuperado.
Relevância da resposta: Avalia a relevância do texto gerado para a consulta do usuário.
Correção da resposta: Avalia a precisão do texto gerado.
Essas métricas fornecem um framework abrangente para avaliar o desempenho de sistemas RAG. Ao analisar esses aspectos, desenvolvedores podem identificar áreas de melhoria e garantir que o sistema entregue respostas de alta qualidade, relevantes e precisas.
LlamaIndex: criando e avaliando com facilidade
LlamaIndex é um framework de IA robusto para criar aplicações RAG, incluindo uma ferramenta de avaliação RAG. Ele é útil para avaliar aplicações criadas dentro de seu framework.
from llama_index.evaluation import BatchEvalRunner
from llama_index.evaluation import (
FaithfulnessEvaluator,
RelevancyEvaluator,
)
service_context_gpt4 = ...
vector_index = ...
question_list = ...
faithfulness_gpt4 = FaithfulnessEvaluator(service_context=service_context_gpt4)
relevancy_gpt4 = RelevancyEvaluator(service_context=service_context_gpt4)
runner = BatchEvalRunner(
{"faithfulness": faithfulness_gpt4, "relevancy": relevancy_gpt4},
workers=8,
)
eval_results = runner.evaluate_queries(
vector_index.as_query_engine(), queries=question_list
)
TruLens-Eval: avaliação integrada para diversos frameworks
TruLens Eval fornece uma maneira fácil de avaliar aplicações RAG criadas com LangChain e LlamaIndex. O trecho de código a seguir mostra como configurar a avaliação para uma aplicação RAG baseada em LangChain.
from trulens_eval import TruChain, Feedback, Tru,Select
from trulens_eval.feedback import Groundedness
from trulens_eval.feedback.provider import OpenAI
import numpy as np
tru = Tru()
rag_chain = ...
# Initialize provider class
openai = OpenAI()
grounded = Groundedness(groundedness_provider=OpenAI())
# Define a groundedness feedback function
f_groundedness = (
Feedback(grounded.groundedness_measure_with_cot_reasons)
.on(Select.RecordCalls.first.invoke.rets.context)
.on_output()
.aggregate(grounded.grounded_statements_aggregator)
)
# Question/answer relevance between overall question and answer.
f_qa_relevance = Feedback(openai.relevance).on_input_output()
tru_recorder = TruChain(rag_chain,
app_id='Chain1_ChatApplication',
feedbacks=[f_qa_relevance, f_groundedness])
tru.run_dashboard()
O Trulens-Eval pode avaliar aplicativos RAG criados com outros frameworks, mas implementá-lo em código pode ser complexo. Consulte a documentação oficial para mais detalhes.
Além disso, o Trulens-Eval também oferece monitoramento visual no navegador para analisar os motivos da avaliação e observar o uso da chave de API.
Phoenix: avaliando LLM com flexibilidade
O Phoenix fornece um conjunto completo de métricas para avaliar LLMs, incluindo a qualidade dos embeddings gerados e as respostas do LLM. Ele também pode avaliar aplicações RAG, mas inclui menos métricas do que as outras ferramentas de avaliação mencionadas. O trecho de código a seguir mostra como usar o Phoenix para avaliar uma aplicação RAG criada pelo LlamaIndex.
import phoenix as px
from llama_index import set_global_handler
from phoenix.experimental.evals import llm_classify, OpenAIModel, RAG_RELEVANCY_PROMPT_TEMPLATE, \
RAG_RELEVANCY_PROMPT_RAILS_MAP
from phoenix.session.evaluation import get_retrieved_documents
px.launch_app()
set_global_handler("arize_phoenix")
print("phoenix URL", px.active_session().url)
query_engine = ...
question_list = ...
for question in question_list:
response_vector = query_engine.query(question)
retrieved_documents = get_retrieved_documents(px.active_session())
retrieved_documents_relevance = llm_classify(
dataframe=retrieved_documents,
model=OpenAIModel(model_name="gpt-4-1106-preview"),
template=RAG_RELEVANCY_PROMPT_TEMPLATE,
rails=list(RAG_RELEVANCY_PROMPT_RAILS_MAP.values()),
provide_explanation=True,
)
Além das ferramentas mencionadas acima, outras plataformas como DeepEval, LangSmith e OpenAI Evals também oferecem recursos para avaliar aplicações RAG. Suas metodologias são semelhantes, mas o design dos prompts e os detalhes de implementação variam, portanto, escolha a ferramenta que funcione melhor para você.
Em conclusão, revisamos algumas metodologias, métricas e ferramentas de avaliação de aplicações RAG. Em particular, exploramos três categorias de métricas:
aquelas baseadas em uma verdade fundamental,
aquelas sem uma verdade fundamental,
e aquelas baseadas nas respostas de grandes modelos de linguagem (LLMs).
Métricas de verdade fundamental envolvem comparar respostas RAG com respostas estabelecidas. Em contraste, métricas sem verdade fundamental, como a Tríade RAG, concentram-se em avaliar a relevância entre as consultas, o contexto e as respostas. Métricas baseadas em respostas de LLM consideram cordialidade, nocividade e concisão.
Também exploramos o uso de LLMs para pontuar métricas por meio de prompts bem projetados e apresentamos um conjunto de ferramentas de avaliação RAG, incluindo Ragas, LlamaIndex, TruLens-Eval e Phoenix, para ajudar nessa tarefa.
No mundo da IA em rápida mudança, avaliar e aprimorar regularmente aplicações RAG é crucial para sua confiabilidade. Usando as metodologias, métricas e ferramentas discutidas aqui, desenvolvedores e empresas podem tomar decisões informadas sobre o desempenho e as capacidades de seus sistemas RAG, impulsionando o progresso das aplicações de IA.
Criando um conjunto de dados Gold Standard
Criar um conjunto de dados padrão-ouro é uma etapa crítica na avaliação de sistemas RAG. Um conjunto de dados padrão-ouro é um conjunto de exemplos usados como referência para avaliar o desempenho do sistema. O conjunto de dados deve incluir um conjunto de perguntas, respostas e contextos que sejam relevantes para o domínio do sistema RAG.
Para criar um conjunto de dados padrão-ouro, você pode seguir estas etapas:
Identifique um conjunto de perguntas e respostas relevantes para o domínio do sistema RAG.
Crie um conjunto de contextos que sejam relevantes para as perguntas e respostas.
Peça a avaliadores humanos que anotem os contextos e as respostas para criar um conjunto de dados de referência.
Use o conjunto de dados de referência para avaliar o desempenho do sistema RAG.
Esse processo garante que a avaliação seja baseada em dados precisos e relevantes, fornecendo um benchmark confiável para avaliar o desempenho do sistema.
Melhores Práticas para Avaliação de RAG
Avaliar sistemas RAG requer uma consideração cuidadosa de vários fatores. Aqui estão algumas melhores práticas para avaliação de RAG:
Use um conjunto de dados padrão-ouro para avaliar o desempenho do sistema RAG.
Use uma combinação de métricas de avaliação para obter uma compreensão abrangente do desempenho do sistema.
Considere os trade-offs entre diferentes métricas de avaliação e escolha aquelas que melhor se adequam ao seu caso de uso.
Revise e refine regularmente suas métricas de avaliação para garantir que permaneçam relevantes e eficazes.
Use ferramentas de avaliação automatizadas para simplificar o processo de avaliação e reduzir a carga sobre os avaliadores humanos.
Ao seguir essas melhores práticas, você pode garantir uma avaliação completa e eficaz do seu sistema RAG, levando à melhoria contínua e ao desempenho ideal.
Conclusão
Os sistemas RAG são uma tecnologia poderosa para criar chatbots e sistemas de perguntas e respostas. Avaliar o desempenho dos sistemas RAG é crucial para sua confiabilidade e desempenho. Ao compreender os sistemas RAG, usar métricas de avaliação, criar um conjunto de dados padrão-ouro e seguir as melhores práticas para avaliação de RAG, você pode garantir que seu sistema RAG esteja funcionando de forma ideal e fornecendo respostas precisas e relevantes aos usuários.
No mundo da IA em rápida transformação, avaliar e aprimorar regularmente aplicações RAG é crucial para sua confiabilidade. Usando as metodologias, métricas e ferramentas discutidas aqui, desenvolvedores e empresas podem tomar decisões informadas sobre o desempenho e as capacidades de seus sistemas RAG, impulsionando o progresso das aplicações de IA.
Continue lendo

Zilliz Cloud Now Available in AWS Europe (Ireland)
Zilliz Cloud launches in AWS eu-west-1 (Ireland) — bringing low-latency vector search, EU data residency, and full GDPR-ready infrastructure to European AI teams. Now live across 30 regions on five cloud providers.

How Zilliz Saw the Future of Vector Databases—and Built for Production
An inside look at how Zilliz built vector databases for real-world use, focusing on scalability, stability, and running them reliably at scale.

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.



