文献阅读——MARKLLM:用于 LLM 水印的开源工具包

原名:MARKLLM: An Open-Source Toolkit for LLM Watermarking

原文链接:https://arxiv.org/abs/2405.10051

代码链接:https://github.com/THU-BPM/MarkLLM

思考

反思

根据上次分享论文的不足之处,我有如下的改进:

  1. 对论文的核心部分,如理论的公式的思考不足

针对该问题,我将更多的时间用于研究论文的核心部分,并查询相关资料用斜体标注,避免出现泛泛而谈没有深度的问题,力求理解每个公式的作用。

  1. 照搬论文的结构,而不是自己组织结构

我认为论文的结构能很好地展示整体脉络,于是我没有对论文的结构进行更改。相对地,我将论文的不同部分的关注点有所取舍,重点关注理论和实验部分,其余的背景和相关工作部分相对简略,为理解核心部分服务。

WHY

  1. 为什么要开发大模型水印工具包?

针对已经提出的水印算法,由于每种算法实现都优先考虑其特定要求而不是标准化,因此出现了几个问题:

  • 类设计缺乏标准化
  • 顶层调用接口缺乏统一性
  • 代码标准问题

为了解决这些问题,该工具包提供了一个统一的实现框架,可以在灵活的配置下方便地调用各种最先进的算法。

  1. 本论文和之前阅读的有关大模型水印的论文有什么区别?

因为本论文是对提出的水印技术的整合,所以本论文偏向综述性质,集成了目前有关大模型水印技术的大部分方法,包括算法框架,顶层接口,可视化与性能评估。正因如此,本论文的一个不足是没有提出创新性的观点。

本论文专注的技术是对大模型生成的文本的水印注入和验证,因此和我之前阅读的论文有所区别。下面是本论文与之前两篇论文的比较,分别是有关大模型提示词水印和大模型本身的水印。

比较

本论文

大模型水印

提示词水印

对象

生成的文本

大模型本身

提示词

目的

区分大模型生成文本与人类书写的文本

保护大模型版权

保护提示词版权

水印注入方式

可以不通过训练大模型而通过大模型的文本进行注入

在大模型训练过程中加入

在提示词中加入,并在训练过程中注入大模型

评估性能

有效性

鲁棒性

隐匿性

有效性

鲁棒性

隐匿性

成本

有效性

无害性

鲁棒性

隐匿性

关键技术

词汇集区分

文本哈希标记

后⻔⽔印

对⽐学习

权重扰动

信号令牌选择

通过双层公式注入水印

WHAT

本论文提到的 KGW 系列和 Christ 系列分别是什么?

LLM 水印方法大致可分为两大家族:KGW 家族和 Christ 家族。

KGW Family:修改LLM生成的logits以生成水印输出

Christ Family:改变LLM文本生成的采样过程以实现水印

补充图 1  水印注入方式

KGW 属于during logits generation,Christ属于during token sampling

KGW 方法:

  1. 根据前一个标记将词汇集区分为绿色列表和红色列表
  1. 在文本生成过程中,偏见会添加到绿色列表令牌的日志中,从而导致在生成的文本中偏爱这些标记。
  1. 然后,根据绿色单词的比例计算统计指标,并设置相应的阈值来区分带水印的文本和无水带印的文本。

不同的改进:优化列表分区或logit操作

  • 提高算法在低熵设置下的性能(Lee et al., 2023;Lu et al., 2024)
  • 减少对文本质量的影响(Hu et al., 2024;Wu et al., 2023;Takezawa et al., 2023)
  • 增加水印的信息容量(Wang et al., 2023;Yoo 等人,2023 年;Fernandez et al., 2023)
  • 抵制水印去除攻击(Zhao et al., 2024;Liu等人,2024b;任等,2023;He 等人,2024 年;Zhang et al., 2024)
  • 启用公共检测(Liu et al., 2024a;Fairoze 等人,2023 年)。

Christ 方法:

使用伪随机数序列来指导二进制 LLM 中的采样过程,该 LLM 的词汇量只有 0 1,由于生成的文本和序列之间的相关性,因此产生了可检测的水印。

另一方面,Aaronson 和 Kirchner (2022) 开发了一种适用于真实世界 LLM 的水印算法,该算法使用 EXP 采样。在这种方法中,实数r1,…,rK01的伪随机序列是基于先前的标记生成的:

