🚀 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}
}