返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

《构建和评估高级RAG》: RAG评估要素和方法

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 15:10 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">本文带你了解如下知识:

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin-left: 8px;padding-left: 1em;list-style: circle;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  • •评估RAG程序的三要素

  • •RAG评估的详细流程

  • LLM评估的方式有哪些、

  • 反馈函数的构成和使用

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;border-radius: 8px;display: block;margin: 0.1em auto 0.5em;border-width: 0px;border-style: solid;border-color: initial;height: auto !important;" title="null" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=83052&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9hZzdaM2RDcTdMbXI0REk0MGNMaDZUeW5OelpoZ2NqenFoMWZ6NFRsejZidWY2akR2UlFmNk44cmljRVVTU0o0VHZ4SGhOdExaMnpGMVpwc3NDNTR4R2cvNjQwP3d4X2ZtdD1wbmcmYW1w;from=appmsg"/>

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 20px;font-weight: bold;display: table;margin: 2em auto 1.5em;padding-top: 6px;padding-bottom: 6px;padding-left: 16.75px;background-image: linear-gradient(135deg, rgb(113, 23, 234), rgba(113, 23, 234, 0.667), rgba(234, 96, 96, 0.533), rgba(217, 57, 205, 0.267), rgba(217, 57, 205, 0));background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;color: rgb(255, 255, 255);border-radius: 8px;width: 318.25px;">RAG评估要素

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">RAG 的评估围绕 RAG 的三要素展开:输入上下文输出

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">形成了三个主要的指标:

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin-left: 8px;padding-left: 1em;list-style: circle;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  • •问题相关性、

  • •上下文相关性、

  • •事实度(植地性怪怪的,我翻译成事实度,表示结果是否终于上下文和提问)。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;border-radius: 8px;display: block;margin: 0.1em auto 0.5em;border-width: 0px;border-style: solid;border-color: initial;height: auto !important;" title="null" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=83052&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9hZzdaM2RDcTdMbXI0REk0MGNMaDZUeW5OelpoZ2NqelQ3M1BwVkd0WkVPSmljZGp5NjJPWFJNaWJ0MEZNcmNFRmljTEY5ano2ZUdVMThkd2VnajU1OWtjZy82NDA/d3hfZm10PXBuZyZhbXA=;from=appmsg"/>

详细信息参考「数翼」其他文章,这里不做深入。

评估流程

上一篇文章,我们提到了 TruLens 的评估流程,今天详细看看。

1. 构建 LLM 程序

第一步当然是构建 LLM 应用程序,也是我们要评估的主体。

应用程序可以你问答程序、AI助手等等,你也可以用你任何喜欢的 API。

2. TruLens 连接 LLM 程序

第二步就是将您的 LLM 应用程序连接到 TruLens,同时记录LLM的输入和响应。

前面已经演示过,这个步骤非常简单。

3. 使用反馈函数评估和记录结果

第三步就是通过针对应用程序的提示和响应运行反馈函数记录结果评估质量

为什么需要反馈函数

衡量 LLM 应用的性能是从开发到生产过程中的关键一步。如果没有先在代表性测试集上衡量其准确性,就不会将传统 ML 系统投入生产。

然而与传统机器学习不同的是,基本事实是稀疏的,而且通常完全不可用。

由于没有基本事实来计算我们的 LLM 应用程序的指标,因此可以使用反馈函数来计算 LLM 应用程序的指标。

什么是反馈函数

反馈函数提供了一种在应用程序运行时生成评估的编程方法,可以衡量应用程序在数据上的表现,以及用户的表现

评估方式

评估可以有多种方式,传统NLP、人工、大模型等等,我们这里使用 LLM。

反馈函数的结构

下图展示了反馈函数的结构。

反馈提供者

反馈提供者是运行给定反馈功能的后端。每个提供程序都提供多个底层模型, 例如 GPT-4 或 Llama-2。在许多情况下(但并非所有情况下), 反馈实现是跨提供程序共享的(例如基于 LLM 的评估)。

4. 创建反馈函数

fromtrulens_evalimportOpenAIasfOpenAI

provider=fOpenAI()

问题相关性反馈函数

fromtrulens_evalimportFeedback

f_qa_relevance=Feedback(
provider.relevance_with_cot_reasons,
name="AnswerRelevance"
).on_input_output()

上下文相关性反馈函数

使用TruLlama获取上下文,

fromtrulens_evalimportTruLlama

context_selection=TruLlama.select_source_nodes().node.text

创建上下文相关性评估函数:

importnumpyasnp

f_qs_relevance=(
Feedback(provider.qs_relevance,
name="ContextRelevance")
.on_input()
.on(context_selection)
.aggregate(np.mean)
)

事实度反馈函数

fromtrulens_eval.feedbackimportGroundedness

grounded=Groundedness(groundedness_provider=provider)

f_groundedness=(
Feedback(grounded.groundedness_measure_with_cot_reasons,
name="Groundedness"
)
.on(context_selection)
.on_output()
.aggregate(grounded.grounded_statements_aggregator)
)

5. 评估应用程序

使用 TruLlama 创建记录器来连接应用程序,传入前面我们创建的三个反馈函数:

  • •f_qa_relevance,

  • •f_qs_relevance,

  • •f_groundedness

fromtrulens_evalimportTruLlama
fromtrulens_evalimportFeedbackMode

tru_recorder=TruLlama(
sentence_window_engine,
app_id="App_1",
feedbacks=[
f_qa_relevance,
f_qs_relevance,
f_groundedness
]
)

从文件获取和手动添加要评估的问题,

eval_questions=[]
withopen('eval_questions.txt','r')asfile:
forlineinfile:
#Removenewlinecharacterandconverttointeger
item=line.strip()
eval_questions.append(item)
eval_questions.append("HowcanIbesuccessfulinAI?")

使用查询引擎进行提问,同时使用 TruLens 进行记录,

forquestionineval_questions:
withtru_recorderasrecording:
sentence_window_engine.query(question)

获取评估结果:

records,feedback=tru.get_records_and_feedback(app_ids=[])
records.head()

结果的可读性并不好,

使用 Pandas 显示一下,

importpandasaspd

pd.set_option("display.max_colwidth",None)
records[["input","output"]+feedback]

查看第一条记录,

tru.get_leaderboard(app_ids=[])

或者运行 Dashboard 查看,

tru.run_dashboard()

从下图可以看到,问题相关性挺高,但是其他两个指标不太好。

查看 11 条记录的评估数据:

点击任意一条记录查看详细结果,可以根据上下文、输入、输出来进行诊断。


--- END ---

《构建和评估高级RAG》001: 实现高级RAG管道


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