在应用流正式部署上线前,评估应用流在自身业务场景上的效果至关重要。LangStudio提供了一站式应用流评测能力,该能力基于一种新类型应用流:评测流(Evaluation Flow),能从指定维度(评测模板)对应用流评分。
简介
LangStudio提供了一站式应用流评测能力。您只需要完成评测数据集、应用流输入映射等配置,并按需选择评测模板,即可提交应用流评测任务。整个评测流程包括:使用应用流批量处理评测数据集中的每一行,得到相应的输出。然后结合评测数据集中的辅助字段,评价每条输出的优劣。最后汇总得分以展示应用流在指定数据集上的精度。
准备工作
已创建应用流并完成调试。操作详情,请参见应用流开发。
将已准备好的评测数据集上传至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):用于高性能合金和电池制造"]}
创建评测所需的LLM连接和Embedding连接。操作详情,请参见服务连接配置。
注:部分评测模板需要依赖裁判员模型或Embedding模型,因此需要配置相关的LLM连接和Embedding连接。
计费说明
应用流评测功能会使用OSS存储评测数据集,并通过PAI-DLC执行离线评测任务,因此会产生相应的资源使用费用。详情请参见OSS计费概述和分布式训练(DLC)计费说明。
新建应用流评测任务
在应用流编排页面完成应用流调试后,单击右上角评测,新建应用流评测任务。
关键参数说明:
参数 | 说明 |
评测数据集 | |
OSS文件 | 从OSS上选择一个JSONL格式的评测数据集文件。该数据集应该要包含“问题”以及评测所需的其他字段,其中“问题”字段作为应用流的输入,其他必要字段用于计算指标得分,详情请参见附录:预置评测模板说明中关于“输入字段”的介绍。 |
应用流输入映射 | |
chat_history/question | 选择应用流运行的输入字段。 注:在应用流评测前需要先完成应用流的推理,然后基于推理结果运行后续的评测任务,因此需要先选择应用流运行需要的输入字段。 |
评测配置 | |
预置模板评测 | 系统预置了多种评测模板,您可根据实际需求进行选择。当选择多个模板时,评测结果会聚合展示在评测任务详情页。本文以回答相关性模板举例,在选择该模板时需要完成以下配置: 关键参数说明:
更多模板详情,请参见附录:预置评测模板说明。 |
资源配置:此处资源仅用于评测任务的调度,建议根据任务的复杂程度选择合适的CPU资源。 |
查看评测结果
提交评测任务后,会跳转到任务概览页。每个评测运行包含了1个批量运行任务+N个评测任务(N的数量同选择的模板数量)。批量运行任务通过应用流批量处理数据集的每一行,生成输出结果。评测任务使用评测数据集中的辅助字段,计算批量运行任务中每条输出的得分。在页面下方您可以查看每个子任务的详细信息,待运行结束后,您可以查看子任务的链路、指标和输出详情。
在指标页可以查看全部评测指标结果。其中,指标名请参见附录:预置评测模板说明。
附录:预置评测模板说明
LangStudio内置了多种评测模板,可从多角度根据指标得分(指标值)评估应用流的性能:
模板名称 | 描述 | 指标名 | 需要模型服务类型 | 输入字段 |
回答完全一致率(Exact Match Evaluation) | 评估应用流输出(response)与参考答案(reference)是否完全一致。评估得分介于0~1之间,其中0表示应用流输出与参考答案不一致,1表示完全一致。 | exact_match_score | 不需要 |
|
回答相关性(Answer Correctness Evaluation) | 评估应用流输出与输入的相关性。该评估方法依赖一个LLM模型,LLM根据输入(query)和应用流回答(response)给出一个评分。得分介于0~1之间,其中0表示输出与输入完全无关,1表示完全相关。 | answer_relevancy | LLM |
|
回答正确性(Answer Relevancy Evaluation) | 评估应用流的输出是否正确。该评估方法依赖于一个LLM模型,该模型根据问题(query)和应用流回答(response)给出一个评分。得分介于1~5之间,其中1为最差,5为最好。 | answer_correctness | LLM |
|
BLEU得分(BLEU Score Evaluation) | 评估应用流输出与参考答案的相关性。该评估方法使用BLEU Score作为评估指标,计算参考答案(reference)和应用流输出(response)的相关性得分。得分介于0~1之间,其中0表示应用流输出与参考答案完全无关,1表示完全相关。 | bleu-1/bleu-2/bleu-3/bleu-4 | 不需要 |
|
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 | 不需要 |
|
检索相关性(Context Relevancy Evaluation) | 评估应用流检索出的上下文与输入的相关性。该评估方法依赖一个LLM模型,LLM根据输入(query)和上下文(context)给出一个评估分数。评估得分介于0~1之间,其中0表示检索出的上下文与输入完全无关,1表示完全相关。 | context_relevancy | LLM |
|
上下文遵从度(Answer Faithfulness Evaluation) | 评估应用流的回答是否来自指定上下文。该评估方法依赖一个LLM模型,该模型会根据回答(response)和上下文(contexts)给出一个评分。得分为0~1之间,其中0表示完全虚构,1表示输出完全符合上下文。 | answer_faithfulness | LLM |
|
Embedding相似度(Embedding Similarity Evaluation) | 评估应用流输出(response)和参考答案(reference)的embedding相似度。该评估方法依赖一个Embedding模型,将参考答案和应用流输出转为embedding向量,并计算余弦相似度。评估得分介于0~1之间,越大越相似。 | embedding_similarity | Embedding |
|