Anthropic公布Claude文本水印技术,通过采样选择嵌入模式
Anthropic刚刚宣布了一件听起来有点像是魔法的事情:
Claude将对其文本进行水印处理。
不是用隐藏的Unicode字符,
不是添加一些不可见的元数据,
不是用额外的标记,
而且据称对质量、内容或成本没有明显影响。
那么……如何在不向文本中添加任何内容的情况下给纯文本加水印?
诀窍在于水印不在文本中。
它在模型生成文本时所做的选择中。
当LLM生成文本时,通常不会只有一个可能的下一个标记。在许多位置,几个标记的概率非常相似。
简化示例:
“实验产生了一个令人惊讶的___结果。”
也许strong、clear、interesting和positive都是完全合理的延续。
通常,采样会根据模型的概率分布决定选择哪一个。
有了水印,一个密钥会轻微影响这个选择。
从概念上讲,密钥+先前生成的上下文决定了模型应该偏好哪个同样好的候选标记。
单独一个选择说明不了什么。
但在数百个标记位置这样做,你就会创建一个统计模式。
一个极不可能偶然出现的模式,但持有秘密检测密钥的人可以对其进行测试。
所以,你的词语之间并不存在神奇的隐形字符。
词语本身就是水印。
这基本上是在采样过程中实现的隐写术。
真正巧妙的部分是组合数学。
每个单独的选择看起来完全正常。但当你一起观察足够多的选择时,该模式随机出现的概率变得极小。
根据Anthropic的说法,他们实施这一功能是为了遵守欧盟的人工智能法案,而签署同一份实践准则的其他主要模型提供商也将进行水印处理。
他们还声称,这对输出质量没有实际影响,不消耗额外的标记,无法追溯到特定用户/聊天/组织,并且对人类读者来说应该无法区分。
我觉得这在技术上很优美。
我们多年来一直认为AI出处是附加到生成内容上的东西。
事实证明,你可以在模型创建内容时,将其微小的概率决策编码出处。
非常酷的想法。
现在,下一个明显的问题也很有趣:
在统计信号消失之前,水印能承受多少编辑、改写、翻译、模型之间的复制粘贴或对抗性重写?
这才是真正有趣的地方。
Claude将对其文本进行水印处理。
不是用隐藏的Unicode字符,
不是添加一些不可见的元数据,
不是用额外的标记,
而且据称对质量、内容或成本没有明显影响。
那么……如何在不向文本中添加任何内容的情况下给纯文本加水印?
诀窍在于水印不在文本中。
它在模型生成文本时所做的选择中。
当LLM生成文本时,通常不会只有一个可能的下一个标记。在许多位置,几个标记的概率非常相似。
简化示例:
“实验产生了一个令人惊讶的___结果。”
也许strong、clear、interesting和positive都是完全合理的延续。
通常,采样会根据模型的概率分布决定选择哪一个。
有了水印,一个密钥会轻微影响这个选择。
从概念上讲,密钥+先前生成的上下文决定了模型应该偏好哪个同样好的候选标记。
单独一个选择说明不了什么。
但在数百个标记位置这样做,你就会创建一个统计模式。
一个极不可能偶然出现的模式,但持有秘密检测密钥的人可以对其进行测试。
所以,你的词语之间并不存在神奇的隐形字符。
词语本身就是水印。
这基本上是在采样过程中实现的隐写术。
真正巧妙的部分是组合数学。
每个单独的选择看起来完全正常。但当你一起观察足够多的选择时,该模式随机出现的概率变得极小。
根据Anthropic的说法,他们实施这一功能是为了遵守欧盟的人工智能法案,而签署同一份实践准则的其他主要模型提供商也将进行水印处理。
他们还声称,这对输出质量没有实际影响,不消耗额外的标记,无法追溯到特定用户/聊天/组织,并且对人类读者来说应该无法区分。
我觉得这在技术上很优美。
我们多年来一直认为AI出处是附加到生成内容上的东西。
事实证明,你可以在模型创建内容时,将其微小的概率决策编码出处。
非常酷的想法。
现在,下一个明显的问题也很有趣:
在统计信号消失之前,水印能承受多少编辑、改写、翻译、模型之间的复制粘贴或对抗性重写?
这才是真正有趣的地方。