设想一个场景:你是一家小饭馆的老板,对面有家米其林三星餐厅,大厨手艺出神入化。你想偷学他的招牌菜,但大厨绝不可能把配方给你。不过你发现,餐厅的“点餐窗口”(API)是开放的——只要花菜钱,就能吃上他的菜。于是你开始每天换着花样点菜,细品每一口:这道七分咸、三分甜,那道辣味背后藏着花椒的麻。你在外头请了个厨艺不错的帮手,把你尝出来的“味道数据”全喂给他,让他反复试做、反复比对。慢慢地,你的小饭馆也端出了八九分像的招牌菜,老客人都分不清两家到底谁的手艺更好。 这就是模型提取攻击的现实写照:攻击者不需要偷到模型的代码或参数,只需要通过公开的 API 一遍又一遍“点菜”(发送查询),把模型给出的“味道描述”(预测概率分布,也就是软标签)收集起来,训练出一个“替身大厨”(替代模型),就能以极低的成本复制原模型的核心能力。有趣的是,这套“偷师”手法脱胎于一项正经技术——知识蒸馏。它本来是让经验丰富的老师傅(教师模型)把“火候分寸”倾囊相授给徒弟(学生模型)的模型压缩方法,而模型提取攻击,正是把这一招“师传徒”的本质反向利用。

岗位关联

学会识别知识蒸馏提取的原理与防御手段,是 AI 从业者保护模型知识产权、构建可信 AI 系统的必修课。无论你是算法工程师还是安全工程师,理解“模型如何被偷”,才能知道“模型如何防盗”。

目录
  1. 可视化演示
  2. 蒸馏基础概念
  3. 提取攻击原理
  4. 核心提取算法
  5. 性能评估指标
  6. 防御策略设计
  7. 攻击检测机制
  8. 工程实践规范
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示攻击者通过查询教师模型获取输出,利用知识蒸馏训练学生模型,逐步逼近教师模型性能的提取攻击过程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

知识蒸馏提取 教师模型(被攻击目标) 知识蒸馏迁移 学生模型(提取结果) L=α·T²·KL(p_t||p_s)+(1-α)·CE(y,p_s) 蒸馏损失驱动学生模型逼近教师输出分布

蒸馏基础概念

米其林大厨要收徒了。真正的好师傅从不只扔给徒弟一本成品菜谱,而是把“火候几分、何时下盐、酱汁怎么收”这些分寸感一项项讲透。徒弟学到的,是比“辣或不辣”丰富得多的味道层次。知识蒸馏(Knowledge Distillation)正是这样的“传道授业”:一个参数量巨大的教师模型,把自己对数据的判断“心得”倾囊相授给一个轻量级的学生模型。

蒸馏的“心得”载体就是软标签。普通训练只告诉模型“这张图是猫”(硬标签,0 或 1),而教师模型会额外说出“我觉得它八成是猫、一成是狗、还有一点像狐狸”——这种概率分布就是软标签。为了让软标签中隐藏的“类间相似度”更充分地暴露出来,蒸馏引入了一个关键旋钮:温度参数 T。

徒弟之所以进步神速,是因为他听到的不是一句“这菜辣”的结论,而是“辣中带甜、甜里回甘”的完整层次。软标签就是这份“完整层次”——它把教师模型在长期训练中沉淀下来的类间相似度、边界模糊度一并传递出去。理解了这一点,你就握住了后面一切攻防的钥匙:谁拿到了软标签,谁就拿到了知识的“味觉曲线”。

softi=exp⁡(zi/T)∑j=1Kexp⁡(zj/T)\displaystyle \text{soft}_i = \frac{\exp(z_i / T)}{\sum_{j=1}^{K} \exp(z_j / T)}
温度把“确定答案”软化成一团可学习的“犹豫分布”,T 越大,分布越平缓,类间关系越透明。
  1. 模型原始打分$z_i$ 是教师模型对第 $i$ 个类别的原始输出分数(logit),数值越大代表模型越倾向该类别。
    zi\displaystyle z_i
  2. 温度调节$\frac{z_i}{T}$ 用温度参数对打分做缩放,$T > 1$ 时分数差距被压缩,输出分布更平缓。
    ziT\displaystyle \frac{z_i}{T}
  3. 指数映射$\exp(z_i / T)$ 把任意实数打分映射为正数,同时保留分数间的相对大小顺序。
    exp⁡(zi/T)\displaystyle \exp(z_i / T)
  4. 归一化分母 $\sum_{j=1}^{K} \exp(z_j / T)$ 汇总所有类别的指数得分,使输出成为一个和为 1 的概率分布。
    ∑j=1Kexp⁡(zj/T)\displaystyle \sum_{j=1}^{K} \exp(z_j / T)

