🚀 Hide-and-Seek隐私保护模型
Hide-and-Seek是由腾讯安全玄武实验室开发的隐私保护模型,其隐私保护流程由hide与seek两个子任务构成,可实现隐私信息匿名化与信息还原。此仓库为社区开源中文版模型,以bloom-1.1b为底模,经词表裁剪和微调后得到。该模型已成功在手机和笔记本上部署,支持多种NLP任务及自定义扩展任务。
Github Repo / arXiv Preprint / 技术博客
🚀 快速开始
信息匿名化示例
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("SecurityXuanwuLab/HaS-820m")
model = AutoModelForCausalLM.from_pretrained("SecurityXuanwuLab/HaS-820m").to('cuda:0')
hide_template = """<s>Paraphrase the text:%s\n\n"""
original_input = "张伟用苹果(iPhone 13)换了一箱好吃的苹果。"
input_text = hide_template % original_input
inputs = tokenizer(input_text, return_tensors='pt').to('cuda:0')
pred = model.generate(**inputs, max_length=100)
pred = pred.cpu()[0][len(inputs['input_ids'][0]):]
hide_input = tokenizer.decode(pred, skip_special_tokens=True)
print(hide_input)
摘要还原示例
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("SecurityXuanwuLab/HaS-820m")
model = AutoModelForCausalLM.from_pretrained("SecurityXuanwuLab/HaS-820m").to('cuda:0')
seek_template = "Convert the text:\n%s\n\n%s\n\nConvert the text:\n%s\n\n"
hide_input = "前天,'2022北京海淀·颐和园经贸合作洽谈会成功举行,各大媒体竞相报道了活动盛况,小李第一时间将昨天媒体报道情况进行了整理。人民日报 中国青年网 国际联合报 北京商报 消费者观察报 上海晚报 杭州日报 海峡晚报 北京日报 北京市电视一台?北京新闻 人民网 手机雅虎网 网易北京 长三角经济网 新京网 中国农业新闻网 北京圆桌 居然有这么多!还有部分媒体将在未来一周陆续发稿,为经洽会点!为海淀点!阅读投诉阅读精选留言加载中以上留言由公众号筛选后显示了解留言功能详情"
hide_output = "2022北京海淀·颐和园经贸合作洽谈会成功举办,各大媒体广泛报道"
original_input = "昨天,’2016苏州吴中·太湖经贸合作洽谈会成功举行,各大媒体竞相报道了活动盛况,小吴第一时间将今天媒体报道情况进行了整理。新华社 中国青年报?中青在线 香港大公报?大公网 香港商报 消费者导报 扬子晚报 江南时报 苏州日报 姑苏晚报 城市商报 苏州广电一套?苏州新闻 新华网 手机凤凰网 网易苏州 长三角城市网 新苏网 中国商务新闻网 苏州圆桌 居然有这么多!还有部分媒体将在今后几天陆续发稿,为经洽会点!为吴中点!阅读投诉阅读精选留言加载中以上留言由公众号筛选后显示了解留言功能详情"
input_text = seek_template % (hide_input, hide_output, original_input)
inputs = tokenizer(input_text, return_tensors='pt').to('cuda:0')
pred = model.generate(**inputs, max_length=512)
pred = pred.cpu()[0][len(inputs['input_ids'][0]):]
original_output = tokenizer.decode(pred, skip_special_tokens=True)
print(original_output)
完整隐私保护流程示例
from hideAndSeek import *
tokenizer = AutoTokenizer.from_pretrained("SecurityXuanwuLab/HaS-820m")
model = AutoModelForCausalLM.from_pretrained("SecurityXuanwuLab/HaS-820m").to('cuda:0')
original_input = "华纳兄弟影业(Warner Bro)著名的作品有《蝙蝠侠》系列、《超人》系列、《黑客帝国》系列和《指环王》系列。目前华纳未考虑推出《蝙蝠侠》系列新作。"
print('original input:', original_input)
hide_input = hide(original_input, model, tokenizer)
print('hide input:', hide_input)
prompt = "Translate the following text into English.\n %s\n" % hide_input
hide_output = get_gpt_output(prompt)
print('hide output:', hide_output)
original_output = seek(hide_input, hide_output, original_input, model, tokenizer)
print('original output:', original_output)
✨ 主要特性
- 隐私保护流程:由hide与seek两个子任务组成,可实现隐私信息匿名化与信息还原。
- 多设备部署:已成功在手机和笔记本上进行部署实验,如MacBook M2、MacBook M1和Pixel 8 Pro。
- 多任务支持:原生支持润色,摘要,翻译,阅读理解和文本分类等NLP任务,并且支持Zero Shot的自定义扩展任务。
📦 安装指南
由于机器学习环境配置复杂耗时,我们提供了一个colab notebook用于demo,以下是必要依赖供参考:
pip install torch==2.1.0+cu118
pip install transformers==4.35.0
若在自己的环境上运行,可能需要根据设备做出调整。
📚 详细文档
模型部署测试结果
我们已成功将该模型在手机和笔记本上进行了部署实验,经测试,在NF4量化后,仅使用CPU的情况下:
- MacBook M2笔记本的推理速度为180 - 200 tokens/s。
- MacBook M1笔记本的推理速度为110 - 130 tokens/s。
- Pixel 8 Pro手机的推理速度为20 - 30 tokens/s。
模型演示视频
- MacBook M2演示视频:
点击观看

- Pixel 8 Pro演示视频:
点击观看

🔧 技术细节
模型基础信息
模型以bloom-1.1b为底模,经过词表裁剪和微调后得到。更多细节请参考技术博客。
测试结果
我们用GPT - 3.5作为API,以DeepL为翻译参照,在中译英任务上做了损失测评。NF4量化推理的结果如下表所示,第一行为无保护直接翻译的结果,第二行为经过我们系统保护后的翻译结果。结果表明我们的模型能够在仅造成较小的精度损失的情况下保护用户隐私。我们仍然在改进我们的模型以达到更好的效果。
设置 |
ROUGE - 1 |
ROUGE - 2 |
ROUGE - L |
BLEU - 2 |
BLEU - 4 |
METEOR |
无保护 |
60.80 |
33.54 |
54.96 |
79.85 |
67.17 |
53.03 |
用HaS保护 |
57.37 |
31.60 |
51.92 |
72.72 |
61.24 |
48.77 |
📄 许可证
文档未提及相关内容,暂不展示。
📖 引用
@misc{chen2023hide,
title={Hide and Seek (HaS): A Lightweight Framework for Prompt Privacy Protection},
author={Yu Chen and Tingxin Li and Huiming Liu and Yang Yu},
year={2023},
eprint={2309.03057},
archivePrefix={arXiv},
primaryClass={cs.CR}
}