--- base_model: Qwen/Qwen2.5-3B-Instruct library_name: peft pipeline_tag: text-generation tags: - base_model:adapter:Qwen/Qwen2.5-3B-Instruct - lora - privacy - pii - text-generation license: apache-2.0 --- # Privacy Guard — 本地隐私守护代理 基于 LoRA 微调 Qwen2.5-3B-Instruct 的任务感知 PII 脱敏模型。 ## 模型概述 Privacy Guard 是一个本地隐私保护模型,能够将用户输入中的真实个人信息(姓名、手机号、邮箱、地址等)虚构化替换为假数据,同时提取任务意图生成摘要。 **核心价值**:让云端大模型既能完成任务,又看不到你的真实隐私。 ## 使用方法 ### 安装依赖 ```bash pip install torch transformers peft ``` ### 加载模型 ```python 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() ``` ### 推理 ```python 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