推荐语
探索AI教育新边界:如何为个性化学习打造专用记忆结构,解决"AI幻觉"难题。核心内容: 1. 从教育实践痛点出发,揭示个性化学情数据的价值与挑战 2. 提出专用记忆结构概念,对比通用记忆结构的优劣 3. 详解AI学情知识库的设计原理与行业应用前景
杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家
本文创作机缘:上周参与教育企业内部AI比赛活动,我看到了各岗位对个性化学情的迫切需求,激发我这台AI大脑生成了一些新的信息。我意识到,有一个公共组件可以被抽象出来,姑且叫做AI中台的学情知识库吧。
广义上的RAG,和上下文工程,在我看来就是同义词。如果AI的工作记忆空间(最大输入+输出tokens)每次都能包含恰当的输入,那么只要AI推理性能良好,计算结果就会与预期方向一致。好的推理能力不止和AI内部权重有关。AI自己的权重是被压缩的智能,它必然会随着人类社会的发展而永无止境地升级,无论这个升级过程(训练/微调)是手工的、半自动的、全自动的。然而,推理能力更需要充足的信息燃料,没有好的燃料,计算方向就会跑偏,以至于出现一眼就能识破的“AI幻觉”。所以,充足的信息燃料,也就是RAG地嵌入在AI工作记忆的信息,是智能的关键。这一点和人一样,无论系统1、系统2,人在刺激-反应过程中,也都是输入信息,经过机体计算,输出/生成反应。
你可以在与AI任何对话中,带上公域信息(比如光速是多少),那么私域信息呢?我常说,AI永远不知道你家有几个抽屉,除非是和你生活在一起的具身智能机器人,因为它(或者“他”/“她”)处于和你相同的环境信息场。要从权限区域(比如你家的门和围墙所圈定的私密空间)中获取私域信息,其结构和算法非常重要。我更喜欢称其为记忆。模型自身的记忆被固化在权重里。同样地,外部的记忆需要稳定且明确的结构才会表现出来。可以构建像mem0的通用记忆结构。这种结构会慢慢“长大”。因为通用,所以适用于任何环境信息场,它拥有自适应的能力。但是这个过程是缓慢的,而且不同的mem0实例,即便在相同的环境信息场,也会生长出近似但不完全相同的记忆结构。实际上,高山流水,知音难觅。而且通用结构的副作用之一,和人一样,就是被锚定,或者说固化。修改自身已经相对稳定的认知,并不是一件容易的事情,需要比创建该认知更大量的环境信息场刺激,特别是基于当前成熟认知下的反例刺激。这就是为什么各领域的设计人员宁肯重新设计,也不想“屎上雕花”,因为反向推导并融入他人认知所消耗的算力太大了,远远高于重新设计。很长一段时间以来,我痴迷于构建通用记忆结构。而现在,我觉得专用记忆结构同样非常重要,而且似乎是必不可少的。因为它给计算工具提供了稳定的记忆,是智能行为表现的关键。
在AI比赛中,我看到了许多自适应学习的“切面”/“片段”,几乎所有项目都和个性化学情直接关联,甚至是信息的源头。大模型不知道关于学情的任何私有信息。比如,如果我问AI:“张三的第三节课做得怎么样?他还有什么薄弱项?”显然,这和你直接问AI“我家有几个抽屉”的结果是一样的。我意识到,需要构建一套企业内部的学情知识库,API地或LUI地交互,使得有权限的人/智能体获取私有学情信息,从而开展围绕组织成员/智能体自身目的的计算活动。这需要稳定的专用记忆结构。如何设计这样的结构?这是一个领域问题,因此需要教育专家为主导,配合技术专家确认技术可行性,一同构建。
从教育角度,学习表现是学习结果的评价证据,评价指标是学习目标的外在表现。据此,就容易设计出记忆的结构,然后配合技术专家将其实现。在我熟悉的实践中,课程结构是这样的(在外一层是“课程体系”,下图忽略):最小单位是教学环节,它是记忆系统中的长时记忆中的情景记忆。学情 = 提示词(学习目标, 情景记忆_1,..., 情景记忆_n)学情就是非常重要的结构,也是教育专家的核心建模。说到底,它就是长时记忆中的语义记忆。
我花一天时间用cursor做了一个原型,模型Doubao-Seed-1.6-thinking。先看看cursor为我虚构的课程/单元/单课/环节模型,其中包含课程目标(courses.objectives)、单元目标(units.objectives)、单课目标(lessons.objectives),以及情景记忆碎片(steps)。
{
"courses": [
{
"id": "python-course-2023",
"name": "Python编程基础与实践",
"description": "专为K-12学生设计的Python编程课程,注重实践能力培养",
"objectives": [
"运用Python基础语法解决简单的编程问题",
"分析并实现基本的算法和数据结构",
"设计并开发简单的应用程序",
"评估代码质量并进行优化"
],
"tools": ["Python"],
"grade_range": "7-12",
"units": [
{
"id": "unit-1",
"name": "Python基础语法与结构",
"objectives": [
"正确使用Python基本数据类型和运算符",
"构建基本的控制流结构(条件语句和循环)",
"创建并调用函数实现代码复用",
"应用字符串和列表操作解决文本处理问题"
],
"lessons": [
{
"id": "lesson-1-1",
"name": "Python入门与基本数据类型",
"objectives": [
"安装并配置Python开发环境",
"区分并正确使用数值、字符串和布尔类型",
"应用基本运算符执行数学和逻辑运算",
"使用变量存储和操作数据"
],
"steps": [
{
"id": "step-1-1-1",
"name": "环境安装与配置",
"type": "instruction",
"content": "讲解Python的安装方法与开发环境配置",
"duration": 15,
"assessment": false
},
{
"id": "step-1-1-2",
"name": "变量与数据类型",
"type": "concept",
"content": "介绍Python的基本数据类型和变量声明",
"duration": 20,
"assessment": false
},
{
"id": "step-1-1-3",
"name": "基本运算实践",
"type": "exercise",
"content": "完成5个基础运算的编程练习,覆盖各种数据类型的操作",
"duration": 25,
"assessment": true,
"exercise": {
"description": "实现一个简单计算器,能够进行加减乘除和取余运算",
"requirements": [
"接受用户输入的两个数字和一个运算符",
"根据运算符执行相应的运算",
"处理可能的异常情况(如除零错误)",
"格式化输出计算结果"
],
"sample_code": "# 请在此实现简单计算器功能\n\n# 获取用户输入\n\n# 执行计算\n\n# 输出结果",
"evaluation_criteria": [
"程序能正确处理所有基本运算",
"代码对异常情况有适当处理",
"变量命名符合规范",
"输出结果格式正确"
]
}
}
]
},
这些目标和情景记忆,是构建专用学情记忆结构的必需信息燃料。我让AI设计了一个虚拟的提交情景记忆的组件,选择好课程/单元/单课/环节的坐标,提交情景记忆。提交情景记忆之后,系统会整合已有的情景记忆,配合课程中的各层目标,向AI提交教育专家所设计的知识\技能\能力维度的提示词算法,计算出其抽象的学情描述。你可以看到张三的每个知识/技能/能力节点情况,以图结构。每个节点都有明确的情景记忆作为其证据。例如,右下角的能力“代码初步调试能力”,就是因为刚才(在提交情景记忆时)系统发现张三的创作过程中存在调试行为,而只要这个行为是教育专家关心的,就可以指导教&学平台记录该信息。张三的全部能力评价都是基于教育专家的期待,并且所有评价都有明确的学习表现作为证据。(虽然这不是典型意义上的“表现性评价”范式。)
例如,我撰写了一些提示词,它们可以根据学生的学情,做学习预警、生成干预计划、撰写学习报告,或者单纯的能力分析。学情预警和干预中,AI计算了我和课程设定的目标差距。学习报告中,AI计算出“张三”的各种统计数据,以及待提升建议。能力分析中,是AI以谷歌CT四要素为理论依据的评价(实践中需要教育专家细化,或者转换为自己领域的评价维度)。你可以看到,上面和业务相关的一些活动,都是有证据可依的,不是瞎胡说的,这就是记忆的作用。
除了直接耦合业务需求,还可以开放式地和学情知识库聊天。比如,我问了一下系统关于张三的学习情况,AI会自动调取查询数据库的tools,去寻找相关信息燃料,来生成张三的学情。实际上,这里可以做的事情非常多,也能很好地激发教\学创造力。如果开放给学生使用,或许它会比学生都更了解自己。