Ragas Ragas
stable · 中文译文
中文译文 · 原文:https://docs.ragas.io/en/stable/howtos/integrations/griptape/ · 许可证 Apache-2.0

Griptape 集成

如果你熟悉 Griptape 的 RAG Engine,并希望开始评测 RAG 系统的表现,那你来对地方了。本教程将探索如何用 Ragas 评测 Griptape RAG Engine 生成的响应。

Griptape 设置

配置环境

首先,确保已安装所有必需的包:

%pip install "griptape[all]" ragas -q

创建数据集

我们将使用一组关于主流 LLM 提供商的文本块,并搭建一个简单的 RAG pipeline:

chunks = [
    "OpenAI is one of the most recognized names in the large language model space, known for its GPT series of models. These models excel at generating human-like text and performing tasks like creative writing, answering questions, and summarizing content. GPT-4, their latest release, has set benchmarks in understanding context and delivering detailed responses.",
    "Anthropic is well-known for its Claude series of language models, designed with a strong focus on safety and ethical AI behavior. Claude is particularly praised for its ability to follow complex instructions and generate text that aligns closely with user intent.",
    "DeepMind, a division of Google, is recognized for its cutting-edge Gemini models, which are integrated into various Google products like Bard and Workspace tools. These models are renowned for their conversational abilities and their capacity to handle complex, multi-turn dialogues.",
    "Meta AI is best known for its LLaMA (Large Language Model Meta AI) series, which has been made open-source for researchers and developers. LLaMA models are praised for their ability to support innovation and experimentation due to their accessibility and strong performance.",
    "Meta AI with it's LLaMA models aims to democratize AI development by making high-quality models available for free, fostering collaboration across industries. Their open-source approach has been a game-changer for researchers without access to expensive resources.",
    "Microsoft’s Azure AI platform is famous for integrating OpenAI’s GPT models, enabling businesses to use these advanced models in a scalable and secure cloud environment. Azure AI powers applications like Copilot in Office 365, helping users draft emails, generate summaries, and more.",
    "Amazon’s Bedrock platform is recognized for providing access to various language models, including its own models and third-party ones like Anthropic’s Claude and AI21’s Jurassic. Bedrock is especially valued for its flexibility, allowing users to choose models based on their specific needs.",
    "Cohere is well-known for its language models tailored for business use, excelling in tasks like search, summarization, and customer support. Their models are recognized for being efficient, cost-effective, and easy to integrate into workflows.",
    "AI21 Labs is famous for its Jurassic series of language models, which are highly versatile and capable of handling tasks like content creation and code generation. The Jurassic models stand out for their natural language understanding and ability to generate detailed and coherent responses.",
    "In the rapidly advancing field of artificial intelligence, several companies have made significant contributions with their large language models. Notable players include OpenAI, known for its GPT Series (including GPT-4); Anthropic, which offers the Claude Series; Google DeepMind with its Gemini Models; Meta AI, recognized for its LLaMA Series; Microsoft Azure AI, which integrates OpenAI’s GPT Models; Amazon AWS (Bedrock), providing access to various models including Claude (Anthropic) and Jurassic (AI21 Labs); Cohere, which offers its own models tailored for business use; and AI21 Labs, known for its Jurassic Series. These companies are shaping the landscape of AI by providing powerful models with diverse capabilities.",
]

将数据写入 Vector Store

import getpass
import os

if "OPENAI_API_KEY" not in os.environ:
    os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter your OpenAI API key: ")
from griptape.drivers.embedding.openai import OpenAiEmbeddingDriver
from griptape.drivers.vector.local import LocalVectorStoreDriver

# Set up a simple vector store with our data
vector_store = LocalVectorStoreDriver(embedding_driver=OpenAiEmbeddingDriver())
vector_store.upsert_collection({"major_llm_providers": chunks})

设置 RAG Engine

from griptape.engines.rag import RagContext, RagEngine
from griptape.engines.rag.modules import (
    PromptResponseRagModule,
    VectorStoreRetrievalRagModule,
)
from griptape.engines.rag.stages import (
    ResponseRagStage,
    RetrievalRagStage,
)

# Create a basic RAG pipeline
rag_engine = RagEngine(
    # Stage for retrieving relevant chunks
    retrieval_stage=RetrievalRagStage(
        retrieval_modules=[
            VectorStoreRetrievalRagModule(
                name="VectorStore_Retriever",
                vector_store_driver=vector_store,
                query_params={"namespace": "major_llm_providers"},
            ),
        ],
    ),
    # Stage for generating a response
    response_stage=ResponseRagStage(
        response_modules=[
            PromptResponseRagModule(),
        ]
    ),
)

测试 RAG Pipeline

让我们用一个示例查询确认 RAG pipeline 能正常工作:

rag_context = RagContext(query="What makes Meta AI’s LLaMA models stand out?")
rag_context = rag_engine.process(rag_context)
rag_context.outputs[0].to_text()

Output:

"Meta AI's LLaMA models stand out for their open-source nature, which makes them accessible to researchers and developers. This accessibility supports innovation and experimentation, allowing for collaboration across industries. By making high-quality models available for free, Meta AI aims to democratize AI development, which has been a game-changer for researchers without access to expensive resources."

Ragas 评测

创建 Ragas 评测数据集

questions = [
    "Who are the major players in the large language model space?",
    "What is Microsoft’s Azure AI platform known for?",
    "What kind of models does Cohere provide?",
]

