1、evaluate()
这个 evaluate 函数是 ragas 库(用于评估 RAG 系统性能的工具库)的核心函数,主要作用是对 RAG pipeline(检索增强生成系统)的性能进行评估,通过指定的指标量化系统在问答、上下文检索等方面的表现。
核心功能
基于输入的数据集和评估指标,计算 RAG 系统的各项得分(如上下文准确性、回答忠实度等),最终返回评估结果。适用于衡量 RAG 系统在“检索相关性”“回答准确性”“上下文利用率”等维度的表现。
参数详解
函数参数较多,可分为核心输入、评估配置、运行控制三类:
-
核心输入参数
dataset:评估数据集,支持Dataset或EvaluationDataset类型,需包含问题、答案、上下文、参考标准答案等信息(具体字段取决于评估指标)。metrics:评估指标列表(如context_precision上下文精确率、faithfulness回答忠实度等),默认使用4个常用指标。llm:用于计算指标的语言模型(如 GPT、LLaMA 等),若指标需要 LLM 生成评分(如判断回答是否忠实于上下文),则需指定。embeddings:用于计算指标的嵌入模型(如 BERT、Sentence-BERT 等),若指标需要文本向量计算(如上下文相关性),则需指定。
-
评估配置参数
experiment_name:实验名称,用于跟踪评估记录(如在日志或追踪工具中标识本次评估)。column_map:数据集列名映射,若数据集的列名与默认要求不符(如用ctxs代替contexts),可通过此参数映射。token_usage_parser:令牌使用解析器,用于计算评估过程中 LLM 的令牌消耗和成本。
-
运行控制参数
run_config:运行配置(如超时时间、重试次数、并发数等),控制评估任务的执行策略。callbacks:生命周期回调函数,用于跟踪评估过程(如记录日志、监控进度等)。show_progress:是否显示进度条,默认True。return_executor:是否返回执行器(Executor),若为True,可手动控制评估任务(如取消执行),默认False。
执行流程
函数的核心逻辑可分为6步:
-
初始化与校验
- 设置默认值(如默认指标、空列名映射等),校验数据集是否存在。
- 若未指定
metrics,默认使用answer_relevancy(回答相关性)、context_precision(上下文精确率)等4个指标。
-
数据集处理
- 若输入是
Dataset类型,先转换为EvaluationDataset(ragas 标准评估数据集格式),并校验数据集中的列是否满足所有指标的要求(如指标需要contexts列,则数据集必须包含)。
- 若输入是
-
模型适配
- 若传入的是 LangChain 框架的 LLM 或嵌入模型,转换为 ragas 兼容的包装器(
LangchainLLMWrapper、LangchainEmbeddingsWrapper)。 - 为需要 LLM/嵌入的指标自动绑定模型(若指标未单独指定模型,则使用全局传入的
llm/embeddings)。
- 若传入的是 LangChain 框架的 LLM 或嵌入模型,转换为 ragas 兼容的包装器(
-
任务调度
- 初始化
Executor(执行器),用于管理评估任务的并发执行(控制并发数、超时等)。 - 为数据集中的每个样本(如每一条问答对)创建评估任务,根据样本类型(单轮对话
SingleTurnSample或多轮对话MultiTurnSample)调用对应指标的评分方法。
- 初始化
-
结果处理
- 若
return_execu
- 若

最低0.47元/天 解锁文章
5943

被折叠的 条评论
为什么被折叠?



