人工智能

MARKLLM:一个用于LLM水印的开源工具包

mm
MARKLLM: An Open-Source Toolkit for LLM Watermarking

LLM水印是一种将不可见但可检测的信号集成到模型输出中,以识别由LLM生成的文本的技术,对于防止大型语言模型的滥用至关重要。这些水印技术主要分为两类:KGW家族和Christ家族。KGW家族通过修改LLM产生的logits来创建水印输出,根据前一个token将词汇表分为绿色列表和红色列表。在文本生成过程中,引入了对绿色列表token的偏差,偏爱这些token在生成的文本中。然后,从绿色单词的比例中计算出一个统计指标,并建立一个阈值来区分水印和非水印文本。KGW方法的增强包括改进的列表分区、更好的logits操作、增加水印信息容量、抵抗水印删除攻击以及公开检测水印的能力。

相反,Christ家族在LLM文本生成过程中改变了采样过程,通过改变token的选择来嵌入水印。两种水印家族都旨在平衡水印的可检测性和文本质量,解决了诸如在不同熵设置中保持稳健性、增加水印信息容量和防止删除尝试等挑战。最近的研究重点是改进列表分区和logits操作、增强水印信息容量、开发抵抗水印删除的方法以及实现公开检测。最终,LLM水印对于大型语言模型的伦理和负责任的使用至关重要,提供了一种方法来追踪和验证LLM生成的文本。KGW和Christ家族提供了两种不同的方法,每种都有其独特的优势和应用,通过持续的研究和创新不断演进。

由于LLM水印框架能够在模型输出中嵌入算法可检测的信号,以识别由LLM框架生成的文本,因此LLM水印框架在减轻大型语言模型滥用的风险方面发挥着至关重要的作用。然而,当前市场上存在大量LLM水印框架,每个框架都有其自己的观点和评估程序,这使得研究人员难以轻松地尝试这些框架。为了解决这个问题,MarkLLM,一个用于水印的开源工具包,提供了一个可扩展和统一的框架来实现LLM水印算法,同时提供用户友好的接口,以确保易用性和访问性。此外,MarkLLM框架支持这些框架机制的自动可视化,从而提高了这些模型的可理解性。MarkLLM框架提供了一个全面的12种工具套件,涵盖了三个方面以及两个自动评估管道,用于评估其性能。本文旨在深入探讨MarkLLM框架,我们将探索其机制、方法论、架构以及与最先进框架的比较。让我们开始吧。

MarkLLM:一个LLM水印工具包

像LLaMA、GPT-4、ChatGPT等大型语言模型框架的出现,显著推进了人工智能模型执行特定任务的能力,包括创意写作、内容理解、形成检索等。然而,随着当前大型语言模型的卓越能力而来的,还有一些风险,包括学术论文代写、LLM生成的假新闻和描绘,以及个人模仿等。鉴于这些问题的风险,开发可靠的方法来区分LLM生成的内容和人类内容至关重要,这是确保数字通信的真实性和防止虚假信息传播的主要要求。过去几年,LLM水印被认为是区分LLM生成内容和人类内容的一种有前途的解决方案,通过在文本生成过程中嵌入独特的特征,可以使用专门设计的检测器来识别LLM输出。然而,由于LLM水印框架的增殖和相对复杂的算法,以及评估指标和观点的多样化,使得尝试这些框架变得极其困难。

为了弥补当前的差距,MarkLLM框架试图做出以下贡献。MarkLLM提供了一致且用户友好的接口,用于加载算法、生成水印文本、进行检测过程和收集可视化数据。它为两大主要水印算法家族提供了自定义的可视化解决方案,允许用户在各种配置和现实世界示例中看到不同算法的工作原理。工具包包括一个全面的评估模块,涵盖了12种工具,解决了可检测性、稳健性和文本质量影响的问题。另外,它具有两种自动评估管道,支持用户自定义数据集、模型、评估指标和攻击,方便灵活和彻底的评估。MarkLLM采用模块化、松散耦合的架构,增强了可扩展性和灵活性。这种设计选择支持新算法、创新可视化技术和评估工具包的扩展,以适应未来开发者的需求。

已经提出了许多水印算法,但是它们独特的实现方法通常优先考虑特定的需求而不是标准化,导致了几个问题

  1. 类设计的标准化不足:这需要在优化或扩展现有方法时付出大量努力,因为类设计标准化不足。
  2. 顶级调用接口的统一性不足:不一致的接口使得批处理和复制不同算法变得繁琐和劳动密集。
  3. 代码标准问题:挑战包括需要在多个代码段中修改设置以及不一致的文档,这使得自定义和有效使用变得复杂。硬编码的值和不一致的错误处理进一步阻碍了适应性和调试工作。

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

由于框架的分布式设计,开发人员可以轻松地向任何特定的水印算法类添加额外的顶级接口,而无需担心影响其他算法。

MarkLLM:架构和方法论

LLM水印技术主要分为两类:KGW家族和Christ家族。KGW家族通过修改LLM产生的logits来创建水印输出,根据前一个token将词汇表分为绿色列表和红色列表。在文本生成过程中,引入了对绿色列表token的偏差,偏爱这些token在生成的文本中。然后,从绿色单词的比例中计算出一个统计指标,并建立一个阈值来区分水印和非水印文本。KGW方法的增强包括改进的列表分区、更好的logits操作、增加水印信息容量、抵抗水印删除攻击以及公开检测水印的能力。

