# Privacy LLM Inference：基于掩码混淆的隐私保护大模型推理方案

> 一个 PyTorch 原型项目，探索通过掩码和填充技术实现隐私保护的大模型推理，在模拟可信执行环境（TEE）中验证 Transformer 模型的混淆执行正确性，为隐私计算与 AI 推理的结合提供技术参考。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-06-03T01:41:43.000Z
- 最近活动: 2026-06-03T01:56:53.937Z
- 热度: 163.8
- 关键词: 隐私计算, TEE, 大模型, Transformer, 掩码混淆, GPT-2, PyTorch, 安全推理, KV Cache, 注意力机制
- 页面链接: https://www.zingnex.cn/forum/thread/privacy-llm-inference
- Canonical: https://www.zingnex.cn/forum/thread/privacy-llm-inference
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者：** YZT-Arsit
- **来源平台：** GitHub
- **原始标题：** Privacy_LLM_Inference
- **原始链接：** https://github.com/YZT-Arsit/Privacy_LLM_Inference
- **发布时间：** 2026年6月

## 项目概述

Privacy LLM Inference 是一个研究导向的 PyTorch 原型项目，专注于探索大语言模型推理过程中的隐私保护技术。该项目通过掩码（mask）和填充（pad）混淆技术，在模拟的可信执行环境（TEE）中验证 Transformer 模型的隐私保护推理方案的正确性。

项目的核心目标是解决一个关键问题：如何在不可信的 GPU 环境中执行大模型推理，同时保护输入数据和模型参数的隐私。通过数学上的掩码变换和补偿机制，确保即使在不可信环境中执行计算，也无法从中间结果反推出原始敏感信息。

## 核心概念与安全边界

### 双域执行模型

项目设计了两种执行域的协作架构：

**可信域（SimulatedTEE）**

模拟可信执行环境，拥有以下特权：
- 访问明文输入数据
- 生成和管理一次性掩码（masks）和填充（pads）
- 管理私有的 LoRA 适配器
- 生成补偿张量
- 执行输出去混淆恢复

**不可信域（UntrustedGPUExecutor）**

模拟不可信的 GPU 执行环境，只能看到：
- 混淆后的输入数据
- 变换后的权重和适配器
- 补偿张量
- 混淆后的输出

不可信域无法生成掩码、创建补偿或恢复明文输出，从而保证数据隐私。

### 安全边界说明

项目明确声明当前阶段是代数正确性验证原型，**不声称提供真实的安全隔离、侧信道防护、内存隔离、认证或生产级 TEE 保证**。当前使用 Python 类模拟可信边界，接口设计为后续接入真实 TEE 后端做准备。

## 技术实现演进

项目采用分阶段迭代的方式逐步完善隐私保护推理方案：

### Stage 1：基础线性层混淆

验证基本的掩码混淆线性变换：
- 输入掩码：X_tilde = X · N_in
- 权重变换：W_tilde = N_in^(-1) · W · N_out
- 输出恢复：Y = Y_tilde · N_out^(-1)

### Stage 1-LoRA：适配器隐私保护

将混淆机制扩展到 LoRA（Low-Rank Adaptation）适配器，确保微调参数的隐私：
- A_tilde = N_in^(-1) · A · N_mid
- B_tilde = N_mid^(-1) · B · N_out
- 保持低秩适配器的隐私性

### Stage 2：完整 Transformer Block

在 Stage 1 基础上添加：
- 注意力机制的掩码传播
- 残差连接的掩码一致性
- MLP 层的混淆执行

**工程简化**：当前版本使用可信 LayerNorm 和可信 GELU，即这些操作在可信域执行，而非完全混淆。这是为了先验证端到端 Transformer 正确性，再逐步实现完全混淆协议。

### Stage 3：Prefill/Decode 与 KV Cache

引入序列生成支持：
- Prefill 阶段：处理完整提示词，建立初始 KV Cache
- Decode 阶段：逐 token 生成，复用缓存的 Key/Value
- KV Cache 掩码：保持 K_tilde = K · N_K 和 V_tilde = V · N_V 的不变性

### Stage 4.x：HuggingFace 集成与 GPT-2 验证

**Stage 4**：添加 HuggingFace 模型加载抽象，支持加载外部预训练模型进行验证

**Stage 4.5**：验证 GPT-2 的 Conv1D 模块适配，确认行向量线性约定，验证融合注意力 Q/K/V 分割

**Stage 4.6**：单 Block 混淆包装器正确性检查，使用融合 c_attn 和块对角 Q/K/V 掩码

**Stage 4.7**：模型级混淆包装器，组合多个 Block 执行，应用对角词表输出掩码

**Stage 4.8**：添加 Prefill/Decode KV Cache 正确性，引入 ObfuscatedGPT2KVCache 数据结构，支持序列生成

**Stage 4.9**：贪心生成正确性验证，基于 Stage 4.8 实现 generate_greedy，与明文参考路径对比 token 匹配率

**Stage 4.10**：可复现性报告阶段，聚合各阶段正确性 JSON，生成 experiment_summary.json/csv/md

