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  表
   317   318   319   320   321   322   323   324   325   326   327