相反,Christ家族在LLM文本生成过程中改变了采样过程,通过改变token的选择来嵌入水印。两种水印家族都旨在平衡水印的可检测性和文本质量,解决了诸如在不同熵设置中保持稳健性、增加水印信息容量和防止删除尝试等挑战。最近的研究重点是改进列表分区和logits操作、增强水印信息容量、开发抵抗水印删除的方法以及实现公开检测。最终,LLM水印对于大型语言模型的伦理和负责任的使用至关重要,提供了一种方法来追踪和验证LLM生成的文本。KGW和Christ家族提供了两种不同的方法,每种都有其独特的优势和应用,通过持续的研究和创新不断演进。

自动化综合评估

评估LLM水印算法是一项复杂的任务。首先,它需要考虑各种方面,包括水印的可检测性、抗篡改的稳健性和对文本质量的影响。其次,来自每个角度的评估可能需要不同的指标、攻击场景和任务。另外,进行评估通常涉及多个步骤,例如模型和数据集的选择、水印文本的生成、后处理、水印检测、文本篡改和指标计算。为了方便LLM水印算法的评估,MarkLLM提供了12种用户友好的工具,包括各种指标计算器和攻击器,涵盖了三个评估角度。另外,MarkLLM提供了两种自动化的演示管道,其模块可以灵活地自定义和组装,允许用户轻松配置和使用。

对于可检测性的方面,大多数水印算法最终需要指定一个阈值来区分水印和非水印文本。我们提供了一个基本的成功率计算器,使用固定阈值。另外,为了最小化阈值选择对可检测性的影响,我们还提供了一个支持动态阈值选择的计算器。这个工具可以确定产生最佳F1分数的阈值或根据用户指定的目标假阳性率(FPR)选择阈值。

对于稳健性的方面,MarkLLM提供了三种单词级别的文本篡改攻击:在指定比例下随机删除单词、使用WordNet作为同义词集的随机同义词替换以及使用BERT作为嵌入模型的上下文感知同义词替换。另外,提供了两种文档级别的文本篡改攻击:通过OpenAI API或Dipper模型对上下文进行改述。对于文本质量的方面,MarkLLM提供了两种直接分析工具:一个困惑度计算器来衡量流利度和一个多样性计算器来评估文本的可变性。为了分析水印对特定下游任务的文本实用性的影响,我们提供了一个BLEU计算器用于机器翻译任务和一个通过/不通过判断器用于代码生成任务。另外,考虑到当前比较水印和非水印文本质量的方法,包括使用更强大的LLM进行判断,MarkLLM还提供了一个GPT鉴别器,使用GPT-4来比较文本质量。

评估管道

为了方便LLM水印算法的自动化评估,MarkLLM提供了两种评估管道:一种用于评估水印的可检测性,包括有攻击和无攻击的情况;另一种用于分析水印对文本质量的影响。按照这个过程,我们已经实现了两种管道:WMDetect3和UWMDetect4。两者之间的主要区别在于文本生成阶段。前者需要使用水印算法的generate_watermarked_text方法,而后者则依赖于text_source参数来确定是否直接从数据集中检索自然文本或调用generate_unwatermarked_text方法。

为了评估水印对文本质量的影响,生成了水印和非水印文本的对。这些文本以及其他必要的输入,然后被处理并输入到指定的文本质量分析器中,以产生详细的分析和比较结果。按照这个过程,我们已经实现了三种管道,用于不同的评估场景:

  1. DirectQual.5:这个管道专门设计用于通过直接比较水印文本和非水印文本的特征来分析文本质量。它评估了困惑度(PPL)和对数多样性等指标,而无需任何外部参考文本。
  2. RefQual.6:这个管道通过比较水印和非水印文本与一个共同的参考文本来评估文本质量。它衡量了文本与参考文本的相似度或偏差程度,使其适合需要特定下游任务来评估文本质量的场景,例如机器翻译和代码生成。
  3. ExDisQual.7:这个管道使用外部判断器(如GPT-4(OpenAI,2023))来评估水印和非水印文本的质量。鉴别器根据用户提供的任务描述评估文本,确定由于水印而可能造成的任何质量下降或保持。这种方法特别适用于需要使用先进的AI分析来评估水印的微妙影响的情况。

MarkLLM:实验和结果

为了评估其性能,MarkLLM框架对九种不同的算法进行了评估,并评估了它们对文本质量的影响、稳健性和可检测性。

上表包含了评估MarkLLM支持的九种算法的可检测性的结果。使用动态阈值调整来评估水印的可检测性,提供了三种设置:在目标假阳性率(FPR)为10%的情况下,在目标FPR为1%的情况下,以及在最佳F1分数性能的情况下。生成了200个水印文本,而200个非水印文本作为负面示例。我们提供了在动态阈值调整下10%和1%的FPR以及在最佳性能下的TPR和F1分数。下表包含了评估MarkLLM支持的九种算法的稳健性的结果。对于每种攻击,生成了200个水印文本并随后进行了篡改,还有200个非水印文本作为负面示例。我们报告了在每种情况下的最佳性能下的TPR和F1分数。

最后的思考

在这篇文章中,我们讨论了MarkLLM,一个用于水印的开源工具包,它提供了一个可扩展和统一的框架来实现LLM水印算法,同时提供了用户友好的接口,以确保易用性和访问性。此外,MarkLLM框架支持这些框架机制的自动可视化,从而提高了这些模型的可理解性。MarkLLM框架提供了一个全面的12种工具套件,涵盖了三个方面以及两个自动评估管道,用于评估其性能。

专业为工程师,心为作家。 Kunal是一名技术作家,对AI和ML有着深厚的热爱和理解,致力于通过其引人入胜和信息丰富的文档来简化这些领域中的复杂概念。