StudentSim: Training LLM-based Student Simulators
Ke Yang, Chenglong Wang, Michel Galley, Chandan Singh, Jeevana Priya Inala, ChengXiang Zhai, Jianfeng Gao
cs.CL
2026-09-02
微软 StudentSim 用两阶段 LoRA 把稀疏学情做成每人一个模拟器。象棋保真 0.51、跟教 0.91,均超过 GPT-5.4;用它当奖励训出的象棋老师,专家打分准确率 90.5%。
自适应辅导要知道两件事:这个学生现在会怎么答,以及换一种讲解他会不会改。真学生的反馈又慢又贵,还极稀疏。二语写作语料里,中位学习者只写过 3 篇作文,三分之二以上不超过 5 篇。
现成的学生模拟器各管一段。知识追踪、Maia2 这类状态模型能拟合人怎么走、怎么选,吃不进自然语言讲解。Prompt 一个大模型去演某个学生,讲解跟得挺顺,这个人特有的能力边界和错法却对不齐。辅导模型要的是两个性质同时成立:像这个人,也听得懂教。
StudentSim 把目标拆成两条可算指标。行为保真 F:模拟器对一道题的回答,和这个学生自己的记录有多像。象棋是 top-1 走子准确率;二语写作是错误率和错误类型画像;数学是四选一里有没有选中学生当时选的那项。指导响应 R:给学生的错答和一段辅导,模拟器会不会改到辅导所指向的标准答案。象棋是引擎推荐着;二语是教师批改片段;数学是正确答案。F 管起点,R 管能不能被教。两条分开测:高 F 低 R 是静态模仿,高 R 低 F 是从错误的起点听话。
数据按人切成单轮记录(题到答)和多轮记录(题、错答、辅导、标准改正)。象棋来自 Lichess 2025 年 5 月对局;二语来自 EFCAMDAT 作文加教师批注;数学来自带学生作答的基础辅导语料。评测协议 StudentSimEval 冻结 60 个学生:30 名棋手、15 名二语学习者、15 名数学学生,每个方法用同一套训练和留出切分。
训练是两阶段 LoRA,底座 Qwen3-4B-Instruct。第一阶段把一个领域里所有学生的记录池在一起,学这个学科里学生常怎么错、听了讲解常怎么改,多轮样本占比 0.20。第二阶段用这个人自己的记录接着训,每人一个 adapter。象棋第一阶段 100 人、10 万条,第二阶段 30 人、每人 1000 条;二语更极端,第二阶段每人只有 73 条。解码 greedy、温度 0。主数字是 3 个独立训练种子的均值。
多轮辅导的来源不对称。二语的标准改正是真人教师的 span 批注,讲解按「点出这一处」和「讲这条语法规则」两种模板渲染。象棋和数学没有现成教师评语,讲解由 LLM 按固定风格模板生成,指向的标准答案事先由引擎或审核过的答案键钉死。LLM 只决定怎么说,不决定改到哪。
象棋辅导的 RL 验证把冻住的 StudentSim 当奖励。策略是 Qwen3-VL-8B,读棋盘图加文本,用 GRPO 优化。奖励看模拟器改完之后的 Stockfish 质量,再乘上两个线性探针门:教学风格是否对口、讲解有没有说错格子或虚构棋子。这里用的是第一阶段的群体模拟器,不绑到单个人。对照是不做 RL 的 SFT 老师,以及用 GPT-5.4 扮演学生来给奖励。
| 领域 | 指标 | 朴素基线 | GPT-4o | GPT-5.4 | StudentSim |
| 象棋 F(30 人) | top-1 走子 | 0.4535(Maia2) | 0.2163 | 0.2316 | 0.5150 |
| 二语 F(15 人) | 错误画像 | 0.5130(Qwen3-4B) | 0.4718 | 0.5141 | 0.5624 |
| 数学 F(15 人) | 四选一 | 0.4919(Qwen3-4B) | 0.5121 | 0.6121 | 0.6384 |
| 象棋 R | 改到推荐着 | 0.2721(Maia2) | 0.7655 | 0.7186 | 0.9067 |
| 二语 R | 片段改写 | 0.0200(Qwen3-4B) | 0.3883 | 0.5950 | 0.6417 |
| 数学 R | 改到正确答案 | 0.6132(Qwen3-4B) | 0.6940 | 0.7099 | 0.9181 |
象棋保真比 Maia2 高约 6 个点,比 GPT-5.4 高约 28 个点。跟教才是拉开的地方:0.91 对 Maia2 的 0.27、GPT-5.4 的 0.72。Maia2 没有自然语言入口,R 接近零指导下限。GPT-5.4 跟讲解跟得动,演不准这个人。GPT-4o 的象棋 R(0.77)还高于 GPT-5.4。数学上保真只比 GPT-5.4 高约 2.6 个点,跟教从 0.71 拉到 0.92。二语两边的优势都更窄。
一个留出局面上,三名棋手分别走 e4、e3、Bg5。Maia2 按等级分众数全预测成 e4。GPT-5.4 三个都没对上。StudentSim 三个都对。Socratic 跟教的例子里,讲解只说「从后翼将军的强迫后着」,不提名目标格;StudentSim 走出 f8b4,GPT-5.4 走出错误的 f8f4,Maia2 重复原来的坏兵。
去掉跨学生池化、用一个人的 1000 条重复 100 次凑第一阶段步数,象棋 F 从 0.513 掉到 0.460,R 从 0.900 掉到 0.828。共享先验补的是单人数据补不上的那一块。
8 名竞技棋手、74 条标注,盲评三种老师:
| 条件 | 准确率 | 指导质量(1–5) | 个性化(1–5) |
| 无 RL | 75.7% | 2.99 | 2.80 |
| GPT-5.4 学生奖励 | 71.6% | 3.08 | 2.42 |
| StudentSim 奖励 | 90.5% | 3.31 | 3.93 |
GPT-5.4 当学生奖励,准确率掉到 71.6%,低于不做 RL 的 75.7%,严重事实错误更多。StudentSim 奖励把准确率拉到 90.5%,个性化从 2.80 拉到 3.93。三重复标注和 2000+ Elo 子集排序相同。
prompt 一个前沿模型去演学生,跟教看起来能用,保真不够,拿去当 RL 奖励还会把老师带歪。4B 加两阶段 LoRA,在三个领域都走进高 F、高 R 的角落。代码和切分公开,后来的方法可以在同一套留出上比。
这不是最佳辅导系统声明。象棋 RL 是概念验证:模拟器给的反馈够不够用来改老师。L2 和数学上的保真提升是渐进的。能直接拿去用的,是那套评测协议,以及「学生模拟要同时过 F 和 R」这个目标拆法。
结论把下一步写清楚了:现在测的是状态加一步更新,不是学生跨多次交互怎么学会、记住、忘掉。
象棋和数学的讲解是 LLM 按模板写的。R 衡量的是模拟器会不会改到事先钉死的标准答案,不是真实课堂里学生会不会这么改。二语第二阶段每人 73 条,中位学习者只有 3 篇作文,保真优势最窄,和数据量匹配。辅导 RL 只在象棋上做了,因为有独立于模拟器的 Stockfish 信号;二语和开放数学还缺可靠的自由文本奖励。真人学习效果没有测。L2 和数学没有 Maia2 那种领域专用行为模型,对照主要是 GPT。人类研究 8 人 74 条,规模小。个性化分数很大一块来自风格探针,奖励用的还是群体第一阶段模拟器,不是第二阶段那个每人一个。