前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >别再盲目调参!3个核心指标帮你量化RAG系统,内附FastGPT最新评测数据

别再盲目调参!3个核心指标帮你量化RAG系统,内附FastGPT最新评测数据

作者头像
米开朗基杨
发布2024-12-20 14:25:35
发布2024-12-20 14:25:35
45600
代码可运行
举报
文章被收录于专栏:云原生实验室云原生实验室
运行总次数:0
代码可运行

需求背景

FastGPT(https://fastgpt.cn) 系统目前缺乏一个直观的评估指标,无法有效衡量对 RAG 部分的修改或模型参数微调后的效果。因此,我们迫切需要一个评测机制来评估这些改动对系统整体性能的影响。

为了解决这个问题,我们引入了评价框架 Ragas[1]。该框架通过问题定义、信息检索、答案生成和标准答案四个核心要素,结合多种评估指标,提供了一套直观而全面的评估方法来衡量 RAG 模型的效果。我们已将 Ragas 评测方法整合到 FastGPT 应用中,使用户可以随时对其自定义的 FastGPT 应用进行效果评估。

评测指标

  • FactualCorrectness:是一个评估语言模型生成的响应事实正确性的指标类。它通过断言分解和自然语言推理 (NLI) 来验证响应中所提出的断言是否与参考文本相符。
  • SemanticSimilarity:采用交叉编码器得分评估真实答案与生成答案之间的语义相似度。
  • RougeScore:基于最长公共子序列的重叠度来计算的 F1-score。

详情可参考 Ragas 的指标解析文档:Ragas_metrics[2]

使用方法

拉取阿里云镜像并创建容器

代码语言:javascript
代码运行次数:0
运行
复制
docker pull crpi-h3snc261q1dosroc.cn-hangzhou.personal.cr.aliyuncs.com/fastgpt_ck/ragas_eval:v1
docker run -idt -p 7222:7222 --name fastgpt_eval crpi-h3snc261q1dosroc.cn-hangzhou.personal.cr.aliyuncs.com/fastgpt_ck/ragas_eval:v1 /bin/bash

准备评测数据集

在开始评测之前,我们需要准备一个包含标准问题标准答案的评测数据集。数据集需要按照以下 CSV 文件格式组织:

  • • CSV 文件的第一行为表头,包含两列:user_input (问题) 和 reference (标准答案)
  • • 从第二行开始为实际的测试数据,每行包含一个问题及其对应的标准答案

示例格式如下:

user_input

reference

question1

answer1

question2

answer2

接口访问

测评接口

准备好评测数据集后,可以通过以下接口发起评测请求:

代码语言:javascript
代码运行次数:0
运行
复制
curl --location --request POST 'http://localhost:7222/v1/parse/eval_rag' \
--header 'Authorization: Bearer your_access_token' \
--form 'input_file=@"/Rag_FW/dataset/test_data_50_inference_input.csv"' \
--form 'api_url="https://api.fastgpt.in/api"' \
--form 'api_key="fastgpt-xxxxxxxxx"'\
--form 'query_id="02899f89-1e77-4eed-aa74-24294461bdab"'
  • api_url:FastGPT 应用的 API 根地址,用于指定请求发送的目标地址
  • api_key:FastGPT 应用的 API Key,用于身份验证和授权访问
  • query_id:用于断点续传的标识符 (可选)。当评测过程因服务崩溃等意外中断时,可以使用相同的 query_id 重新发起请求,继续未完成的评测任务。

返回信息:接口会返回一个 query_id,可用于后续通过查询接口获取评测结果。

查询接口

评测完成后,可以通过以下接口查询评测结果:

代码语言:javascript
代码运行次数:0
运行
复制
curl --location --request POST 'http://localhost:7222/v1/parse/eval_rag_query' \
--header 'Authorization: Bearer your_access_token' \
--form 'query_id="1afb0593-eeec-42e9-a90b-be4ad0f4b76a"'
  • query_id:评测任务的唯一标识符。可以通过评测接口获取,如果遗失可以在 docker logs 中查看

返回信息:接口会以 CSV 文件流的形式返回包含各项评价指标的评测结果。

评测过程中,可以通过 docker logs 命令实时查看任务的处理进度。

效果演示

启动 Docker 容器后,利用测评接口来访问评测服务,可以得到下图的信息,其中的 file_id 就可以用在查询接口中:

可以通过 docker logs 命令实时查看评测任务的处理进度:

评测所需的输入文件格式如下:

评测完成后,输出文件将包含详细的评测指标:

输出文件的最后一行会显示所有评测指标的平均值,方便整体评估系统性能。

重点将 SemanticSimilarity 作为主要的评价指标。

FastGPT 评测结果

我们使用 50 条中英文混合的测试数据进行评测,主要测试了以下配置:

  • • 启用结果重排时,设置 Rerank 最低相关度阈值为 0.3
  • • 不启用结果重排时,设置 Rerank 最低相关度阈值为 0.4
  • • 单次引用上下文的上限为 5000

以下是各项评测指标的平均值统计结果:

参数

FactualCorrectness

SemanticSimilarity

RougeScore

语义检索

0.4812

0.8995

0.5370

语义检索+结果重排

0.4606

0.8992

0.5245

全文检索+结果重排

0.3562

0.8528

0.3829

混合检索+结果重排

0.4128

0.8703

0.4505

附件

输入文件:https://objectstorageapi.bja.sealos.run/czrn86r1-yyh/ragas_eval/test_data_50_inference_input.csv

知识库:https://objectstorageapi.bja.sealos.run/czrn86r1-yyh/ragas_eval/retrieved_contexts.txt

引用链接

[1] Ragas: https://github.com/explodinggradients/ragas [2] Ragas_metrics: https://docs.ragas.io/en/latest/references/metrics/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求背景
  • 评测指标
  • 使用方法
    • 拉取阿里云镜像并创建容器
    • 准备评测数据集
    • 接口访问
      • 测评接口
      • 查询接口
  • 效果演示
    • FastGPT 评测结果
  • 附件
    • 引用链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档