【ai+模型】五大主流开源大模型RAG评估框架详解

news/2024/11/18 1:00:36/文章来源:https://www.cnblogs.com/o-O-oO/p/18549702

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

RAG 和 Agent 是 AI 大模型应用落地的2大关键技术,除了 RAG 技术外,AI Agent 技术无疑成为了焦点领域。自从 ChatGPT 4推出以来,各种应用场景都在积极融入 AI Agent 技术,特别是 AI Agent 智能体的产业升级、企业级系统改造,已经在各行各业广泛使用和已积累了丰富的实际操作经验。我们精心打造了一套 AI Agent 项目实战直播训练营,异常火爆,对于感兴趣的朋友,欢迎报名参加。

原创 玄姐聊AGI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/835625.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【待发】CyberEdge:简洁而强大的互联网资产测绘工具

免责声明 利⽤本文所提供的信息而造成的任何直接或者间接的后果及损失,均由使⽤者本⼈负责,创作者及作者不为此承担任何责任,一旦造成后果请自行承担责任!简介: CyberEdge是一款精心设计的互联网资产测绘工具,为网络安全专业人士提供精准、高效的扫描体验。 核心特性: 全…

Spring Security 认证授权(黑马讲义)

1.基本概念 1.1.什么是认证 用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维码登录,手机短信登录,指纹认证等方式。 1.2.什么是授…

SkyWalking 安装部署操作指引

环境 CentOS-7-x86_64-DVD-2009.iso https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso apache-skywalking-apm-10.0.1.tar.gz https://dlcdn.apache.org/skywalking/10.0.1/apache-skywalking-apm-10.0.1.tar.gz jdk-11.0.23_linux-x64_bin.tar.…

Win11 24H2 使用Rclone将SMB协议链接转为本地磁盘驱动器

9月份升级了ITX主机,多了好几块机械硬盘, 后来又买了Nas, 先装了飞牛Nas系统, 结果要格盘,考虑到Refs, Zfs, exFAT 在坏盘情况对数据恢复不友好, 决定改用Win11作为Nas 系统 .Windows 做Nas 系统不要太好, 免去各类docker 的缓慢和配置,可以正常使用迅雷等各类软件,并且很多Nas…

在Keil中使用ST-LINK烧录STM32程序指南

前言 之前玩STM32都是用J-LINK烧录程序,不仅便捷,而且烧录的速度比用串口快好多。 最近我接了几个32单片机的毕设单子,便买了几块C8T6的最小系统板用来开发。最初我还是用J-LINK烧录C8T6的,只要从J-LINK中找出对应的引脚用杜邦线连上就可以烧录,但是每晚要去学校的实验室,…

第八章习题

学号后四位:3018 8.4:点击查看代码 import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt# 定义微分方程组 def differential_equations(state, t):x, y = statedxdt = -x ** 3 - ydydt = x - y ** 3return [dxdt, dydt]# 设定初始条件 ini…

Next App Router 模式下,如何同步服务端 Redux 初始状态?

大家的阅读是我发帖的动力,本文首发于我的博客:deerblog.gu-nami.com/,欢迎大家来玩,转载请注明出处喵。🎈前言 Next.js 是一个广受欢迎的 React 服务端渲染(Server Side Rendering,SSR)框架。Next.js 的页面会先在服务端渲染一次,然后把结果传给浏览器,也就是客户端…

Git版本管理系统快速上手指南

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.git命令初体验1.搭建Golang开发环境2.git init项目初始化3.git status查看工作目录状态4.git add将文件从工作区提交到暂存区5.git config配置git个人信息6.git commit提交代码到本地仓库7.git log查看…

Air201模组入门:掌握SPI读写外部Flash的技巧

今天带领大家通过Air201+扩展板读写外部flash的演示,教你使用SPI示例,可根据实际需求灵活应用。今天带领大家通过Air201+扩展板读写外部flash的演示,教你使用SPI示例,可根据实际需求灵活应用。 我们先了解一些相关基础知识: SPI(Serial Peripheral Interface)——是一种…

第七章习题

学号后四位:3018 7.3:点击查看代码 import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import interp1d, CubicSplineT = np.array([700, 720, 740, 760, 780]) V = np.array([0.0977, 0.1218, 0.1406, 0.1551, 0.1664])# 线性插值 linear_interp = …

6502 指令译码器

引言 CPU 要执行指令需要先识别指令,弄清楚要执行的指令是什么类型、需要几个周期、操作数在哪里、目的地在哪里等信息,才能在后续的指令执行过程中打开对应的数据通路。“识别指令”的过程叫译码,完成指令识别功能的机构,叫译码器。 两个译码器 因为 6502 CPU 有一个两级流…