专栏名称: 深度学习自然语言处理
一个从大三就接触NLP的小小NLPer,本公众号每天记录自己的一点一滴,每篇文章最后也有托福单词等新知识,学技术同时,也一点一滴积累额外的知识。期待与你在知识的殿堂与你相遇!
目录
相关文章推荐
人民网舆情数据中心  ·  反思张家界“两个菜要844元”风波 ... ·  昨天  
人民网舆情数据中心  ·  瘫痪老人被抬至银行办业务 ... ·  2 天前  
安徽省人民政府网  ·  安徽新增2个国家物流枢纽承载城市 ·  2 天前  
人民网舆情数据中心  ·  胖东来就产品掉色等情况致歉、学生家属举报学校 ... ·  3 天前  
人民网舆情数据中心  ·  “治未病”“救急病” ... ·  3 天前  
51好读  ›  专栏  ›  深度学习自然语言处理

基于向量模型的文本水印技术

深度学习自然语言处理  · 公众号  ·  · 2024-12-13 23:06

正文

来自:Jina AI

在 EMNLP 2024 上,我们看到了向量模型的各种创新用法,其中最出人意料的莫过于: 文本水印

试想一下,你挑灯夜战,终于给那篇倾注了一整个周末心血的文章,点击了发布键,成就感满满,虽然点赞不多,但这是属于你的作品。结果没几天,你却发现自己的文章被洗稿了!熟悉的配方,陌生的味道,更可气的是,“李鬼”的传播度还远超“李逵”。这哪还有创意经济的公平可言?

最直观的办法当然是署名,但说实话,署名也最容易被删掉。有没有更牢靠的防盗手段呢?我们认为是有的。

本文将介绍一种基于向量模型的文本水印技术,它既能给文本加上水印,又能检测出文本水印。这可不是对现有搜索或 RAG 技术的套壳,而是利用了 Jina Embeddings v3 模型的独特优势 —— 长文本处理和跨语言对齐 —— 来构建一个强大的认证系统。即使被抄袭的文本经过了 LLM 改写或翻译,它也能可靠地识别出你的原创内容。

jina-embeddings-v3 : https://jina.ai/?sui&model=jina-embeddings-v3

什么是文本水印

数字水印技术一直是内容保护的重要手段。我们熟悉的图片上层层叠叠的水印,只是最基础的图像水印。现代水印技术已经发展得更加先进,许多水印人眼不可见,却能被机器读取。

文本水印也一样,它在保留原文含义的基础上,嵌入了一种机器可检测的签名。但与修改图像像素不同,文本水印是在 语义空间(Semantic Space) 里进行操作, 对内容进行细微修改。所以,有效的文本水印必须要满足以下几个关键要求:

  • 保持原义 :带水印的文本必须与原文意思一致,且可读性不能打折扣,就像图像水印不能遮挡图像的关键元素。

  • 难以察觉 :水印对普通读者应该是不可见的,以防止在文本转写(比如修改或翻译)过程中被故意保留或移除。

  • 机器可读 :水印对机器来说必须得清晰可见,所以它需要创建清晰可测量的模式,让算法能够可靠地识别。

  • 稳定可靠 :水印必须足够稳定,能够抵御各种文本修改,例如改写、翻译,无论修改者是否知道水印的存在。当文本被改得面目全非,原来的意思和结构都完全变了,水印才可能失效。

用向量模型构建文本水印

接下来,我们来搭建一个基于向量模型的文本水印系统, 系统里有两个阵营:验证者(Verifier)负责给原创内容加上水印,之后也负责检测水印,识别抄袭行为。攻击者(Adversary)则是试图修改文本,躲避水印检测。

首先,我们梳理一下系统的关键组件:

  • 输入(Input) :需要添加水印的原始文本。
  • 水印表(WatermarkTable) :一个包含候选水印词的词库。为了确保效果,水印词必须足够常用,又能自然融入不同语境。我们会避免使用功能词、专有名词和一些生僻词。但像 “good”又太常见了,缺乏区分度, “delve into” 和 “embark” 这样的高级词汇是比较理想的选择。所以我们会尽量用一些高级词汇来构建我们的水印表。
  • 向量模型 (Embedder) :承担着水印选择和检测的双重任务。它首先根据输入文本的语义从水印表中挑选合适的词作为水印,然后在可能被修改过的文本中检测这些水印是否存在。 jina-embeddings-v3 的强大之处在于它能出色地处理长文本和不同语言,即使是篇幅很长的文档或翻译成不同语言,我们也能有效地进行水印检测。
  • 水印(Watermarks) :向量模型通过计算输入文本的向量与水印表中每个词的向量的余弦相似度,来选择最合适的词作为水印。水印词的数量由预先设定的插入比例决定,一般为输入文本总词数的 12%。
  • 注入器(Injector) :一个基于指令的大型语言模型 (LLM)。它负责将选定的水印词插入到原始文本中,以保证:1. 文本流畅自然,不会出现语义或逻辑错误;2. 水印词在文本中分布均匀,不会过于集中。
  • 带水印文本(Watermarked Text) :指注入器插入水印词之后的文本。
  • 攻击者(Adversary) :指未经授权使用带水印文本的个人或组织。他们通常会尝试修改文本,例如改写、翻译或小幅度编辑,以掩盖抄袭行为。现在,利用 LLM,他们只需输入一句简单的指令,例如“Paraphrase [text]”,就能快速生成改写后的文本。
  • 修改后的文本(Modified Text) :攻击者修改后的文本,也是我们需要检测水印的目标文本。攻击者修改后的文本,也是我们需要检测水印的目标文本。

