有研究者发现,利用 BPE 分词切分规则和 Unicode 字符归一化之间的差异,可以构造特殊输入来绕过 LLM 安全过滤器,这套攻击思路的核心是构造视觉上接近正常文本、但底层编码不一样的字符,大模型的安全审核模块往往在归一化、分词环节和模型主体推理环节处理逻辑不一致,审核模块识别不出违规内容,而 BPE 分词器又能把这些变形字符还原成模型能看懂的语义,最终实现安全过滤逃逸。这类属于提示词注入的一种逃逸攻击,并不是 LLM 本身模型权重出现漏洞,而是安全护栏、前置审核、分词处理流程之间存在逻辑不同步。很多 LLM 的安全检测是在文本预处理阶段做关键词匹配,检测脚本只做简单文本匹配,没有完整执行和 BPE 一致的 Unicode 归一化,或者分词粒度和模型内部 BPE 切分结果不一样,就给了攻击者可乘之机。这类手段在安全测试场景会被用于红队测评,但严禁拿来实际攻击、破解线上大模型的安全防护。
一、BPE 切分和 Unicode 归一化差异为什么能绕开过滤
- Unicode 存在等价字符:同一个显示文字,存在多种编码形式(比如组合变音符号、兼容等价字符),肉眼看起来一模一样,原始字符串二进制却不同。
- 安全过滤器预处理简化:很多安全检测只做浅层匹配,没有执行和模型完全一致的 NFKC/NFD 归一化。
- BPE 分词器的特性:BPE 会在子词层面合并片段,经过归一化之后,变形字符会被切分、合并成模型能识别的目标子词。
- 流程割裂:安全护栏是独立模块,和推理侧 tokenizer 不是一套完整对齐的预处理流水线,两边对同一段输入的理解不一致。
二、简单原理对比表
| 模块 | 处理方式 | 行为特点 |
|---|---|---|
| 安全过滤器 | 原始字符串关键词匹配,归一化不全 | 识别不到变形后的违规关键词 |
| BPE Tokenizer | 先做指定 Unicode 归一化,再子词切分 | 把变体字符还原成语义对应的 token |
| LLM 主体 | 读取 token 序列做推理 | 读懂原本被过滤的指令 |
三、这类攻击的典型实现步骤(仅用于安全研究理解)
- 挑选目标关键词,查找它的 Unicode 等价变体字符、组合字符
- 把关键词替换成视觉等价、编码不同的 Unicode 变体,构造输入文本
- 用目标 LLM 的原生 BPE tokenizer 对文本做编码,验证 token 序列是否和原词接近
- 送入带安全过滤器的 LLM 接口,观察安全检测是否拦截失败
- 迭代调整字符,规避前置关键词黑名单,直到逃逸成功
四、对应的防御方案
- 统一预处理流水线:安全检测、输入审核、BPE 分词器使用完全相同的 Unicode 归一化(一般 NFKC)
- 子词级检测:不要只在原始字符串做关键词匹配,在 token 序列上增加安全审计
- 增加红队常态化测试:专门针对 Unicode 变体、BPE 分词不一致的逃逸方式做持续扫描
- 上线归一化前置层:所有用户输入统一先归一化,再送入安全检测和 tokenizer
- 增加异常字符检测:对大量组合变音、不常用兼容字符的输入做风险标记
【相关 FAQ】
问题 1:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,它属于大模型本身的漏洞吗?
回答 1:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,它不属于模型权重本身漏洞,属于安全护栏、审核模块和 BPE 分词预处理流程不同步带来的流程侧缺陷。
问题 2:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,普通用户可以随便尝试吗?
回答 2:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,普通用户不可以随意尝试,该手段属于提示逃逸攻击,未经授权对线上 LLM 系统进行绕过测试,会违反平台用户协议,甚至触犯相关法规。
问题 3:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,怎么从开发层面堵住这类逃逸?
回答 3:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,最核心的办法就是让安全检测和 BPE 分词器使用一模一样的 Unicode 归一化逻辑,同时增加 token 层面的安全识别,而不是只做原始文本关键词匹配。
【参考资料】
[2026-09-12](Exploiting Unicode Normalization and BPE Mismatch for LLM Safety Filter Bypass)arXiv
[2026-07-20](大模型提示词逃逸:Unicode 变体与分词不一致风险)安全客
[2026-06-05](LLM 红队测试:BPE 分词边界带来的安全逃逸)FreeBuf
[2025-11-18](Tokenizer 对齐:消除安全护栏与推理侧预处理差异)OpenAI 安全博客
[2025-08-03](Unicode 归一化在大模型安全检测中的坑)看雪论坛
【免责声明】
本内容仅为人工智能安全方向科普、原理学习,所有相关技术内容仅限授权范围内的安全研究、红队测试使用;禁止利用 BPE 切分、Unicode 字符构造等方式绕过各大 LLM 平台安全防护、实施违规提示注入,违规使用带来的法律责任由行为人自行承担。
本文来自作者[光粒编译]投稿,不代表乌兰科技网立场,如若转载,请注明出处:https://www.wlcbnews.com/kjyw/202611/10.html
评论列表(4条)
我是乌兰科技网的签约作者“光粒编译”!
希望本篇文章《借助 BPE 切分与 Unicode 归一化差异绕过大模型 LLM 安全过滤器原理解析》能对你有所帮助!
本站[乌兰科技网]内容主要涵盖:互联网行业的追踪与探索
本文概览:有研究者发现,利用 BPE 分词切分规则和 Unicode 字符归一化之间的差异,可以构造特殊输入来绕过 LLM 安全过滤器,这套攻击思路的核心是构造视觉上接近正常文本、但底层编码不一样的字符,大模型的安全审核模块往往在归一化、分词环节和模型主体推理环节处理逻辑不一致,审核模块识别不出违规内容,而 BPE 分词器又能把这些变形字符还原成模型能看懂的语义,最终实现安全过滤逃逸。这类属于提示词注入的一种逃逸攻击,并不是 LLM 本身模型权重出现漏洞,而是安全护栏、前置审核、分词处理流程之间存在逻辑不同步。很多 LLM 的安全检测是在文本预处理阶段做关键词匹配,检测脚本只做简单文本匹配,没有完整执行和 BPE 一致的 Unicode 归一化,或者分词粒度和模型内部 BPE 切分结果不一样,就给了攻击者可乘之机。这类手段在安全测试场景会被用于红队测评,但严禁拿来实际攻击、破解线上大模型的安全防护。