ri:=fswt-n+1wt-1i

其中 fs 是伪随机函数。

然后从下一个令牌 wt 的概率分布p1,…,pK中选择令牌 i 以最大化ri1pi。为了检测水印,总和

t=1Tln11-r't(其中r't=fswt-n+1wt

测量文本与伪随机序列之间的相关性,从而可以通过设置合适的阈值来有效识别水印。

为了进一步增强鲁棒性,Kuditipudi 等人(2023 年)建议使用编辑距离来评估检测的相关性。

以下是我阅读

(John Kirchenbauer et al. 2023.) A watermark for large language models. 和

(Miranda Christ et al. 2023.) Undetectable watermarks for language models总结的信息:

KGW 系列:

研究目标:

在这项工作中,我们研究了语言模型输出的水印。水印是文本中隐藏的模式,人类无法察觉,同时使文本在算法上可识别为合成文本。我们提出了一种高效的水印,使合成文本可以从短时间的标记跨度(少至 25 个标记)中检测到,而误报(人类文本被标记为机器生成)在统计上是不可能的。水印检测算法可以公开,使第三方(例如社交媒体平台)能够自行运行,或者可以保持私密并在 API 后面运行。

五个标准:

  • 水印的检测过程不需要调用大模型就可以实现。
  • 模型不需要再进行训练。
  • 针对小文本切片进行局部识别,即使将小文本切片放置于大量文本中仍然可以将水印识别出来。
  • 无法在保证输出正常的情况下,轻易修改水印。
  • 可以用一个严格的统计量来检测水印,并且可以评估水印对输出变化的影响。

基础算法:

  1. 首先,使用语言模型根据已知的提示语句生成预测下一个令牌的词概率向量。
  1. 根据已知提示语句的最后一个令牌,将其用哈希值表示(这里使用哈希值是为了唯一标注这个令牌,因为不同的令牌会有截然不同的哈希值),然后根据令牌的哈希值赋予其一个唯一的随机种子。
  1. 根据随机种子对词概率向量进行随机拆分,并且保证红绿列表中包含的令牌数一致。
  1. 接下来在选择预测的令牌中,我们就只能从绿色列表中的令牌去挑选,而不能从红色列表中的令牌去挑选。
  1. 循环上述1-4步骤,直到生成全部语句。

复杂算法:

在第3步加入了超参数γ用于控制绿色列表相对于整体列表的占比,并且重新进行softmax操作。

HOW

本论文的技术是如何具体实现的?

摘要

大语言模型(LLMs)的水印技术

定义:在模型输出中嵌入难以察觉算法上可检测的信号,以识别LLM生成的文本,在减轻LLMs的潜在误用方面变得至关重要。

问题和挑战:LLM 水印算法的丰富性、其错综复杂的机制以及复杂的评估程序观点给研究人员和社区带来了挑战,使他们无法轻松试验、理解和评估最新的进展。

MARKLLM用于 LLM 水印的开源工具包。

  • 框架:为实现 LLM 水印算法提供了一个统一且可扩展的框架,同时提供用户友好的界面以确保易于访问。
  • 可视化:通过支持这些算法的底层机制的自动可视化来增强理解。
  • 评估:提供了一套由 12 种工具组成的综合套件,涵盖三个视角,以及两种类型的自动化评估管道。

目标:支持研究人员,同时提高公众对LLM水印技术的理解和参与,促进共识并推动研究和应用的进一步发展。

1. 引言

LLM 带来的问题:

  • 个人冒充(Salewski et al., 2023)
  • 学术论文代笔(Vasilatos et al., 2023)
  • LLM 生成的假新闻激增(Megías et al., 2021)

这些问题凸显了迫切需要可靠的方法来区分人类和LLM生成的内容,特别是为了防止错误信息的传播并确保数字通信的真实性。

LLM水印技术已被验证为一种有前途的解决方案:通过在文本生成过程中结合不同的特征,可以使用专门设计的检测器唯一地识别 LLM 输出。

作为一项发展中的技术,LLM水印迫切需要领域内外的共识和支持。然而,由于水印算法的激增、机制的相对复杂、评价视角和指标的多样化以及评价过程的复杂性,研究者和公众都需要付出巨大的努力才能轻松试验、理解和评估水印算法。为了弥合这一差距,我们引入了 MARKLLM,这是一个用于 LLM 水印的开源工具包。