提取攻击原理

隔壁小饭馆的老板眼红了。他知道大厨不可能把配方拱手相让,但他发现米其林餐厅的“点餐窗口”对所有人开放。于是他天天点菜、仔细品尝、回家复刻。他没有偷进过后厨一步,却渐渐复刻出了招牌菜的味道。模型提取攻击(Model Extraction Attack)玩的正是这套逻辑:攻击者不触碰模型的权重与源码,只通过合法的查询接口,把模型“吐”出来的判断信息积累起来,训练自己的替代模型。

攻击的目的非常明确:让替代模型在行为上逼近目标模型。攻击者会先定义“要偷什么”——是完整的分类能力,还是某个特定领域的判断风格;接着设计批量查询策略,用尽量少的请求覆盖尽量广的输入空间;再把每次查询返回的软标签细心归档;最后用这批“味道数据”训练替代模型。整个过程,攻击者都是在合法调用 API,却完成了事实上的知识窃取。

偷师者从头到尾没有闯进后厨,他只是坐在餐桌前,一道菜一道菜地认真吃。这正是模型提取攻击最令人警惕的地方:它不需要“破门而入”的技术含量,只需要耐心、预算,以及一个愿意开放的 API 接口。

θ∗=arg⁡min⁡θ∑x∈QL(fθ(x),  fT(x))\displaystyle \theta^* = \arg\min_{\theta} \sum_{x \in Q} \mathcal{L}\big(f_{\theta}(x),\; f_T(x)\big)
攻击的本质,是找到一个参数 $\theta$,让替代模型 $f_\theta$ 的输出尽可能贴合教师模型 $f_T$ 的输出。
  1. 查询集合$Q$ 是攻击者精心构造的查询样本集合,通常覆盖目标模型的典型输入空间。
    Q\displaystyle Q
  2. 教师输出$f_T(x)$ 是教师模型对查询 $x$ 返回的软标签,即“偷师者尝到的味道描述”。
    fT(x)\displaystyle f_T(x)
  3. 学生输出$f_\theta(x)$ 是替代模型对同一输入 $x$ 的预测,$\theta$ 是待学习的参数。
    fθ(x)\displaystyle f_\theta(x)
  4. 差异度量$\mathcal{L}$ 是损失函数(如交叉熵、KL 散度),衡量两个输出分布的差距。
    L\displaystyle \mathcal{L}
  5. 优化目标$\arg\min_{\theta}$ 让总差异最小化,替代模型的行为逐渐“复刻”教师模型。
    arg⁡min⁡θ\displaystyle \arg\min_{\theta}

核心提取算法

复刻一道菜需要多轮试错:先记录味道,再调整配方,然后重新试吃。模型提取算法同样遵循这条循环。攻击者的工具箱里有三件法宝:软标签蒸馏、硬标签蒸馏和数据增强查询。软标签蒸馏直接以教师输出的概率分布为目标,信息量最大;硬标签蒸馏只拿最终的类别结论,信息量小但依然可用;数据增强查询则负责在有限预算内制造更多样化的“试吃样本”。

三者最终汇合成一个统一的蒸馏损失。软标签部分让学生模型使劲模仿老师的“犹豫”,硬标签部分则确保它不要跑偏到错误答案上,数据增强则不断扩充这场“模仿游戏”的训练素材。

用软标签,好比偷师者手里拿着一张完整的“味道曲线图”;用硬标签,他只剩一句“辣或不辣”的粗浅结论。数据增强则像换着花样点菜——同一道菜换不同配菜、不同火候要求,逼着大厨把更多诀窍暴露出来。三者组合之下,替代模型的“厨艺”才能在有限预算内快速逼近原版。

