模型窃取的威胁模型

大模型的训练成本极高——GPT-4 级别的模型训练成本在数千万到上亿美元。模型提供商(OpenAI、Anthropic、Google)通过 API 提供模型服务,按 token 收费。模型窃取(Model Stealing)攻击的目标是:通过 API 查询,复制一个功能等价的模型,从而绕过付费、规避使用限制、或进一步分析模型的安全漏洞。

模型窃取的威胁模型是黑盒的——攻击者只能通过 API 向目标模型发送查询,获得输出,不能访问模型的参数、架构、训练数据。攻击者的目标是训练一个”替身模型”(Surrogate Model),在输入-输出行为上与目标模型等价。

模型窃取的基本方法

1. 基于微调的提取

最简单的模型窃取方法:用目标模型生成大量”输入-输出”对,然后用这些数据微调一个开源模型(如 LLaMA、Mistral)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 模型窃取的基本流程
import openai
import json

# 1. 生成查询输入
queries = generate_diverse_queries(num=100000)

# 2. 用目标模型生成输出
dataset = []
for q in queries:
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": q}]
)
dataset.append({"input": q, "output": response.choices[0].message.content})

# 3. 用生成的数据微调开源模型
finetune(model="llama-2-7b", dataset=dataset)

这种方法的效果取决于查询数据的多样性和覆盖度。如果查询数据覆盖了目标模型的主要能力领域,微调后的模型可以在这些领域达到接近目标模型的性能。但如果查询数据有盲区,替身模型在盲区的性能会很差。

2. 主动学习(Active Learning)

随机生成查询的效率很低——大部分查询可能是冗余的,或者落在模型能力的边缘区域。主动学习方法选择”信息量最大”的查询,用更少的查询达到更好的提取效果。

主动学习的查询选择策略:

  • 不确定性采样:选择替身模型预测最不确定的输入(输出分布熵最大),查询目标模型获得真实输出
  • 多样性采样:选择与已查询输入差异最大的输入,确保查询覆盖输入空间的不同区域
  • 委员会查询:用多个替身模型组成委员会,选择委员会成员分歧最大的输入查询目标模型

主动学习可以将模型窃取所需的查询数量降低一个数量级。研究表明,用主动学习方法,仅需 10 万次查询就可以在情感分析任务上提取 BERT 模型的 95% 性能。

3. 基于解码器的提取

对于分类模型,攻击者不仅可以获得预测的类别,还可以获得每个类别的概率分布(logits)。概率分布比硬标签包含更多信息——它反映了模型对每个类别的置信度,可以用来更精确地训练替身模型。

基于解码器的提取方法用目标模型的概率分布作为软标签(Soft Label),训练替身模型匹配目标模型的输出分布。损失函数用 KL 散度:

$$
\mathcal{L} = D_{KL}(p_{target} | p_{surrogate}) = \sum_i p_{target}(i) \log \frac{p_{target}(i)}{p_{surrogate}(i)}
$$

软标签训练比硬标签训练效果更好,因为软标签包含了类间相似性信息——例如,目标模型认为一张图片是”猫”的概率是 0.8,是”狗”的概率是 0.15,是”汽车”的概率是 0.05。这些概率反映了猫和狗在特征空间中更接近,这种信息是硬标签(”猫”)无法提供的。

4. 函数等价提取

函数等价提取的目标不是在标准基准上达到高性能,而是在所有可能的输入上与目标模型输出一致。这是更强的提取目标——替身模型不仅在常见输入上表现相似,在罕见输入、对抗输入上也与目标模型一致。

函数等价提取的方法是在输入空间中进行密集采样,确保覆盖所有可能的输入区域。对于高维输入空间(如文本的 token 空间),完全覆盖是不可能的,但可以通过重要性采样优先覆盖模型行为变化剧烈的区域。

大语言模型的窃取技术

1. 指令跟随能力提取

