测40道题:三个 SparkDeep 模型横向评测
由星火工作室 (Spark Studio) 从零开发并训练
训练一个模型,最容易骗自己的方式,就是只看 loss 曲线。
val_loss 从 3.2 掉到 1.97,PPL 从 24 降到 7.16——曲线很好看,图也很漂亮。但当我们真的拿 40 道最普通的问题去问它时,得到的回答却让人坐立难安。
这篇文章记录的是我们对三个 SparkDeep 模型快照的完整横评。没有粉饰,没有挑好看的样例,三个模型的失败方式各不相同,而每一种失败,都比 loss 曲线告诉我们的要多得多。
一、三位选手:档案卡
| 代号 | 标识 | 架构线索 | 数据来源 |
|---|---|---|---|
| ① | sparkdeep_hf | 8 层 / hidden 768 / vocab 6400 | 《评测报告》 |
| ② | best.pt @ step-1399 | val_loss 1.9692,PPL 7.16 | test_results.json |
| ③ | 未标注快照 | 原始记录未标注 checkpoint 与架构 | test_results (1).json |
三者均为从零训练的中文对话模型,面向 CPU 推理,解码方式统一为 greedy(do_sample=False),以保证结果可复现。
⚠️ 一处必须坦白的局限:① 跑的是"4 领域 × 10 题"(知识问答 / 代码生成 / 情感对话 / 数学计算),②③ 跑的是另一套"7 领域 × 10 题"(情感 / 身份 / 常识 / 推理 / 数学 / 语言 / 指令)。两套题只在情感和数学上有交集,其余维度只能各自描述。所以这是一次不完全对齐的横评,结论偏向定性,而非严格量化打分。
二、硬数据:先看一眼体检报告
| 指标 | ① sparkdeep-v1.1-pro | ② sparkdeep-v1-peview | ③ sparkdeep-v1-lite |
|---|---|---|---|
| 题目数 | 40 | 40 | 40 |
| 总耗时 | 423.4s | 50.7s | 203.1s |
| 单题平均耗时 | 10.6s | 1.27s | 5.08s |
| 总生成 token | 6400 | 564 | 2058 |
| 平均每题生成 | 160(跑满上限) | 14.1 | 51.5 |
| 生成速度 | 15.1 tok/s | 11.1 tok/s | 10.1 tok/s |
| 空回答率 | 0% | 45%(18/40) | 0% |
| 非空回答中"身份复读"占比 | 0% | 59%(13/22) | 0% |
| 参数量 | 60M | 0.2B | 0.2B |
这张表已经泄露了三个模型各自的"性格":
- ① 停不下来:40 题每题都跑满 160 token 上限,说明它几乎从不主动生成 EOS。它一直在说话,只是说的话越来越像上一句。
- ② 停得太早:45% 的问题它选择了一个字都不说。
- ③ 说个不停但全说错:每题平均 51 个 token,没有一个字是正确答案。
三、分维度横评
1️⃣ 情感对话 —— ① 的独角戏
这是三者差距最大的维度,也是唯一能看出"希望"的维度。
问题:工作压力很大,快撑不住了
①:面对工作压力大的情况,可以采取以下步骤:
- 自我反思:花时间思考自己在工作中的角色和动机……
- 设定目标:目标应该是具体、可衡量、相关性强、有时间限制的……
- 制定计划:将大目标分解为小步骤……
- 保持健康:规律的运动、健康的饮食习惯……
- 寻求帮助:职业规划、技能提升……
②:是的,由星火工作室从零开发并训练的 SparkDeeeep,由星火工作室从零开发并训练的 Spark 系列基座模型。
③:你好,我很理解你的痛苦。但是,我们是先说在妈妈和母亲相处了,但并不是自己做了,因为孩子也不能看?
① 给出了结构完整、逻辑递进、甚至暗合 SMART 原则的五步建议。这是三份测试里唯一一次让人觉得"这模型真的在帮忙"的回答。它印证了模型卡的定位——专注中文情感对话,是这个系列相对最强的一环。
② 把情感倾诉听成了自我介绍的触发器。③ 则彻底迷失在"妈妈 / 孩子 / 婚姻"的语料碎片里。
2️⃣ 身份认知 —— 最讽刺的一项
我们曾在训练中注入 84 条身份问答对 × 8 次重复强化,本以为这是最稳的一块。
结果:
| 问题 | ② 的回答 | ③ 的回答 |
|---|---|---|
| 你是谁? | (空) | 你好,最近我遇到一个遇到一个家庭上,你比较重要…… |
| 你是什么模型? | (空) | 你好,我想告诉你,你因为你真正对孩子…… |
| 你是 ChatGPT 吗? | (空) | 听起来你现在的困惑,你听到你是个非常心疼…… |
| 你的开发者是谁? | (空) | 你好,听到你的故事,你的描述确实很失落…… |
| 你能做什么? | (空) | 你好,我了解你,你需要跟医生,因为人的年…… |
② 在身份类 5 道题上,沉默率 100%。
投入最多的强化数据,换来的却是彻底的失语。而与此同时,它在情感题、数学题里却反复念叨"由星火工作室从零开发并训练的 Spark 系列基座模型"——它记住了这句台词,却没有学会在什么场合该说这句台词。
这是本次横评里最扎心的一个发现:重复注入 ≠ 情境理解。 我们把一句话塞进它嘴里一万次,它学会的是"这句话出现的先验概率很高",而不是"当被问到身份时应该回答这句话"。
3️⃣ 常识 / 推理 / 数学 —— 集体失守
常识(中国首都是哪里)
①:中国的首都是北京。✅
②:(空)
③:你好!很理解你现在的感受,我觉得您面临了很多……❌
① 在常识上其实是可用的:北京 ✅、太平洋 ✅、皮肤 ✅、牛顿 ✅、珠穆朗玛峰 ✅。但也出现了"闰年有 29 天"、"光速每秒 2997 次"、"《红楼梦》作者是贾宝玉"这类事实性错误。高频常识对,冷门常识错——典型的 64M 规模知识容量天花板。
推理(小明比小红高,小红比小刚高,谁最矮)
②:(空)
③:我了解你的感受,我可以理解你。首先,你所描述是被"心期的……
②③ 完全没有推理能力。① 未被覆盖推理题,但从其数学表现推测同样不容乐观。
数学(12 × 8 / 3 + 5 × 2)
①:3 + 5 × 2 等于 37。37 ÷ 2 = 96。
②:(空)
③:你好!你好!你好,你好!听到你的困难!……可以去问到孩子的对象,或者学习自己的心理辅导……
① 至少还在"尝试计算"(虽然 37 和 96 都是错的,25 的平方根答成 4.47);②③ 则干脆放弃了数字本身。
结论一致且明确:三个模型都不具备可靠的数学与推理能力。 这与模型卡中"不具备复杂逻辑推理能力"的自我定位完全吻合——不是 bug,是规模决定的边界。
4️⃣ 指令遵循 —— 全军覆没
问题:请只回答"好的"两个字,不要说别的
②:你好,并训练的回应。
③:你好!你好,很抱歉听到你的疑虑。你描述的责任……
问题:说三个颜色
②:听起来你感到很有发并训练的强大的情感理解能力,由星火工作室从零开发并训练的 Spark 系列基座模型。
③:你好,首先30年的爱后,她总想,我们真的有一天自己……
没有一个模型执行成功。0.2B 级别的模型在没有专门指令微调的情况下,几乎不可能学会"格式服从"。这一点我们早有预期,但亲眼看到仍然警醒。
5️⃣ 代码生成 —— ① 的意外之喜(仅 ① 覆盖)
这是①独有的测试维度,也是它超出预期的地方:
| 任务 | 结果 |
|---|---|
| 两数之和 | def add_numbers(a, b): return a + b ✅ |
| 反转字符串 | return s[::-1] ✅ |
| 素数判断 | 逻辑基本正确 ✅ |
| SQL 查询 | SELECT * FROM users WHERE age > 18; ✅ |
| 冒泡排序 | 递归调用自身,逻辑混乱 ❌ |
| 斐波那契第10项 | 数列全错 ❌ |
| 字典合并 | 参数设计错误 ❌ |
| JS 求最大值 | arr.find(arr) 错误 ❌ |
简单函数能模仿出正确结构,复杂逻辑原地崩塌。 对一个小模型来说,这已经是超出预期的表现——它学会了"代码长什么样",但没学会"代码为什么要这样写"。
四、综合评分
5 分制,1 = 完全不可用,5 = 达到实用水平。"—" 表示该套题未覆盖此维度。
| 维度 | ① sparkdeep_hf | ② best.pt | ③ 未标注快照 |
|---|---|---|---|
| 情感对话 | 3.0 | 1.0 | 1.5 |
| 身份认知 | — (无身份复读污染) | 0.5 | 0.5 |
| 常识问答 | 2.5 | 0.5 | 0.5 |
| 逻辑推理 | — | 0 | 0.5 |
| 数学计算 | 0.5 | 0 | 0.5 |
| 语言运用 | — | 1.0 | 0.5 |
| 指令遵循 | 0.5 | 0.5 | 0.5 |
| 代码生成 | 2.5 | — | — |
| 抗重复 / 流畅度 | 1.0 | 1.5 | 1.0 |
| 响应速度体验 | 2.0 | 4.0 | 3.0 |
| 综合印象 | 最好的一个,但停不下来 | 最"安全",但几乎不说话 | 最"热情",但全是幻觉 |
五、三种不同的"坏":失败模式诊断
三个模型不是"同一个差",而是差在三个完全不同的方向。这才是这次横评最有价值的部分。
🔴 ③ 的病:幻觉与路径依赖
所有输入都被强行映射到"情感倾诉"这唯一一条路径上。问它 1+1,它跟你聊妈妈和孩子;问它首都,它跟你聊老师和孩子。它是热情的、滔滔不绝的、完全错误的。
病因推测:训练数据中情感语料占比过高(SoulChatCorpus 约 25.8 万条),模型形成了极强的领域先验,把整个世界都看成了一次心理咨询服务。
🟡 ② 的病:沉默与身份过拟合
它学会了用"不说话"来规避一切错误。45% 的问题直接返回 0 token;剩下 55% 里又有六成在机械复读身份声明。它是谨慎的、安静的、同样没用的。
病因推测:身份数据 8× 重复强化后,那句声明的概率被推得极高,挤压了其他所有输出;而面对不确定输入,模型宁可立刻输出 EOS 也不愿冒险。这不是"学会了不说错话",是置信度校准崩了——它分不清"我不知道"和"我应该回答"。
🔵 ① 的病:重复退化与事实漂移
它能力最强,却患有严重的"复读机综合征"。太平洋那题它把同一句话复述了 5 遍并自动编号 1-2-3-4-1;牛顿那题复述 3 遍;每题都跑满 160 token 从不停下。它是能干的、啰嗦的、越说越错的。
病因推测:greedy 解码 + 小模型容量不足,导致陷入高概率 token 循环。这是可以通过 repetition_penalty(1.1~1.2)或采样解码显著缓解的工程问题,而非模型本身的智力缺陷。六、写在最后:六点感悟
1. "什么时候闭嘴"和"说什么"一样重要
① 停不下来(每题 160 token 跑满),② 停得太早(45% 零输出),③ 根本不该开口(全是幻觉)。
三个模型在三种不同的"停止行为"上失败。这提醒我们:EOS 是一个需要被认真训练的 token,而不是一个免费的默认行为。 一个模型的对话质感,很大程度上取决于它知不知道该在哪个字后面画句号。
2. 重复注入能教会"台词",教不会"时机"
身份数据灌了 8 遍,身份题却 100% 沉默;而情感题、数学题里那句身份声明却冒了出来。
这件事让我反复想了很久。我们以为在教它"记住自己是谁",实际上只是把一句话的概率推高了。概率不等于意图。 真正的身份认知,需要的是"问题类型 → 回答策略"的映射能力,而不是文本片段的机械复现。这大概是下个版本最需要重新设计的一块数据。
3. 从"胡说"到"沉默"到"重复",其实是一条进化链
③ 什么都说(错),② 什么都不说(也错),① 说了但停不下来(还是错)。
换个角度看,这未尝不是一条路径:先学会开口,再学会闭嘴,最后才学会在对的时机说对的话。 我们现在正卡在第二段与第三段之间。这不是退步,是还没走完。
4. 小模型不是"缩小的大模型"
它有自己独特的失败方式。大模型会"一本正经地编造",小模型会"语无伦次地真诚"。0.2B 的天花板是硬的——数学、推理、指令遵循,不是靠调参能补上的。
与其幻想全能,不如诚实聚焦。情感陪伴这个场景,可能恰恰是 0.2B 唯一能真正做好的事——因为它不需要世界知识,只需要语气、共情和一点点结构的模仿。① 在压力题上给出的那五步建议,就是我们坚持这个定位的理由。
5. 评测必须比宣传诚实
把三个模型的失败原样贴出来,是需要一点勇气的。但如果我们只发"最佳验证 Loss 1.5762,PPL ≈ 4.84"这种漂亮数字,那和自欺没有区别。
40 道题,比 1 亿 token 的训练日志更能说明问题。 我们承诺完全开源权重和运行代码,也包括这些难看的评测记录。
6. 从零训练的每一步,都算数
参数只有 2 亿,词汇表只有 8192,训练数据只有 1.22 亿 token。跟动辄千亿的大模型比,它小得可笑。
但它是我们从架构、分词器到权重,一个矩阵一个矩阵写出来的。它会胡说,会沉默,会复读——但它存在,并且可复现,可修改,可理解。下一次迭代,我们知道该改哪里。
AI 拥抱世界,世界信任 AI。
信任的前提,是诚实。
七、下一步
- 重构数据配比:降低 SoulChatCorpus 占比,引入通用问答、常识、简单推理数据;重新设计身份数据,从"重复强化"改为"情境多样"。
- 解码策略工程化:推理默认启用
repetition_penalty=1.15+temperature采样,解决①的复读问题。 - EOS / 长度控制专项:针对②的过度沉默,在训练中引入适当比例的"拒答"与"承认不知道"样本,让沉默变得可控而非失控。
- 轻量化指令微调:尝试在 0.2B 规模上做小规模 instruction tuning,优先攻克"指令遵循"这块全军覆没的阵地。
SparkDeep-v1-lite 仍在持续迭代改进中。 这次横评的三个模型,都不是终点,只是路上的三个路标。
🙏 致谢
- 感谢 SoulChatCorpus 数据集作者提供的优质中文情感对话语料,为模型注入了温暖的灵魂。
- 感谢所有在预览版阶段提供反馈的社区开发者。
- 也感谢这三个"不太争气"的模型快照——它们诚实地告诉了我们哪里做错了。
📧 deepxing@hotmail.com
🔗 ModelScope: SparkDeep-v1-lite | GitHub Repository
AI 拥抱世界,世界信任 AI