随着各类大模型层出不穷,为探究模型的多方面性能,对比不同模型间的差异,大模型的测评也愈加受关注。为了更好的还原应用场景,测评数据集的质量与数量至关重要。人工构建数据集的质量虽然有很高的保障,但人力与时间成本过高,且难以达到足够的体量支撑大模型的测评,因此如何自动的生成可用于大模型测评的数据集亟待解决。本项目借助大模型和Dify工作流实现了大模型评测数据集的构建与校验流程实的自动化,大大降低了人工构建测评数据集的成本,并且通过校验流程对数据集质量进行了优化。
测评数据集的构建流程包括生成和校验。值得注意的是:生成数据集需要在收集足够的文本材料的基础上展开,为了提高数据集的质量,使其足够覆盖一个学科或领域的各个维度,从而对大模型进行全面的测评,需要首先明确题目生成的材料来源构成,并收集足够的材料,然后再进行数据集的构建。数据源的质量对生成的数据集质量至关重要。
自动化数据集构建需要Dify[1]工作环境和Python[2]的运行环境,而数据集的评测则需要Opencompass[3]评测项目的运行环境,需首先对该部分环境进行配置。此外,Dify工作流中的大模型使用需要申请对应模型的API key进行授权。
目前本项目生成的数据集主要针对的是大模型的学科和知识能力测评,若对大模型的其他能力的有测评数据集的生成需求,则可以根据实际需要修改工作流中大模型节点的提示词。这里先公布一下测试的一些大模型的得分情况。
对大模型能力及其不足之处形成更深入的认识和理解,预知并防范大模型带来的安全挑战和风险,需要针对大模型开展全方位的评测,以引导大模型朝着更健康和更安全的方向发展,让大模型的发展成果惠及全人类。如图,天津大学自然语言处理实验室的大模型评测的综述对大模型测评分类及公开数据集进行了总结[4]。
此外,Opencompass大模型测评平台上针对大模型的学科、语言、知识、理解、推理、长文本、创作、代码、智能体、数学等能力,截至2024年8月8日共收集了58个测评数据集[5]。例如金融领域由蚂蚁集团和上海财经大学联合发布的金融数据集Fin-Eva[6],以及东方财富和上海人工智能实验室发布的开源金融评测数据集OpenFinData[7]。
评测能力
数据集
学科
C-Eval、MMLU、CMMLU、ARC-c、GAOKAO-Bench、ARC-e
语言
CHID、WiC、Flores、AFQMC、WSC
知识
Fin-Eva、TriviaQA、NQ、CommonSenseQA、BoolQ、TyDiQA、OpenFinData
理解
OpenbookQA、C3、LCSTS、CSL、RACE(High)、XSum、LAMBADA、
RACE(Middle)、EPRSTMT
推理
BBH、HellaSwag、SIQA、PIQA、CMNLI、DROP、OCNLI、COPA、RTE、MR-Ben-Meta-Reasoning-Benchmark、ReCoRD、AX-b、AX-g
长文本
LongBench、L-Eval、LV-Eval
创作
CreationBench
代码
HumanEval、MBPP、HumanEval-X、DS-1000
智能体
T-Eval
数学
MATH、GSM8K、T-Eval
其他
Flames、SecBench、OCRBench、ChemBench、CriticBench、CS-Bench
数据来源
时效性要求
数量占比
专业书籍(供应链金融、供应链管理、金融基础、风险管理)
近10年
30%
行业研究报告
近2年
30%
官方公众号、网站
近1年
30%
政策
近1年
10%
(此处略)
手动生成问答数据是通过直接与大模型对话交互过程中限制提示词并上传出题材料进行的,支持的文件格式包括docx、pdf、txt、jpg等。通过dify工作流生成是通过调用工作流传入出题文本材料进行的,支持的格式仅为文本,包括可以以字符串类型输入的url链接。
手动生成:
批量生成:针对每次上传的文件可以输出规定数量的题目,但需要分批次返回,每次返回的题目数量有限制,大约为20道。
支持文件类型:docx、pdf、txt等。
优点:
对于图文表格较多的出题材料友好,可以更多地保留图表信息。
缺点:
每次需重新输入提示词并针对返回结果调试,对于AI返回的结果还需手动进行汇总整理。
不能读取网页链接。
Dify工作流:
批量生成:每条工作流内输出题目有限制,但通过Python进行Dify的循环调用可以批量生产。
支持文件类型:docx、pdf、excel、txt等,但均需通过Python读取转换为文本后输入工作流。
优点:
只要完成出题材料的切分即可进行批量生成,人工成本低。
可以读取网站内容。
缺点:
需要对文档进行切分预处理,会丢失文档中的图表信息。
运行需配置Python环境。
2.3.1.1 概览
直接通过AI对话的交互过程生成QA数据,通过结构化提示词,可以对大模型出题的题型、数量、格式等进行限制。
2.3.1.2 模型及提示词
1. 模型选择
【ChatGPT-4o】
(1)优势:相比其他大模型如kimi生成题目质量更高,回答忠于上传文本,答案歧义更小,问题分布更均匀,输出更稳定;
(2)不足:大模型输出文本长度有限,需要多次处理;生成数量偶尔不准确,需要人工校验。
2. 提示词
结构化提示词对稳定生成高质量题目起了关键作用,示例如下:
(1)生成问答题提示词
Role: 供应链金融领域专家出题人
Background: 您需要一个能够理解供应链金融领域专业文本并根据这些文本生成高质量问答对的出题人,以评估和选择最适合该领域的大模型。
Profile: 这个角色是一位在供应链金融领域拥有深厚知识的专家,具备文本分析、问题生成和答案验证的能力。
Skills: 供应链金融知识、文本分析、问题生成、答案验证。
Goals: 设计一个流程,能够从专业文本中提取关键信息,生成高质量的问答对。
Constrains: 确保生成的问题和答案准确、相关,并且覆盖上传文本的核心内容,避免针对同一句话重复生成问题和答案。
OutputFormat: 问题和答案对的列表,包括问题、答案和相关文本引用。
Workflow:
阅读并分析上传的供应链金融领域文本。
提取文本核心内容,如关键概念、术语和实践,生成相关问题。
根据文本内容,为每个问题生成准确、详细的答案。
验证问题和答案的准确性和相关性。
提供引用原文中的相关片段。
将问题、选项和正确答案、引用原文配对,形成问答题数据集。
Examples: Question:供应链金融中的应收账款融资是什么?Answer:应收账款融资是一种融资方式,供应商将其应收账款出售或质押给金融机构,以换取即时资金。Context:应收账款融资是供应链金融中的一种融资方式,供应商将其应收账款出售或质押给金融机构,以换取即时资金。这种方式允许供应商通过将未来的应收款项作为担保来获得当前所需的资金,从而改善现金流状况。
Initialization: 欢迎使用供应链金融领域专家出题人服务。请上传您希望分析的文本,我将为您生成专业的问答对数据集。
(2)生成单选题提示词
- Role: 供应链金融领域专家出题人
- Background: 用户需要一个能够理解供应链金融领域专业文本,并根据这些文本生成单选题数据集的出题人,以评估和选择最适合该领域的大模型。
- Profile: 这个角色是一位在供应链金融领域拥有深厚知识的专家,具备文本分析、问题生成、选项设计和答案验证的能力。
- Skills: 供应链金融知识、文本分析、问题生成、选项设计、答案验证、模型评估。
- Goals: 设计一个流程,能够从专业文本中提取关键信息,生成高质量的单选题。
- Constrains: 确保生成的问题和选项准确、相关,并且覆盖上传文本的核心内容,避免针对同一句话重复生成问题和答案。
- OutputFormat: 单选题数据集,包括问题、选项和正确答案、相关文本引用。
- Workflow:阅读并分析上传的供应链金融领域文本。提取关键概念、术语和实践,生成相关问题。为每个问题设计多个选项,包括一个正确答案和几个干扰项。验证问题和选项的准确性和相关性。提供引用原文中的相关片段将问题、选项和正确答案、引用原文配对,形成单选题数据集。
- Examples:
- Question:供应链金融中常见的融资模式是什么?Options:A. 应收账款融资 B. 库存融资 C. 预付款融资 D. 所有以上 Answer:D
Context:供应链金融中常见的融资模式包括应收账款融资、存货融资和预付账款融资。应收账款融资允许供应商将其应收账款出售或质押给金融机构以换取即时资金。存货融资涉及使用存货作为担保来获取贷款。预付账款融资则是买方获得资金以预付给供应商,以期获得价格优惠或确保货物供应。
Initialization: 欢迎使用供应链金融领域专家出题人服务。请上传您希望分析的文本,我将为您生成专业的单选题数据集。
2.3.1.3 QA生成
2.3.2.1 概览
1.工作流文件
行业QA数据集包含主观题和客观题,其中客观题分为单项选择题和判断题。三种题型的分别构建工作流,且客观题还需通过校验工作流进行题目筛选。
2.3.2.2 QA生成流程
由于生成题目的材料来源分为文本类型和网页链接两种类型,前者可以直接用于生成题目,而后者需要在提取网页页面内容后再作为题目生成的文本来源。因此首先通过“问题分类器”对输入工作流的数据源进行识别分类,再对统一转化为文本的材料进行“变量聚合”以输入大模型生成问答数据。由文本转为问题的基本流程为:
①大模型生成规定数量的问答题目;
②大模型对生成的题目进行格式的规范与统一;
③将结构化的问答数据进行切分并转换为列表输出。
综上,问答数据的生成流程可抽象为以下的统一流程,输入数据类型为字符串,输出类型为字符串列表,不同题型间的区别在于题目生成和格式调整时大模型的提示词。
对相同节点进行统一描述:
【问题分类节点】
该节点通过大模型进行问题分类,对输入工作流的内容进行识别,若为文本即可直接传入题目生成的大模型节点,若为网页链接则需首先提取网页内容。
【内容截取节点】
该节点用于截取格式规范后的题干、选项、答案,并依次加入一个字符串列表,作为结果输出。由于格式规范的节点通过大模型将每一项的标题名均统一调整为两个字符和冒号的格式,因此截去前三个字符即可得到所需内容。
1.单选题生成
【生成题目提示词】
通过提示词对题目生成节点的大模型功能及输出进行限制。由于工作流最后一个节点输出的字符串列表长度有限制(一道单选题有七个元素),且以网站为出题来源时网站内容含量的局限,因此选择题声测工作流统一设置每次运行出三道单选题。
【格式调整提示词】
为便于将所需内容进行截取和输出为列表,在通过大模型生成题目后,需再次通过一个LLM节点对内容格式进行规范,确保其字段标题的长度相同,以使用代码进行标题的定长截取。
每道单项选择题包含:“题目”、“A项”、“B项”、“C项”、“D项”、“答案”、“原文”,共7个字段,此段工作流每次运行生成三道题目,输出一个长度为21的字符串列表。
【输出数据案例】
2.判断题生成
【生成题目提示词】
判断题一道题目仅包含三个元素,且仅需提取合适的命题即可作为判断题,因此生成题目的数量可适当添加为每次运行工作流生成五题。
【格式调整提示词】
每道判断题包含:“题目”、“答案”、“原文”,共3个字段,此段工作流每次运行生成五道题目,输出一个长度为15的字符串列表。
【输出数据案例】
3.简答题生成
【生成题目提示词】
简答题一道题目仅包含三个元素,但生成一道简答题需要的出题材料和包含的知识相较判断题更为复杂,因此生成题目的数量仍设置为三题。
【格式调整提示词】
每道简答题包含:“题目”、“答案”、“原文”,共3个字段,此段工作流每次运行生成三道题目,输出一个长度为9的字符串列表。
【输出数据案例】
2.3.2.3 QA校验流程
大模型在生成题目的过程中,存在一部分针对局部的信息和数据生成的题目,此类题目需要结合出题材料才能完成,不具备考察大模型在特定领域的知识能力的作用,因此可以通过大模型做题进行筛选,若与标准答案不同,则舍去该题。上述信息类的题目基本上可以通过校验过程筛去。
校验过程即为设置做题节点大模型的提示词,使其根据输入的题目进行回答,批量做题后汇总做题结果,与原答案进行比对,仅保留答案相同的题目。
校验过程仅针对数据集中的客观题,即单选题和判断题。
1.单选题校验
【做题提示词】
通过提示词要求做题节点的大模型根据输入的单项选择题做出选择,并生成解析,对其选择解释原因。
【格式规范提示词】
对每道单选题的作答和解析回复包含:“答案”、“解析”,共2个字段,此段工作流每次运行完成一道单选题题目,输出一个长度为2的字符串列表。
2.判断题校验
【做题提示词】
通过提示词规定做题节点的大模型根据输入的判断题做出正误判断,正确回复Y,错误回复N,并生成解析,对其判断结果进行解释。
【格式规范提示词】
对每道单选题的作答和解析回复包含:“答案”、“解析”,共2个字段,此段工作流每次运行完成一道单选题题目,输出一个长度为2的字符串列表。
2.3.2.4 API调用工作流批量生成和校验QA
1.通过API调用dify工作流
在python脚本中调用dify工作流,需要由基础url确定dify工作室的环境,以及API key 确定工作流。
Dify工作流的API key可以由下图流程创建。
以校验时调用dify的方法为例:
2. 通过txt文本文档批量生成(代码略)
(1)通过文件夹地址读取指定文件夹内全部txt文档
【获取文档地址】
【读取文档】
(2)调用dify工作流出题
(3)处理工作流返回数据
(4)批量生成
3. 通过链接excel表格批量生成
(1)调用dify工作流出题
(2)处理工作流返回数据
(3)批量生成
4. 通过问题excel表格批量校验
(1)调用dify工作流做题
(2)处理工作流返回数据
(3)批量校验
由上述流程进行行业知识的问答数据集的生成与校验,使用Opencompass平台进行数据集的评测。
3.1数据集生成结果概况
1.数量
该项目通过DIfy等自动化工具一共生成了3000多道评测的数据集,再通过人工和AI的校验后,最终形成了3104道供应链金融领域的测试题目。
2.实际占比
单选(校验后)
简答
判断(校验后)
29.5%
39.1%
31.4%
书籍
行业报告
网页链接
政策
40.0%
28.4%
26.1%
5.6%
3. 待测试数据集类型转换
Opencompass支持用户通过自定义新的数据集进行模型测评,在上述数据集生成流程中产生的数据集均存为excel格式,而opencompass支持 .jsonl 和 .csv 两种格式的数据集。此次选择.jsonl 格式
使用python进行格式转换:
4. 待测评数据集
在测试判断题的得分过程中,由于部分大模型对输出为“Y”和“N”上出现了不一致的情况,我们就没有将其加入到最终的结果。
- 1451揭秘高效SEO优化工具,网站排名飙升的秘密武器
- 1272如何在PPT中启用演讲者视图功能?点击使用AI助手 了解更多
- 1183一次性塑杯最新报价走势分析
- 1144穆里尼奥重回英超:王子携2亿预算助力,纽卡目标直指欧冠
- 1145网站优化利器:免费外链工具推荐
- 1096网站排名提升神器,深度解析优化工具
- 1097云原生产业白皮书发布,华为云加速企业智能升级
- 1078外贸网站SEO策略
- 1079《电影那些事儿》课件