返回目录
<|im_end|>
Kimi K3 分词器中 7 个「幽灵」special token 的代表:这些 K2 时代的 ChatML 名称被硬编码注册,却全部落在词表声明范围之外。
原始 token
"<|im_end|>"
异常表现
- 01tokenization_kimi.py 硬编码的 K2 遗留列表把 <|im_end|>、<|im_user|>、<|im_assistant|>、<|start_header_id|>、<|end_header_id|>、<|im_system|>、<|im_middle|> 注册在 id 163840–163846,而 config.json 声明 vocab_size 为 163840(最大合法 id 163839)——七个全部越界。huggingface.co
- 02两条编码路径结果不一致:tok.encode 走 tiktoken,把 <|im_end|> 编码为普通 BPE id [27, 91, 348, 11129, 91, 29];而 tokenizer(...) 调用返回越界的 [163840]——喂给嵌入层即 IndexError(GPU 上对应 device-side assert)。任何用 tokenizer(...) 处理不可信输入的部署都可能被一条普通 prompt 打崩:属崩溃/DoS 面,而非提示注入(K3 真正的协议 token 是另一套,无法借此伪造对话边界)。huggingface.co
- 公开记录于
- Kimi (Moonshot)
- 发现者
- paulch11 (Hugging Face)