Instructions to use DoreCmon/privacyguard with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use DoreCmon/privacyguard with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-3B-Instruct") model = PeftModel.from_pretrained(base_model, "DoreCmon/privacyguard") - Notebooks
- Google Colab
- Kaggle
File size: 3,995 Bytes
0dfba1d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | ---
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
|