### Stage 5.0：实验验证阶段

从工程正确性转向论文级实验，新增两个实验模块：

**注意力探针（Attention Probe）**

验证 GPT-2 上的六个注意力不变性：
- Q_tilde · K_tilde^T ≈ Q · K^T
- Softmax 概率不变性
- A · V_tilde ≈ (A · V) · N_V
- AttnOut_tilde ≈ AttnOut · N_res
- Prefill Cache 不变性
- Decode-step Cache 追加不变性

**工作负载分析器（Workload Profiler）**

对比五种执行策略的 TEE/GPU 成本模型：
- plain_hf_gpu：基准测量
- tslp_trusted_nonlinear_baseline：投影基线
- ours_current：当前实现测量
- ours_ideal_gpu_nonlinear：理想上限投影
- amulet_style_reference：参考投影

## 关键技术细节

### 掩码与填充机制

**使用掩码（use_pad=False）模式**

- X_tilde = X · N_in
- W_tilde = N_in^(-1) · W · N_out
- Y_tilde = X_tilde · W_tilde = X · W · N_out
- Y = Y_tilde · N_out^(-1) = X · W

**使用填充（use_pad=True）模式**

引入填充张量 T，增强隐私保护：
- X_tilde = (X - T) · N_in
- 补偿：C_T = T · W · N_out
- Y_tilde = X_tilde · W_tilde + C_T
- Y = Y_tilde · N_out^(-1) = X · W

### 注意力掩码传播

在注意力机制中，关键约束是保持注意力分数在明文空间：
- Q_tilde = Q · N_Q
- K_tilde = K · N_K
- 约束条件：N_Q · N_K^T = I
- 因此：Q_tilde · K_tilde^T = Q · N_Q · N_K^T · K^T = Q · K^T

这使得注意力权重计算可以在明文空间进行，无需额外恢复操作。

### KV Cache 管理

在生成阶段，KV Cache 需要维护掩码不变性：
- 每个头维护自己的 N_K 和 N_V
- Prefill 时采样掩码，Decode 时复用
- 新 token 的 K/V 使用相同掩码追加到缓存
- 保证 K_tilde = K · N_K 和 V_tilde = V · N_V 始终成立

## 实验与验证

项目提供了完整的实验脚本和结果汇总：

```bash
# 运行可复现性报告
python scripts/run_experiment_summary.py --rerun
```

该脚本会：
1. 重新执行各阶段正确性验证脚本
2. 收集 use_pad=True 和 use_pad=False 的指标
3. 生成 outputs/experiment_summary.{json,csv,md}

### 注意力实验

```bash
python scripts/run_attention_experiments.py
```

扫描参数：
- batch_size ∈ {1, 2}
- seq_len ∈ {4, 8, 16}
- decode_steps ∈ {1, 2, 4}
- use_pad ∈ {true, false}

输出注意力不变性验证结果，帮助发现数值漂移问题。

## 代码结构

```
src/pllo/
├── core/               # 核心混淆操作
├── models/             # 模型包装器
├── experiments/        # 实验模块（Stage 5.0+）
│   ├── attention_probe.py
│   └── workload_profiler.py
└── ops/                # 基础操作
    └── attention.py    # 注意力掩码生成

scripts/
├── run_experiment_summary.py
├── run_attention_experiments.py
└── run_workload_experiments.py

outputs/                # 实验结果输出
paper_draft/            # 论文草稿
paper_results/          # 论文图表数据
```

## 当前局限与免责声明

### 工程简化

当前版本采用以下简化，尚未实现完全混淆：
- 可信 LayerNorm（而非混淆 LayerNorm）
- 可信 GELU 激活（而非混淆激活）
- MLP 线性层混淆，但激活函数在可信域执行

这些简化是为了先验证端到端正确性，逐步迭代完善。

### 安全声明

项目明确声明：
- 不提供真实 TEE 隔离保证
- 不防护侧信道攻击
- 不实现内存隔离
- 不提供认证机制
- 非生产就绪方案

### 研究性质

这是一个研究原型，主要用于：
- 验证隐私保护推理的代数正确性
- 探索 TEE+GPU 协作架构的可行性
- 为生产方案提供技术参考和实验数据

## 适用场景与价值

该项目对以下领域具有参考价值：

- **隐私计算研究**：探索 TEE 与 GPU 协作的隐私保护方案
- **大模型安全部署**：研究如何在不可信环境中安全推理
- **联邦学习**：为分布式隐私保护训练提供推理侧参考
- **企业 AI 部署**：需要保护模型参数和用户数据的场景
- **学术写作**：提供实验数据和技术细节支撑

## 总结

Privacy LLM Inference 是一个深入探索隐私保护大模型推理的研究项目。通过系统性的分阶段验证，从基础线性层到完整 GPT-2 模型，逐步构建了一套基于掩码混淆的隐私保护推理方案。虽然当前仍是研究原型，但其严谨的数学设计和完整的实验验证流程，为隐私计算与大模型结合这一前沿领域提供了有价值的技术参考。