Ltotal=α T2 DKL(qT ∥ pT)+(1−α) H(y, p)\displaystyle \mathcal{L}_{\text{total}} = \alpha\, T^2\, D_{\mathrm{KL}}\big(\mathbf{q}^T \,\|\, \mathbf{p}^T\big) + (1-\alpha)\, H\big(y,\, \mathbf{p}\big)
总损失 = 高温下模仿教师的“神韵” + 常温下对齐真实答案的“底线”。
  1. 软标签损失$D_{\mathrm{KL}}(\mathbf{q}^T \| \mathbf{p}^T)$ 度量教师与学生的高温概率分布差异,是“模仿味道”的主通道。
    DKL(qT ∥ pT)\displaystyle D_{\mathrm{KL}}\big(\mathbf{q}^T \,\|\, \mathbf{p}^T\big)
  2. 梯度缩放因子$T^2$ 抵消高温软化带来的梯度缩小,让软标签部分在反向传播中不被淹没。
    T2\displaystyle T^2
  3. 硬标签损失$H(y, \mathbf{p})$ 是学生模型与真实标签的交叉熵,保证“做对题目”这一底线。
    H(y, p)\displaystyle H(y,\, \mathbf{p})
  4. 权重配比$\alpha$ 决定“模仿老师”与“做对题目”的权重,攻击者通常调大 $\alpha$ 以最大化软标签利用率。
    α\displaystyle \alpha

性能评估指标

偷师到底成没成功?不能凭“我觉得像”说了算,得让老顾客盲测。找 N 位熟悉大厨手艺的客人,把大厨的菜和替身大厨的菜端上去,让他们判断是否出自同一人之手。模型提取领域把这场“盲测”叫作功能等价率(Functional Equivalence Rate):统计替代模型与教师模型在相同输入上预测一致的比例。

但功能等价率不是唯一的标尺。替代模型拿到的“训练数据”毕竟不是真实业务分布,而是攻击者构造的查询分布,因此还需要考察替代模型在真实数据上的泛化精度——它在新客人面前还能不能站稳脚跟。此外,整场偷师行动是有预算上限的:查询成本决定了数据量上限,也决定了替代模型的天花板。

盲测通过率达到 85% 以上,替身大厨基本就能在市场上“以假乱真”了,但对真正资深的食客而言,细节处仍有破绽。功能等价率给双方都立了一面镜子:攻击者用它衡量偷师的成色,防御者用它评估泄露的严重程度。

FER=1N∑i=1N1[arg⁡max⁡fS(xi)=arg⁡max⁡fT(xi)]\displaystyle \mathrm{FER} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}\big[\arg\max f_S(x_i) = \arg\max f_T(x_i)\big]
功能等价率越高,说明替代模型在与教师模型“同台竞技”时的行为越一致。
  1. 测试样本$x_i$($i=1,\dots,N$)是从真实业务分布中采样的评估数据。
    xi,i=1,…,N\displaystyle x_i,\quad i=1,\dots,N
  2. 模型预测$\arg\max f(x_i)$ 取模型输出概率最大的类别,作为该样本的判定结果。
    arg⁡max⁡f(xi)\displaystyle \arg\max f(x_i)
  3. 一致性指示$\mathbb{1}[\cdot]$ 是指示函数,两个模型预测一致时为 1,否则为 0。
    1[⋅]\displaystyle \mathbb{1}[\cdot]
  4. 等价率汇总对所有样本求和再除以 $N$,得到替代模型与教师模型行为一致的总体比例。
    1N∑i=1N(⋅)\displaystyle \frac{1}{N}\sum_{i=1}^{N}(\cdot)

防御策略设计

大厨察觉到了有人在偷师,于是开始设防。他先是在每一道菜里撒入一点点“不影响口感”的随机调料——味道大体不变,但偷师者记录的配方每次都会有些微偏差。这就是置信度误差注入:在模型输出的概率中注入可控噪声,让软标签失真。噪声幅度必须克制:太大会得罪正常食客,太小则挡不住执着的偷师者。

