郭震 AI公众号:郭震AI

实时 AI 消息

IBM 发布 Granite 4.1 LLMON 预览模型,用专用标记语言对抗提示注入

IBM Granite 团队发布两款实验性预览模型,让模型直接读写名为 LLMON 的标记语言,把指令与数据结构显式分开。团队称该方法在 OPI 基准上把间接提示注入的成功率压到接近零,通用能力与同等规模的 Granite 4.1 Instruct 基本持平。

发布时间
IBM 发布 Granite 4.1 LLMON 预览模型,用专用标记语言对抗提示注入
图源: huggingface.co

IBM Granite 团队于 11 月 12 日在 Hugging Face 博客上发布了两款实验性预览模型 granite-4.1-3b-LLMON-preview 与 granite-4.1-8b-LLMON-preview,它们衍生于 Granite 4.1 基座模型,专门训练来读写一种名为 LLMON 的标记语言。与模型一同放出的还有一个 GitHub 仓库,内含 LLMON 工具箱、工作流示例与模板。

要理解这次发布,得先看大模型上下文的真实构成。一段长轨迹里同时存在系统提示、历史对话、作用于检索文档的指令、工具返回、限制输出的要求以及推理链,这些内容的结构要么隐含在模型内部,要么被塞进 JSON 这类为解析器而非语言模型设计的格式。对因果语言模型来说,文档里的引号和字段结尾的引号是同一个 token,嵌套层级只能靠数括号,小模型因此在长跨度上容易失手,而这种结构缺失也正是提示注入可以利用的缝隙。

LLMON 全称 LLM Object Notation,读作 lemon。它是一种 XML 风格的标记语言,结构分隔符不是字符,而是分词器中被保留的特殊 token,于是结构与内容落在词表的不同部分,不会混淆。每个语义片段带含义明确的标签,嵌套在局部声明,不需要模型跨长距离维护层级;唯一 ID 让一条指令可以指向上下文任意位置的数据,而底部的 exec 块像编程语言里的函数调用一样,写明执行哪条指令、作用于哪些数据、结果写进哪个块。

它不替换 chat template,而是在其之上补充语义。开发者照常构造 messages 列表并调用 apply_chat_template,区别只在于一个 turn 可以给各部分命名,并标记 exec 为 True 或 False;标记为 True 的部分会被绑定进渲染结果末尾的执行块,标记为 False 的部分仍然渲染进上下文,但不被任何执行块引用。

效果主要体现在间接提示注入上。研究团队在 OPI 基准上做评测,把注入指令藏进经典 NLP 任务的数据里,用 1 减去攻击成功率来衡量鲁棒性。作者称,未使用 LLMON 的模型普遍会高概率执行注入指令,而 LLMON 预览模型在这个基准上比他们测试过的最好的前沿模型多挡下 47% 的攻击,比最好的开源模型多挡下 95%,在 ASB 与 StruQ 上也观察到类似趋势。

团队同时强调这些提升没有以通用能力为代价:在标准基准类别上,LLMON 模型与 Granite 4.1 Instruct 表现相当,正在试用 Granite 4.1 3B 或 8B 的团队可以直接换成预览版,不需要额外的转换管线。需要注意的是,这些基准测的是静态间接注入,随多轮对话逐步展开的自适应攻击仍是团队正在改进的方向。

训练方法解释了这种能力从何而来。模型从 Granite 4.1 基座检查点出发,而不是在已发布的 instruct 模型上叠加,LLMON 行为在后续训练中习得;团队把常规指令微调语料重新序列化,让每个提示组件成为可单独寻址的块,并混入故意不绑定的诱饵指令与数据块,随后进行五段 GRPO 训练,覆盖多领域推理、RLHF、知识校准与数学,最后用一千条来自模型自身对注入尝试响应的在线偏好对做 DPO。

值得注意的是作者对边界的说明:执行块中的指令具有权威性,作为输入进入上下文的内容只是材料,这是训练出来的行为,而不是被强制的保证。除预览模型外,团队还发布了可在 JSON 与 LLMON 之间无损互转的转换工具、示例 notebook,以及在 ScienceWorld 上用自定义词表加 LoRA 的演示,Mellea 已原生支持 LLMON。作为标注 preview 的实验性发布,它更像一个方向性提案——把上下文结构从模型自己猜,变成由应用显式声明。

为什么重要

如果这套格式被主流框架和模型采纳,提示注入的防线会从外部过滤器前移到模型的输入结构本身,小模型的可靠性也会随之改善;但它是训练出来的行为而非硬性保证,生产环境仍需配合其他防护。

微博邮件

IBMGraniteOpen SourcePrompt Injection
返回实时消息

附近消息

全部