IBM 在 Hugging Face 博客发布 LLMON 与 Granite 4.1 3B/8B 预览版

Published · AI Daily — AI-assisted deep research, methodology & disclosure

IBM 在 Hugging Face 博客发布 LLMON,一种让模型明确区分指令与数据的标记语言,并推出基于 Granite 4.1 的 3B 与 8B 实验预览模型。

事件概述

2026 年 11 月 12 日,IBM 在 Hugging Face 官方博客发布文章,推出一种面向大语言模型的原生标记语言 LLMON(LLM Object Notation,读作 “lemon”),并同步放出两个基于 Granite 4.1 基座训练的实验性预览模型:granite-4.1-3b-LLMON-preview 与 granite-4.1-8b-LLMON-preview。IBM 同时开放了 GitHub 仓库,里面有处理 LLMON 的工具包、工作流示例和模板。官方明确表示,这是实验性预览,适合探索与评估,不适合生产环境。

要解决的问题

大模型靠上下文生成下一个标记。随着任务变长,上下文里会塞满各种成分:系统提示、历史对话、作用于检索文档的指令、工具返回、用户数据、输出约束和推理链。这些结构大多是隐含的,或者被塞进 JSON 这类原本为解析器设计的格式。IBM 认为这是小模型容易在意外处失败的主要原因之一,也给攻击者留下了空间,间接提示注入就是典型例子:恶意指令藏在检索文档、工具返回或用户数据里,模型分不清哪段是命令、哪段只是材料。

LLMON 的做法

LLMON 用有意义的标签标出语义连贯的组件,并用保留的特殊标记作为分隔符,把数据结构(包括嵌套)以因果语言模型能无歧义读懂的方式写出来。每个组件带有唯一 ID,因此可以指向上下文任意位置的某条指令,并把它绑定到该作用的数据上,类似编程语言里函数调用与传参。LLMON 定义了六种分隔符,用来标记标签的开始与结束、支持嵌套和锚定,它们被装入分词器,成为保留的单一标记。

为什么不用 JSON?官方的解释很具体:分词器不受语法约束,花括号、引号、冒号这类结构符号也会出现在普通文本里。对模型来说,文档里的一个引号和闭合字段的引号是同一个标记。解析器清楚的转义规则,对模型只是统计规律。嵌套深度要靠数括号,而 Transformer 恰恰不擅长这件事,跨度越长越明显。LLMON 的结构分隔符是保留标记,不是普通字符,所以结构与内容占用词表的不同部分;标签写在每个片段开头,片段边界明确,嵌套结构在局部声明,模型不必在长文本里自己记住层级。

与聊天模板的关系

LLMON 不取代聊天模板,而是丰富它。常规模板告诉模型哪段属于系统、用户或助手角色;LLMON 进一步告诉模型每个组件是什么意思,以及组件之间、跨角色之间如何关联。预览模型自带聊天模板,开发者仍然构造与往常一样的 messages 列表并调用 apply_chat_template。区别在于,一个回合里可以给各部分命名(如 instruction、data、requirement),并把每部分标为 exec 为 True 或 False。标为 True 的部分会绑定到渲染结果底部的 exec 块,该块写明要执行哪条指令、作用于什么数据、受哪些约束,以及答案写进哪个助手块;标为 False 的部分仍在上下文里,但没有被任何东西引用。官方的例子里,一个用户回合被渲染成五个可单独寻址的块,再由第六个 exec 块把它们绑在一起。块 ID 为两个字符,取自分词器里可编码为单个标记的固定集合,所以寻址一个块总是花两个标记。

训练方法