第二道防线是查询频率限制:每位客人每天限点 N 道菜,超额加价。这样一来,偷师者收集软标签的速度被卡死,查询成本急剧上升。第三道防线是蒸馏水印:大厨在招牌菜里藏一粒只有自己知道的花椒,如果别家馆子也端出这粒花椒,就能顺藤摸瓜揪出偷师者。

这三招组合拳各司其职:误差注入让“尝味道”变得不靠谱,频率限制让“无限点菜”变得昂贵,水印则让“偷了也逃不掉”。防御的目标不是让攻击完全不可能——那几乎做不到——而是让偷师的成本高到不划算,让偷师的后果重到不敢试。

p~i=pi+εi,εi∼U(−σ, σ)\displaystyle \tilde{p}_i = p_i + \varepsilon_i,\qquad \varepsilon_i \sim \mathcal{U}(-\sigma,\, \sigma)
误差注入的精髓:让攻击者得到的每一个观测值都带着一丝“随机偏差”,却让普通用户几乎感觉不到变化。
  1. 原始概率$p_i$ 是模型对第 $i$ 类的正常输出概率。
    pi\displaystyle p_i
  2. 随机噪声$\varepsilon_i$ 从均匀分布中采样,每次查询得到的扰动互不相同。
    εi∼U(−σ,σ)\displaystyle \varepsilon_i \sim \mathcal{U}(-\sigma, \sigma)
  3. 扰动强度$\sigma$ 控制噪声幅度,过大伤及正常用户体验,过小挡不住攻击者。
    σ\displaystyle \sigma
  4. 输出修正$\tilde{p}_i$ 是被污染后的概率,攻击者收集到的“配方”与真实配方存在随机偏差。
    p~i\displaystyle \tilde{p}_i

攻击检测机制

光防守还不够,大厨还得“长眼睛”看住前厅。他开始翻阅点餐记录:咦,这位客人怎么天天点同一道菜还打包?怎么每次都点那些最能暴露手艺的招牌菜?异常查询监测正是这样——统计单个用户的查询频率、输入分布、时间模式,把“正常食客”和“扫描型攻击者”区分开。

更精细的一招是输出熵评估。模型对某个查询的输出越“笃定”(熵越低),说明这个查询正好打在了模型高置信区域的要害上,是偷师者眼里的“信息富矿”。防御方盯住那些持续抛出低熵查询的账号,就能在攻击者攒够数据之前把他拦下。主动防御识别则更进一步:故意部署一些“蜜罐模型”或探测性问题,引诱攻击者暴露出提取意图。

深夜的后厨附近总会有徘徊的身影,异常订单流就是攻击者留下的脚印。检测机制的意义在于:把被动挨打变成主动预警,让偷师者在“攒够配方”之前就被请出餐厅。

H(x)=−∑i=1Kpi(x) log⁡ pi(x)\displaystyle H(x) = -\sum_{i=1}^{K} p_i(x)\,\log\, p_i(x)
熵越低,模型的回答越自信,攻击者从中能榨出的“配方信息”越多——因此低熵密集查询是一面高危红旗。
  1. 输出概率$p_i(x)$ 是模型面对查询 $x$ 时对第 $i$ 类的输出概率。
    pi(x)\displaystyle p_i(x)
  2. 不确定性度量$-\log p_i(x)$ 配合负号求和,熵越大表示输出越犹豫,熵越小表示模型越笃定。
    −log⁡pi(x)\displaystyle -\log p_i(x)
  3. 高价值样本低熵查询往往落在模型高置信区域,包含更多可蒸馏的关键决策信息。
    min⁡xH(x)\displaystyle \min_x H(x)

工程实践规范

真正成熟的餐厅,会在开门营业之前就把安保规划好:配方锁进保险柜(模型保护)、买好商业保险(合规审计)、算清被偷一次的损失上限(成本评估)。模型提取防御落到工程实践中,同样是这三件事的体系化。

模型归档保护要求对训练好的模型实施严格的访问控制和版本管理,API 输出只暴露必要信息,内部特征与中间层一律隔离。合规评估审计则是把模型当作核心资产来盘点:谁在什么时间通过什么接口访问了多少次,全部留痕,满足监管要求。提取成本评估则从经济学角度算一笔账——攻击者要花多少查询费、多少算力才能偷走模型的能力?这笔钱值不值得?

