1. 研究背景与问题定义
在医疗健康领域,大型语言模型(LLMs)的微调应用正在快速普及。以ChatDoctor为代表的医疗对话模型,通常需要基于特定医院的患者问诊记录进行领域适配训练。这些专有数据集不仅包含患者个体隐私信息,更蕴含着具有商业价值的聚合属性——例如某地区精神疾病患病率、特定年龄段患者的性别分布等。这些数据集级属性(dataset-level properties)往往属于医疗机构的核心机密,其泄露可能导致商业竞争劣势或社会舆情风险。
传统隐私研究主要关注个体数据泄露(如成员推断攻击),而对聚合属性的保护机制研究相对空白。当一家制药公司通过分析竞品医院的对话模型,推断出该院某种药物的处方频率时,就构成了典型的属性推理攻击(Property Inference Attack)。这种攻击在图像分类模型中已有成熟方案,但LLMs因其独特的训练范式面临新的挑战:
- 双重模型特性:LLMs同时具备判别式模型(如分类任务)和生成式模型(如文本补全)的行为特征
- 数据嵌入复杂性:通过自注意力机制,输入数据的统计特征被非线性地编码到数十亿参数中
- 微调范式多样性:不同机构可能采用有监督微调(SFT)或因果语言建模微调(CLM-FT)等不同方案
关键问题:当攻击者只能访问模型API(黑盒)或有限模型信息(灰盒)时,如何设计有效的属性推理方法?这些攻击在不同微调范式下的表现有何差异?
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. PropInfer基准构建
2.1 数据集设计与处理
我们基于ChatDoctor-100k医疗对话数据集构建PropInfer基准,其核心特点包括:
| 属性类型 | 具体属性 | 数值范围 | 数据来源 |
|---|---|---|---|
| 人口统计 | 患者性别 | 男性占比32-68% | 问诊记录元数据 |
| 疾病频率 | 精神疾病 | 12-29% | 诊断代码ICD-10 |
| 疾病频率 | 消化系统疾病 | 18-37% | 诊断代码ICD-10 |
| 疾病频率 | 分娩相关 | 5-21% | 诊断代码ICD-10 |
数据集处理流程:
- 属性平衡采样:通过分层抽样确保各属性值均匀分布,避免模型偏向多数类
- 对话文本脱敏:移除所有PHI(受保护健康信息)标识符,保留医学实体
- 微调任务设计:
- 问答模式(Q&A Mode):将问诊记录转为"医生-患者"问答对,采用SFT微调
- 聊天补全模式(Chat-Completion Mode):保持原始对话流,采用CLM-FT微调
2.2 威胁模型设定
考虑两种实际攻击场景:
-
黑盒场景:
- 攻击者权限:仅能通过API发送查询并获取生成结果
- 可用信息:模型对特定提示词的响应文本
- 限制条件:无法获取梯度、概率分布等内部信息
-
灰盒场景:
- 攻击者权限:可获取模型最后一层的token概率分布
- 可用信息:特定关键词的预测概率变化
- 限制条件:无法访问模型参数或中间层表示
3. 攻击方法设计
3.1 生成式攻击(黑盒场景)
该方法通过设计领域特定的提示模板,诱导模型生成包含目标属性的文本,再通过统计方法推断原始训练数据的属性分布。
实施步骤:
-
提示词设计:
python复制prompt_templates = [ "根据您的经验,{疾病类型}患者中男性占比约为__%", "统计显示,{疾病类型}的发病率约为每10万人中__例", "典型{疾病类型}患者的性别比例通常是男性:女性=__:__" ] -
响应解析:
- 使用spaCy医疗实体识别器提取生成文本中的数值
- 对非结构化回答(如"男性稍多")采用情感分析量化
-
比例估算:
math复制\hat{p} = \frac{1}{N}\sum_{i=1}^N \frac{\text{count}_m^{(i)}}{\text{count}_m^{(i)} + \text{count}_f^{(i)}}其中$N$为有效响应数量,count表示性别提及次数
实战技巧:
- 温度参数设置:建议temperature=0.7平衡生成多样性与准确性
- 疾病别名扩展:构建同义词库(如"抑郁症"↔"忧郁症")提高覆盖率
- 否定句式过滤:排除"不是""不会"等否定句带来的统计噪声
3.2 词频阴影模型攻击(灰盒场景)
该方法受模型逆向工程启发,通过构建阴影模型(shadow models)训练元攻击模型。
实施流程:
-
阴影模型训练:
- 使用辅助数据集(MIMIC-III)训练100个影子模型
- 每个模型使用不同属性比例$p_i \sim U(p_{min}, p_{max})$的采样数据
-
特征提取:
- 计算目标关键词集$K$在softmax层的平均概率
- 对每个影子模型记录特征向量$v_i = [\text{prob}(k)|k \in K]$
-
元模型训练:
- 将$(v_i, p_i)$作为训练数据
- 采用梯度提升树(XGBoost)回归预测属性比例
关键改进:
- 动态关键词选择:通过TF-IDF筛选领域显著词(如"孕周"之于分娩相关诊断)
- 概率分布校准:使用Platt Scaling校准模型输出概率
- 特征重要性剪枝:保留top-100最具预测力的关键词
4. 实验结果与分析
4.1 评估指标
采用三种指标衡量攻击效果:
- 平均绝对误差(MAE):$MAE = \frac{1}{n}\sum|p_i - \hat{p}_i|$
- 皮尔逊相关系数(r):衡量预测值与真实值的线性相关性
- 排序准确率(Top-k):预测比例排序与实际排序的前k位重合率
4.2 性能对比
不同攻击方法在Q&A模式下的表现:
| 攻击方法 | MAE(性别) | MAE(精神疾病) | r(性别) | Top-3准确率 |
|---|---|---|---|---|
| 生成式攻击 | 0.084 | 0.112 | 0.79 | 72% |
| 词频阴影攻击 | 0.052 | 0.067 | 0.91 | 88% |
| 随机猜测 | 0.215 | 0.254 | -0.12 | 33% |
关键发现:
- 灰盒攻击效果显著优于黑盒(MAE降低38-42%)
- 疾病频率推断难度高于人口统计属性
- CLM-FT微调模型比SFT模型更易受攻击(MAE高约15%)
4.3 案例研究
以推断"消化系统疾病患病率"为例:
- 生成式攻击成功提取的关键短语:
- "约25%的患者出现功能性消化不良"
- "肠易激综合征在年轻女性中发病率达18-22%"
- 词频阴影攻击的关键特征词:
- 正向相关:腹胀、腹泻、质子泵抑制剂
- 负向相关:头痛、关节痛、抗抑郁药
5. 防御建议与实践
基于研究发现,我们建议从三个层面构建防御体系:
5.1 训练阶段防护
- 属性混淆训练:在损失函数中加入属性混淆项
python复制其中$L_{property}$是属性分类器的交叉熵损失L_{total} = L_{task} - \lambda L_{property} - 差分隐私微调:采用DP-SGD算法,设置$\epsilon=2-5$的隐私预算
5.2 推理阶段防护
- 输出过滤机制:
- 删除包含具体统计数值的生成结果
- 对比例描述进行泛化(如"20-30%"→"部分患者")
- API访问控制:
- 检测重复相似查询
- 限制单位时间的敏感关键词触发次数
5.3 模型架构改进
- 属性分离表示:通过对抗学习分离属性相关特征
- 动态词表 masking:对敏感术语随机替换同义词
实际部署中发现,组合使用差分隐私和输出过滤可在保持模型效用(BLEU下降<5%)的同时,将攻击成功率降低60-75%。
6. 延伸讨论与局限
- 领域迁移性:在金融领域测试显示,贷款违约率推断的MAE比医疗数据高23%,表明攻击效果受领域特性影响
- 模型规模效应:13B以上模型展现出更强的属性记忆能力,其MAE比7B模型低约15%
- 伦理边界:本研究所有实验均通过IRB审查,使用数据已进行聚合级脱敏处理
主要局限包括:
- 目前仅针对单属性推理,未考虑属性间相关性
- 阴影模型训练计算成本较高(100个影子模型约需150 GPU小时)
- 对中文等非英语语言的泛化性有待验证
在实际医疗对话系统部署中,我们推荐采用"差分隐私+动态词表"的组合方案。某三甲医院的实测数据显示,该方案可将性别推断攻击的MAE从0.081提升至0.153,同时保持临床问答准确率下降在3%以内。对于高敏感场景,建议额外增加输出审核层,通过规则引擎实时过滤敏感统计表述。
