应用流评测

在应用流正式部署上线前,评估应用流在自身业务场景上的效果至关重要。LangStudio提供了一站式应用流评测能力,该能力基于一种新类型应用流:评测流(Evaluation Flow),能从指定维度(评测模板)对应用流评分。

简介

LangStudio提供了一站式应用流评测能力。您只需要完成评测数据集、应用流输入映射等配置,并按需选择评测模板,即可提交应用流评测任务。整个评测流程包括:使用应用流批量处理评测数据集中的每一行,得到相应的输出。然后结合评测数据集中的辅助字段,评价每条输出的优劣。最后汇总得分以展示应用流在指定数据集上的精度。

image

准备工作

  • 已创建应用流并完成调试。操作详情,请参见应用流开发

  • 将已准备好的评测数据集上传至OSS,文件格式为JSONL,示例内容如下:

    {"history":[],"query": "描述华山的险峻威严", "reference": "华岳独秀,挺拔云霄; \n峭壁削天,巉岩峻俏。 \n苍松翠竹,斗壁争娇; \n猿啼鹰飞,霜剑光照。 \n\n危峰如剪,嵯峨剑指; \n径细坡陡,无路藤绕。 \n风腥雾织,云出岫交; \n仙境幽深,天梯难绕。 \n\n岩稜交错,龙脉翻涌; \n险途更引,凌霄曲折。 \n寂寞松梢,鹰击长空; \n华山之巅,雄姿英发。", "contexts": ["华山是五岳之一", "华山以其险峻闻名"]}
    {"history":[],"query": "可以列出5样稀有金属吗?请按全球需求来排名", "reference": "稀有金属指的是地壳中含量较少、分布不均或开采困难的金属元素,它们在高科技领域和新兴工业中扮演着非常重要的角色。全球需求的排序可能因时间和技术进步而变化,但以下是通常被广泛需求的一些稀有金属(不一定按绝对的需求量排名,因为这在不同时间点可能不同):\n\n1. **钴(Cobalt, Co)** - 钴是锂离子电池的关键成分之一,尤其是在电动汽车和便携式电子产品中。此外,它也被应用于耐热合金、硬质合金以及催化剂的制造。\n\n2. **钕(Neodymium, Nd)** - 钕是一种稀土金属,主要用于强磁体的生产,比如高性能的永磁体,这些永磁体广泛用于计算机硬盘、风力涡轮机和电动汽车的驱动电机中。\n\n3. **锂(Lithium, Li)** - 锂主要用于锂电池的制造,随着电动车和便携式电子设备的需求增加,锂的需求量迅速上升。\n\n4. **银(Silver, Ag)** - 虽然银不像上述金属那样稀有,但其在工业中的需求量巨大,主要用于电子产品、太阳能面板、珠宝和货币制造等领域。\n\n5. **钌(Ruthenium, Ru)** - 钌是一种稀有贵金属,被广泛使用在硬盘驱动器的数据储存及大容量服务器中,同时也用在催化剂和电化学电池中。\n\n这些金属的需求量受到了全球经济、科技发展和政策支持等多方面因素的影响。而且随着时间的推移和市场的变化,其他稀有金属如钽、铟、铼以及其他的稀土金属,也可能出现在最受需求的稀有金属列表中。", "contexts": ["稀有金属是指地壳中含量较低、开采和提取较为复杂的金属", "锂 (Li):被用于电池制造", "钴 (Co):用于高性能合金和电池制造"]}

    文件示例:langstudio_eval_demo.jsonl

  • 创建评测所需的LLM连接和Embedding连接。操作详情,请参见服务连接配置

    注:部分评测模板需要依赖裁判员模型Embedding模型,因此需要配置相关的LLM连接和Embedding连接。

计费说明

应用流评测功能会使用OSS存储评测数据集,并通过PAI-DLC执行离线评测任务,因此会产生相应的资源使用费用。详情请参见OSS计费概述分布式训练(DLC)计费说明

新建应用流评测任务

在应用流编排页面完成应用流调试后,单击右上角评测,新建应用流评测任务。

image

关键参数说明:

参数

说明

评测数据集

OSS文件

OSS上选择一个JSONL格式的评测数据集文件。该数据集应该要包含“问题”以及评测所需的其他字段,其中“问题”字段作为应用流的输入,其他必要字段用于计算指标得分,详情请参见附录:预置评测模板说明中关于“输入字段”的介绍。

应用流输入映射

chat_history/question

选择应用流运行的输入字段。

注:在应用流评测前需要先完成应用流的推理,然后基于推理结果运行后续的评测任务,因此需要先选择应用流运行需要的输入字段。

评测配置

预置模板评测

