五大主流开源大模型RAG评估框架详解 原创
一、RAG 评估的挑战
增强检索生成技术(Retrieval Augmented Generation,简称 RAG)目前正成为增强大语言模型(LLM)性能的核心手段。该技术通过将外部知识库融入LLM,大幅提升了大模型的精确度和对上下文的感知力。然而,对 RAG 系统性能的评测颇具挑战,这促使了一系列开源 RAG 评估框架的诞生。下面,让我们共同探讨5大开源的 RAG 评估框架。
二、开源评估框架1:Ragas
Ragas(Retrieval-Augmented Generation Assessment) 是一款专为评测增强检索生成(RAG)流程而精心构建的强大工具。它凭借其全面评估 RAG 的方法论,迅速赢得了开发者和数据科学家们的广泛认可。
Ragas 是一个框架,它可以帮助我们来快速评估 RAG 系统的性能,为了评估 RAG 系统,Ragas 需要以下信息:
question:用户输入的问题。
answer:从 RAG 系统生成的答案(由 LLM 给出)。
contexts:根据用户的问题从外部知识源检索的上下文即与问题相关的文档。
ground_truths:人类提供的基于问题的真实(正确)答案。这是唯一的需要人类提供的信息。
当 Ragas 拿到上述这些信息后会基于大语言模型来对 RAG 系统进行打分,就像在任何机器学习系统中一样,LLM 和 RAG 流程中各个组件的性能对整体体验具有重大影响。Ragas 提供了专门用于单独评估 RAG 流程的每个组件的指标。
1.关键特性
- 量身定制的评估标准:Ragas 提供了一系列专门为 RAG 系统设计的评估指标,这些指标能够精确地评估 RAG 系统在多个维度的性能。
- 适应性强的评估方式:Ragas 支持本地及分布式评估,这确保了它能够适应各种计算环境和数据量级的需求。无论是进行单机的小规模评估,还是应对分布式系统上的大规模数据评估,Ragas 都能轻松应对。
- 与主流框架兼容:Ragas 能够与众多流行的大型语言模型(LLM)框架无缝对接。这种兼容性让开发者能够轻松地将 Ragas 整合进现有的 RAG 系统开发流程,大大简化了开发过程并降低了工作负担。
2.评估示例
from ragas import evaluate
from datasets import Dataset
# 假设评估数据已经结构化
eval_dataset = Dataset.from_dict({
"question": ["What is the capital of France?"],
"contexts": [["Paris is the capital of France."]],
"answer": ["The capital of France is Paris."],
"ground_truths": [["Paris is the capital of France."]]
})
# 运行评估框架
results = evaluate(eval_dataset)
print(results)
3.Github 地址
https://github.com/explodinggradients/ragas
三、开源评估框架2:Prometheus
Prometheus 以其作为监控工具和时间序列数据库的卓越性能而著称,然而,其强大的数据搜集和预警能力也使得它在大语言模型(LLM)评估领域值得一谈。
1.关键特性
- 高效的数据采集与储存能力:有效地捕捉和保存与大语言模型(LLM)系统相关的信息,涵盖 RAG 流程中的数据。这些信息对于诊断系统性能和行为的分析至关重要。
- 先进的查询功能:配备了一种先进的查询语言,使用户能够轻松地对积累的数据进行检索和分析。借助这种功能强大的查询工具,用户能够细致地探究系统在不同时间段的性能指标,以及不同参数间的相互关联。
- 弹性的报警机制:拥有一个弹性的报警系统,能够在系统发生异常时迅速发出警告。这样的机制有助于问题的及时识别和处理,保障系统的持续稳定运作。
2.应用场景
Prometheus 能够监控基于大语言模型(LLM)的系统(包括 RAG 流程)的性能和运行状况。尽管它并非专为 LLM 设计,但其收集和分析时间序列数据的功能对于监测 LLM 性能和系统健康状态的长期趋势极为有用。
例如,通过定时搜集 RAG 系统在不同查询条件下的响应时长、准确度等数据,并运用其查询语言进行深入分析,可以揭示系统性能的波动趋势,以及潜在的问题点。一旦响应时间异常延长或准确度明显下降,警报系统便会迅速通知相关人员采取措施。
3.Github 地址
https://github.com/prometheus/prometheus
四、开源评估框架3:DeepEval
DeepEval 是 LLM 评估领域内另一个突出的框架,它专门针对大语言模型的输出而设计。类似于 Pytest,但它更加专注于 LLM,提供了全面的评估指标,并且支持对 LLM 输出的单元测试功能。
1.关键特性
- 整合了最新的大语言模型(LLM)输出评估的研究成果。
- 涵盖了丰富的评估指标体系。
- 为大语言模型(LLM)的输出提供了单元测试支持。
- 保障了 LLM 生成内容的质量及一致性。
2.Github 地址
https://github.com/confident-ai/deepeval
五、开源评估框架4:Phoenix
Phoenix 是由 Arize AI 打造的一款开源工具,旨在为人工智能提供可观测性和评估功能。尽管它并非专门针对 RAG 流程设计,但其强大的功能使其成为评估大语言模型(LLM)的一个有力选择。
1.关键特性
- 实时监控能力:该工具实现了对 AI 的模型的即时监控,确保能够即时捕捉到大模型运行时的各类信息,包括输入输出数据、性能指标等关键细节。
- 性能评估与异常侦测:工具内置了性能分析和问题识别的功能。利用这些功能,用户能够深入探究模型的性能表现,快速识别潜在的问题,例如:大模型可能出现的过拟合或欠拟合现象。
- 广泛兼容性:该工具支持多种 AI 和机器学习场景,其中包括大语言模型(LLMs)。这种广泛的适用性使其能够在多种人工智能项目中被有效利用,展现出其高度的通用性。
2.应用场景
Phoenix 的强项在于其能够全面揭示大模型性能。以大语言翻译项目为例,利用 Phoenix 可以对翻译模型的性能进行实时监控。通过评估模型对各种语言文本的转换效果,可以识别出潜在的翻译误差或不精确之处。此外,Phoenix 还能监测模型是否出现过拟合,即模型过于依赖训练数据,而在处理新数据时表现不佳。基于这些分析,可以对模型进行相应的调整和改进,从而提升翻译的准确度和效率。
3.Github 地址
https://github.com/Arize-ai/phoenix
六、开源评估框架5:ChainForge
ChainForge 是一款开源的可视化编程工具,旨在对大语言模型(LLM)的响应进行解析和评价。该工具的设计宗旨是简化提示工程和响应评估的过程,使其更加直观且易于使用。
1.关键特性
- 图形化操作界面:提供了一个图形化界面,方便设计和测试各种提示词。通过此界面,开发人员能够清晰地观察到提示的结构与内容,从而便捷地进行修改和完善。
- 支持多家 LLM 供应商:该工具兼容多个大型语言模型(LLM)供应商,使用户能够在不同的 LLM 大模型之间进行比较和选择。
- 输出对比与分析功能:内置了用于对比和分析 LLM 输出的功能。利用这些功能,用户能够对不同 LLM 大模型的输出进行详细比较,识别各自的优势与不足,进而挑选出最合适的大模型。
2.应用场景
ChainForge 的可视化手段在大型语言模型(LLM)的评估领域显得格外突出。以内容生成项目为例,当需要挑选一个最适宜的 LLM 大模型来产出高品质文章时,ChainForge 的图形化界面就能派上用场。用户可以利用这个界面来构思多种提示,并审视不同 LLM 大模型对这些提示词的反馈。通过对比这些大模型的输出,可以辨别出哪个大模型更能够满足文章生成的需求,进而决定在实际操作中使用该大模型。
3.Github 地址
https://github.com/ianarawjo/ChainForge
本文转载自公众号玄姐聊AGI 作者:玄姐