跳到主要内容
AI News HubLIVE
站内改写2 分钟阅读

Fireworks如何通过安全分词解决所有模型的提示注入问题

文章摘要

Fireworks推出了一种称为安全分词(safe_tokenization)的机制,通过在分词阶段防止用户输入中的控制符被误编码为模型的控制令牌,从而解决提示注入问题。该机制作为API请求的一个布尔参数,对用户输入无影响,仅防止控制符被解释,同时保持聊天模板结构完整。文章详细描述了问题成因、攻击演示、工作原理及其对模型输出的影响。

Fireworks如何通过安全分词解决所有模型的提示注入问题
报告错误

纠错通道尚未开通,可先复制下方文章信息留存。

查看更正说明
直接读正文

近日,Fireworks AI宣布推出一种全新的安全机制——安全分词(safe_tokenization),旨在彻底解决提示注入问题,为所有开放模型提供保护。提示注入是当前大型语言模型推理服务中的一个普遍隐患:用户输入中的文本字符串可能被分词器误编码为模型的控制令牌,从而篡改系统提示或角色边界。Fireworks通过引入一个简单的布尔参数,实现了对提示注入的有效防御。

Fireworks的首席科学家在博客文章中详细阐述了这一问题的根源。他指出,大多数开放模型使用HuggingFace分词器,其标准流程是:首先通过Jinja聊天模板将整个对话渲染成一个字符串,然后对该字符串进行编码。在这个过程中,用户文本与模板中的控制令牌混在一起,分词器无法区分哪些字节来自模板、哪些来自用户。因此,如果用户输入恰好包含模型的控制令牌字符串(如<|im_start|>等),就会被编码为真实的控制令牌,从而改变模型的输出行为。

文章以Kimi K2.6模型为例,演示了一个完整的攻击过程。攻击者在用户消息中嵌入伪造的系统角色切换指令,使得原本锁定英语的系统提示被覆盖为西班牙语。实验显示,当安全分词关闭时,模型确实遵循了攻击者的西班牙语指令;而开启安全分词后,模型仍然遵守原始的英语规则。这个差异在日志概率(logprobs)中可量化验证。

安全分词的工作原理涉及两个层面的修复。在模型加载阶段,系统扫描完整的词汇表(包括特殊令牌和添加令牌),并预处理聊天模板,确保控制令牌与用户插值内容分离。在请求处理阶段,模板中的结构令牌按原样编码为真实令牌ID,而用户文本的每一段都经过专门的分词步骤,将任何可能构成控制令牌的字节拆分为子词单元。由于两个路径在设计上保持一致,攻击者无法在模板与用户内容之间找到缝隙。

Fireworks强调,安全分词对正常用户输入完全透明:如果用户内容不包含控制令牌字符串,安全路径与默认路径产生的令牌ID完全相同。此外,该机制计算成本极低,无需模型重载或额外网络跳转。用户只需在API请求中添加"safe_tokenization": true,即可启用这一保护。所有Fireworks支持的开放模型(包括DeepSeek、Kimi、Qwen、Llama、GLM等)均已支持该功能,流式与非流式补全均适用。

业界普遍认为,提示注入是当前AI推理平台面临的最大安全隐患之一。Fireworks的安全分词方案为行业提供了一个简洁而有效的解决方案。正如文章所言:“生产环境下的推理必须能够承受恶意用户内容的攻击。safe_tokenization: true就是Fireworks在令牌层面做出这一保证的方式——这样,你的系统提示,而不是别人的,才能定义你的产品。”

展开要点与分析

文章情报

工程师进阶

要点

  • 提示注入源于用户输入中的控制符与模型控制令牌共享同一字节流,导致用户文本可被误解释为控制令牌。
  • Fireworks的安全分词机制通过在模型加载时扫描词汇表,并在请求时按段编码,确保用户内容中的控制符字符串被拆分为子词,而非编码为真实控制令牌。
  • 该机制作为每请求的布尔标志(safe_tokenization: true),对正常输入行为无变化,仅防止控制符注入,且计算开销极小。
  • 安全分词已在DeepSeek、Kimi、Qwen等Fireworks支持的所有开放模型上生效,支持流式和非流式补全。

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。