章节 01
导读 / 主楼:GlitchToken:大语言模型中故障Token的检测与修复
被USENIX Security 2026录用的安全研究,提出GlitchQuiz和GlitchEdit两个工具,系统性地检测和修复LLM中的故障Token,修复成功率达到88.5%
正文
被USENIX Security 2026录用的安全研究,提出GlitchQuiz和GlitchEdit两个工具,系统性地检测和修复LLM中的故障Token,修复成功率达到88.5%
章节 01
被USENIX Security 2026录用的安全研究,提出GlitchQuiz和GlitchEdit两个工具,系统性地检测和修复LLM中的故障Token,修复成功率达到88.5%
章节 02
章节 03
在大语言模型的词表中,存在一些特殊的Token被称为"故障Token"(Glitch Tokens)。当模型尝试在这些Token上执行重复、计数、拼写或造句等基本任务时,会出现意外或错误的行为。这些故障Token虽然数量不多,但可能对模型的安全性、鲁棒性和可靠性产生显著影响。
这项研究被USENIX Security 2026(信息安全领域的顶级会议)录用,提出了两个核心工具:GlitchQuiz用于系统性检测故障Token,GlitchEdit用于轻量级修复。
章节 04
故障Token是指在LLM中导致模型在基本语言任务上表现异常的Token。具体表现为:
这些故障可能源于Tokenization过程中的边界问题、嵌入空间中的异常位置,或训练数据中的分布偏差。
章节 05
GlitchQuiz对模型词表中的每个Token在8种任务上进行系统评估,识别出故障Token。
工作流程:
Mistral-7B-Instruct-v0.2检测结果示例:
{
"total_glitch_tokens": 1523,
"total_vocab_tokens": 32000,
"glitch_token_ratio": 4.76
}
即Mistral-7B的词表中约4.76%的Token存在故障,这是一个相当可观的比例。
输出格式:
[
{
"tokenID": "1234",
"tokenDecode": "▁example",
"wrong_tasks": "1,3,5"
}
]
章节 06
GlitchEdit通过修改故障Token的嵌入向量来修复故障。核心方法是将故障Token的嵌入与相似的正常Token的嵌入进行插值,通过网格搜索找到最优的插值参数(alpha和k)。
修复流程:
修复结果示例:
{
"summary": {
"total_tokens_processed": 400,
"successful_fixed": 276,
"partial_fixed": 63,
"fallback_fixed": 15,
"failed_fixes": 46,
"fix_rate": 88.5
}
}
88.5%的修复率表明,大多数故障Token可以通过简单的嵌入插值方法修复,无需重新训练模型。
章节 07
项目分为两个主要模块:
GlitchQuiz模块:
assess_local.py:每个GPU上的检测workerpost_process.py:合并分片输出并计算统计judge_token.py:故障任务判断逻辑run_assess.sh:多GPU启动脚本GlitchEdit模块:
glitch_repair.py:嵌入修复脚本run_repair.sh:修复启动脚本章节 08
研究者意识到故障Token检测工具具有双重用途潜力——既可以用于提升模型安全性,也可能被恶意利用来诱导有害行为。为此:
glitch_tokens_tiny.json仅包含400个随机采样的Token,仅用于评估