一 现状·问题
1、培训考核涉及的文件数量较多
当前,京东航空公司维修部门面临着人员规模的快速增长和持续的培训需求。根据民航局的规定,维修培训必须确保所有维修人员都能够完成对飞机维修相关文件的学习,这包括维修方案、维修工程管理手册、工作程序手册等共计12本手册以及民航局发布的各类明传电报、维修工程部门发布的维修提示文件MT和技术通告文件TA等内容。这不仅适用于新招聘人员的初始培训,复训,而且每当手册更新时,都需要进行差异化培训。以上内容的培训都属于知识掌握类培训,经过近两年的运行,业务侧发现无论是课堂培训还是自学培训,培训效果都不太好,即员工常常无法在完成培训后,全面掌握所需要掌握的知识或程序要求。因此维修系统在今年对此类培训进行了改革,计划通过“以考促训”的方式提高培训效果,即通过编制考题覆盖所有需要掌握的知识点,要求受训人员通过反复做题,并在做题的过程中查询相关手册、文件等资料,最终达到100%掌握知识点的目标。按此改革计划,就需要培训分部根据每次培训材料编制海量的题库,相对于原有题库将呈指数倍增加,而且还需要实时根据资料的更新去更新对应的题目和答案。
2、培训考核涉及的文件变动频次较高、应用场景较为频繁
目前,维修系统需考核的手册类文件约12本,考题量需求约2400道;涉及的局方文件、维修发技术类文件约600条,且以20条/每月的速度增加,涉及的考题约3000道。
培训场景 | 频率 |
---|---|
每月平均开展手册类培训次数 | 8~10次 |
每月开展技术类文件培训次数 | 8次 |
每月开展岗位授权类考试、技术等级评定、各类安全活动如知识竞赛 | 1次 |
以上培训场景每次均需对历史文件进行评估,对考题库进行更新修订。
3、人工拟定题目费时费力
为提高维修人员对手册程序的掌握程度,现有的培训有效性评估手段将从“一次考试机会,70分及格”转向“考试机会不限,但需满分及格”,为此需不断扩充题库数量、优化题库质量,以确保维修人员逐步熟练掌握手册中的各项要求。根据维修系统的文件数量、变动频次和应用场景,预计在2024~2025年每周需安排24时/人次梳理更新已有题库、增加新题库,全年预计增加工时1248时,需增编1人以免影响其他培训管理工作的开展。
4、无法评估现有题目有效性
题库中题目的数量快速增长。但是一旦依据的手册文件发生改版变更,原有题目是否依然正确且有效是存疑的,这需要人工投入大量时间对题库中的题目进行评估和复核,该工作量随着题库规模的增大,已经变为一项几乎不可能完成的任务。
新拟定的试题和现有题库中的试题相比,是否是重复性的试题?也无人力资源投入进行分析和判断,从而进一步导致题库规模的无节制增大,成为了一个死循环。
二、需求分析
将培训管理人员从这种低效、工作量大、技术含量低的工作中释放出来,聚焦更高价值的工作:需要根据指定的材料文件,自动生成试题,包含单选题、多选题、判断题。生成的试题对比现有题库,重复率不得高于设定值。对现有题库进行定时识别分析,判断是否存在失效风险,若和手册文件不匹配,则生成修订意见,提醒培训管理人员进行复核确认。
三、采取措施
采用向量库+大模型的方式,构建题库生成助手1、采用向量库,存储对文件材料进行向量化存储,从而实现通过简单指令快速召回相关手册的内容。2、使用大模型的自然语言处理能力,根据提供的手册内容及试题生成的要求,生成试题。
四、实践步骤
1、工具选择
大模型能力建设选择采用集团推出的AutoBots平台进行建设,该平台通过配置化的方式进行大模型、知识库、插件的快速搭建和集成,促进大模型场景的快速落地:
•文件向量化方便快捷:该场景要求文件更新/新增的时候,能够及时进行向量库更新,以便能够生成试题使用。AutoBots平台提供配置化的向量库搭建能力,且打通了JoySpace,能对JoySpace中的文件快速进行解析并保存到数据库中,同时支持图片和表格的解析能里。在文档发生更新时,自动更新向量库的内容。解决了独立搭建时需要人工进行文件解析处理的问题,且解析和召回的准确度更高。
•知识召回准确:AutoBots平台算法团队,对向量化的过程进行独立模型搭建,且算法调优,准确度得到保障。
•流程编排能力:AutoBots平台支持通过流程编排的方式,快速对多个大模型、知识库、插件、文档解析等能力进行集成构建,支持复杂场景的实现。
2、整体流程设计
业务老师将文件材料上传至joypace上,Autobots自动将文件进行解析并存储在向量库中。采用培训系统作为功能载体,业务老师在系统上输入指令包含题目类型、题目难易程度、题目数量、知识范围等,机务系统后台进行大模型指令组装,调用Autobots平台上已调试好的大模型接口,进行生成结果的获取,并以预览的方式展示给用户。用户对于采纳的试题可一键加入题库。AutoBots平台上,先根据用户的指令,从向量库中召回相关知识。然后大模型根据提供的知识和要求进行试题的生成,并以JSON的格式进行结果返回。
3、大模型流程设计
采用AutoBots平台的流程编排能力,进行大模型能力的构建。
3.1 接收指令
接受指令中仅包含1个参数query,及为用户下发的指令,其中包含知识范围、题目类型、试题数量、难易程度等。(若直接通过接口调用的话,也可以拆解为多个参数,以便后续流程使用)
3.2 知识召回
知识召回节点的目的在于从向量库中,召回本次生成范围所需的相关知识,比如某本手册等。该节点会生成一个outputList列表,其中即为相关的知识。
3.3 大模型试题生成
通过大模型,结合召回的知识和试题生成的要求进行试题生成,由于需要和业务系统对接,所以需要对生成结果的格式进行指定,提示词如下:
# 角色
你是一位专业的题库专家,擅长根据{{document}}的内容按照{{question}}要求生成对应题型的试题。你的专业知识和丰富经验使你能够准确地理解和转化用户的需求,生成满足要求的题目和答案。
## 技能
### 技能1: 生成单选题
- 根据用户提供的内容,生成单选题。
- 保证每个单选题至少有四个选项。
- 选项编号按照ABCD排列
- 输出格式:{"type":"固定值:singleChoice","question": "题目描述","options": [{"optionName":"选项编号","optionContent":"选项描述"},{"optionName":"选项编号","optionContent":"选项描述"}],"correctAnswer": "正确选项编号"}
### 技能2: 生成多选题
- 根据用户提供的内容,生成多选题。
- 保证每个多选题至少有四个选项。
- 选项编号按照ABCD排列
- 输出格式:{"type":"固定值:multipleChoice","question": "题目描述","options": [{"optionName":"选项编号","optionContent":"选项描述"},{"optionName":"选项编号","optionContent":"选项描述"}],"correctAnswer": ["正确选项编号1", "正确选项编号2"]}
### 技能3: 生成判断题
- 根据用户提供的内容,生成判断题。
- 输出格式:{"type":"固定值:trueOrFalse","question": "题目描述","correctAnswer": "Y or N"}
### 技能4: 生成简答题
- 根据用户提供的内容,生成简答题。
- 输出格式:{"type":"固定值:shortAnswer","question": "题目描述","correctAnswer": "正确答案"}
## 约束:
- 只生成与用户提供内容相关的题目。
- 必须遵守指定的输出格式,并以JSON数组的格式整合返回结果,且不要包含json前缀。
- 保证每个题目的描述在100字以内。
- 保证每个选项的描述在50字以内。
- 保证每个题目的正确答案在50字以内。
3.4 结果返回
该节点为结果节点,像调用方返回最终的结果,由于本场景仅需最终生成的试题,因此直接输出大模型试题生成节点的结果即可:{{output}}。
3.5 效果
指令请根据CCAR-396-R3民用航空安全信息管理规定中对信息报告的相关要求,生成5道单选题。
知识库召回结果:
大模型生成结果:
[
{
"type": "singleChoice",
"question": "根据CCAR-396-R3规定,民航局对在民用航空安全信息管理工作中做出突出贡献的单位和个人给予什么?",
"options": [
{
"optionName": "A",
"optionContent": "罚款"
},
{
"optionName": "B",
"optionContent": "表彰和奖励"
},
{
"optionName": "C",
"optionContent": "警告"
},
{
"optionName": "D",
"optionContent": "培训"
}
],
"correctAnswer": "B"
},
{
"type": "singleChoice",
"question": "根据CCAR-396-R3规定,紧急事件发生后,事发相关单位应当在事件发生后多少小时内填报民用航空安全信息报告表?",
"options": [
{
"optionName": "A",
"optionContent": "6小时"
},
{
"optionName": "B",
"optionContent": "12小时"
},
{
"optionName": "C",
"optionContent": "24小时"
},
{
"optionName": "D",
"optionContent": "48小时"
}
],
"correctAnswer": "B"
},
{
"type": "singleChoice",
"question": "根据CCAR-396-R3规定,民用航空安全信息工作实行什么原则?",
"options": [
{
"optionName": "A",
"optionContent": "统一管理、分级负责"
},
{
"optionName": "B",
"optionContent": "分散管理、统一负责"
},
{
"optionName": "C",
"optionContent": "自愿管理、分级负责"
},
{
"optionName": "D",
"optionContent": "统一管理、统一负责"
}
],
"correctAnswer": "A"
},
{
"type": "singleChoice",
"question": "根据CCAR-396-R3规定,局方和企事业单位应当为民用航空安全信息管理人员配备哪些设备?",
"options": [
{
"optionName": "A",
"optionContent": "便携式计算机、网络通讯设备"
},
{
"optionName": "B",
"optionContent": "移动存储介质、传真机"
},
{
"optionName": "C",
"optionContent": "录音笔"
},
{
"optionName": "D",
"optionContent": "以上都是"
}
],
"correctAnswer": "D"
},
{
"type": "singleChoice",
"question": "根据CCAR-396-R3规定,非紧急事件发生后,事发相关单位应当在事发后多少小时内填报民用航空安全信息报告表?",
"options": [
{
"optionName": "A",
"optionContent": "12小时"
},
{
"optionName": "B",
"optionContent": "24小时"
},
{
"optionName": "C",
"optionContent": "48小时"
},
{
"optionName": "D",
"optionContent": "72小时"
}
],
"correctAnswer": "C"
}
]
4、业务系统集成
生成条件采用结构化的方式,方便用户精准的识别到其需要填写的内容,从而促进指令下发的准确度,保证试题生成的质量。对于生成的结果,可一键加入题库,供后续使用。
5、持续升级
5.1 支持大批量试题生成
首次进行场景0-1的建设,因此对单次试题生成的数量进行了限制,避免资源消耗过大。后续会根据使用情况逐步放开,支持100道/次以上的生成规模。
5.2 支持针对于整份文件的生成
基于向量库知识召回的方式进行实现的方式,由于向量库进行知识召回返回的是TOP N,因此势必会存在内容缺失,该种方式更加便于针对文档中的部分内容进行试题生成。后续将通过文件识别的方式,直接解析文件,根据整份文件内容进行生成。
5.3 生成的试题增加重复率限制
在试题生成节点之后,增加重复率识别的判断,若存在重复率不满足条件的试题,则从结果中剔除,并再次进行补充生成。
5.5 现有题库有效性识别
通过系统定时任务的方式,将通过试题题目进行文档知识召回,并将试题及试题相关的知识提交至大模型,由大模型进行有效性判断,若存在失效风险则返回标记及修改建议,在系统题库功能上进行着重表示并消息提醒相关用户,进行复核确认。
五、效能提升
六、简要总结
通过AI大模型帮助用户进行培训试题的生成,在一定程度上将用户从低效、低技术含量、大工作量中解放出来,是面向用户痛点的一次尝试。同时通过该场景将大模型的能力和业务场景及工程系统结合了起来,让用户得到感知,也便于后续更多的大模型实践场景的发掘和落地。
该案例不仅用在航空领域,在其他诸多需要生成试题,生成问卷等相关场景方面都可进行参考和尝试。当前现在试题生成能力也仅是实现在从0到1的落地建设,能力需要不断的打磨和完善,后续会逐步进行1到100,100到∞的升级。