系统预置了多种评测模板,您可根据实际需求进行选择。当选择多个模板时,评测结果会聚合展示在评测任务详情页。本文以回答相关性模板举例,在选择该模板时需要完成以下配置:

image

关键参数说明:

  • 连接配置 > 裁判员LLM配置:选择一个LLM作为裁判员,评价当前评测的应用流的queryresponse是否相匹配。建议选择能力较强的模型,如qwen-max。

  • 评测模板输入映射 > query/response:配置评测模板的输入字段,可来自评测数据集或当前应用流的输出。在本例中,回答相关性模板接收一个问题(query),以及指定应用流回答(response),之后模板会计算response是否准确回答了当前的query,给出一个准确性得分。因此模板的query应该来自于数据集中的“问题”字段,模板的response应该来自于应用流输出

更多模板详情,请参见附录:预置评测模板说明

资源配置:此处资源仅用于评测任务的调度,建议根据任务的复杂程度选择合适的CPU资源

查看评测结果

提交评测任务后,会跳转到任务概览页。每个评测运行包含了1批量运行任务+N评测任务(N的数量同选择的模板数量)。批量运行任务通过应用流批量处理数据集的每一行,生成输出结果。评测任务使用评测数据集中的辅助字段,计算批量运行任务中每条输出的得分。在页面下方您可以查看每个子任务的详细信息,待运行结束后,您可以查看子任务的链路、指标和输出详情。

image

指标页可以查看全部评测指标结果。其中,指标名请参见附录:预置评测模板说明

image

附录:预置评测模板说明

LangStudio内置了多种评测模板,可从多角度根据指标得分(指标值)评估应用流的性能:

模板名称

描述

指标名

需要模型服务类型

输入字段

回答完全一致率(Exact Match Evaluation)

评估应用流输出(response)与参考答案(reference)是否完全一致。评估得分介于0~1之间,其中0表示应用流输出与参考答案不一致,1表示完全一致。

exact_match_score

不需要

  • reference: String

  • response: String

回答相关性(Answer Correctness Evaluation)

评估应用流输出与输入的相关性。该评估方法依赖一个LLM模型,LLM根据输入(query)和应用流回答(response)给出一个评分。得分介于0~1之间,其中0表示输出与输入完全无关,1表示完全相关。

answer_relevancy

LLM

  • query: String

  • response: String

回答正确性(Answer Relevancy Evaluation)

评估应用流的输出是否正确。该评估方法依赖于一个LLM模型,该模型根据问题(query)和应用流回答(response)给出一个评分。得分介于1~5之间,其中1为最差,5为最好。

answer_correctness

LLM

  • query: String

  • response: String

BLEU得分(BLEU Score Evaluation)

评估应用流输出与参考答案的相关性。该评估方法使用BLEU Score作为评估指标,计算参考答案(reference)和应用流输出(response)的相关性得分。得分介于0~1之间,其中0表示应用流输出与参考答案完全无关,1表示完全相关。

bleu-1/bleu-2/bleu-3/bleu-4

不需要

  • reference: String

  • response: String

ROUGE得分(ROUGE Score Evaluation)

评估应用流输出(response)与参考答案(reference)的相关性。该评估方法使用ROUGE Score作为评估指标,计算参考答案(reference)和应用流输出(response)的相关性得分。评估得分介于0~1之间,其中0表示应用流输出与参考答案完全无关,1表示完全相关。

rouge-1-p/rouge-1-r/rouge-1-f/rouge-l-p/rouge-l-r/rouge-l-f

不需要

  • reference: String

  • response: String

检索相关性(Context Relevancy Evaluation)

评估应用流检索出的上下文与输入的相关性。该评估方法依赖一个LLM模型,LLM根据输入(query)和上下文(context)给出一个评估分数。评估得分介于0~1之间,其中0表示检索出的上下文与输入完全无关,1表示完全相关。

context_relevancy

LLM

  • query: String

  • contexts: List[String]

上下文遵从度(Answer Faithfulness Evaluation)

评估应用流的回答是否来自指定上下文。该评估方法依赖一个LLM模型,该模型会根据回答(response)和上下文(contexts)给出一个评分。得分为0~1之间,其中0表示完全虚构,1表示输出完全符合上下文。

answer_faithfulness

LLM

  • response: String

  • contexts: List[String]

Embedding相似度(Embedding Similarity Evaluation)

评估应用流输出(response)和参考答案(reference)的embedding相似度。该评估方法依赖一个Embedding模型,将参考答案和应用流输出转为embedding向量,并计算余弦相似度。评估得分介于0~1之间,越大越相似。

embedding_similarity

Embedding

  • reference: String

  • response: String