大语言模型的核心能力是指令跟随(Instruction Following)。提取指令跟随能力的关键是生成多样化的指令查询,覆盖模型的各种能力维度:

  • 知识问答:事实性问题、常识问题
  • 推理:数学推理、逻辑推理、多步推理
  • 代码生成:各种编程语言、各种复杂度的代码
  • 文本生成:摘要、翻译、改写、创意写作
  • 角色扮演:各种角色、各种场景
  • 工具使用:API 调用、函数调用、多步任务

指令查询的生成可以用另一个大模型(如 LLaMA-2)来自动生成,然后用目标模型(如 GPT-4)生成回答,最后用这些数据微调替身模型。这种”用模型生成数据训练模型”的方法被称为”模型蒸馏”(Model Distillation),与模型窃取的技术路径相似,但动机不同——蒸馏是模型提供商授权的,窃取是未授权的。

2. 对话能力提取

对话能力比单轮指令跟随更难提取,因为对话涉及多轮上下文、指代消解、话题转换等复杂现象。

提取对话能力的方法:

  • 多轮对话生成:用目标模型生成完整的多轮对话,包括用户消息和助手回复
  • 上下文长度覆盖:生成不同长度的对话上下文,从短对话(2-3 轮)到长对话(20+ 轮)
  • 话题多样性:覆盖各种对话话题,包括闲聊、技术咨询、创意协作、任务执行
  • 角色一致性:确保替身模型在多轮对话中保持角色和观点的一致性

3. 思维链提取

大模型的思维链(Chain of Thought, CoT)能力是其推理能力的核心。提取思维链能力需要让目标模型输出详细的推理步骤,然后用这些推理步骤训练替身模型。

思维链提取的关键:

  • 推理步骤的完整性:确保目标模型输出完整的推理过程,而不是直接给出答案
  • 推理多样性:覆盖各种推理类型(数学、逻辑、因果、类比)
  • 错误推理的处理:目标模型可能输出错误的推理,需要过滤或标注

研究表明,用思维链数据微调的模型,在推理任务上的表现显著优于用直接答案微调的模型。这意味着思维链数据包含了模型推理能力的核心信息,是模型窃取的高价值目标。

模型窃取的防御

1. 输出扰动

在模型输出中加入噪声,降低输出的信息含量。对于分类模型,可以在概率分布中加入随机噪声,或者只返回 top-k 个类别的概率,隐藏其他类别的概率。

对于大语言模型,输出扰动的方法包括:

  • 温度采样:用较高的温度采样,增加输出的随机性,降低确定性
  • 输出截断:限制输出的最大长度,隐藏完整的推理过程
  • 答案模糊化:对于事实性问题,返回模糊的答案而不是精确答案

但输出扰动会降低模型的可用性——用户付费是为了获得准确、完整的输出,过度的输出扰动会影响用户体验。

2. 查询检测

监控用户的查询模式,检测异常的查询行为。模型窃取攻击通常有以下特征:

  • 查询频率高:攻击者需要大量查询,查询频率远高于正常用户
  • 查询多样性高:攻击者的查询覆盖各种主题,而正常用户的查询通常集中在特定领域
  • 查询模式异常:攻击者可能使用自动化工具生成查询,查询模式有规律性
  • 输出利用率高:攻击者会保存所有输出用于训练,而正常用户通常只阅读输出

查询检测可以识别大部分模型窃取攻击,但高级攻击者可以通过分布式查询、模拟正常用户行为来规避检测。

3. 水印(Watermarking)

在模型输出中嵌入不可见的水印,用于追踪模型窃取。如果攻击者用窃取的模型提供服务,水印可以证明该模型是从目标模型窃取的。

大语言模型的水印方法:

  • 统计水印:在输出的 token 分布中嵌入统计特征,例如让某些 token 的出现频率偏离正常分布
  • 语义水印:在输出的语义中嵌入特定模式,例如在回答中总是包含特定的短语组合
  • 触发水印:当输入包含特定的触发词时,模型输出特定的水印内容

水印的检测需要访问可疑模型的大量输出,通过统计分析判断是否包含水印。水印的鲁棒性取决于攻击者是否知道水印的存在和嵌入方法——如果攻击者知道水印,可能通过输出后处理移除水印。

4. 模型鲁棒性训练

