Views
No views yet
pip install torch transformers peft1from transformers import AutoTokenizer, AutoModelForCausalLM
2from peft import PeftModel
3import torch
4
5# 加载基座模型
6base_model = "Qwen/Qwen2.5-3B-Instruct"
7tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
8model = AutoModelForCausalLM.from_pretrained(base_model, dtype=torch.float16, trust_remote_code=True)
9
10# 加载 LoRA adapter
11model = PeftModel.from_pretrained(model, "DoreCmon/privacyguard")
12model = model.eval()1SYSTEM_INSTRUCTION = (
2 "你是一个隐私保护助手。请完成以下两步:\n"
3 "1. 用1句话(不超过30字)精准概括用户的任务意图,不要包含任何个人信息。\n"
4 "2. 围绕用户任务对文本中的个人身份信息进行虚构化改写,"
5 "保留对任务有用的信息,弱化无关细节,确保改写后自洽且不可反推。\n\n"
6 "输出格式:\n【任务摘要】摘要内容\n【脱敏文本】改写后的完整文本"
7)
8
9text = "帮我写一封推荐信\n\n张伟,2017年浙大毕业,现任字节跳动高级工程师,手机13812345678"
10prompt = f"### 指令:\n{SYSTEM_INSTRUCTION}\n\n### 输入:\n{text}\n\n### 输出:\n"
11
12inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
13with torch.no_grad():
14 output_ids = model.generate(**inputs, max_new_tokens=1024, do_sample=False)
15
16result = tokenizer.decode(output_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
17print(result)【任务摘要】用户需要为候选人撰写求职推荐信
【脱敏文本】李晨,2015年华中科技大学毕业,现任星云科技高级工程师,手机15987654321...| 类型 | 原文示例 | 脱敏示例 |
|---|---|---|
| 姓名 | 张伟 | 李明 |
| 手机号 | 13800138000 | 13912345678 |
| 邮箱 | zhangsan@gmail.com | liming@example.com |
| 身份证号 | 110101199001011234 | 110101199205056789 |
| 地址 | 北京市朝阳区建国路88号 | 上海市浦东新区张江路66号 |
| 公司名 | 华为技术有限公司 | 星云科技有限公司 |
| 毕业院校 | 浙江大学 | 华中科技大学 |
| 订单号 | OR2024-8869 | OR2025-1234 |
| 指标 | 值 | 说明 |
|---|---|---|
| Task Completion | 4.69/5.00 | 云端大模型打分,86.7% 样本满分 |
| Logical Consistency | 98.8% | PII 泄漏检查通过率 |
| Avg Latency | 19.9s | 单条推理耗时(单卡) |