Carlini et al.의 "큰 언어 모델에서 훈련 데이터 추출"논문의 재 구현 이 논문에는 이미 공식적인 구현 -https://github.com/ftramer/lm_memorization이 있으며, 동시에 몇 가지 기능의 가독성을 개선했습니다.
그러나 공식 저장소에는 포함되지 않습니다.
나는 논문에 정말 매료되어 직접 구현하고 싶었다. 공식 구현과 마찬가지로 GPT-2에서 추출 할 수있는 암기 된 컨텐츠가있는 샘플 .md 파일도 포함 시켰습니다. 흥미로운 암기 된 콘텐츠를 찾을 수 있지만 결과에는 여전히 몇 가지 제한 사항이 있습니다.
또는 직접
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의 SoftMax 온도를 붕괴 시키거나 모든 후속 토큰의 경우 1 개의 토큰 1 개) 및 빈 프롬프트로 샘플링으로 생성됩니다.
이 논문에서 저자는 또한 웹에서 텍스트 스 니펫 (CommonCrawl)으로 GT2-XL 모델을 프롬프트하여 모델이 암기 된 콘텐츠를 생성 할 가능성을 높였습니다.
2021 년 5 월부터 저자가 사용한 것과 같은 크롤링 샘플을 사용했습니다.
./download_cc.sh
그 다음에,
python extraction_commoncrawl.py --N 5000 --batch_size 20 --outfile commoncrawl_samples.txt
생성 된 모든 시퀀스의 최종 길이는 최종 256 토큰입니다.
GPT-2에서 추출한 흥미로운 출력은 여기에서 찾을 수 있습니다.