当前位置: 首页 > news >正文

理解 RAG 第四部分:RAGA 和其他评估框架

检索增强生成(RAG) 在扩展独立大型语言模型(LLM)的限制和克服其诸多局限性方面发挥了关键作用。通过整合检索器,RAG 提高了响应相关性和事实准确性:它只需实时利用外部知识源(如矢量文档库),并在原始用户查询或提示中添加相关上下文信息,然后将其传递给 LLM 进行输出生成过程。

对于那些深入研究 RAG 领域的人来说,一个自然的问题出现了:我们如何评估这些远非简单的系统?

为此,存在几个框架,例如DeepEval,它提供了超过 14 种评估指标来评估幻觉和真实性等标准;MLflow LLM Evaluate以其模块化和简单性而闻名,支持在自定义管道内进行评估;RAGAs专注于定义 RAG 管道,提供真实性和上下文相关性等指标来计算综合的 RAGAs 质量得分。

以下是这三个框架的摘要:

了解 RAGA

RAGA(检索增强生成评估的缩写)被认为是评估 LLM 应用程序的最佳工具包之一。它以最简单的方式成功评估了(即检索器和生成器)的性能——既可以单独评估,也可以作为单个管道联合评估。

RAGA 的核心要素是其指标驱动开发(MDD) 方法,该方法依靠数据做出明智的系统决策。MDD 需要持续监控一段时间内的重要指标,从而清晰地了解应用程序的性能。除了允许开发人员评估他们的 LLM/RAG 应用程序并进行指标辅助实验外,MDD 方法还与应用程序可重复性非常契合。

RAGA 组件

  • 提示对象:定义提示的结构和内容的组件,用于引出语言模型生成的响应。通过遵循一致且清晰的提示,它有助于准确的评估。
  • 评估样本:封装用户查询、生成的响应以及参考响应或基本事实的单个数据实例(类似于 ROUGE、BLEU 和 METEOR 等 LLM 指标)。它是评估 RAG 系统性能的基本单元。
  • 评估数据集:一组评估样本,用于基于各种指标更系统地评估整个 RAG 系统的性能。旨在全面评估系统的有效性和可靠性。

RAGA 指标

RAGAs 提供了配置 RAG 系统指标的功能,通过定义检索器和生成器的特定指标,并将它们混合成整体 RAGAs 分数,如以下直观示例所示:

RAGA 评分

 图片来源:RAGAs 文档

让我们来了解一下事物检索和生成方面的一些最常见的指标。

检索性能指标:

  • 上下文召回率:召回率衡量从知识库中检索到的相关文档在真实 top-k 结果中所占的比例,即检索到多少与回答提示最相关的文档?它的计算方法是将检索到的相关文档数量除以相关文档总数。
  • 上下文精度:在检索到的文档中,有多少文档与提示相关,而不是噪音?上下文精度回答了这个问题,其计算方法是将相关检索到的文档数除以检索到的文档总数。

生成性能指标:

  • 忠实度:它评估生成的响应是否与检索到的证据相符,换句话说,就是响应的事实准确性。这通常通过比较响应和检索到的文档来完成。
  • 语境相关性:此指标决定了生成的响应与查询的相关性。它通常基于人工判​​断或通过自动语义相似性评分(例如余弦相似性)计算得出。

作为连接 RAG 系统两个方面(检索和生成)的示例指标,我们有:

  • 上下文利用率:这评估了 RAG 系统如何有效地利用检索到的上下文来生成其响应。即使检索器获取了出色的上下文(高精度和召回率),生成器性能较差也可能无法有效地使用它,因此提出了上下文利用率来捕捉这种细微差别。

在 RAGAs 框架中,各个指标组合起来计算出一个整体 RAGAs 分数,该分数全面量化了 RAG 系统的性能。计算此分数的过程包括选择相关指标并计算它们,将它们标准化为在同一范围内移动(通常为 0-1),并计算指标的加权平均值。权重是根据每个用例的优先级分配的,例如,对于需要高度事实准确性的系统,您可能希望优先考虑忠实度而不是召回率。

您可以在此处找到更多有关 RAGA 指标及其通过 Python 示例进行计算的信息。

总结

 
本文介绍并概述了 RAGA:这是一种流行的评估框架,用于从信息检索和文本生成的角度系统地衡量 RAG 系统性能的多个方面。了解此框架的关键元素是掌握其实际用途以利用高性能 RAG 应用程序的第一步。

相关文章:

  • Android BLE 权限管理
  • 城市街拍人像自拍电影风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 内网渗透(CSMSF) 构建内网代理的全面指南:Cobalt Strike 与 Metasploit Framework 深度解析
  • latex-二项式括号怎么敲?
  • Linux --centos安装显卡驱动
  • 【AI】AI编程助手:Cursor、Codeium、GitHub Copilot、Roo Cline、Tabnine
  • 零拷贝技术深度解析:原理、实现与性能革命
  • PWM控制电机转速的原理及相关寄存器值计算
  • 防窜货实时监控系统大屏:用python和Streamlit实现的防窜货大屏
  • 【算法学习】最小公倍数问题
  • HTML5前端第七章节
  • 【Go】结构体的基本使用
  • 2025年优化算法:龙卷风优化算法(Tornado optimizer with Coriolis force)
  • Java反序列化CommonsBeanutils无依赖打Shiro
  • 阿里的MNN源码如何编译成so文件,供Android调用
  • 为什么在外置容器时要保证打包方式是war包?
  • 常用的数据结构有哪些?在Go语言中如何定义其实例?
  • 【QGIS_Python】在QGIS的Python控制台生成SHP格式点数据并显示标注
  • ZigMa:一种DiT风格的Zigzag Mamba扩散模型
  • Stream 流中 flatMap 方法详解
  • 光明日报:家长孩子共同“息屏”,也要保证高质量陪伴
  • 新能源汽车,告别混乱创新
  • 香港根据《维护国家安全条例》订立附属法例
  • 北洋“修约外交”的台前幕后——民国条约研究会档案探研
  • 云南大理铁路枢纽工程建设取得两大进展,预计明年建成
  • 人民日报钟声:通过平等对话协商解决分歧的重要一步