Hotdry.
ai-systems

Jane Street NN 逆向工程:黑盒 API 查询模型提取实践

探讨通过 API 查询重建黑盒神经网络架构、权重与行为的工程技巧,借鉴 Jane Street 谜题的逆向工程方法与参数配置。

在 AI 系统工程中,黑盒神经网络(NN)的逆向工程日益重要,尤其当仅通过 API 查询访问模型时。Jane Street 的经典谜题 “Can you reverse engineer our neural network?” 虽提供完整权重文件 model.pt,但其设计灵感来源于黑盒场景,并通过 Hugging Face Space 部署了交互式 API 接口。该谜题的手工 NN 使用 ReLU 层模拟 MD5 哈希算法,输出单一比特判断输入短语是否匹配特定哈希。此文聚焦 query-based 模型提取技术:如何用有限查询(≤10^5)高效重建架构、近似权重并模拟行为,提供可落地参数、阈值与监控清单。

核心观点:查询效率决定提取成功

黑盒模型提取(model extraction)本质上是函数逼近问题:用查询 - 响应对训练代理模型(surrogate)逼近目标 NN。传统方法如敲除攻击(knockoff attacks)需海量查询,但工程实践中 API 限速(e.g., 100 QPS)要求优化策略。Jane Street 谜题启发:NN 常嵌入经典算法(如哈希),优先识别 “电路模式” 而非全参数复制。证据显示,谜题求解者通过权重可视化(模拟为激活查询)发现末层为 16 字节相等性检查:第二倒数层偏置编码目标向量 x,三份副本计算 v-x-1, v-x, v+x-1,经 1/-2/1 线性组合后 ReLU 差异实现精确匹配。[1]

在黑盒下,此转化为查询设计:输入扰动序列估计梯度,重建偏置 / 权重。实验阈值:查询预算 5k-50k,fidelity(代理模型 MSE)目标 <1e-4。

证据与技术路径

  1. 架构推断(Layer Probing)
    查询零输入、单位向量及随机噪声,观察输出形状 / 敏感性。Jane Street NN 层宽周期性(32 块 ×48 神经元)暗示块状结构,如 MD5 轮次。黑盒实践:

    • 发送 one-hot 输入扫描特征图,聚类输出识别隐藏层数(e.g., KMeans on 输出嵌入,阈值 silhouette >0.7)。
    • 参数:batch_size=64,扰动 ε=1e-3(梯度近似),工具:PyTorch Autograd 模拟。
      谜题中,求解者绘制线性层 out_features 曲线确认重复电路,避免盲目全搜索。
  2. 权重近似(Parameter Stealing)
    用优化器(如 Adam + LBFGS)最小化 ||f_query (θ) - f_target (x)||,θ 为代理权重。针对逻辑 NN(如 ReLU 门电路),转为混合整数线性规划(MILP)。

    • 启发:谜题将 ReLU 建模为 z = ReLU (y) ↔ z ≥ y, z ≥ 0, b∈{0,1}, z ≤ M b(M 上界)。求解者合并等价神经元(相同输入权重簇),变量从 2M 降至 75k。
    • 黑盒清单:
      步骤 参数 / 阈值 监控点
      1. 边界传播 输入范围 [0,255] (ASCII),逐层上界 <2^16 紧致率 >80%
      2. 等价类聚类 cosine_sim >0.99 节点减幅 >50%
      3. MILP/SAT 求解 Gurobi timeout=1h, Z3 vars<100k satisfiable & fidelity>0.95

    风险:过拟合噪声,限回滚至行为克隆(BCQ,查询 1e4)。

  3. 行为重建与可解释性(Interpretability)
    一旦代理模型拟合, symbolic execution 提取逻辑。谜题关键:识别 MD5(32 轮,mod 加法用并行进位器~20 层)。黑盒:查询长短输入暴露长度编码 bug(>32 字节时低字节溢出),逆推哈希目标。

    • 参数:brute-force 空间 “two lowercase words”(词表 10k,组合 1e8,GPU 加速 <1min)。
    • 验证:覆盖测试集(随机 1k 输入),behavioral equivalence(输出分布 KL<0.01)。
      监控:query 成本(tokens/Q),检测防御(如 watermark 输出)阈值 deviation>3σ 则换代理。

可落地工程清单

  • 预备:API 端点分析(POST /predict, input="str", output=float)。限速规避:多账号轮询,proxy 池 100。
  • Phase1: Baseline:1k 随机查询拟合 MLP surrogate (hidden=512x3),baseline fidelity 0.8。
  • Phase2: Probing:梯度查询 (finite diff, h=1e-4) 估计 Jacobian,推断深度(奇偶输出模式)。
  • Phase3: Extraction:架构搜索(NAS-like, mutate layers),fine-tune on 10k queries。
  • Phase4: Validation:对抗样本测试,解释工具(SHAP on surrogate)映射电路。回滚:若 fidelity<0.9,fallback 至规则提取(e.g., hash 指纹)。
  • 部署:emulator Docker,latency<10ms,准确率> 99% on held-out。

此方法在生产中防范模型窃取(e.g., 加扰动噪声 σ=0.01),或用于迁移学习。Jane Street 谜题证明:结合手工洞察与优化工具,黑盒逆向高效可行。

资料来源
[1] Jane Street Blog: Can you reverse engineer our neural network?
[2] Hugging Face Space: jane-street/puzzle
(总字数约 950)

查看归档