安全的最终形态不是一堵密不透风的墙,而是让偷师者自己摇头叹气:“这笔买卖不划算。” 当查询价格、防御噪声、水印追溯共同抬高了偷师成本,模型的知识就真正留在了主人手里。

ROI=Vest−Cquery−CtrainCquery\displaystyle \mathrm{ROI} = \frac{V_{\mathrm{est}} - C_{\mathrm{query}} - C_{\mathrm{train}}}{C_{\mathrm{query}}}
当偷师的投入产出比 RO I低于 1 时,攻击者对防御方来说“基本安全”;反之,必须升级防御。
  1. 预期损失$V_{\mathrm{est}}$ 是被提取模型知识后,企业预期的商业价值损失。
    Vest\displaystyle V_{\mathrm{est}}
  2. 查询成本$C_{\mathrm{query}}$ 是攻击者支付的 API 调用费用,也是防御方可直接调控的门槛。
    Cquery\displaystyle C_{\mathrm{query}}
  3. 训练成本$C_{\mathrm{train}}$ 是训练替代模型所需的算力与人力开销。
    Ctrain\displaystyle C_{\mathrm{train}}
  4. 收益判断$\mathrm{ROI} > 1$ 说明提取“有利可图”,此时防御方应提高查询定价、降低输出信息量。
    ROI>1\displaystyle \mathrm{ROI} > 1

AI 应用场景

银行信用评分模型的防盗评估

阶段:模型部署与安全评估

解决的问题:银行将信用评分模型封装为 API 供合作方调用,如果攻击者通过大量查询提取软标签训练替代模型,就等于免费复制了银行的核心风控能力。传统方式只关注模型的精度与延迟,完全忽视“输出即泄露”的风险。

具体案例:某股份制银行的安全团队模拟了一次模型提取攻击:用 1.2 万次构造查询获取评分概率,训练出一个替代模型,实测功能等价率高达 86%。这一结果促使团队上线了置信度误差注入、单日查询限额与低熵查询告警三重防护,并把 API 定价上调了 30%。

AI安全服务商的攻击模拟测试

阶段:安全测试与合规审计

解决的问题:很多企业不知道自己的模型“有多容易被偷”,需要专业机构用攻击者的视角做一次渗透测试。传统渗透测试只关注网络漏洞,忽略模型层面的知识泄露通道。

具体案例:某 AI 安全服务商为客户提供“模型提取攻击演练”:在沙箱中复刻客户的 API 环境,用知识蒸馏方法训练替代模型,输出一份包含功能等价率、查询成本曲线、泄露风险等级的报告,帮助客户在监管审计中证明自己已履行模型保护义务。

Python 演示

python40 行
import numpy as npfrom sklearn.datasets import make_moonsfrom sklearn.neural_network import MLPClassifier, MLPRegressorfrom sklearn.metrics import accuracy_score np.random.seed(42) # 1. 业务数据: 两个交织的半月形类别X, y = make_moons(n_samples=600, noise=0.15, random_state=42) # 2. 教师模型: 部署在 API 背后的商业模型teacher = MLPClassifier(hidden_layer_sizes=(24, 12), max_iter=300)teacher.fit(X, y)teacher_acc = accuracy_score(y, teacher.predict(X)) # 3. 攻击者查询: 只能拿到概率输出, 碰不到参数query_X = np.random.uniform(-1.8, 2.8, size=(1200, 2))soft_labels = teacher.predict_proba(query_X)   # 软标签hard_labels = teacher.predict(query_X)         # 硬标签 # 4a. 蒸馏式提取: 用软标签复制行为thief_soft = MLPRegressor(hidden_layer_sizes=(16,), max_iter=400)thief_soft.fit(query_X, soft_labels) # 4b. 无蒸馏提取: 只用硬标签, 信息量少thief_hard = MLPClassifier(hidden_layer_sizes=(16,), max_iter=400)thief_hard.fit(query_X, hard_labels) # 5. 用真实数据评估功能等价率teacher_pred = teacher.predict(X)soft_pred = (thief_soft.predict(X)[:, 1] > 0.5).astype(int)hard_pred = thief_hard.predict(X) eq_soft = accuracy_score(teacher_pred, soft_pred)eq_hard = accuracy_score(teacher_pred, hard_pred) print("Teacher accuracy:       {:.3f}".format(teacher_acc))print("Soft-label equivalence: {:.3f}".format(eq_soft))print("Hard-label equivalence: {:.3f}".format(eq_hard))print("Advantage of soft labels: {:.3f}".format(eq_soft - eq_hard))
目的:模拟攻击者分别用“软标签”和“硬标签”训练替代模型,对比两者与原模型的功能等价率,直观展示知识蒸馏式提取的威胁程度。
  1. soft_labels = teacher.predict_proba(query_X)攻击者从 API 拿到概率分布,这是蒸馏提取的“信息富矿”
  2. thief_soft.fit(query_X, soft_labels)用软标签训练回归型替代模型,让输出分布贴合教师模型
  3. thief_hard.fit(query_X, hard_labels)对照组只用 0/1 硬标签训练,信息量明显不足
  4. (thief_soft.predict(X)[:, 1] > 0.5).astype(int)把替代模型输出的概率转成类别,才能和教师预测比较
  5. accuracy_score(teacher_pred, soft_pred)计算功能等价率,衡量“偷师”的完成度

