类型 1 — 零宽度 Unicode 字符
当前 AI Web 应用程序中最流行的类型。这些是没有可见字形且前进宽度为零的 Unicode 代码点:光标向右移动正好零个像素。它们可以从浏览器复制粘贴到文档中,没有任何视觉痕迹。常见的例子包括:
- U+200B — 零宽度空间
- 最常见的AI水印字符。插入单词或字母之间。
- U+200C — 零宽度非连接器
- 在阿拉伯语/波斯语文本中合法,可抑制连字。拉丁文字文档中存在异常。
- U+200D — 零宽度连接器
- 用于表情符号序列。以纯文本形式呈现,没有表情符号,它始终是一个人工制品。
- U+2060 — 单词连接器
- 功能上相当于零宽度不间断空间。有时在较新型号中替代 U+200B。
- U+FEFF — 字节顺序标记
- UTF-8 BOM。仅在文件开头合法;文本中间位置始终是插入伪影。
类型 2 — 标点符号替换
AI 模型是在印刷丰富的语料库上进行训练的,并且默认使用大括号(“智能”)引号和破折号,而不是它们的 ASCII 等效项。虽然这些是有效的 Unicode 并且不会导致编码错误,但它们在需要直接 ASCII 标点符号的代码、API、数据库和 CMS 字段中不合适。克劳德与破折号替换尤其相关。
- U+2013 破折号 / U+2014 破折号
- 用于代替简单的 ASCII 连字符。检测器训练集中 Claude 和 GPT-4 作者身份的可靠预测器。
- U+00AD — 软连字符
- 在正常渲染中不可见,在换行符处可见。用作位置标记,而不是真正的连字符。
- U+2018–U+201D — 弯引号
- 印刷正确,但破坏了 SQL 查询、JSON 字符串和许多需要直引号的 CLI 工具。
类型 3 — 不间断的特殊空间
AI 文本中出现 U+0020 之外的几个空格字符。不间断空格 (U+00A0) 可防止换行并导致响应式 HTML 中出现布局问题。在法语区域设置模型中,某些标点符号周围会出现狭窄的不间断空格 (U+202F)。表意空间 (U+3000) 出现在与西方文本混合的 CJK 模型输出中。所有这些在语义上都是无害的,但在结构化上下文中却具有破坏性。
类型 4 — HTML 和数据属性指纹
当您从 ChatGPT 的 Web 界面导出或复制时,剪贴板有效负载包含具有专有数据属性的 HTML 标记:data-message-id、data-start、data-end 和 data-scroll-id。这些属性唯一地标识对话以及其中每个令牌的位置。粘贴到接受 HTML 输入的富文本编辑器或 CMS 中会默默地将这些指纹嵌入到文档的源代码中。
类型 5 — 统计令牌概率水印
统计水印在模型级别实现,其工作原理是在每个生成步骤将模型的词汇表划分为“绿名单”和“红名单”。该模型的 logits 已转变为有利于绿名单代币。偏差足够小,输出质量不受影响,但在整个文档中,绿色代币盈余在统计上可以高置信度地检测到。 Google SynthID for text 使用这种方法。任何字符扫描仪都无法检测或删除这些水印。
类型 6 — 语义和抗释义水印
研究原型通过在保留含义但带有隐藏位的同义词或句子重组之间进行选择来嵌入水印。因为水印是在语义上而不是在表面形式上,所以它在释义中仍然存在。这些水印尚未部署在消费人工智能产品中,但根据欧盟人工智能法案的来源透明度条款,它们是积极标准化工作的主题。