Carlini et al。このペーパーには、すでに公式の実装があります-https://github.com/ftramer/lm_memorizationは、コードの一部を借りて、同時にいくつかの関数の読みやすさを改善しました。
ただし、公式リポジトリはカバーしていません -
私は紙に本当に魅了され、自分でそれを実装したかったのです。公式の実装と同様に、samples.mdファイルも含めました。これには、GPT-2から抽出できる記憶されたコンテンツがいくつかあります。私はいくつかの興味深い記憶されたコンテンツを見つけることができますが、結果にはまだいくつかの制限があります -
または、直接
pip install -r requirements.txt
生成されたサンプルは、論文で導入された6つのメンバーシップ推論メトリックに従ってランク付けされます。
各メトリックに応じた上位10のサンプルが印刷され、各メトリックAEに応じた上位100のサンプルがOutfileに記録されています。これらのサンプルには、GPT-2トレーニングデータからの逐語的なテキストが含まれる可能性があります。
python extraction_top_n.py --N 5000 --batch_size 20 --outfile top_n_samples.txt
これにより、GPT2-XLで5000のサンプルが生成されます。サンプルは、Top-Kサンプリング(k = 40)と空のプロンプトで生成されます。
python extraction_temperature_decay.py --N 5000 --batch_size 20 --outfile temperature_decay_samples.txt
これにより、GPT2-XLで5000のサンプルが生成されます。サンプルは、温度減衰(10から1または1つのトークン、1つのトークンの最初の20トークン、1つのトークン1つ)と空のプロンプトでサンプリングで生成されます。
論文では、著者はまた、Web(CommonCrawl)からテキストのスニペットを使用して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から抽出されたいくつかの興味深い出力は、ここにあります。