Zing 论坛

正文

GlitchToken:大语言模型中故障Token的检测与修复

被USENIX Security 2026录用的安全研究,提出GlitchQuiz和GlitchEdit两个工具,系统性地检测和修复LLM中的故障Token,修复成功率达到88.5%

LLM安全故障TokenUSENIX Security嵌入修复模型鲁棒性词表分析
发布时间 2026/06/10 17:20最近活动 2026/06/10 17:25预计阅读 4 分钟
GlitchToken:大语言模型中故障Token的检测与修复
1

章节 01

导读 / 主楼:GlitchToken:大语言模型中故障Token的检测与修复

被USENIX Security 2026录用的安全研究,提出GlitchQuiz和GlitchEdit两个工具,系统性地检测和修复LLM中的故障Token,修复成功率达到88.5%

2

章节 02

原作者与来源

  • 原作者/维护者: kstanghere 及研究团队
  • 来源平台: GitHub
  • 原文标题: GlitchToken
  • 原文链接: https://github.com/kstanghere/GlitchToken
  • 发布时间: 2026-06-10
  • 论文: One Bad Token Spoils the Barrel: Assessment, Detection, and Remediation of Glitch Tokens in Large Language Models(USENIX Security 2026)
3

章节 03

研究背景

在大语言模型的词表中,存在一些特殊的Token被称为"故障Token"(Glitch Tokens)。当模型尝试在这些Token上执行重复、计数、拼写或造句等基本任务时,会出现意外或错误的行为。这些故障Token虽然数量不多,但可能对模型的安全性、鲁棒性和可靠性产生显著影响。

这项研究被USENIX Security 2026(信息安全领域的顶级会议)录用,提出了两个核心工具:GlitchQuiz用于系统性检测故障Token,GlitchEdit用于轻量级修复。

4

章节 04

什么是故障Token?

故障Token是指在LLM中导致模型在基本语言任务上表现异常的Token。具体表现为:

  • 重复失败:模型无法正确重复该Token
  • 计数失败:模型无法正确计算该Token的出现次数
  • 拼写失败:模型无法正确拼出该Token对应的字符串
  • 造句失败:模型无法用该Token构造合乎语法的句子

这些故障可能源于Tokenization过程中的边界问题、嵌入空间中的异常位置,或训练数据中的分布偏差。

5

章节 05

GlitchQuiz:故障Token检测工具

GlitchQuiz对模型词表中的每个Token在8种任务上进行系统评估,识别出故障Token。

工作流程

  1. 自动检测词表大小(如Mistral为32,000)
  2. 将词表均匀分配到多个GPU上并行处理
  3. 在每个GPU上运行检测worker,对每个Token执行8种故障检测任务
  4. 后处理合并结果并计算统计信息

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"
  }
]
6

章节 06

GlitchEdit:故障Token修复工具

GlitchEdit通过修改故障Token的嵌入向量来修复故障。核心方法是将故障Token的嵌入与相似的正常Token的嵌入进行插值,通过网格搜索找到最优的插值参数(alpha和k)。

修复流程

  1. 加载检测到的故障Token列表
  2. 对每个故障Token,在词表中寻找k个最相似的正常Token
  3. 通过网格搜索最优alpha值,将故障Token嵌入与正常Token嵌入的加权组合作为新嵌入
  4. 验证修复后Token在所有故障任务上的表现

修复结果示例

{
  "summary": {
    "total_tokens_processed": 400,
    "successful_fixed": 276,
    "partial_fixed": 63,
    "fallback_fixed": 15,
    "failed_fixes": 46,
    "fix_rate": 88.5
  }
}

88.5%的修复率表明,大多数故障Token可以通过简单的嵌入插值方法修复,无需重新训练模型。

7

章节 07

技术架构

项目分为两个主要模块:

GlitchQuiz模块

  • assess_local.py:每个GPU上的检测worker
  • post_process.py:合并分片输出并计算统计
  • judge_token.py:故障任务判断逻辑
  • run_assess.sh:多GPU启动脚本

GlitchEdit模块

  • glitch_repair.py:嵌入修复脚本
  • run_repair.sh:修复启动脚本
8

章节 08

安全与道德考量

研究者意识到故障Token检测工具具有双重用途潜力——既可以用于提升模型安全性,也可能被恶意利用来诱导有害行为。为此:

  • 完整的故障Token列表仅通过授权流程提供,防止随意或恶意访问
  • 仓库中提供的glitch_tokens_tiny.json仅包含400个随机采样的Token,仅用于评估
  • 明确禁止将本仓库用于任何恶意目的