苏喻博士,2011 年 7 月至 2022 年 2 月就职于科大讯飞研究院,历任科大讯飞 AI 教育研究院副院长,AI 研究院认知群教育条线负责人,学习机业务线教研总监,重点负责教育领域个性化学习业务,包括个性化学习相关模型研究,产品设计,服务研发等,其研发的多项成果已经成功应用到讯飞智学网、讯飞智能学习机等相关产品中,于 2018 年获得讯飞首届华夏创新奖,获 2020 年吴文俊人工智能科学技术奖科技进步一等奖。先后参与多项安徽省、部级等层面的重大项目科研工作,如国家自然科学基金重点项目、科技部重大专项等。其间获得多项发明专利,并在 AAAI、KDD、IJCAI 等国际知名学术会议与期刊发表文章近 30 篇,其中 CCF 推荐会议论文 A 类文章 7 篇,中文核心期刊论文 5 篇,SCI 检索英文期刊论文 10 篇。
(1)个性化学习
,孔子提出因材施教的观点,但受限于校内大班教学现状,传统教学方案无法满足学生的个性化需求。
目前市场上的个性化教育产品呈现井喷的态势,如科大讯飞的学习机、腾讯课堂、松鼠 AI(原易学)等,通过信息化及人工智能方法对学生能力进行诊断,并给出推荐。
(2)科大讯飞产品
科大讯飞学习机,自 2019 年开始发力至今成为头部,主要提供给学生自主性、个性化的学习方案,节省学生时间,提高学生的学习兴趣。平台和教师通过学生在平板上的学习,分析学生的做题情况和能力水平,提供给学生一个个性化的知识图谱,学生可依据该图谱对薄弱知识点进行自主强化学习。同时,学习进展可视化,使学生可以了解每天的进步情况,提升学习兴趣。
百度、作业帮等工具,针对考试错题,通过拍搜即可得到正确答案,这样容易导致学生抄答案不再深入思考。而科大讯飞的个性化学习手册是基于考试情况和错题,给每个学生推荐个性化的题目(无答案),同学间无法互相抄。此外,科大讯飞的产品对于试题有较好的表征,同时错题推荐更具科学性。
多模态资源理解,将包括文本、立体几何图像、音频等在内的试题独立编码到各自多模态的空间中。然后进行多模态的语义对齐、self attention、Multi task 等工作。一道题的知识点、考点、难度作为其标签,这些信息全部映射为空间中的一个向量。传统试题打标签需要人工完成,一方面人工费高,另一方面主观性强,一致率低。通过机器打标签可以提高准确率。
根据学生做的一道错题,通过一些相关的内容和语义推荐类似的题目,一方面在双减的情况下,学生更容易掌握错题相关的知识点;另一方面,教师可以针对上课中学生做错的例题,搜集到相似题目作为学生的课堂作业,提升备课效率。
③错题难度-最近发展区理论
基于教育心理学中的最近发展区理论,推荐简单的内容,学生觉得无趣、浪费时间;推荐太难的内容,会使学生丧失信心。因此推荐题目的难度非常关键,应是稍高于学生当前水平,可通过一定时间学习达到目标,感受到成就感,这样才可以提升其学习兴趣。
④实现方法-同分异构学生错题
实现的方法是收集所有学生的答题记录(百万级别,当前到亿级),放于教育认证诊断模型中,将学生的信息映射到一个空间里,通过寻找目标学生的同分异构学生(水平类似,知识结构有较小的差距),将同分异构学生的错题推荐给目标学生。这是基于假定——该类错题对于目标学生更容易学会。
⑤解释性及可视化-知识图谱
针对 C 端场景对于解释性的需求,通过大量的学生数据,基于多模态的编码,将学生的能力映射到一个知识图谱上,为学生提供个性化的学习路径,提升其学习效率和学习积极性。
学生基于该图谱,可进行一系列操作,如针对红色的知识点,点击后会出现一条设计好的学习路径。
(3)青少年编程
素质教育-编程领域 ,学生对个性化学习的需求更多,难度更大。除了中小学生外,高校学生在上编程实验课时,也会遇到各种问题,老师也会遇到无法针对每个学生的问题一一解答的困境。青少年编程课程,无论是公立校还是教培,即使小班也会是 1 对 6,每个学生在每分钟都会有其个性化的问题(如调不通)等待老师回答。公立校中,老师会尝试性将大部分同学搞不定的问题的标准答案放于屏幕上,私立校会基于学费和学时,重点支持解决问题,但仍难以满足个性化学习的需求。
此外,编程教育中会采用 OJ 试题,与传统教育试题不同,会对题目有要求,OJ 试题的题面要求包含题目描述,规定了输入输出规范。一个 OJ 试题包含多组用例,一个代码用例由一个输入和一个输出组成,测试学生所写的代码是否符合预期。
个性化编程平台包含代码修复、代码提示、辅学指引三部分。
学生写完代码后,基于大模型的认知诊断,对代码进行修复,根据学生当前的水平,给出代码提示和步骤。
基于研发的底层编译器,为用户提供了中文 debug 界面,此外还会针对学生的基础语法等弹出相应的知识卡片。这样可以解决用户 80% 到 90% 的个性化问题。
基于上述代码提示,教师只需解决 10% 的共性难点问题,有助于将编程学习顺畅地进行下去,提升学生的编程积极性。
(1)数据稀疏
当前大数据的量很大,但数据稀疏。如平台虽然存在海量的学生编程数据、答题数据,但对于某一个学生的记录是有限的。如何根据学生在平台做的几道编程题,对其进行很好的诊断,是一大挑战。同样,数据稀疏的挑战也存在于其他领域,如医疗大模型,企业可获得很多病人的案例,但平台上某一个人的病例,可能只有一两例。
(2)学习延时性
针对学生的推荐,是否使其学习能力提升,能否通过编程等级考试,是无法即刻体现的。学习型的问题,其推荐的收益不易监控,学习效果会延后体现(可能很多天,甚至半年)。
纯 C 端的广告推荐,相对更容易体现效果,推荐内容后,是否点击、购买等都可以通过打点获取到效果信息。
应用大语言模型去辅助青少年编程,一方面依赖大语言模型的 NLG(Natural Language Generation)能力,可对提示做出连贯且符合上下文的文本回应,另一方面凭借大模型的 Zero-shot 或 Few-shot 的学习能力,可以帮助理解新任务,并在最小提示和样本下达到有利结果。此外,大语言模型也展现了强大的跨领域泛化能力。
针对数据稀疏或者个人真实数据较少的现状,如何实现 Zero-shot 能力?是否可以基于其他领域的知识,通过大模型实现泛化学习?团队就此开展了以下几个工作:一是青少年编程垂类大语言模型,二是基于小知识的大模型学习,三是基于大模型的仿真强化认知推荐。
垂类大语言模型和小知识大模型主要解决数据稀疏性的挑战,基于大模型的仿真强化认知推荐解决收益闭环太长的问题。
1.编程垂类大语言模型
编程垂类大模型构建流程主要包括数据获取、模型训练和知识注入三个步骤。
通过对成熟优秀的 LLM 提问,让其模仿孩子给出错误代码。在编程领域这种做法的一大问题是,得到的回答可能经常是一些简单的语法错误,比如缺少一半括号,这对于编程领域大模型是没有帮助的。
因此,我们构建了生成数据鉴别器,来区分生成的数据和真实的数据。
同时,我们也通过 Prompt 生成器,来自动生成更为真实的指令。
最终,基于这样两个模型的对抗神经网络进行错误代码生成,使得生成数据的分布与真实数据非常接近。
在开源大模型 LLaMA 基础上,通过 Lora 微调生成代码相关的垂类大模型,实现输入错误代码,生成正确代码。然而有时错误代码修正后,虽与标准答案很像,但仍存在一些逻辑上的错误,无法通过测试用例。
因此提供了测试评估的接口,对答案进行评分。整个微调有两个监督信号,本质上有两个 loss,首先要求修复的代码与标准答案很像,第二要通过测试用例,通过得越多,评分越高。这一工作,我们称之为对偶数据,因为标准答案和测试用例在本质上是对同一事物的两种描述。
(3)基于历史经验的知识注入
由于原始数据量不同,通过历史经验,将成功修复案例持续注入本地嵌入向量库中,通过提示相似错误解决的历史经验,提高模型修复的准确率。
如上图测试了四个大模型—GPT3.5、LLAMA2、Vicuna-13B 和文心一言,经过历史经验知识注入后嵌入式寻找协同数据,使得大模型的代码能力较原来未采用知识注入的效果有较大的提升。
此外,以代码修复为例,与 ChatGPT3.5 对比,经过上述知识注入后微调的结果,在关键字错误、分号缺失、括号不匹配、变量类型错误等方面都有提升,平均提升 20%,大部分任务优于 GPT3.5。
通常面临如下的问题:基于整理好的垂类领域数据,如 TB 级别的数据灌入到大模型中,但是大模型只能对已经输入的特定知识进行回答,泛化一些的问题,则完全无法给出答案。如何基于小的垂类知识,激活大模型相关能力?下面以知识问答为例,介绍基于小知识的大语言模型学习。
多层知识体系:我们采 用 人机耦合 方式构建 分层知识图谱 ,下层为粒度细的知识点,上层为泛化的知识。利用大模型,自己挖掘节点之间的关系。
示例: 二分查找怎么做?
这样,将二分查找的相关细节输入到大模型中进行微调,经过微调的大模型更有机会激发得到正确的答案。
多轮迭代的大语言模型小知识学习。
学生问循环累加哪里错了?
知识注入后,大模型了解了概念,但是仍然无法回答问题,原因在于 prompt 不够好。通过模仿 prompt 工程师,可以有效提升大模型的效果。这样解决了只是简单将语料给到大模型,大模型没有办法激活相关能力的问题。
3.强化认知推荐
由于给学生推荐学习路径的收益显现历时较长,如何评判哪个学习路径推荐更好呢?两个水平近似但知识分布不同的学生,推荐的学习路径也应不同。面对上述挑战,我们采用了强化学习的方案,推荐模型即为 Agent,缺乏的环境通过大模型模拟生成,也即 基于大模型的仿真强化认知推荐 。
融合大模型和传统深度知识追踪模型,模拟环境的收益和状态变化情况。
学生的知识图谱:
通过大模型解决了没有交互数据(即推荐学习后状态和收益数据)实现强化学习的问题。
在原来比较小规模数据中,实现学会一道题,按照之前逻辑可能需要 9 步,通过当前的方式,提高推荐能力,解决同一道题目,只需要更少的步骤。
在中等知识点学习中,强化认知推荐比普通的认知推荐平均步骤下降了 30%,有更高的学习效率。
1.青蛙编程平台
上述教育大模型,已集成于青蛙(找 bug)编程平台和 AI 编程学习机中。
青蛙编程平台可以实现 AI 自主学习,基于知识卡进行智能交互式练习,更加轻松有趣。当前已与多位名师、多家机构合作,服务 2 万 + 学生,基于数据驱动的教学更高效、精准。
上述技术已经发表 40+论文、10+ 专利。
AI 编程学习机采用了墨水屏幕,无蓝光,更护眼。
智能教辅示例:
学生: 这道题怎么做?
大模型: 给出一些提示
学生: 基于提示还是不会做,怎么办?
大模型: 给出正确答案
学生: 将正确答案抄写后,编译通过,但未通过测试用例
大模型: 英语少了一个字母
学生: 终于完成这道题目
智能教辅一方面解决了通常只能一对一才能解决的问题,另一方面孩子自主完成题目,提升其自信心和学习兴趣。同时可以让教师集中精力解决共性的难点问题。
平台中集成了青少智慧编译器(智能云端编译器),超过行业头部品牌。
编译器具有如下四大优势:
录播课通常为老师持续输出 内容,学生可能无法长时间专注。基于数字人的 AI 录播课平台,提供了个性化课程、智能化老师、精准化练习。
下为一段示例:
虚拟老师 :如图,目前公认的在中国适用的 BMI 标准是:当 BMI 小于等于 18.4,说明你的体重偏瘦。当 BMI 大于 18.4,小于等于 23.9,说明你的体重正常。当 BMI 大于 23.9 且小于等于 28.0,就是过重。当 BMI 大于 28.0 就达到肥胖程度。
孟同学 :为什么 BMI 大于 28 是肥胖而不是 27?
虚拟老师 :BMI 大于 28 被定义为肥胖是基于大量的研究和统计数据得出的结论,这个标准是根据全球范围内的人群数据进行分析得出的。不同的人群可能有不同的标准,但是 28 是一个被广泛接受的标准。
青蛙编程平台以及数字人 AI 录播课平台,涵盖优质的学习资源,可对标行业头部品牌,集成了智能云端编译器,已经超过行业头部品牌,与金牌教练名师合作制作专属AI 录播课,打造私人专属课堂。
1.大模型 VS.“小模型”
大模型能力全面,但存在如下限制:
通常需要数天甚至数周的时间,需要高效的算法和硬件加速训练过程。
中小厂的取胜之道,降低模型 size、做定制化、本地化。
在通用大模型上,小公司与大公司有较大的差距,但小公司基于小而美的专家团队,融入领域知识,结合知识图谱,可以在垂类大模型上赢得先机。
3.“人工的智能”在于精细化的数据
智能”胜在垂类的精细化数据。中小厂做垂类大模型的商业模式,一定不是花钱做标注,那将需要非常大的资金成本。中小公司可通过设计商业模式,让用户免费“帮忙”标数据。例如,我们有虚拟老师、自主编程平台,孩子在完成代码的修订过程中,就是在帮忙标记数据,随着业务的推广,数据飞轮效应将逐渐显现。
Q1:贵司的教育大模型是如何训练微调的?
A1:由于当前很多大模型相关训练和微调的技巧未写专利和论文,今日更多分享的是思路,用的还是通用的一些方法,如 SFT 等。
Q2:小知识学习中,客体知识多,但是单个用户(主体)的知识很少的问题,是如何来增强解决的?
A2:对于主体知识的补足,我们基于对抗神经网络,通过仿真生成更多的主体数据。例如,一个学生在平台做了三道题,基于其他学生的题目,通过大模型仿真模拟学生做第四道题、第五道题、第六道题。同时基于对抗神经网络实现模拟的题目与学生的真实水平一致。