Page 322 - 《软件学报》2025年第10期
P. 322
张云婷 等: 中文对抗攻击下的 ChatGPT 鲁棒性评估 4719
(4) Glyph [17] : Glyph 是一种字符级扰动方法, 其使用一个汉字的形近字替换原汉字, 也是一种中文独有的扰动方
法. 该方法将文字图像化, 并通过 CNN 来找出一个汉字的形近字. 详细过程可参考文献 [17]. 由于该方法需要通过
CNN 来产生结果, 因此相比于其他扰动方法, 其所需时间较长, 且找到的形近字的质量也与 CNN 的训练质量相关.
(5) Shuffle [17] : Shuffle 是一种字符级扰动方法, 其通过将一个中文词语中包含的汉字打乱顺序来添加扰动. 该
方法是将英文中的相邻字母替换 [14] 迁移至中文的一种方法. 该方法利用了人脑对于打乱顺序的文字自动纠错的
能力来达到人类难以察觉的目的 [28] . 与其他扰动方法相比, 该方法更容易被拼写检查找到并自动纠正.
(6) Pinyin [17] : Pinyin 是一种词语级扰动方法, 该方法将原词语基于其中文拼音扰动为它的谐音词, 其同样是一
种中文独有的扰动方法. 谐音词主要包括同音词、前后鼻音不同的谐音词以及平翘舌不同的谐音词. 具体例子详
见文献 [17]. 但由于该方法是基于相似发音而设计的扰动方法, 扰动后的词语在含义上可能与原词语完全不一样,
因此使用该方法后在一定程度上会为人类理解原文含义造成障碍.
(7) Synonyms [17] : Synonyms 是一种词语级扰动方法, 其主要基于专家构造的同义词词典来寻找原词的同义词,
并用挑选出的同义词对原词进行替换. 该方法是一种从英文迁移到中文的方法 [12] . 然而, 对于部分特定词语来说,
其可能没有同义词. 在这种情况下, 该方法则无法达到扰动原词的目的.
(8) Word Embedding [10,14] : Word Embedding 是一种词语级扰动方法, 该方法在词嵌入空间中寻找离原词语的
词向量最接近的前 k 个词向量, 将这些词向量对应的词语作为原词语的候选替换词. 该方法是一种从英文中迁移
至中文的方法 [10,14] . 然而, 在词嵌入空间中找到的词语很可能是原词语的反义词, 对于情感倾向分类等任务来说,
反义词可能会完全改变原句的语义. 因此, 在面向此类任务生成对抗文本时, 需要先对原词语的反义词进行过滤.
本文使用大连理工大学情感词汇本体词典 [29] 进行反义词过滤. 由于该方法是静态的词替换操作, 因此还需要将与
原词语词性不一致的候选词进行过滤.
[21]
(9) BERT-MLM : BERT-MLM 是一种词语级扰动方法, 该方法利用 BERT 模型中的 MLM 机制基于文本上
下文来生成原词语的候选替换词. 该方法也是一种从英文中迁移至中文的方法 [11,15,16] , 但本文使用的方法依照文
献 [21] 所述, 根据中文的语言特点进行了改进. 与文献 [21] 中的方法不同的是, 本文为了提升对抗文本的流畅性, 限
制原词语的词长为 1 时, 其替换词的词长也需为 1; 而原词语词长不小于 2 时, 其替换词的词长为 2. 与 Word Embedding
方法类似, BERT-MLM 方法在面向情感倾向分类任务时也需过滤反义词. 本文使用的过滤方法与 (8) 中介绍的过
滤方法一致.
对于词语级扰动方法, 往往会有多个候选替换词构成候选词集, 此时需要从候选词集中选择一个最合适的词
n 个词语的
语来替换原词语. 本文选择替换前后能够使目标模型置信度变化最大的词语替换原词. 给定一篇包含
文本 x = w 1 ,w 2 ,...,w n 以及 x 中的某个词语 w i (i = 1,...,n), 假设 w i 的候选词集 C = {c 1 ,c 2 ,...,c m }. 对于候选词集 C
( )
中的任意候选词 c j ( j = 1,...,m), 其置信度变化 C c j 可用如下公式计算:
{
( ) f y (x)− f y (¯ x), if f (x) = f (¯ x) = y
C c j = [ ] (8)
′
f y (x)− f y (¯ x)+ f y ′ (¯ x)− f y ′ (x) , if f (x) = y∧ f (¯ x) = y ∧y , y ′
其中, ¯ x 表示将词语 w i 替换为候选词 c j 后的文本. 则最终选择的替换词 w i 可由公式 (9) 表示:
( )
′ (9)
w = argmaxC c j
i
c j ∈C
3.1.2 基于可迁移性对 ChatGPT 的攻击
由于 ChatGPT 并非专业的分类模型, 其只能输出不包含置信度信息的硬标签, 因此本文基于对抗文本的可迁
移性对其进行间接攻击. 本文将输出为软标签的中文 BERT 作为中间目标模型进行攻击, 利用其输出的置信度信
息使用基于词语重要性的对抗文本生成方法来构造对抗文本. 随后使用面向中文 BERT 生成的对抗文本攻击最终
目标模型 ChatGPT. 面向文本分类任务, 将 gpt-3.5-turbo-0613 版本的 ChatGPT 模型作为目标模型, 调用其 API 对
其进行攻击. 面向不同的分类任务, 本文使用的提示语各不相同, 具体如下所述.
面向新闻分类任务时, 本文使用的提示语如下: “请告诉我下面的新闻属于科技新闻、教育新闻、财经新闻、
社会新闻、运动新闻中的哪个类别. 回答时请用 0 表示科技新闻, 用 1 表示教育新闻, 用 2 表示财经新闻, 用 3 表