图 1 概述了 MARKLLM 的架构:

主要贡献总结如下:

  1. 功能角度:

实现框架:MARKLLM 为实现 LLM 水印算法提供了一个统一且可扩展的框架

  • 支持:来自两个关键家族的 9 种特定算法:KGW(Kirchenbauer et al., 2023)和 Christ (Christ et al., 2023) 家族。

统一的顶级调用接口:提供了一致、用户友好的接口:

  • 加载算法
  • 生成LLM生成的水印文本
  • 进行检测过程
  • 收集可视化所需的数据

可视化解决方案:针对两大水印算法族均提供定制可视化解决方案

  • 使用户能够通过真实示例可视化不同算法在各种配置下的机制。

评估模块:该工具包包括 12 个评估工具

三个关键角度:可检测性、稳健性和对文本质量的影响。

两种类型的自动化评估管道,支持用户自定义数据集、模型、评估指标和攻击。

  1. 设计角度:MARKLLM采用模块化松耦合的架构设计,增强了其可扩展性灵活性。这种设计选择有助于集成新算法,增加创新的可视化技术,并促进未来开发人员对评估工具包的扩展。
  1. 实验角度:利用MARKLLM作为研究工具,我们对九种纳入算法的性能进行了深入评估,提供了大量的见解和基准,对于LLM水印领域正在进行的和未来的研究具有宝贵的价值。
  1. 生态系统角度:MARKLLM提供了一套全面的资源,包括一个可安装的Python包(一个带有详细安装和使用说明的GitHub仓库),以及一个托管在Google Colab上的在线Jupyter笔记本演示。自首次发布以来,MARKLLM 就获得了研究人员和开发人员的极大关注,他们积极参与该项目,促进了持续的开发和改进。

图 2 描绘了 MARKLLM 生态系统自首次发布以来的演变:

范围:专注于展示 MARKLLM 的核心功能,同时围绕该项目出现的更广泛的生态系统和社区贡献。

2. 背景

2.1 LLM 水印算法

LLM 水印方法大致可分为两大家族:KGW 家族和 Christ 家族。

KGW Family:修改LLM生成的logits以生成水印输出

Christ Family:改变LLM文本生成的采样过程以实现水印

2.2 评估视角

评估算法的有效性需要从各个维度进行考虑(Liu et al., 2023)。除了选择不同的数据集和 LLM 生成文本外,三个评估视角至关重要:

  1. 水印可检测性 (Effectiveness):这代表了算法的一个基本属性,表明它能够有效地从自然内容中辨别出带水印的 LLM 生成的文本。
  1. 防止篡改攻击的鲁棒性 (Robustness):有效的水印算法应以经得起微小修改(如同义词替换或释义)的方式嵌入水印,使水印仍然可以被高可靠性的检测器检测到。
  1. 对文本质量的影响 (Stealthiness):水印算法会干预LLM文本生成过程,并可能影响结果文本的质量。这种影响可以通过困惑度和输出多样性等指标来衡量,也可以通过比较带水印的 LLM 与未改变的 LLM 在特定下游任务中的性能来衡量。

3. MARKLLM

3.1 统一实现框架

到目前为止,已经提出了许多水印算法。然而,由于每种算法实现都优先考虑其特定要求而不是标准化,因此出现了几个问题:

  1. 类设计缺乏标准化:由于类设计标准化不足,因此在优化或扩展现有方法时需要付出大量努力。
  1. 顶层调用接口缺乏统一性:接口的不一致性使得批量处理和复制不同算法既繁琐又劳动密集。
  1. 代码标准问题:挑战包括需要跨多个代码段修改设置以及缺乏一致的文档,这使得定制和算法的有效使用变得复杂。此外,硬编码值和不一致的错误处理可能会妨碍适应性和调试工作。

为了解决这些问题,我们的工具包提供了一个统一的实现框架,可以在灵活的配置下方便地调用各种最先进的算法。此外,我们精心设计的类结构为未来的扩展铺平了道路。

图 3 演示了统一实现框架的设计:

AutoWatermark此类负责算法分配。在其 .load() 方法中,它使用 algorithm_name 精确定位相应的算法类,并通过 config_path 访问其配置进行初始化。该方法返回一个完全配置的算法对象,从而便于加载和不同算法之间的高效切换。

.load() 方法中有一个transformers_config参数,它是 TransformersConfig 类的一个实例,其中包含生成文本所需的必要信息,例如模型标记器。此参数遵循 transformers 库的命名约定和规范,用于 modeltokenizer generate kwargs

Watermark每个水印算法的类统称为 Watermark 类。

数据成员:config、utils 和 logits_processor(仅适用于 KGW 系列中的算法)。

  • config 包含从配置文件加载的算法参数
  • utils 包含算法操作所必需的各种辅助函数和变量
  • logits_processor 专门设计用于操作对数,并集成到 model.generate() 中,以便在执行过程中进行处理

顶级接口:每种算法都有四个顶级接口

  • 生成带水印的文本
  • 生成无水印的文本
  • 检测水印
  • 获取用于可视化的数据(详见第 3.2 节)

由于该框架的分布式设计使用 AutoWatermark 类来分配和返回特定的算法对象,因此开发人员可以轻松地将接口添加到任何算法类,而不会影响其他算法类。

3.2 机制可视化

为了提高对不同水印算法所用机制的理解,我们开发了一个可视化模块,为两个算法系列提供量身定制的可视化解决方案。

3.2.1 可视化解决方案

KGW系列:如第 2.1 节所述,KGW 系列算法操纵 LLM 输出对数,使其更喜欢绿色标记而不是红色标记,并采用统计方法进行检测。我们的可视化技术清楚地突出显示了文本中的红色绿色令牌,从而提供了对令牌级检测结果的见解。

Christ系列:Christ 系列中的算法涉及通过伪随机序列引导每个令牌选择,并通过将序列与文本内容相关联来检测水印。为了直观地说明这种机制,我们使用颜色渐变来表示相关性值,其中较深的阴影表示更强的对齐。为了量化单个令牌的对齐,我们使用公式 s=ln11-rt' ,如第 2.1 节所述。由于 s 的范围从 [0, +∞) 开始,而颜色轴限制为 [0, 1],因此应用单调递增归一化函数 m = s / s+1 来表示对齐值。这种转换可确保 m 保持在 [0, 1] 范围内,同时保留 s 值较高对应于由较高 m 值表示的更强对齐的属性。

3.2.2 架构设计

本节详细介绍了有效实施上述可视化策略所必需的架构框架。图 4 演示了机构可视化的实现框架。

get_data_for_visualization此接口为每个算法定义,返回一个包含 decoded_tokens 和 highlight_value 的可视化数据。

KGW系列:highlight_value是one-hot的,区分红色和绿色代币

Christ系列:它代表着一个连续的相关性值。

One-Hot编码:又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1

例子:性别特征:["",""],按照N位状态寄存器来对N个状态进行编码的原理,处理后是这样的(这里只有两个特征,所以N=2):

  =>  10

  =>  01

Visualizer它使用 VisualizationData 对象进行初始化,并通过 .visualize() 方法执行可视化,子类会覆盖该方法以实现特定的可视化。

DiscreteVisualizer为 KGW 系列算法量身定制,它使用红色/绿色高亮值根据值对文本进行颜色编码。ContinuousVisualizer为 Christ 系列算法量身定制,它根据 [0,1] 色标根据标记与伪随机数的对齐情况来突出显示标记。

Flexible Visualization Settings可视化工具支持多个可配置选项,用于定制可视化效果,包括 ColorScheme、FontSettings、PageLayoutSettings 和 LegendSetting,允许进行广泛的定制。

Minor可视化设计在检测过程中适应了令牌之间的加权差异。

3.2.3 可视化结果

KGW家族:

图 4 最左侧所示,在带有水印的文本中,绿色标记的比例相对较高。统计度量 z 分数由公式定义:

其中

  • |s|G表示绿色令牌的数量,
  • T表示计数的令牌总数,
  • γ是表示绿色令牌列表在分区中的比例的配置设置,本例中为0.5。

很明显:“带水印的文本”的 z 分数>>“没有水印的文本”的 z 分数。

因此,设置合理的 z 分数阈值可以有效地区分两者。

Christ家族:

图 4 最右侧部分所示,值得注意的是,与没有水印的文本中的标记相比,包含水印的文本中的标记通常表现出更深的色调,这表明在生成过程中序列对前者的影响更大。

3.3 自动化综合评估

评估 LLM 水印算法是一项复杂的工作:

  1. 评估算法需要考虑各种角度,包括水印可检测性、抗篡改鲁棒性以及对文本质量的影响。
  1. 从每个角度进行评估可能需要不同的指标、攻击场景和任务。
  1. 进行评估通常需要多个步骤,例如模型和数据集选择、带水印的文本生成、后处理、水印检测、文本篡改和度量计算。

为了方便和深入地评估 LLM 水印算法,MARKLLM 提供了 12 种用户友好的工具,包括涵盖上述三个评估视角的各种度量计算器和攻击者。此外,MARKLLM还提供两种类型的自动化演示流水线,其模块可以灵活定制和组装,便于配置和使用。

评估工具

表 1 总结了 MARKLLM 中当前支持的所有工具。

可检测性:大多数水印算法最终都需要指定一个阈值来区分带水印的文本和无水印的文本。包含两种计算器:

  • 使用固定阈值的基本成功率计算器。
  • 支持动态阈值选择的计算器(为了最大程度地减少阈值选择对可检测性的影响)。

此工具可以确定产生最佳 F1 分数的阈值,或根据用户指定的目标误报率 (FPR) 选择阈值。

鲁棒性:词级文本篡改攻击:

  • 指定比例的随机单词删除
  • 使用 WordNet(Miller,1995)作为同义词集的随机同义词替换
  • 使用 BERT(Devlin et al., 2018)作为嵌入模型的上下文感知同义词替换

文档级文本篡改攻击:

  • 通过 OpenAI API 或 Dipper 模型解释上下文(Krishna 等人,2023 年)

文本质量:MARKLLM提供了两种直接分析工具:

  • 用于衡量流畅度的困惑度计算器
  • 用于评估文本可变性的多样性计算器。

为了分析水印对特定下游任务中文本效用的影响,我们提供了一个用于机器翻译任务的 BLEU 计算器和一个用于代码生成任务的通过或未通过判断器。此外,鉴于目前比较水印和无水印文本质量的方法,包括使用更强的 LLM 进行判断(Tu et al., 2023),我们还提供 GPT 鉴别器,利用 GPT-4(OpenAI,2023 年)来比较文本质量。

评估管道

在数据科学和机器学习中,pipeline(管道)是一种用于自动化数据处理和模型训练流程的工具。它将数据处理步骤和模型训练步骤连接起来,形成一个有序的工作流,从而简化和系统化整个过程。

为了便于对 LLM 水印算法进行自动评估,MARKLLM 提供了两个评估管道:

  • 用于评估有和没有攻击的水印可检测性
  • 用于分析这些算法对文本质量的影响

图 5 的上半部分说明了水印检测的标准化过程。在此过程之后,我们实现了两个管道:WMDetect 和 UWMDetect。

主要区别在于文本生成阶段:

  • WMDetect:需要使用水印算法中的 generate_watermarked_text 方法
  • UWMDetect:依赖于 text_source 参数来确定是直接从数据集中检索自然文本还是调用 generate_unwatermarked_text 方法。

图 5 的下半部分说明了文本质量分析的统一过程。为了评估水印对文本质量的影响,会生成带水印和无水印的文本对。然后,对文本以及其他必要的输入进行处理,并将其输入到指定的文本质量分析器中,以产生详细的分析和比较结果。

三个管道:

DirectQual用于通过直接比较带水印文本的特征无水印文本的特征来分析文本的质量。它评估困惑度 (PPL) 和对数多样性等指标,无需任何外部参考文本。

RefQual带水印无水印的文本与常见的参考文本进行比较来评估文本质量。它衡量与参考文本的相似或偏离程度。它非常适合需要用于评估文本质量的特定下游任务,例如机器翻译和代码生成。

ExDisQual聘请了外部评判者,例如 GPT-4(OpenAI,2023 年)来评估带水印和无水印文本的质量。鉴别器根据用户提供的任务描述评估文本,识别由于水印而导致的任何潜在质量下降或保持质量。当需要对水印的微妙影响进行基于 AI 的高级分析时,这种方法特别有价值。

4. 用户示例

