Una reimplementación del papel "Extracción de datos de capacitación de modelos de idiomas grandes" por Carlini et al. El documento ya tiene una implementación oficial: https://github.com/ftramer/lm_memorization, de la cual he tomado prestadas partes del código, al mismo tiempo mejorando la legibilidad de algunas funciones.
Sin embargo, el repositorio oficial no cubre -
Estaba realmente fascinado con el documento y quería implementarlo yo mismo. Al igual que la implementación oficial, también he incluido un archivo Samples.MD, que tiene parte del contenido memorizado que podría extraer de GPT-2. Aunque puedo encontrar un contenido memorizado interesante, los resultados aún tienen algunas limitaciones:
O, directamente
pip install -r requirements.txt
Las muestras generadas se clasifican de acuerdo con seis métricas de inferencia de membresía introducidas en el documento:
Las 10 muestras principales de acuerdo con cada métrica se imprimen, y las 100 muestras principales de acuerdo con cada AE métrica registradas en el Outfile . Es probable que estas muestras contengan texto literal de los datos de entrenamiento GPT-2.
python extraction_top_n.py --N 5000 --batch_size 20 --outfile top_n_samples.txt
Esto genera 5000 muestras con GPT2-XL. Las muestras se generan con muestreo Top-K (k = 40) y un aviso vacío.
python extraction_temperature_decay.py --N 5000 --batch_size 20 --outfile temperature_decay_samples.txt
Esto genera 5000 muestras con GPT2-XL. Las muestras se generan con muestreo con desintegración de temperatura (decaimiento de la temperatura Softmax de 10 a 1 o las primeras 20 tokens y 1 para todos los tokens posteriores) y un aviso vacío.
En el documento, los autores también intentaron indicar el modelo GT2-XL con fragmentos de texto de la web (CommonCrawl) que aumentaron las posibilidades de que el modelo genere contenido memorizado.
Utilicé la misma muestra del rastreo de mayo de 2021 (~ 350 mb) utilizada por los autores.
./download_cc.sh
Entonces,
python extraction_commoncrawl.py --N 5000 --batch_size 20 --outfile commoncrawl_samples.txt
Todas las secuencias generadas tienen una longitud final de Atmost 256 tokens.
Aquí se pueden encontrar algunos resultados interesantes que se extrajeron de GPT-2.