在训练过程中,让模型对模型窃取攻击更鲁棒。方法包括:

  • 对抗训练:在训练时加入模拟模型窃取的查询,让模型学会对这些查询输出异常结果
  • 输出一致性正则化:约束模型在相似输入上的输出差异,降低输出的信息含量
  • 隐私保护训练:用差分隐私等方法训练模型,限制单个训练样本和单个查询对模型的影响

5. 法律保护

模型窃取不仅是技术问题,也是法律问题。模型提供商可以通过以下法律手段保护模型:

  • 服务条款:在 API 服务条款中明确禁止模型窃取行为
  • 版权保护:主张模型输出受版权保护,未经授权不得用于训练其他模型
  • 商业秘密保护:主张模型参数和训练数据是商业秘密,窃取行为构成侵权
  • 专利保护:为模型的关键技术申请专利,防止未授权使用

法律保护的效果取决于司法管辖区和具体案例。目前 AI 模型的法律保护还在发展中,不同国家和地区的法律框架差异较大。

模型窃取的实际影响

1. 经济损失

模型窃取让攻击者可以免费获得目标模型的能力,绕过 API 付费。对于模型提供商来说,这意味着直接的收入损失。更严重的是,窃取的模型可以被用于提供竞争性服务,进一步侵蚀目标模型的市场份额。

2. 安全风险

窃取的模型可以被用于进一步的安全分析。攻击者可以在白盒环境下分析窃取的模型,发现越狱方法、对抗样本、训练数据泄露等漏洞,然后用这些漏洞攻击原始模型。

特别是对于安全敏感的模型(如内容审核模型、欺诈检测模型),模型窃取可能导致攻击者完全了解模型的检测逻辑,从而开发规避检测的方法。

3. 隐私泄露

模型窃取可能间接导致训练数据隐私泄露。攻击者可以用窃取的模型进行成员推断攻击(判断某个样本是否在训练集中)、训练数据提取攻击(从模型中恢复训练数据)。如果训练数据包含敏感信息(如用户对话、个人数据),模型窃取可能导致严重的隐私泄露。

模型窃取的前沿研究

1. 高效提取算法

当前的模型窃取需要大量查询(数十万到数百万次),成本较高。前沿研究致力于开发更高效的提取算法,用更少的查询达到更好的提取效果。方向包括:

  • 基于梯度的查询选择:用替身模型的梯度信息选择最有价值的查询
  • 基于生成模型的查询生成:用生成模型自动生成高信息量的查询
  • 多任务联合提取:同时提取模型的多种能力,共享查询数据

2. 跨架构提取

传统的模型窃取假设替身模型与目标模型架构相同或相似。跨架构提取研究如何用不同架构的模型(如用 RNN 提取 Transformer)实现功能等价。跨架构提取更具挑战性,因为不同架构的归纳偏置不同,但也更有实用价值——攻击者可能不知道目标模型的架构。

3. 部分提取与能力定位

完整提取一个大模型的所有能力成本极高。部分提取研究如何只提取模型的特定能力(如代码生成能力、数学推理能力),而不是完整复制模型。能力定位研究如何识别模型的哪些参数或层对应特定能力,从而实现精准提取。

4. 防御机制的博弈

模型窃取的攻防是一个持续博弈的过程。攻击者开发更高效的提取方法,防御方开发更有效的检测和防御技术,攻击者再开发规避方法。前沿研究致力于构建”可证明安全”的防御机制,在理论上保证模型窃取的成本下界。

总结

模型窃取是大模型时代的重要安全威胁。通过 API 查询,攻击者可以用相对较低的成本复制一个功能等价的模型,绕过付费、规避限制、进一步分析安全漏洞。

从基于微调的简单提取到主动学习、软标签训练、思维链提取,模型窃取技术在不断进化。防御方需要从输出扰动、查询检测、水印、鲁棒训练、法律保护等多个层面构建防御体系。

随着大模型的经济价值和安全重要性不断提升,模型窃取的攻防博弈将持续升级。理解模型窃取的原理和技术,是保护大模型知识产权和安全的基础。