以下代码片段演示了如何在项目中使用 MarkLLM 的示例。

4.1 水印算法调用

Python
# 加载算法 
myWatermark = AutoWatermark.load(’KGW’ , ’config/KGW.json’, transformers_config)

# 生成水印文本
watermarked_text = myWatermark.generate_watermarked_text(prompt)

# 检测水印
detect_result = myWatermark.detect_watermark(watermarked_text)

4.2 机制可视化

Python
# 获取可视化数据
watermarked_data = myWatermark.get_data_for_visualization(watermarked_text)

# 初始化可视化器
visualizer = DiscreetVisualizer(ColorSchemeForDiscreetVisualization(), FontSettings() , PageLayoutSettings() ,DiscreetLegendSettings())

# 可视化
watermarked_img = visualizer.visualize(watermarked_data)

4.3 评估管道调用

Python
# 数据集
my_dataset = C4Dataset(’dataset/c4/processed_c4.json’)

# 带水印的文本检测管道
pipeline1 = WatermarkedTextDetectionPipeline(my_dataset)

# 无水印的文本检测管道
pipeline2 = UnWatermarkedTextDetectionPipeline(dataset = my_dataset)
 
# 初始化计算器
calculator = DynamicThresholdSuccessRateCalculator(labels =[’TPR’, ’F1’] , rule = ’best’)

# 计算成功率
print(calculator.calculate(pipeline1.evaluate(my_watermark), pipeline2.evaluate( my_watermark)))

5. 实验

以 MARKLLM 为研究工具,我们对 9 种算法进行了评估,评估了它们的可检测性、鲁棒性和对文本质量的影响。我们的实验旨在通过实际案例研究展示 MARKLLM 的有效性和效率。

5.1 实验设置

数据集(日期)设置和提示:(笔误写成了dateset

通用文本生成场景:使用 C4 数据集(Raffel et al., 2020)。具体来说,文本的前 30 个标记用作生成后续 200 个标记的提示,原始 C4 文本充当无水印示例。

特定的下游任务:使用 WMT16 (Bojar et al., 2016) 德语-英语数据集进行机器翻译,并使用 HumanEval (Chen et al., 2021) 进行代码生成。

语言模型:

通用文本生成场景:使用 Llama-7b (Touvron et al., 2023) 作为语言模型。

特定的下游任务:使用 NLLB-200-distilled-600M (Costa-jussà et al., 2022) 进行机器翻译,使用 Starcoder (Li et al., 2023) 进行代码生成。

指标和攻击:

采用动态阈值调整来评估水印的可检测性的三种设置:

  • 在目标 FPR 为 10% 时
  • 在目标 FPR 为 1% 时
  • 在最佳 F1 分数性能的条件下。

稳健性:利用了表 1 中列出的所有文本篡改攻击。

文本质量的影响:指标包括 PPL、日志多样性、BLEU(用于机器翻译)、pass@1(用于代码生成),以及使用 GPT-4 Judge 进行评估(Tu et al., 2023)。

超参数:附录 D.1 中列出了每种算法的配置文件。评估工具的参数设置列在附录 D.2

5.2 结果与分析

表2 、表3 和 表 4 的结果表明,通过使用 MARKLLM 中提供的不同算法的实现和评估管道,研究人员可以有效地复现以前水印论文的实验结果。这些实验可以通过运行简单的脚本来进行,展示了 MARKLLM 在各种场景下轻松评估水印算法的能力。通过系统评估可以观察到:

  1. 目前的LLM水印算法在准确检测方面表现出色,在无攻击条件下F1得分超过0.99;
  1. 不同的算法在各个方面表现出不同的优势,在选择算法时需要考虑具体情况;
  1. 即使从相同的角度进行评估,结果也可能因所使用的攻击指标或类型而异。这凸显了在判断算法时进行彻底评估的必要性;
  1. 在各种评价观点之间取得和谐的平衡是一项重大挑战。未来的研究应优先考虑平衡和增强算法的整体能力。

综上所述,MARKLLM是一种便捷的工具,可以进行多样化的评估实验,有效地最大限度地降低评估费用。未来的研究可以利用MARKLLM进行全面的探索和分析。

表2:MarkLLM支持的9种算法的可检测性评估结果。生成了 200 个带水印的文本,而 200 个无水印的文本作为负面示例。我们在 10% 和 1% FPR 的动态阈值调整下提供 TPR 和 F1 分数,以及 TPR、TNR、FPR、FNR、P、R、F1、ACC 的最佳性能。

  • TPRTrue Positive Rate,真正例率):正确识别为带水印文本的比例。
  • TNRTrue Negative Rate,真负例率):正确识别为不带水印文本的比例。
  • FPRFalse Positive Rate,假正例率):错误识别为带水印文本的比例,即1-TNR
  • FNRFalse Negative Rate,假负例率):错误识别为不带水印文本的比例,即1-TPR
  • PPrecision,精确率):不带水印文本中被正确识别的比例(同TNR)。
  • RRecall,召回率):带水印文本中被正确识别的比例(同 TPR)。
  • F1F1-scoreF1 分数):精确率和召回率的调和平均数。
  • ACCAccuracy,准确率):正确识别的样本比例(包括正例和负例),即精确率和召回率的算数平均数。

