热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >一个6.1K※开源RAG评估工具:Ragas

一个6.1K※开源RAG评估工具:Ragas

来源:互联网 更新时间:2026-08-23 13:48

构建完 RAG 系统之后,手头最要紧的事就是设计一套指标来评估它的表现——到底这个系统靠不靠谱,检索和生成环节有没有掉链子。整个评估流程一直是块硬骨头,今天直接介绍一个现成的开源项目,专门解决这个问题。

Ragas 是专为评估检索增强生成(RAG)流水线而生的框架。所谓 RAG,就是借助外部数据来丰富大语言模型上下文的典型应用。市面上已经有不少工具和框架能帮你搭建这些流水线,但怎么量化性能、怎么找出薄弱环节,往往让人头疼。Ragas(全称 RAG Evaluation)就是来填补这个空白的。

它基于最新的研究成果,提供了一系列评估 LLM 生成文本的指标,能让你对 RAG 流水线的表现有清晰的了解。而且 Ragas 可以集成到 CI/CD 流程中,持续监控性能,防止回归。

Ragas 的工作原理

Ragas 从两个层面提供了关键指标:

  1. 检索器

    :用 context_precisioncontext_recall 衡量检索系统抓取上下文的质量。
  2. 生成器

    :用 faithfulness 评估生成的答案是否忠实于上下文(即排除幻觉),用 answer_relevancy 判断答案与问题的相关程度。

下面是这几个核心指标的详细实现思路:

  1. Faithfulness(忠实度)

  • 衡量生成的答案能否从提供的上下文中合理推断出来。实现分两步:先用 LLM 把答案拆解成一组独立句子,再逐一验证每个句子是否能在上下文中找到依据。
  • Answer Relevance(答案相关性)

    • 评估答案针对原问题的回应程度,暂不考虑事实准确性。做法:根据答案逆向生成一批潜在问题,再用嵌入模型计算这些生成问题与原始问题的余弦相似度,最后取平均值。
  • Context Precision(上下文精确度)

    • 衡量检索到的上下文片段与给定问题的匹配程度。重点看排在靠前位置的信息中,有多大比例是真正相关的。
  • Context Recall(上下文召回率)

    • 检验检索到的上下文是否能覆盖真实答案所需的信息。把真实答案逐句与检索到的上下文对比,看有多少句子能被追溯到。

上述指标的具体计算公式,后续会专门介绍。Ragas 还提供了其他指标,感兴趣的话可以参考官方文档。

下面直接让评估系统跑起来。

环境搭建

运行需要安装的依赖

pip install ragas
#pip install git+https://github.com/explodinggradients/ragas

代码示例

一个小示例,看看 Ragas 实际怎么工作

(注:Ragas 默认使用 OpenAI 的模型进行评估,如有需要可以修改代码替换自己的模型。)

from datasets import Dataset 
import os
from ragas import evaluate
from ragas.metrics import faithfulness, answer_correctness

os.environ["OPENAI_API_KEY"] = "your-openai-key"

data_samples = {
    'question': ['When was the first super bowl?', 'Who won the most super bowls?'],
    'answer': ['The first superbowl was held on Jan 15, 1967', 'The most super bowls ha ve been won by The New England Patriots'],
    'contexts' : [['The First AFL–NFL World Championship Game was an American football game played on January 15, 1967, at the Los Angeles Memorial Coliseum in Los Angeles,'], 
                  ['The Green Bay Packers...Green Bay, Wisconsin.','The Packers compete...Football Conference']],
    'ground_truth': ['The first superbowl was held on January 15, 1967', 'The New England Patriots ha ve won the Super Bowl a record six times']
}

dataset = Dataset.from_dict(data_samples)

score = evaluate(dataset,metrics=[faithfulness,answer_correctness])
score.to_pandas()

上面介绍的那四个指标是当前最常用的方案。直接上手试一试,看看你手头的 RAG 系统表现如何。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc