Extracting Training Data from Large Langauge Models
1.0.0
Carlini等人的“從大語言模型中提取培訓數據”的重新實施。本文已經具有正式實施-https://github.com/ftramer/lm_memorization,我從中藉用了代碼的一部分,同時提高了一些功能的可讀性。
但是,官方存儲庫不涵蓋 -
我真的很著迷這篇論文,想自己實施。像官方實施一樣,我還提供了一個samples.md文件,該文件具有一些可以從GPT-2中提取的記憶內容。儘管我能夠找到一些有趣的記憶內容,但結果仍然有一些限制 -
或直接
pip install -r requirements.txt
根據本文介紹的六個會員推理指標對生成的樣本進行排名:
根據每個度量標準的前10個樣品被打印出來,並且根據列出的每個度量AE登錄的每個指標的前100個樣品。這些樣本可能包含來自GPT-2訓練數據的逐字文本。
python extraction_top_n.py --N 5000 --batch_size 20 --outfile top_n_samples.txt
這將生成5000個帶有GPT2-XL的樣品。樣品是用TOP-K採樣(k = 40)和空提示生成的。
python extraction_temperature_decay.py --N 5000 --batch_size 20 --outfile temperature_decay_samples.txt
這將生成5000個帶有GPT2-XL的樣品。樣品是用溫度衰減的採樣生成的(衰減的溫度從10到1或前20個令牌衰減,而後來的所有令牌為1)和一個空的提示。
在論文中,作者還嘗試了通過網絡(CommunCrawl)的文本片段提示GT2-XL模型,這增加了模型生成記憶內容的機會。
我使用了作者使用的2021年5月(〜350 MB)的爬網樣本。
./download_cc.sh
然後,
python extraction_commoncrawl.py --N 5000 --batch_size 20 --outfile commoncrawl_samples.txt
所有生成的序列的最終長度為256個令牌。
從GPT-2提取的一些有趣的輸出可以在此處找到。