53AI知识库
• 评估RAG程序的三要素、
• LLM评估的方式有哪些、
• 反馈函数的构成和使用
RAG 的评估围绕 RAG 的三要素展开: 输入、上下文、输出。
形成了三个主要的指标:
• 事实度(植地性怪怪的,我翻译成事实度,表示结果是否终于上下文和提问)。
详细信息参考「数翼」其他文章,这里不做深入。
第一步当然是构建 LLM 应用程序,也是我们要评估的主体。
应用程序可以你问答程序、AI助手等等,你也可以用你任何喜欢的 API。
第二步就是将您的 LLM 应用程序连接到 TruLens,同时记录LLM的输入和响应。
前面已经演示过,这个步骤非常简单。
第三步就是通过针对应用程序的提示和响应运行反馈函数并记录结果并评估质量。
衡量 LLM 应用的性能是从开发到生产过程中的关键一步。如果没有先在代表性测试集上衡量其准确性,就不会将传统 ML 系统投入生产。
然而与传统机器学习不同的是,基本事实是稀疏的,而且通常完全不可用。
由于没有基本事实来计算我们的 LLM 应用程序的指标,因此可以使用反馈函数来计算 LLM 应用程序的指标。
反馈函数提供了一种在应用程序运行时生成评估的编程方法,可以衡量应用程序在数据上的表现,以及用户的表现。
评估可以有多种方式,传统NLP、人工、大模型等等,我们这里使用 LLM。
下图展示了反馈函数的结构。
反馈提供者是运行给定反馈功能的后端。每个提供程序都提供多个底层模型, 例如 GPT-4 或 Llama-2。在许多情况下(但并非所有情况下), 反馈实现是跨提供程序共享的(例如基于 LLM 的评估)。
from trulens_eval import OpenAI as fOpenAIprovider = fOpenAI()
from trulens_eval import Feedbackf_qa_relevance = Feedback( provider.relevance_with_cot_reasons, name="Answer Relevance").on_input_output()
使用 TruLlama 获取上下文,
from trulens_eval import TruLlamacontext_selection = TruLlama.select_source_nodes().node.text
创建上下文相关性评估函数:
import numpy as npf_qs_relevance = ( Feedback(provider.qs_relevance, name="Context Relevance") .on_input() .on(context_selection) .aggregate(np.mean))
from trulens_eval.feedback import Groundednessgrounded = 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))
使用 TruLlama 创建记录器来连接应用程序,传入前面我们创建的三个反馈函数:
from trulens_eval import TruLlamafrom trulens_eval import FeedbackModetru_recorder = TruLlama( sentence_window_engine, app_id="App_1", feedbacks=[ f_qa_relevance, f_qs_relevance, f_groundedness ])
从文件获取和手动添加要评估的问题,
eval_questions = []with open('eval_questions.txt', 'r') as file: for line in file: # Remove newline character and convert to integer item = line.strip() eval_questions.append(item)eval_questions.append("How can I be successful in AI?")
使用查询引擎进行提问,同时使用 TruLens 进行记录,
records, feedback = tru.get_records_and_feedback(app_ids=[])records.head()
结果的可读性并不好,
import pandas as pdpd.set_option("display.max_colwidth", None)records[["input", "output"] + feedback]
查看第一条记录,
tru.get_leaderboard(app_ids=[])
或者运行 Dashboard 查看,
tru.run_dashboard()
从下图可以看到,问题相关性挺高,但是其他两个指标不太好。
查看 11 条记录的评估数据:
点击任意一条记录查看详细结果,可以根据上下文、输入、输出来进行诊断。
53AI,大模型落地应用首选服务商
定位:开箱即用的大模型落地应用平台
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
微软技术社区:做RAG?向量搜索还不够
全球首个开源AIGC数字人模型免费使用,手机端可跑!
如何让AI基于超长文档进行问答?
翻车了?这才是真正的SD3!
Omost!让AI大模型代写AI绘画提示词
【AI大模型应用开发】AI+知识图谱极简入门:手把手带你体验LangChain实现知识图谱创建和查询(附代码和源码分析)
Translation Agent 引领智能翻译新方向
广州:广州市华景路37号(华景软件园)暨南大学科技大厦6楼(整层) 杨小姐 186 6662 7370
上海:上海市浦东新区金新路58号1602室 戴先生 186 1639 7587
广州:广州市华景路37号(华景软件园)暨南大学科技大厦6楼(整层) 杨小姐 186 6662 7370
上海:上海市浦东新区金新路58号1602室 戴先生 186 1639 7587
与创始人交个朋友
-->广州:广州市华景路37号(华景软件园)暨南大学科技大厦6楼(整层) 杨小姐 186 6662 7370上海:上海市浦东新区金新路58号1602室 戴先生 186 1639 7587
-->自动秒收录 | 电影导航 | 网络推广 | ChatGPT中文版 | AI绘画 | AI文生图 | 网站地图 | 网站目录