算法原理

加水印

加水印的过程分为两步:首先,利用向量模型计算输入文本与水印表中每个词语的相似度,挑选出语义最接近的词语作为水印;然后,注入器将这些水印词自然地融入原文,生成加水印的文本。

验水印

检测过程也类似:首先在疑似抄袭的文本里,找出跟水印表里语义相似的词。然后,把提取出的水印词跟我们插入的原始水印进行比较。 如果重合度很高,就说明该文本很可能 是从我们的加水印文本衍生出来的。

注意,输入文本、水印表、向量模型和注入器都必须保密,以防攻击者破解水印机制。

代码实现

我们实现了一个简化版的文本水印系统,主要用于概念验证。

> 完整的代码实现请参考 Google Colab: https://colab.research.google.com/drive/1sbIdU2tr-18sAtLvVVyhYtrIw2Cgjp8F

核心步骤如下:

1. 构建水印词表 : 我们从英语学习网站上收集了大约 60 个高级词汇,作为潜在的水印词,构建了一个小型的水印词表。

2. 水印选择 : 使用 jina-embeddings-v3 计算输入文本与水印表中每个词的余弦相似度,然后将相似度结果可视化,选择相似度最高的前三个词作为最终的水印词。

3. 水印注入 : 使用 gpt4o 作为注入器,将水印词插入到原文中。使用的提示词模板如下,其中,[words] 指的是选定的水印词,[section] 指的是待插入水印的文本段落。

请将 [words] 插入到 [section] 中,同时保持最大的连贯性,并尽可能保留原始内容。

4. 模拟攻击 :为了测试水印的鲁棒性,我们使用 gpt-4o 模拟了两种攻击场景:改写和翻译,分别使用了以下提示词模板: 改写 [section] 将 [section] 翻译成中文

注意:两种模拟 攻击 都只是简化版本,实际情况中的攻击方式可能更加复杂。本示例中,所有三个 LLM 生成服务都使用了 PromptPerfect 的“prompt-as-a-service”功能。🔗 https://promptperfect.jina.ai/services

定性分析

为了验证文本水印的效果,我们用 Jina AI 的公司介绍作为输入文本:

Founded in 2020 in Berlin, Jina AI is a leading search AI company. The future of AI is multimodal, and we are part of it. We recognize that businesses face challenges in leveraging multimodal data. In response, we provide the Search Foundation, the core infrastructure for GenAI and multimodal applications. Our mission is to help businesses and developers unlock the value of multimodal data through better search.

基于 jina-embeddings-v3 和预先定义的水印表,我们选出了三个水印词:adjoining、open-minded、inquisitive。

上图展示了如何选择水印词。图中横轴列出了水印表中的词,纵轴表示每个词与输入文本的余弦相似度,该相似度由 jina-embeddings-v3 模型计算得出。图中的虚线和点划线分别代表平均相似度和中位数相似度。三个白点标记了我们最终选择的三个水印词,它们与输入文本的语义相似度最高。

接着,注入器将这三个水印词插入到原文中,生成了以下带水印的文本:

Founded in 2020 in Berlin, Jina AI is a leading search AI company. The future of AI is multimodal, and we are part of it. We recognize that businesses face challenges in leveraging multimodal data. In response, we provide the Search Foundation, the core infrastructure for GenAI and multimodal applications. Our mission is to help businesses and developers unlock the value of multimodal data through better search. Adjoining our technical expertise is our open-minded and inquisitive approach, which drives our continuous innovation and commitment to solving complex problems.

我们模拟攻击者,对这段带水印文本进行了改写,得到了如下文本:

Established in Berlin in 2020, Jina AI is a prominent company specializing in search AI. Our team is characterized by our open-mindedness and curiosity, consistently aiming to expand the capabilities of AI. Believing that the future of AI lies in its multimodal potential, we are excited to be at the forefront of this evolution. We understand the interconnected challenges businesses encounter when utilizing multimodal data. To address these, we offer the Search Foundation, essential infrastructure for Generative AI (GenAI) and multimodal applications. Our goal is to assist businesses and developers in unlocking the full potential of multimodal data through enhanced search capabilities.

从这段改写后的文本中,我们提取出了前三个最重要的水印词:

adjoining: 0.413
forthcoming: 0.380
open-minded: 0.379
从转写文本中提取的水印词

可以看到,这三个词与我们最初添加的水印词完全一致,证明这段改写后的文本确实源自我们的原文。







请到「今天看啥」查看全文