找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3802

积分

0

好友

508

主题
发表于 2 小时前 | 查看: 4| 回复: 0

今天看到一个挺有意思的现象。

有人在 DeepSeek 的输入框里敲了几个字符:`` 中间,是模型推理的草稿。

这些字符叫 special token,是模型训练时用来区分谁在说话、在做什么动作的分隔符。它们在词表里都被分配了独立的 ID,模型看到这些 ID,就会切到对应的模式里。

平时我们敲一个「你好」,DeepSeek「看」到的并不是这两个字。它看到的是一段拼好的模板,类似 <|begin▁of▁sentence|><|User|>你好<|Assistant|> ,然后从最后那个 <|Assistant|> 之后开始往下接话。

坑就在这里。

如果用户直接把 <think> 打进输入框,而模板层又没把它当普通文字给「关起来」,tokenizer 就可能把它认成真的控制 token。

这样一来,DeepSeek 看到的景象,就好像一块后台路牌,被人硬塞进了用户留言里。

按训练时的逻辑,模型应该看到「用户问了一个问题,我要回答」。现在模型看到的是 <think> 直接出现在用户的位置,然后什么问题都没有。它的训练数据里压根没这种结构,但它又必须继续生成下去。

它并没有去数据库里捞东西。前缀给到这儿就断了,连个问题锚点都没有,它只能顺着训练时学到的概率分布往下硬编。于是你看到的就是一堆碎片,一会儿数学,一会儿小说,这跟训练数据泄露没啥关系。

到这里就能看出来了,麻烦不在模型脑子里,在模板那层「字符串胶水」上。它没把控制 token 当成普通文字给锁住。

AI模型工作流程示意图:正常输入输出流程与输入特殊令牌`&lt;think&gt;`后导致模型产生异常、混乱输出的对比

这也不是 DeepSeek 一家的毛病。很多模型都有自己的对话格式,早期 ChatML 有 <|im_start|> ,Claude 旧格式也用过 Human / Assistant 这种分隔符。

只是有些商业 API 把这层包起来了,用户摸不到原始模板。DeepSeek 把权重和配置放出来,这些后台路牌就明晃晃地摆在文件里。

Trend Micro 去年的红队报告里有个更危险的案例。他们测的是 671B 的 DeepSeek-R1,问题就出在 R1 默认把思考过程放在 <think> 标签里展示。结果,最终回答里没泄密,但思考区反而把系统提示里的 API key 给带了出来。

所以,如果以后我再看到哪个人工智能模型突然「抽风」,我可能第一反应就是去翻它前面的模板。很多怪事,就卡在那层「字符串胶水」里。

那一行 <think> 撬开的,就是这一层。




上一篇:2025高考AI拍题答疑受限:豆包、元宝等平台将禁用答题功能
下一篇:强化微调驱动的LLM自进化:QuantEvolver Alpha因子挖掘框架
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-28 07:38 , Processed in 0.755530 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表