模型从 Granite 4.1 基座检查点出发,而不是从已发布的指令模型出发,因此 LLMON 行为是在后训练阶段学到的。团队把常规指令微调语料重新序列化为 LLMON:每个提示成分成为独立的可寻址块,每个回合带一个执行块,说明运行哪条指令、作用于哪些输入、输出去往何处。任务配比与普通指令模型一致,涵盖聊天、多轮、RAG 和工具调用,这也是基准成绩与传统调优模型接近的原因。此外,数据里加入了出现在上下文中却刻意不绑定的诱饵指令和数据块,而目标输出不变,让模型学会遵循执行块规定的依赖、忽略其余内容。随后是强化学习:五个连续的 GRPO 阶段,覆盖多领域推理、RLHF、知识校准和数学,最后是一个 DPO 阶段,使用一千对由模型自身面对注入尝试时的回答构成的在线偏好数据。

由此得出的特权规则来自布局本身,而不是额外加的护栏:通过执行块到达的指令具有权威性;作为输入到达的内容(数据、文档、工具模式、工具结果)只是供阅读的材料,不是要服从的命令;没有被执行块调用的指令与数据片段会被忽略。官方特别强调,这是习得的行为,不是强制保证。

评测结果

IBM 在 OPI 基准上对比了 LLMON 预览模型与多个开源和闭源模型。该基准把注入放在经典 NLP 任务的数据里,采用多种攻击策略,指标是鲁棒性,即 1 减去攻击成功率。博客称,所有非 LLMON 模型都高度易受攻击,会以很高概率执行被注入的指令;LLMON 在该基准上几乎消除了这一问题,相对测试中最好的前沿模型多挡住 47% 的攻击,相对最好的开源模型多挡住 95%。在 ASB 和 StruQ 基准上也看到类似趋势。官方也坦言,这些基准测的是静态的间接提示注入,指令与数据分离正好针对这一类攻击;跨越多轮对话展开的自适应攻击仍在改进中。在通用能力方面,各类标准基准上 LLMON 模型与 Granite 4.1 Instruct 模型表现相当。

自定义词表与上手方式

LLMON 并不绑定固定模式。开发者可以选择适合自己领域的标签名与结构,并微调适配器去读写它们。博客用文本版科学任务基准 ScienceWorld 做了演示,定义了 instr.task.goal、req.planning_policy.rule、data.state.room、data.state.inventory、assistant.next_action 等标签,在 LLMON 模型之上调了一个 LoRA,让它在留出的游戏中用新词表写出下一步动作,并附有完整笔记本。现有 JSON 管线可以用官方转换工具与 LLMON 无损互转。团队还指出,智能体编排库 Mellea 已原生支持 LLMON,会自动把调用转成 LLMON。现有 Granite 4.1 3B 或 8B 用户需先切换到 Granite 4.1 LLMON 预览版模型并套用其随附模板,再划分带名称的结构标签,模板就会生成 LLMON 块。

如何看待

这是一次有数据、有代码、有限制说明的发布,但仍是预览。本次材料引用自 IBM 自报结果,给定公告未提供独立复现数据;官方也承认对多轮自适应攻击仍在改进。对做 RAG 与智能体的团队,值得在受控环境里评估:它把防注入从提示技巧推到了模型与分词器层面。

Sources

FAQ

LLMON 是什么,读作什么?

LLMON 全称 LLM Object Notation,读作 lemon。它是 IBM 推出的面向大模型的标记语言,用保留的特殊标记作分隔符,给指令、数据和要求打上明确标签,让模型分清结构。

LLMON 如何降低间接提示注入的风险?

它把指令与数据分块,由执行块负责引用指令与输入,模型经训练按执行块行事,其余内容只当材料。IBM 称在静态间接注入测试中,相对所测最佳前沿模型多避开 47% 攻击,但这不是绝对的防御保证。

现在可以把 LLMON 模型用于生产环境吗?

不建议。IBM 明确说这是实验性预览,适合探索与评估,不适合生产。目前有 3B 和 8B 两个预览模型,其抗注入成绩来自 IBM 自家博客,给定公告未包含独立复现数据,官方也承认自适应多轮攻击仍在改进,使用前宜先测试。