Ursprünglich in TensorFlow 1.14 von Oapenai implementiert:- "OpenAI/GPT-2". OpenAI GPT-2 Papier:-"Sprachmodelle sind unbeaufsichtigtes Multitasking-Lerner"
** Dieses Repository hat OpenAI GPT-2 Pre-Training- und Sequenzgenerierungsimplementierung in TensorFlow 2.0, **
Anforderungen
Aufstellen
$ git clone https://github.com/akanyaani/gpt-2-tensorflow2.0
$ cd gpt-2-tensorflow2.0
$ pip install -r requirements.txt
Sie können das Modell mit Verwendung von Beispieldaten, die im Repository verfügbar sind
Vor-Training-Modell für im Repository verfügbare Beispieldaten
$ python pre_process.py --help
Options:
--data-dir TEXT training data path [default: /data/scraped]
--vocab-size INTEGER byte pair vocab size [default: 24512]
--min-seq-len INTEGER minimum sequence length [default: 15]
--max-seq-len INTEGER maximum sequence length [default: 512]
--help Show this message and exit.
>> python pre_process.py
Vor-Training-Modell auf OpenWebtext oder anderen Daten
>> python pre_process.py --data-dir=data_directory --vocab-size=32000
$ python train_gpt2.py --help
Options:
--num-layers INTEGER No. of decoder layers [default: 8]
--embedding-size INTEGER Embedding size [default: 768]
--num-heads INTEGER Number of heads [default: 8]
--dff INTEGER Filter Size [default: 3072]
--max-seq-len INTEGER Seq length [default: 515]
--vocab-size INTEGER Vocab size [default: 24512]
--optimizer TEXT optimizer type [default: adam]
--batch-size INTEGER batch size [default: 8]
--learning-rate FLOAT learning rate [default: 0.001]
--graph-mode BOOLEAN TF run mode [default: False]
--distributed BOOLEAN distributed training [default: False]
--help Show this message and exit.
>> python train_gpt2.py
--num-layers=8
--num-heads=8
--dff=3072
--embedding-size=768
--batch-size=32
--learning-rate=5e-5
--graph-mode=True
Verteilter Training an mehreren GPU.
>> python train_gpt2.py
--num-layers=8
--num-heads=8
--dff=3072
--embedding-size=768
--batch-size=32
--learning-rate=5e-5
--distributed=True
--graph-mode=True
Starten Sie Tensorboard über die Befehlszeile.
$ tensorboard --logdir /log
Nachdem Sie Ihr Modell vorbereitet haben, können Sie Sequenzen generieren, indem Sie einen Kontext zum Modellieren geben. Öffnen Sie dieses Notizbuch und laden Sie das vorgezogene Modell und geben Sie den Kontext über, um die generierte Sequenz zurückzugeben.
$ sequence_generator.ipynb
Zu tun
1. Parallel Preprocessing.
2. Shared weights across layers.
3. Factorized embedding.
4. Fine-Tuning wrapper.
Referenzen:
Beitrag
Autor
Lizenz
Berechnungsdiagramm des GPT-2-Modells.