Privacy Guard — 本地隐私守护代理
基于 LoRA 微调 Qwen2.5-3B-Instruct 的任务感知 PII 脱敏模型。
模型概述
Privacy Guard 是一个本地隐私保护模型,能够将用户输入中的真实个人信息(姓名、手机号、邮箱、地址等)虚构化替换为假数据,同时提取任务意图生成摘要。
核心价值:让云端大模型既能完成任务,又看不到你的真实隐私。
使用方法
安装依赖
pip install torch transformers peft
加载模型
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
# 加载基座模型
base_model = "Qwen/Qwen2.5-3B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(base_model, dtype=torch.float16, trust_remote_code=True)
# 加载 LoRA adapter
model = PeftModel.from_pretrained(model, "DoreCmon/privacyguard")
model = model.eval()
推理
SYSTEM_INSTRUCTION = (
"你是一个隐私保护助手。请完成以下两步:\n"
"1. 用1句话(不超过30字)精准概括用户的任务意图,不要包含任何个人信息。\n"
"2. 围绕用户任务对文本中的个人身份信息进行虚构化改写,"
"保留对任务有用的信息,弱化无关细节,确保改写后自洽且不可反推。\n\n"
"输出格式:\n【任务摘要】摘要内容\n【脱敏文本】改写后的完整文本"
)
text = "帮我写一封推荐信\n\n张伟,2017年浙大毕业,现任字节跳动高级工程师,手机13812345678"
prompt = f"### 指令:\n{SYSTEM_INSTRUCTION}\n\n### 输入:\n{text}\n\n### 输出:\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
output_ids = model.generate(**inputs, max_new_tokens=1024, do_sample=False)
result = tokenizer.decode(output_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(result)
输出示例
【任务摘要】用户需要为候选人撰写求职推荐信
【脱敏文本】李晨,2015年华中科技大学毕业,现任星云科技高级工程师,手机15987654321...
支持的 PII 类型
| 类型 | 原文示例 | 脱敏示例 |
|---|---|---|
| 姓名 | 张伟 | 李明 |
| 手机号 | 13800138000 | 13912345678 |
| 邮箱 | zhangsan@gmail.com | liming@example.com |
| 身份证号 | 110101199001011234 | 110101199205056789 |
| 地址 | 北京市朝阳区建国路88号 | 上海市浦东新区张江路66号 |
| 公司名 | 华为技术有限公司 | 星云科技有限公司 |
| 毕业院校 | 浙江大学 | 华中科技大学 |
| 订单号 | OR2024-8869 | OR2025-1234 |
训练数据
- 6 个场景:简历、工作邮件、客服对话、医疗病历、会议纪要
- 每场景 7 种任务指令
- 共约 2000 条训练数据
- 由 DeepSeek API 生成,经过格式校验和去重
训练配置
- 基座模型:Qwen/Qwen2.5-3B-Instruct
- LoRA:r=16, alpha=32, dropout=0.05
- 学习率:5e-5
- 训练轮数:3 epochs
- 精度:float16 + Gradient Checkpointing
评估结果
| 指标 | 值 | 说明 |
|---|---|---|
| Task Completion | 4.69/5.00 | 云端大模型打分,86.7% 样本满分 |
| Logical Consistency | 98.8% | PII 泄漏检查通过率 |
| Avg Latency | 19.9s | 单条推理耗时(单卡) |
适用场景
- 用户需要把含隐私的文本发给云端大模型处理
- 需要保留任务上下文(不只是简单替换标签)
- 对隐私保护有较高要求
局限性
- 地址替换模式可能过于规则(城西→城东)
- 不支持所有语言(主要针对中文)
- 推理速度较慢(约 20 秒/条)
许可证
Apache 2.0
- Downloads last month
- 16