references = [
    "The major players include OpenAI (GPT Series), Anthropic (Claude Series), Google DeepMind (Gemini Models), Meta AI (LLaMA Series), Microsoft Azure AI (integrating GPT Models), Amazon AWS (Bedrock with Claude and Jurassic), Cohere (business-focused models), and AI21 Labs (Jurassic Series).",
    "Microsoft’s Azure AI platform is known for integrating OpenAI’s GPT models, enabling businesses to use these models in a scalable and secure cloud environment.",
    "Cohere provides language models tailored for business use, excelling in tasks like search, summarization, and customer support.",
]

griptape_rag_contexts = []

for que in questions:
    rag_context = RagContext(query=que)
    griptape_rag_contexts.append(rag_engine.process(rag_context))
from ragas.integrations.griptape import transform_to_ragas_dataset

ragas_eval_dataset = transform_to_ragas_dataset(
    grip_tape_rag_contexts=griptape_rag_contexts, references=references
)
ragas_eval_dataset.to_pandas()
user_input retrieved_contexts response reference
0 Who are the major players in the large languag... [In the rapidly advancing field of artificial ... The major players in the large language model ... The major players include OpenAI (GPT Series),...
1 What is Microsoft’s Azure AI platform known for? [Microsoft’s Azure AI platform is famous for i... Microsoft’s Azure AI platform is known for int... Microsoft’s Azure AI platform is known for int...
2 What kind of models does Cohere provide? [Cohere is well-known for its language models ... Cohere provides language models tailored for b... Cohere provides language models tailored for b...

运行 Ragas 评测

现在,用 Ragas 指标评测我们的 RAG 系统:

评测检索

要评测检索表现,可以使用 Ragas 内置指标,或按需创建自定义指标。完整的可用指标和自定义选项列表,请访问文档。

我们将使用 ContextPrecision、ContextRecall 和 ContextRelevance 来衡量检索表现:

  • ContextPrecision:衡量 RAG 系统的 retriever 对给定查询,把相关 chunks 排在检索上下文顶部的效果,按所有 chunks 的 mean precision@k 计算。
  • ContextRecall:衡量从知识库中成功检索到的相关信息比例。
  • ContextRelevance:通过双重 LLM 判断,评估检索到的上下文对用户查询的针对性。
from ragas.metrics import ContextPrecision, ContextRecall, ContextRelevance
from ragas import evaluate
from langchain_openai import ChatOpenAI
from ragas.llms import LangchainLLMWrapper

llm = ChatOpenAI(model="gpt-4o-mini")
evaluator_llm = LangchainLLMWrapper(llm)

ragas_metrics = [
    ContextPrecision(llm=evaluator_llm),
    ContextRecall(llm=evaluator_llm),
    ContextRelevance(llm=evaluator_llm),
]

retrieval_results = evaluate(dataset=ragas_eval_dataset, metrics=ragas_metrics)
retrieval_results.to_pandas()
Evaluating: 100%|██████████| 9/9 [00:15<00:00,  1.77s/it]
user_input retrieved_contexts response reference context_precision context_recall nv_context_relevance
0 Who are the major players in the large languag... [In the rapidly advancing field of artificial ... The major players in the large language model ... The major players include OpenAI (GPT Series),... 1.000000 1.0 1.0
1 What is Microsoft’s Azure AI platform known for? [Microsoft’s Azure AI platform is famous for i... Microsoft’s Azure AI platform is known for int... Microsoft’s Azure AI platform is known for int... 1.000000 1.0 1.0
2 What kind of models does Cohere provide? [Cohere is well-known for its language models ... Cohere provides language models tailored for b... Cohere provides language models tailored for b... 0.833333 1.0 1.0

评测生成

衡量生成表现时,我们将使用 FactualCorrectness、Faithfulness 和 ContextRelevance:

  • FactualCorrectness:检查响应中的所有陈述是否都被参考答案所支持。
  • Faithfulness:衡量响应与检索到的上下文在事实上的一致性。
  • ResponseGroundedness:衡量响应是否 grounded 于所提供的上下文,有助于识别幻觉或编造信息。
from ragas.metrics import FactualCorrectness, Faithfulness, ResponseGroundedness

ragas_metrics = [
    FactualCorrectness(llm=evaluator_llm),
    Faithfulness(llm=evaluator_llm),
    ResponseGroundedness(llm=evaluator_llm),
]

genration_results = evaluate(dataset=ragas_eval_dataset, metrics=ragas_metrics)
genration_results.to_pandas()
Evaluating: 100%|██████████| 9/9 [00:17<00:00,  1.90s/it]
user_input retrieved_contexts response reference factual_correctness(mode=f1) faithfulness nv_response_groundedness
0 Who are the major players in the large languag... [In the rapidly advancing field of artificial ... The major players in the large language model ... The major players include OpenAI (GPT Series),... 1.00 1.000000 1.0
1 What is Microsoft’s Azure AI platform known for? [Microsoft’s Azure AI platform is famous for i... Microsoft’s Azure AI platform is known for int... Microsoft’s Azure AI platform is known for int... 0.57 0.833333 1.0
2 What kind of models does Cohere provide? [Cohere is well-known for its language models ... Cohere provides language models tailored for b... Cohere provides language models tailored for b... 0.57 1.000000 1.0

结语

恭喜!你已经成功为 Griptape RAG 系统搭建了 Ragas 评测流水线。这次评测能提供关于系统检索相关信息和生成准确响应的宝贵洞察。

请记住,RAG 评测是一个迭代过程。用这些指标找出系统弱点、做出改进,然后再次评测,直到达到所需的表现水平。

Happy RAGging! 😄