看不见的 Unicode 码让敏感词轻松逃过审核,谷歌、IBM 都中招
Unicode 码作为全世界文字的统一编码,使用范围广,用它去对 NLP 模型做对抗攻击,可谓中招一大片。就比如下面这个谷歌翻译:文字部分都没有啥问题,注意到账户数字 4321 翻译前后不一样吗?为什么会发生这样的情况?来看 Unicode 码是怎么捣的乱吧。其实原句中就是 1234,问题出现在左边:英文句子中数字前面插入了一个不可见的字符 0x202E。这是一个可以把字符的文本方向倒转的 Unicode 码。这样一来,左边的解析系统就会将该 1234 显示成 4321。而谷歌翻译引擎的机制是忽...