Exploring Multimodal Challenges in Toxic Chinese Detection: Taxonomy, Benchmark, and Findings¶
会议: ACL 2025
arXiv: 2505.24341
代码: https://github.com/thomasyyyoung/ToxiBenchCN
领域: 社会计算
关键词: 中文毒性检测, 多模态扰动, 鲁棒性评测, LLM安全, 基准数据集
一句话总结¶
这篇工作把中文毒性文本中的“形、音、义混合扰动”系统化为 3 类 8 种策略,构建了大规模扰动基准 CNTP,并证明当前中美主流 LLM 在这类中文多模态毒性检测上都明显不稳,而小样本 ICL / SFT 虽能抬高检出率,却容易把正常内容一起误杀。
研究背景与动机¶
毒性内容检测已经是内容审核和模型安全里的基础问题。
但中文场景比英文复杂得多。
原因不只是中文数据少,而是中文本身就天然具有多模态属性。
单个汉字既有字形结构,也有拼音读音,还承载语义和网络文化约定俗成的隐喻表达。
这意味着攻击者不需要复杂对抗优化,只要改几个字形、谐音、拼音首字母、字符顺序,甚至插入 emoji,就可能让模型漏检。
论文指出,现有研究通常只看少数几种“藏毒”方式,例如同音替换或 emoji 替换。
这种做法的问题在于:
- 对中文扰动空间的理解不完整。
- 无法系统评估模型到底怕哪一类扰动。
- 也很难设计真正稳健的缓解方法。
作者因此把核心问题重新表述为:
LLM 是否真的理解了被扰动后的中文毒性内容,还是只是对部分显式模式有记忆?
为回答这个问题,论文做了三件事:
- 提出中文毒性扰动 taxonomy。
- 基于 taxonomy 构建大规模基准 CNTP。
- 在 9 个主流 LLM 上系统评测,并分析 ICL/SFT 这种低成本增强策略是否真有效。
方法详解¶
整体框架¶
整篇论文的方法链条很清晰:
- 从中文毒性数据集 Toxi_CN 中采样毒性和非毒性文本。
- 用 GPT-4o-mini 做毒性实体抽取,找到句子里真正带攻击性的片段。
- 针对抽取出的毒性片段,按照作者提出的 8 种扰动方式进行改写。
- 控制扰动比例,并通过人工验证可读性与语义是否仍可被中文母语者理解。
- 用构建后的 CNTP 评测 9 个 SOTA LLM 的检测能力。
- 再进一步测试 in-context learning 和小样本 fine-tuning 能否修复问题。
这不是一个新模型论文,而是一篇“任务定义 + 数据集 + 基准分析”型工作。
其价值在于把中文毒性检测里的鲁棒性问题从零散案例上升为系统评测问题。
关键设计¶
作者提出 3 大类、8 种具体扰动方式。
第一类是基于字形的视觉扰动。
- VSim:视觉相似替换。 用外形相近的字或去掉偏旁后的字替换原字。
- Split:拆字。 把一个汉字拆成两个或多个连续部件。
- Trad:简繁混写。 把简体里的部分字换成繁体字。
第二类是基于发音歧义的拼音扰动。
- PY_Init:拼音首字母缩写。
- PY_Full:整词拼音化。
- Homo:同音替换。
第三类是基于语义灵活性的扰动。
- Shuff:字符重排。
- Emoji:用 emoji 替换关键字或词素。
这个 taxonomy 的关键点不是简单列举,而是强调中文的多模态性来自字形、语音和语义三种通道同时存在。
也正因为如此,中文毒性检测不能只当作普通文本分类问题来做。
数据构建流程¶
CNTP 的构建流程分两步。
第一步是 base dataset sampling。
作者从 Toxi_CN 中采样:
- 2533 条毒性文本。
- 2696 条非毒性文本。
第二步是 toxic entity extraction 与 perturbation embedding。
具体来说:
- 先让 GPT-4o-mini 抽取原句中真正有害的毒性词或毒性短语。
- 再对这些局部片段施加扰动,而不是胡乱改整句。
- 同时控制平均扰动比例不超过 30%。
这个设计很重要。
如果扰动太强,模型和人都看不懂,评测就失去意义。
如果扰动太弱,又不能体现真实绕过检测的难度。
作者因此参考了 RoCBert、ToxiCloakCN、Adversarial GLUE 的设置,把平均扰动率控制在 0.27 到 0.29 之间。
人工验证机制¶
论文没有完全依赖自动生成。
他们引入了 4 位中文母语标注者做人类验证。
验证指标有两个:
- Extraction Accuracy:GPT-4o-mini 抽出的毒性实体是否准确。
- Human Readability:扰动后文本是否仍然可读、可理解。
结果显示:
- 毒性实体抽取准确率达到 98.6%。
- 扰动后文本平均可读性为 3.94 / 5。
- 最终得到 20087 条有毒扰动文本。
这说明数据集并不是简单的“乱码集合”,而是仍然能被中文用户读懂的真实规避样本。
整体框架¶
如果从任务视角概括,这篇论文的整体框架可以写成:
原始中文毒性文本
→ 毒性片段抽取
→ 局部多模态扰动注入
→ 人工验证与筛选
→ 构成 CNTP 基准
→ 评测 LLM 对毒性 / 非毒性的识别能力
→ 分析 prompt、ICL、SFT 对鲁棒性的影响
这里“多模态”不是图文 VLM 意义上的视觉-语言融合。
而是中文文本内部就带有视觉字形、发音线索和语义线索的多通道表达。
这是本文最值得注意的概念迁移。
关键设计¶
设计一:把中文扰动做成可解释分类¶
很多毒性绕过样本以前只是零散经验。
作者的贡献是把它们组织成结构化 taxonomy。
这样做的直接好处有三点:
- 可以按类别统计模型弱点。
- 可以分析哪些扰动最容易骗过模型。
- 后续做防御时可以针对类别而不是针对个例。
设计二:局部毒性片段扰动而不是整句扰动¶
如果直接改整句,文本很容易失真。
作者先抽取 toxic span,再对 span 做操作。
这让评测更接近真实社交平台上的规避写法。
设计三:控制扰动比例和可读性¶
论文一直强调 human readability。
因为真实攻击目标是“机器看不懂,人还能看懂”。
所以平均扰动率被限制在 28% 左右,并过滤可读性分数低于 3 的样本。
设计四:同时看 detection rate 与 F1¶
只看 toxic detection rate 不够。
一个模型完全可以把所有句子都判成 toxic,从而把召回率做高。
因此作者同时报告 F1,确保非毒性误报也被考虑进去。
设计五:专门分析“过度纠正”¶
这部分是论文的第二个核心。
作者发现,小样本 ICL 或 SFT 会让模型学到一种很危险的捷径:
“只要看见奇怪的中文变体,就倾向于判毒。”
这不是更懂中文,而是更敏感、更保守。
损失函数 / 训练策略¶
这篇论文不是提出新训练目标,因此没有复杂的数学损失函数推导。
可归纳出的训练/推理策略主要有三部分。
第一部分是基准评测策略。
- 对 9 个 LLM 做二分类式毒性判断。
- 推理温度设为 0,减少随机性。
- 使用中英文两套 prompt 比较提示语言影响。
第二部分是 ICL。
- 在原始 prompt 中为每类扰动加入 10 个示例。
- 示例中包含扰动文本、二元标签和简短人工分析。
第三部分是 SFT。
- 在 OpenAI fine-tuning playground 上微调 GPT-4o-mini。
- 训练样本规模分别为 10、20、40。
- 训练样本来自 CNTP 中的少量扰动案例。
论文没有展开底层优化器、学习率、epoch 等细节。
因此从笔记角度可以理解为:
作者关注的是“小样本增强是否能改善鲁棒性”,而不是设计新的损失函数。
实验关键数据¶
数据集验证结果¶
| 指标 | VSim | Split | Trad | PY_Init | PY_Full | Homo | Shuff | Emoji | 平均 |
|---|---|---|---|---|---|---|---|---|---|
| 可读性分数 | 3.7 | 3.5 | 4.5 | 3.5 | 4.4 | 4.2 | 3.8 | 3.9 | 3.94 |
| 扰动比例 | 0.29 | 0.27 | 0.27 | 0.28 | 0.29 | 0.28 | 0.27 | 0.29 | 0.28 |
这个表说明两件事。
- 数据集并没有通过极端破坏可读性来制造难题。
- Trad 和 PY_Full 的可读性最高,说明它们对人类几乎没有理解障碍。
主实验结果表¶
下面挑出中文 prompt 下最能说明问题的一组结果。
| 模型 | Base | VSim | Split | Trad | PY_Init | PY_Full | Homo | Shuff | Emoji | Avg. | F1 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| o3-mini | 91.78 | 70.10 | 67.68 | 67.31 | 92.08 | 57.09 | 80.72 | 48.56 | 76.35 | 70.98 | 0.65 |
| GPT-4o | 81.29 | 72.55 | 66.51 | 74.20 | 93.68 | 55.73 | 88.55 | 48.99 | 79.45 | 73.26 | 0.58 |
| GPT-4o-mini | 85.51 | 66.95 | 61.79 | 59.01 | 94.16 | 50.53 | 75.82 | 44.20 | 76.62 | 73.49 | 0.60 |
| DeepSeek-V3 | 83.05 | 59.53 | 59.59 | 56.00 | 82.35 | 41.68 | 74.45 | 38.95 | 63.81 | 59.42 | 0.59 |
| GLM-4-Air | 89.48 | 73.72 | 69.58 | 73.19 | 93.09 | 54.62 | 86.60 | 53.19 | 82.92 | 76.60 | 0.63 |
| Qwen-turbo | 90.63 | 85.63 | 85.86 | 83.04 | 94.86 | 79.11 | 93.96 | 68.10 | 89.93 | 90.20 | 0.64 |
| Qwen2.5-7B | 90.92 | 70.25 | 74.99 | 75.46 | 84.72 | 53.10 | 72.71 | 53.49 | 76.98 | 70.53 | 0.65 |
| Yi-1.5-9B | 90.58 | 78.86 | 77.10 | 79.05 | 91.13 | 69.16 | 82.08 | 60.65 | 82.39 | 89.34 | 0.65 |
需要注意的是,这里的 Avg. 是 8 类扰动后的平均检测率,不含 base。
从这张表里可以直接看到:
- 最难的通常是 PY_Full、Shuff、Split、VSim、Homo 这几类中的部分项目。
- DeepSeek-V3 在中文扰动上的整体表现不理想。
- Qwen-turbo 是整体最稳的模型之一。
- 所有模型在 base 场景都明显更高,说明问题确实主要来自扰动而不是一般性毒性理解。
ICL / SFT 分析表¶
| 策略 | 模型 | Split | PY_Init | Emoji | 非毒性误检率 ER | 误解率 MR |
|---|---|---|---|---|---|---|
| 无 ICL | DeepSeek-V3 | 56.00 | 41.68 | 59.42 | 2.24 | - |
| ICL | DeepSeek-V3 | 81.83 | 86.38 | 79.02 | 2.47 | Split 70.00 / PY_Init 67.67 / Emoji 46.67 |
| 无 ICL | GPT-4o-mini | 59.01 | 50.53 | 73.49 | 2.71 | - |
| ICL | GPT-4o-mini | 87.13 | 92.46 | 88.36 | 3.99 | Split 73.33 / PY_Init 60.00 / Emoji 30.00 |
| 无 FT | GPT-4o-mini | 59.01 | 50.53 | 73.49 | 2.71 | - |
| FT-10 | GPT-4o-mini | 98.13 | 98.64 | 95.07 | 30.59 | Split 74.07 / PY_Init 62.96 / Emoji 42.86 |
| FT-20 | GPT-4o-mini | 97.90 | 98.81 | 97.03 | 32.80 | 未单列 |
| FT-40 | GPT-4o-mini | 99.40 | 99.24 | 96.67 | 31.33 | 未单列 |
这张表是全文最关键的分析证据之一。
它说明 ICL 和小样本 SFT 确实能把检测率抬得很高。
但与此同时,误检率和误解率也显著升高。
尤其是 FT-10 到 FT-40,几乎把毒性检出率拉到 95% 以上,但把正常文本误杀到 30%+。
这已经不是“安全增强”,而是明显的行为偏移。
主实验¶
不同扰动类型的比较¶
论文指出,最具迷惑性的扰动是 Homo 和 PY_Init。
很多模型在这两类上的检测率持续低于 60%。
这很合理。
因为这两类最依赖中文母语者对音韵和网络表达的隐性知识。
相比之下,Trad 和部分情况下的 PY_Full 检测率更高,甚至偶尔高于 base。
这表明有些扰动虽然改变了表面形式,但没有真正破坏模型对有害语义的触发。
不同模型的比较¶
在无扰动场景下,大部分模型都表现不错。
但一旦加入 taxonomy 中的扰动,所有模型都出现显著下降。
作者特别强调两点:
- 中国模型并没有天然占优。
- 最新推理模型也没有真正解决这个问题。
例如 o3-mini 的平均检测率相比 base 明显下降。
DeepSeek-V3 和 DeepSeek-R1-Llama 在部分设置下甚至掉到非常低的水平。
这说明“懂中文”和“懂被扰动后的中文”是两回事。
Prompt 语言的影响¶
论文还比较了中文 prompt 和英文 prompt。
结果是所有 LLM 在中文 prompt 下都优于英文 prompt。
这说明提示语与输入文本语言保持一致,确实能帮助模型更稳定地识别中文毒性。
但这只是边际改善,不是根本解决方案。
消融实验¶
严格说,这篇论文没有传统模型论文里那种模块级消融。
它的“消融/分析实验”主要体现在三类比较:
- 中文 prompt vs 英文 prompt。
- 无增强 vs ICL。
- 无增强 vs 不同规模 SFT。
其中最有价值的是后两类,因为它们直接回答了“少量教学样本能不能让模型学会这些扰动”。
答案是:
能学到表面行为,学不到真正语义。
论文给出的案例很有说服力。
例如模型会把包含 emoji 或拆字的正常句子判成 toxic,只因为它见过类似外形的毒性变体。
这反映的不是 robust understanding,而是 shortcut learning。
关键发现¶
发现一:中文毒性检测本质上具有多模态挑战¶
这里的多模态不是图文输入,而是中文内部的字形、音系、语义通道共同决定可理解性。
这使得文本毒性检测在中文里天然比英文更难。
发现二:SOTA LLM 对扰动中文毒性内容并不稳健¶
即便是 GPT-4o、o3-mini、DeepSeek-V3、Qwen 系列这类强模型,在扰动场景下也会明显失效。
发现三:ICL 和小样本 SFT 会过度纠正¶
模型表面上“更严格”了,但并没有真正理解扰动语义。
结果就是非毒性文本的误报急剧增加。
发现四:中文模型没有压倒性优势¶
这点很有现实意义。
很多人会默认中文模型更适合中文安全审核,但论文结果并不支持这个简单结论。
亮点与洞察¶
亮点一:taxonomy 做得非常实用¶
论文的 taxonomy 不是为了理论完备,而是为了可直接用于数据构造和模型评测。
这是很强的工程研究价值。
亮点二:抓住了“中文多模态”这个本质¶
作者把中文内部的形音义联动重新解释为多模态挑战。
这个视角对中文 NLP 安全任务很有启发。
亮点三:揭示了小样本安全增强的副作用¶
很多工作只展示提升后的 recall。
这篇论文进一步问:
提升是因为模型更懂了,还是更激进了?
这个问题问得很对。
而且结果也很有警示意义。
亮点四:对真实平台审核有直接价值¶
社交平台上的绕过写法本来就大量依赖谐音、拆字、emoji、缩写。
这篇工作提供的 benchmark 和分析非常贴近真实场景。
局限与展望¶
- taxonomy 虽然已经比以往完整,但作者也承认网络文化演化很快,未来还会出现新扰动。
- 论文聚焦的是文本内部的“多模态性”,还没有覆盖真正图文联合的中文毒性内容。
- ICL 和 SFT 只在很小样本规模上测试,不能完全代表大规模训练后的上限。
- 论文没有给出更深入的训练细节,因此很难精确复现微调过程中的行为变化来源。
- 主指标以 detection rate、F1、ER、MR 为主,没有进一步分析 calibration 或 threshold sensitivity。
相关工作与启发¶
这篇论文与几类工作关系很近。
第一类是中文 offensive language detection 数据集工作,如 Toxi_CN、COLD。
这些工作更关注毒性类别覆盖和标准分类任务。
第二类是中文对抗攻击或鲁棒性工作,如 ToxiCloakCN、RoCBert、各类 sound-shape substitution 攻击。
这些工作通常只覆盖某一类扰动。
第三类是 LLM safety / moderation 工作。
这类工作大多默认文本表面形式较规范,而本文说明真实中文社区并非如此。
对我自己的启发主要有三点。
- 中文安全任务要显式建模字形和音韵特征,而不是只喂纯文本 token。
- 评测集要区分“模型真正理解”与“模型过度保守”两种提升来源。
- 后续如果做更强系统,可能需要 span-level grounding、字形编码、拼音编码和语境对齐联合建模。
评分¶
新颖性: 8.5/10
把中文毒性绕过问题系统化为多模态 taxonomy,并构建大规模 benchmark,问题定义很扎实。
方法性: 8.0/10
方法本身不复杂,但数据构建流程、人工验证、评测设计都比较严谨。
实验充分度: 8.5/10
覆盖 9 个模型、8 类扰动、双语 prompt,以及 ICL/SFT 分析,证据链完整。
实际价值: 9.0/10
对中文内容审核、平台安全和 LLM 安全评测都有直接参考意义。
综合评分: 8.5/10
额外备注¶
这篇论文最重要的不是“哪个模型赢了”,而是它明确指出:
中文毒性检测里的核心难点并不只是数据规模或模型参数量,而是中文表达本身的可变形、多通道和强文化依赖性。
如果后续工作只继续堆更大的通用 LLM,而不处理字形、谐音、emoji、网络隐喻这些结构性问题,鲁棒性仍然会很脆弱。