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提取的一些有趣的输出可以在此处找到。