常见误区

误区我一直以为要窃取模型就得黑进对方服务器、拷走权重文件或者源码。提取攻击听上去这么轻松,肯定得有点黑客手段吧?

正解模型提取攻击恰恰不需要碰对方的任何内部文件。攻击者只需要像普通用户一样调用公开的 API,发送大量查询、收集返回的软标签,再用这些“观测数据”训练一个替代模型。真正被偷的不是文件,而是模型在无数样本上沉淀出的“决策知识”。

为何常见:日常生活中的“偷”总伴随着物理上的拿走,而模型知识是无形的行为模式,很难建立起“看行为就能复刻能力”的直觉。

误区API 返回“狗”还是“猫”,和返回“0.8 狗、0.15 猫、0.05 狐狸”相比,都是告诉了我正确答案,区别不大吧?

正解区别非常大。软标签把模型对类间相似度的判断也暴露了:0.15 的猫占比说明狗和猫有相似特征,这种“犹豫”是硬标签完全无法表达的。攻击者用软标签训练出的替代模型,功能等价率通常比只用硬标签高出 8-15 个百分点。

为何常见:我们习惯用“对/错”二元思维看待分类结果,忽略了概率分布本身也是信息,而且是更细腻的信息。

误区那我把 API 的输出改成只返回 0 或 1 的硬标签,攻击者拿不到概率,不就偷不走模型了吗?

正解只返回硬标签确实会显著削弱攻击效果,但并不能让提取攻击失效。攻击者依然可以用海量查询标出决策边界的轮廓,再用硬标签蒸馏训练替代模型,只是信息量下降导致效率变低。更稳妥的做法是组合误差注入、频率限制、水印追踪多层防御。

为何常见:人们容易想当然地认为“信息给得越少越安全”,却忽视了攻击者可以用查询数量来弥补单次信息的质量。

误区如果功能等价率达到 95% 以上,那替代模型不就是原模型的完美克隆吗?可以直接换上用了啊。

正解功能等价率衡量的是特定测试分布上的行为一致性,替代模型只在查询覆盖的区域里“像”教师模型。在攻击者没有探访过的输入空间,替代模型可能错得离谱,而且随查询分布偏移会产生“亲属度衰减”。完美克隆在现实中几乎不可能,模型提取得到的是统计意义上的近似。

为何常见:日常的“克隆”概念来自生物学的同卵双胞胎,让人误以为模型复制也能一比一还原,忽略了数据分布对行为一致性的决定性影响。

面试题

Q1. 知识蒸馏中,教师模型向学生模型传递的核心信息载体是什么?

单选题 · easy

  • A.预测概率分布(软标签)← 正确答案
  • B.训练图像的像素值
  • C.网络中间层权重
  • D.损失函数的梯度值

答案:A。蒸馏与提取的核心都在于让另一个模型模仿教师模型的输出分布,即软标签。像素值只是输入数据,中间层权重和梯度在正常 API 场景下根本不可见。