表3:MarkLLM支持的9种算法鲁棒性评估结果。对于每次攻击,都会生成 200 个带水印的文本,然后被篡改,另外 200 个无水印的文本作为负面示例。我们报告在每种情况下的 TPR 和 F1 分数都处于最佳性能。

表4:MarkLLM支持的9种算法对文本质量影响的评估结果。我们比较了 200 个带水印的文本和 200 个无水印的文本。然而,由于数据集的限制,只有 100 个带水印的文本与 100 个无水印的文本进行了代码生成比较。

  1. PPL(Ori.= 8.243)
  • PPLPerplexity,困惑度)通常用来衡量语言模型生成文本的流畅度和预测能力。数值越低表示模型生成的文本越流畅和可预测。"Ori." 表示基准的困惑度。
  1. Log Diversity(Ori.=8.517)
  • 是指生成文本的多样性度量,用对数形式表示,数值越高表示文本的多样性越丰富。"Ori." 表示基准的多样性指标。
  1. Machine Translation BLEU(Ori.=31.807)
  • BLEUBilingual Evaluation Understudy,双语评估)是一种常用于机器翻译任务的自动评估指标,用于衡量机器翻译系统生成的文本与参考翻译之间的相似度。数值越高表示生成的翻译越接近参考翻译。
  1. Code Generation pass@1(Ori.= 43.0)
  • 这是指在某种测试或评估中,系统在第一次尝试时通过的成功率或正确率。"Ori." 可能表示原始或基准的通过率。
  1. Machine Translatio GPT-4 Judge (Wat. Win Rate)
  • 这是指使用某种评判标准来评估 GPT-4 模型的性能,如判断句子是否通顺或语法是否正确的能力。"Wat. Win Rate" 指评判标准的胜率或通过率。

6. 结论

MARKLLM 是一个用于 LLM 水印的综合开源工具包。

  • 它允许用户轻松尝试各种最先进的算法,这些算法具有灵活的配置,可以为自己的文本添加水印并进行检测,并提供清晰的可视化效果以深入了解底层机制。
  • 包含方便的评估工具和可定制的评估管道,可以从各个角度进行自动和彻底的评估。

随着LLM水印的发展,MARKLLM旨在成为一个与研究社区一起成长的协作平台。通过提供坚实的基础和邀请您的贡献,目标:培养一个充满活力的生态系统,研究人员和开发人员可以共同努力,推动 LLM 水印技术的先进技术。

限制

MarkLLM 是一个用于实施、可视化和评估 LLM 水印算法的综合工具包。

  • 水印方法:目前仅集成了现有水印方法的一个子集,尚不支持一些在训练过程中直接将水印嵌入模型参数的最新方法(Xu et al., 2024;Gu 等人,2024 年)。
  • 可视化:为两个主要水印算法系列中的每一个都提供了一个量身定制的解决方案。虽然这些解决方案提供了宝贵的见解,但仍有更多创意和多样化的可视化设计的空间。
  • 评估:涵盖了可检测性、稳健性和文本质量影响等方面。然而,目前的工具包可能无法涵盖所有可能的情况,例如与鲁棒性相关的重新翻译和 CWRA (He et al., 2024) 攻击。

比较

KGW

Christ

类型

逻辑层生成

词汇采样

水印文本

离散

连续

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值