Installation: Deep Learning Deutsch

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.

Deep Learning Deutsch

Wie man mit einem modernen Deep-Learning-Modell seine Gedanken automatisch vervollständigt, auf Deutsch!

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 Anacon.

Anaconda-Umgebung

Erstellen Sie eine neue Anaconda-Umgebung mit dem Namen tlm_env und führen Sie Python aus.

Verwenden Sie:

conda create --name tlm_env python=3.7

Ausgabe:

Collecting package metadata (current_repodata.json): - \ | / - \ | / - done
Solving environment: | / done

## Package Plan ##

  environment location: /root/anaconda3/envs/tlm_env

  added / updated specs:
    - python=3.7


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2021.4.13  |       h06a4308_1         114 KB
    ------------------------------------------------------------
                                           Total:         114 KB

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.4.13-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 mit der Auswahl an Paketen einverstanden sind, geben Sie y ein.

Ausgabe:

Downloading and Extracting Packages

ca-certificates-2021 | 114 KB    |                                       |   0% 
ca-certificates-2021 | 114 KB    | ##################################### | 100% 
ca-certificates-2021 | 114 KB    | ##################################### | 100% 
Preparing transaction: \ | / - \ | / done
Verifying transaction: \ | / - \ | / - \ | / done
Executing transaction: \ | / - \ | / - \ | / - \ | done
#
# To activate this environment, use
#
#     $ conda activate tlm_env
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Sie können Ihre neue Umgebung aktivieren, indem Sie Folgendes eingeben:

conda activate tlm_env

Installation PyTorch

PyTorch ist großartig für die Texterstellung mit gtp2. Sie müssen zu Start Locally | PyTorch gehen und Ihre Installationsangaben auflisten.

pytorch
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

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

Installieren Sie innerhalb der aktivierten Conda-Umgebung, die Sie verwenden, die im GPT-2-Repository angegebenen Anforderungen:

~/gpt-2 # pip install --upgrade -r requirements.txt
cd ..

Die Open AI GPT-2 Modelle verwenden TensorFlow. Eine Installationsanleitung finden Sie hier https://blog.r23.de/kuenstliche-intelligenz/installation-openais-spachmodell-gpt2/

transformer-lm installieren

Download

mkdir Notebooks
cd Notebooks
git clone https://github.com/lopuhin/transformer-lm.git

Installation

cd transformer-lm
pip install -r requirements.txt
python setup.py develop

Ausgabe

running develop
running egg_info
writing lm.egg-info/PKG-INFO
writing dependency_links to lm.egg-info/dependency_links.txt
writing entry points to lm.egg-info/entry_points.txt
writing requirements to lm.egg-info/requires.txt
writing top-level names to lm.egg-info/top_level.txt
reading manifest file 'lm.egg-info/SOURCES.txt'
writing manifest file 'lm.egg-info/SOURCES.txt'
running build_ext
Creating /root/anaconda3/envs/tlm_env/lib/python3.7/site-packages/lm.egg-link (link to .)
Adding lm 0.1.0 to easy-install.pth file
Installing gpt-2 script to /root/anaconda3/envs/tlm_env/bin
Installing gpt-2-gen script to /root/anaconda3/envs/tlm_env/bin
Installing gpt-2-tf-train script to /root/anaconda3/envs/tlm_env/bin
Installing lm-web-ui script to /root/anaconda3/envs/tlm_env/bin
Installing sp-encode script to /root/anaconda3/envs/tlm_env/bin
Installing sp-train script to /root/anaconda3/envs/tlm_env/bin

Installed /root/Notebooks/transformer-lm
Processing dependencies for lm==0.1.0
Searching for torch==1.8.1
Best match: torch 1.8.1
Adding torch 1.8.1 to easy-install.pth file
Installing convert-caffe2-to-onnx script to /root/anaconda3/envs/tlm_env/bin
Installing convert-onnx-to-caffe2 script to /root/anaconda3/envs/tlm_env/bin

Using /root/anaconda3/envs/tlm_env/lib/python3.7/site-packages
Searching for sentencepiece==0.1.95
Best match: sentencepiece 0.1.95
Adding sentencepiece 0.1.95 to easy-install.pth file

Using /root/anaconda3/envs/tlm_env/lib/python3.7/site-packages
Searching for numpy==1.20.2
Best match: numpy 1.20.2
Adding numpy 1.20.2 to easy-install.pth file
Installing f2py script to /root/anaconda3/envs/tlm_env/bin
Installing f2py3 script to /root/anaconda3/envs/tlm_env/bin
Installing f2py3.7 script to /root/anaconda3/envs/tlm_env/bin

Using /root/anaconda3/envs/tlm_env/lib/python3.7/site-packages
Searching for attrs==20.3.0
Best match: attrs 20.3.0
Adding attrs 20.3.0 to easy-install.pth file

Using /root/anaconda3/envs/tlm_env/lib/python3.7/site-packages
Searching for typing-extensions==3.7.4.3
Best match: typing-extensions 3.7.4.3
Adding typing-extensions 3.7.4.3 to easy-install.pth file

Using /root/anaconda3/envs/tlm_env/lib/python3.7/site-packages
Finished processing dependencies for lm==0.1.0
cd ..

Zamia AI’s German GPT-2 Model

Zamia-Brain bietet Softwarekomponenten, Werkzeuge und Modelle für die semantische Verarbeitung natürlicher Sprache. Derzeit basiert es auf OpenAI GPT-2.

Ein 384M deutsches GPT-2 Modell steht zum Download bereit

mkdir pytorch_models
cd pytorch_models
wget https://goofy.zamia.org/zamia-speech/brain/gpt2-german-345M-r20191119.tar.xz
wget https://goofy.zamia.org/zamia-speech/brain/sp.vocab 
tar xvf gpt2-german-345M-r20191119.tar.xz 

Optional

wget https://goofy.zamia.org/zamia-speech/brain/transformerXL-german-163M-r20190928.tar.xz
tar xvf transformerXL-german-163M-r20190928.tar.xz
rm gpt2-german-345M-r20191119.tar.xz
rm xvf transformerXL-german-163M-r20190928.tar.xz

Für weitere Informationen besuchen Sie die Zamia-Brain Website

Deep Learning Deutsch

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Guenter Bartsch gooofy https://github.com/gooofy
# https://github.com/lopuhin/transformer-lm/issues/2#issuecomment-511742139

from pathlib import Path
from lm import inference

import numpy as np

MODEL_PATH = Path('/..../pytorch_models/de345-root/')

TOKENS_TO_GENERATE = 38

TOP_K = 8

mw = inference.ModelWrapper.load(MODEL_PATH)

txt = "Die Forschung an der künstlichen Intelligenz"

tokens = mw.tokenize(txt)

for i in range(TOKENS_TO_GENERATE):

    # generate TOP_K potential next tokens
    ntk = mw.get_next_top_k(tokens, TOP_K)

    # convert log probs to real probs
    logprobs = np.array(list(map(lambda a: a[0], ntk)))
    probs = np.exp(logprobs) / np.exp(logprobs).sum()

    # pick next token randomly according to probs distribution
    next_token_n = np.random.choice(TOP_K, p=probs)
    next_token = ntk[next_token_n][1]
    print (next_token)

    tokens.append(next_token)

print(mw.sp_model.DecodePieces(tokens))

Danksagung

Vielen Dank an Günter Bartsch (Zamia AI) für das Training des deutschen GPT-2-Modells und an Konstantin Lopuhin für seine hervorragende Arbeit an transformer-lm, seiner PyTorch-Implementierung von GPT-2.

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.