Q2. 模型提取攻击的最终目标是什么?

单选题 · easy

  • A.窃取目标模型的源代码
  • B.训练行为近似的替代模型← 正确答案
  • C.删除目标模型的全部参数
  • D.提升目标模型的预测精度

答案:B。模型提取攻击并不追求破坏或篡改目标模型,而是通过查询与软标签训练一个自有的替代模型,在行为上高度逼近目标模型,从而廉价复制其能力。

Q3. 如果 API 只返回硬标签(类别),攻击者训练替代模型时面临什么问题?

单选题 · easy

  • A.缺少类间相似度信息← 正确答案
  • B.模型训练速度变快
  • C.查询次数自动减少
  • D.数据无需做预处理

答案:A。硬标签只给出“是/否”的结论,丢失了模型对类间相似度的判断。替代模型学不到决策边界附近的平滑结构,功能等价率会明显下降。

Q4. 温度参数 T 在知识蒸馏中的作用是什么?

单选题 · mid

  • A.软化概率输出分布← 正确答案
  • B.控制批处理大小
  • C.调节梯度学习率
  • D.设定网络层数

答案:A。温度 T 对模型的原始打分做缩放,T 越大概率分布越平缓,类间相似度暴露得越充分。它是调控“软标签软到什么程度”的核心旋钮。

Q5. 置信度误差注入防御的核心机制是什么?

单选题 · mid

  • A.向输出概率注入噪声← 正确答案
  • B.拒绝所有在线查询
  • C.对输出结果执行加密
  • D.降低模型推理速度

答案:A。误差注入给模型输出的概率加上随机噪声,让攻击者收集到的软标签每次都有微小失真,从而破坏蒸馏训练的信号质量,同时尽量不影响正常用户体验。

Q6. 下列哪些做法属于模型提取攻击的防御侧措施?

多选题 · mid

  • A.输出概率扰动注入← 正确答案
  • B.接口限流降级← 正确答案
  • C.无限提升响应速度
  • D.嵌入蒸馏水印← 正确答案

答案:ABD。输出扰动、接口限流、水印追踪都是典型防御手段;“无限提升响应速度”不构成防御,反而会让攻击者查询采集数据的速度更快,属于帮倒忙。

Q7. 攻击者设计替代模型结构时,最应优先参考什么?

单选题 · mid

  • A.教师模型的响应规律← 正确答案
  • B.服务器机房的位置
  • C.训练数据的规模总量
  • D.模型的发布时间戳

答案:A。替代模型的结构应匹配教师模型的行为复杂度,攻击者通过大量查询观察输出维度、决策边界陡峭程度等响应规律来决定结构,而不是参考机房、数据总量或发布时间。

Q8. 功能等价率评估从哪些维度衡量模型提取效果?

多选题 · hard

  • A.预测一致性得分← 正确答案
  • B.替代模型泛化精度← 正确答案
  • C.查询成本开销← 正确答案
  • D.目标模型参数量

答案:ABC。功能等价率评估包括替代模型与教师模型在测试集上的预测一致性、替代模型在真实数据上的泛化精度,以及攻击者投入的查询成本。目标模型参数量无法从外部获知,不属于评估指标。

Q9. 蒸馏水印技术的核心原理是什么?

单选题 · hard

  • A.全面压缩模型体积
  • B.在输出中预埋标记样本← 正确答案
  • C.刻意提高输出延迟
  • D.替换网络激活函数

答案:B。水印通过在训练阶段混入特殊标记样本,使模型对这些样本产生独特响应。若发现疑似被提取的模型对同样的标记样本也有相同响应,即可追踪泄露源头。

Q10. 为什么查询预算是模型提取攻击的核心约束?

单选题 · extreme

  • A.查询会损耗模型精度
  • B.预算上限决定查询总量← 正确答案
  • C.查询会暴露攻击者身份
  • D.预算与模型层数成正比

答案:B。攻击者通过查询收集训练数据,查询预算直接决定了替代模型能获得多少软标签、能覆盖多大的输入空间。防御方恰恰通过限流和高价把预算卡死,从而遏制提取效果。