Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Dieses Tutorial ist als praktischer Leitfaden gedacht und behandelt keine theoretischen Hintergründe. Diese werden in einer Vielzahl von anderen Dokumenten im Internet behandelt.
Für die Richtigkeit der Inhalte dieses Tutorials gebe ich keinerlei Garantie. Der hier gezeigte Weg ist nicht der einzige um ein solches System aufzusetzen, es ist lediglich, der, den ich bevorzuge.
Was ist GPT-2?
GPT-2 (Generative Pretrained Transformer 2), ist eine Künstliche Intelligenz von Open AI. Die Künstliche Intelligenz kann Texte selbständig vervollständigen.
Der Unterschied zu automatischen Textgeneratoren ist, dass die Künstliche Intelligenz zur Texterzeugung keine vordefinierten Textblöcke nutzt. Sie ist auch nicht auf einen Themenbereich festgelegt, sondern kann zu jeglichem Text einige passende Sätze erzeugen.
Das Sprachmodell basiert auf einem künstlichen neuronalen Netz mit 1,5 Milliarden Parametern. Es handelt sich um ein statistisches Sprachmodell, das beschreibt, wie wahrscheinlich ein bestimmter Satz in einem Kontext ist. Datengrundlage für GPT-2 sind ungefähr 45 Millionen verarbeitete Seiten Text.
GPT-3 ist eine Weiterentwicklung zu GPT-2.
Einleitung
Wir verwenden Anaconda. Anaconda bündelt einen Paketmanager, einen Umgebungsmanager und eine Vielzahl anderer Werkzeuge, die die Verwendung und Verwaltung von Python-Umgebungen erleichtern.
Wie Sie Anaconda installieren können, haben wir hier beschrieben. Eine Anleitung für das Update von Anaconda finden Sie hier.
Anaconda-Umgebung
Erstellen Sie eine neue Anaconda-Umgebung mit dem Namen GPT2 und führen Sie Python aus.
Verwenden Sie:
conda create --name gpt_env python=3.7
Ausgabe:
Collecting package metadata (current_repodata.json): - \ | done
Solving environment: - done
## Package Plan ##
environment location: /root/anaconda3/envs/gpt_env
added / updated specs:
- python=3.7
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
ca-certificates pkgs/main/linux-64::ca-certificates-2021.1.19-h06a4308_1
certifi pkgs/main/linux-64::certifi-2020.12.5-py37h06a4308_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.33.1-h53a641e_7
libffi pkgs/main/linux-64::libffi-3.3-he6710b0_2
libgcc-ng pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1
openssl pkgs/main/linux-64::openssl-1.1.1k-h27cfd23_0
pip pkgs/main/linux-64::pip-21.0.1-py37h06a4308_0
python pkgs/main/linux-64::python-3.7.10-hdb3f193_0
readline pkgs/main/linux-64::readline-8.1-h27cfd23_0
setuptools pkgs/main/linux-64::setuptools-52.0.0-py37h06a4308_0
sqlite pkgs/main/linux-64::sqlite-3.35.4-hdfb4753_0
tk pkgs/main/linux-64::tk-8.6.10-hbc83047_0
wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
xz pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
Proceed ([y]/n)? y
Wenn Sie einverstanden sind, geben Sie y ein.
Ausgabe:
Preparing transaction: | / - done
Verifying transaction: | / - \ | / - done
Executing transaction: | / - \ | / - done
#
# To activate this environment, use
#
# $ conda activate gpt_env
#
# To deactivate an active environment, use
#
# $ conda deactivate
Sie können Ihre neue Umgebung aktivieren, indem Sie Folgendes eingeben:
conda activate gpt_env
Installation TensorFlow
Es ist sehr wichtig zu beachten, dass TensorFlow 2 (die aktuelle Version von TF zum Zeitpunkt dieses Beitrags) kein Training/Feinabstimmung von gpt2 ohne Modifikationen erlaubt. Wir verwenden TensorFlow 1.15
pip install tensorflow==1.15
Requirement already satisfied: setuptools>=41.0.0 in ./anaconda3/envs/gpt_env/lib/python3.7/site-packages (from tensorboard<1.16.0,>=1.15.0->tensorflow==1.15) (52.0.0.post20210125)
Collecting werkzeug>=0.11.15
Using cached Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
Collecting importlib-metadata
Downloading importlib_metadata-3.10.0-py3-none-any.whl (14 kB)
Collecting cached-property
Downloading cached_property-1.5.2-py2.py3-none-any.whl (7.6 kB)
Collecting typing-extensions>=3.6.4
Downloading typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Collecting zipp>=0.5
Downloading zipp-3.4.1-py3-none-any.whl (5.2 kB)
Building wheels for collected packages: gast, termcolor, wrapt
Building wheel for gast (setup.py) ... - done
Created wheel for gast: filename=gast-0.2.2-py3-none-any.whl size=7538 sha256=40d97b6dc9eb19dffdcf8079f122ea56416c6ea6d8995e0e21e794da6bccef67
Stored in directory: /root/.cache/pip/wheels/21/7f/02/420f32a803f7d0967b48dd823da3f558c5166991bfd204eef3
Building wheel for termcolor (setup.py) ... - done
Created wheel for termcolor: filename=termcolor-1.1.0-py3-none-any.whl size=4829 sha256=5caf67a8e374e2db1c300c28439268de7353c50ef3f9bc8cd536b81d455834f4
Stored in directory: /root/.cache/pip/wheels/3f/e3/ec/8a8336ff196023622fbcb36de0c5a5c218cbb24111d1d4c7f2
Building wheel for wrapt (setup.py) ... - \ | done
Created wheel for wrapt: filename=wrapt-1.12.1-cp37-cp37m-linux_x86_64.whl size=71002 sha256=95af20afd1a1d6ecb3ac717b59900e7d253d00fd9ed84e8b6a290eccc148adbf
Stored in directory: /root/.cache/pip/wheels/62/76/4c/aa25851149f3f6d9785f6c869387ad82b3fd37582fa8147ac6
Successfully built gast termcolor wrapt
Installing collected packages: zipp, typing-extensions, six, numpy, importlib-metadata, cached-property, werkzeug, protobuf, markdown, h5py, grpcio, absl-py, wrapt, termcolor, tensorflow-estimator, tensorboard, opt-einsum, keras-preprocessing, keras-applications, google-pasta, gast, astor, tensorflow
Successfully installed absl-py-0.12.0 astor-0.8.1 cached-property-1.5.2 gast-0.2.2 google-pasta-0.2.0 grpcio-1.37.0 h5py-3.2.1 importlib-metadata-3.10.0 keras-applications-1.0.8 keras-preprocessing-1.1.2 markdown-3.3.4 numpy-1.20.2 opt-einsum-3.3.0 protobuf-3.15.8 six-1.15.0 tensorboard-1.15.0 tensorflow-1.15.0 tensorflow-estimator-1.15.1 termcolor-1.1.0 typing-extensions-3.7.4.3 werkzeug-1.0.1 wrapt-1.12.1 zipp-3.4.1
Installation PyTorch
PyTorch ist großartig für die Texterstellung mit gtp2. Sie müssen zu Start Locally | PyTorch gehen und Ihre Installationsangaben auflisten.
pip install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio==0.8.1 -f https://download.py
ytorch.org/whl/torch_stable.html
GPT-2 erhalten und verwenden
Klonen Sie das GPT-2-Repository auf Ihren Computer:
git clone https://github.com/r23/gpt-2.git
Installieren Sie innerhalb der aktivierten Conda-Umgebung, die Sie verwenden, die im GPT-2-Repository angegebenen Anforderungen:
cd gpt-2
~/gpt-2 # pip install --upgrade -r requirements.txt
Verwenden Sie das Skript zum Herunterladen des Modells, das mit dem GPT-2-Repository geliefert wird, um ein vortrainiertes Modell herunterzuladen:
python3 download_model.py 774M
Sie können angeben, welches der verschiedenen GPT-2-Modelle Sie herunterladen möchten. Oben haben wir einen Download des 774-Millionen-Parameter-Modells angefordert, was etwa 3,1 Gigabyte entspricht. Sie können auch die kleineren 124M- oder 355M-Modelle oder das viel größere 1,5B-Modell anfordern.
Sie müssen dann die Datei src/interactive_conditional_samples.py mit Ihrem bevorzugten Programmiereditor öffnen und den model_name auf den heruntergeladenen Namen aktualisieren:
Sie können dann das Python-Skript ausführen:
python3 src/interactive_conditional_samples.py
Dies wird das Modell starten und Ihnen erlauben, etwas Text einzugeben. Sie werden schließlich (wahrscheinlich nach einigen Warnungen, die Sie bezüglich Ihrer CPU und der Version von TensorFlow ignorieren können) etwas wie dieses sehen:
Model prompt >>>
Geben Sie einen englischen Satz ein und drücken Sie die Eingabetaste. Warten Sie ein wenig und sehen Sie, was das Modell als Antwort generiert.
Jetzt sind Sie gefragt!
Haben Sie Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf Ihren Kommentar.