DeepPavlov für Entwickler: # 2 Setup und Bereitstellung

Alle Artikel des Zyklus:

1. DeepPavlov für Entwickler: NLP-Tools Nr. 1 und Erstellen von Chat-Bots
2. DeepPavlov für Entwickler: Einrichtung und Bereitstellung Nr. 2

Hallo allerseits! Im ersten Artikel unserer Reihe haben wir erfahren, was DeepPavlov ist, welche Bibliotheksmodelle ohne vorherige Schulung einsatzbereit sind und wie REST-Server mit ihnen ausgeführt werden. Bevor wir mit dem Training von Modellen beginnen, werden wir über die verschiedenen Möglichkeiten der Bereitstellung von DeepPavlov-Modellen und einige Funktionen der Bibliothekseinstellungen sprechen.

Wir sind damit einverstanden, dass alle Skripte zum Ausführen der Bibliothek in der Python-Umgebung mit der installierten DeepPavlov-Bibliothek ausgeführt werden (Informationen zur Installation finden Sie im ersten Artikel. Informationen zu virtualenv finden Sie hier ). Für die Beispiele in diesem Artikel sind keine Kenntnisse der Python-Syntax erforderlich.



Arten der Interaktion mit NLP-Modellen DeepPavlov


DeepPavlov unterstützt derzeit vier Möglichkeiten zur Interaktion mit NLP-Modellen (sowohl vorab trainiert als auch vom Benutzer erstellt):

  • Der REST-Server ( Riseapi- Modus) ist das Hauptwerkzeug für die Integration von Modellen. Dies wurde in einem vorherigen Artikel (Dokumentation) ausführlich beschrieben.
  • TCP- oder UNIX-Socket-Server ( Risesocket- Modus) - wenn eine einfache Integration (Dokumentation) erforderlich ist.
  • Bot im Telegramm ( Telegrammmodus ) - Demomodus, ermöglicht Ihnen die Interaktion mit dem Modell über Telegramm (Dokumentation) .
  • Befehlszeile ( Interaktionsmodus ) - Im Demo- und Debug-Modus können Sie über die Befehlszeile mit dem Modell interagieren. Das Modell im Interaktionsmodus über die Befehlszeile wird mit folgendem Befehl initialisiert:
    python -m deeppavlov interact 


Der Parameter <config_path> (in allen vier Modi erforderlich) kann entweder den vollständigen Pfad zur Modellkonfigurationsdatei oder den Namen der Konfigurationsdatei ohne Erweiterung verwenden. Im letzteren Fall sollte die Modellkonfiguration in der Bibliothek registriert werden.

Die Konfigurationen aller mit DeepPavlov gelieferten Modelle sind in der Bibliothek registriert. Die Liste der mitgelieferten Modelle finden Sie im Abschnitt MODELLE der DeepPavlov- Dokumentation . Die entsprechenden Konfigurationen finden Sie hier .

GPU-Nutzung


In jedem der obigen Modi werden NLP-Modelle initialisiert, die auf neuronalen Netzen basieren. Dies macht sie sehr anspruchsvoll an Rechenressourcen. Sie können die Leistung von Modellen mithilfe der GPU verbessern. Dazu benötigen Sie eine nVidia-Grafikkarte mit ausreichend Videospeicher (abhängig vom verwendeten Modell) und eine unterstützte Version des CUDA- Frameworks. Hier finden Sie alle notwendigen Informationen zum Starten von DeepPavlov-Modellen auf der GPU.

Bibliothekseinstellungsdateien


Alle Bibliothekseinstellungen sind in drei Dateien enthalten:

  • server_config.json - Einstellungen für REST- und Socket-Server sowie einen Telegramm-Connector
  • dialog_logger_config.json - Einstellungen zum Protokollieren von Anforderungen an Modelle
  • log_config.json - Bibliotheksprotokollierungseinstellungen

Standardmäßig befinden sich die Konfigurationsdateien in <deep_pavlov_root> / utils / settings , wobei <deep_pavlov_root> das Installationsverzeichnis von DeepPavlov ist (normalerweise ist dies lib / python <XX> / site-packages / deeppavlov in der virtuellen Umgebung). Befehl verwenden

 python -m deeppavlov.settings 

Den genauen Pfad zum Verzeichnis finden Sie in den Einstellungsdateien. Sie können den Pfad zu einem für Sie geeigneten Verzeichnis auch festlegen, indem Sie ihn in der Umgebungsvariablen DP_SETTINGS_PATH angeben . Nach der ersten Ausführung des obigen Befehls (ein Server mit einem geschulten DeepPavlov-Modell) werden Dateien aus dem Standardverzeichnis von DP_SETTINGS_PATH in das Verzeichnis kopiert . Das team

 python -m deeppavlov.settings -d 

Setzt die Einstellungen zurück, indem die Einstellungsdateien aus dem Standardverzeichnis über den Dateien in DP_SETTINGS_PATH kopiert werden .

In den Einstellungen von DeepPavlov sollten Sie folgendes beachten:

  • server_config.json , Parameter model_args_names:
    Aus dem letzten Artikel erinnern wir uns:
    - Argumente für die genannte REST-API DeepPavlov;
    - Jedes Modell in DeepPavlov wird durch den Namen seiner Konfiguration identifiziert.
    Daher werden die Standardargumentnamen für jedes Modell aus seiner Konfiguration übernommen.

    In den folgenden Artikeln werden wir die Struktur von Modellkonfigurationen im Detail analysieren, wobei wir nur bemerken, dass die Argumentnamen in der REST-API wie folgt neu definiert werden können:

     model_args_names: [“arg_1_name”, ..., “arg_n_name”] 

    Die Reihenfolge der Argumentnamen entspricht der Reihenfolge, in der die Argumente in der Modellkonfiguration definiert sind. Die leere Zeichenfolge als Wert des Parameters model_args_names entspricht den Standardnamen.
  • log_config.json:
    Bitte beachten Sie, dass zur Protokollierung von uvicorn ein Logger verwendet wird, der separat konfiguriert wird. Über die Konfigurationsstruktur des Logging-Python-Moduls können Sie hier lesen.

Ausführen von vorgefertigten Modellen in Docker


Jedes vorab trainierte DeepPavlov-Modell kann im Docker-Container im REST-Servicemodus gestartet werden. Detaillierte Anweisungen finden Sie in unseren Repositories auf DockerHub: hier für die CPU, hier für die GPU. API-Modelle in Containern stimmen vollständig mit der Beschreibung aus dem vorherigen Artikel überein.

Deeppavlov Wolke


Um die Arbeit mit vorgefertigten NLP-Modellen von DeepPavlov zu vereinfachen, haben wir damit begonnen, sie im SaaS-Modus bereitzustellen. Um die Modelle nutzen zu können, müssen Sie sich bei unserem Service registrieren und im Bereich Tokens Ihres persönlichen Kontos einen Token erhalten. Die API-Dokumentation befindet sich im Abschnitt Info. Unter einem Token können Sie bis zu 1000 Anfragen an das Modell senden.

Derzeit ist der Dienst in der Alpha-Version gestartet und die Nutzung ist kostenlos. Darüber hinaus werden die Menge und das Format für die Bereitstellung von Modellen entsprechend den Benutzeranforderungen erweitert. Das Anfrageformular finden Sie unten auf der Demoseite .

Die folgenden Modelle sind jetzt in DeepPavlov Cloud verfügbar:

  • Erkennung benannter Entitäten (mehrsprachig) - Erkennung benannter Entitäten;
  • Sentiment (RU) - Klassifizierung der Tonalität des Textes;
  • SQuAD (mehrsprachig) - die Antwort auf eine Frage zum Text als Fragment dieses Textes.

Fazit


In diesem Artikel lernten wir die Konfigurations- und Bereitstellungsfunktionen von DeepPavlov-Modellen kennen, lernten Docker DP-Images und die Möglichkeit des freien Zugriffs auf DP-Modelle als SaaS.

Im nächsten Artikel werden wir ein einfaches DeepPavlov-Modell in unserem Datensatz trainieren. Und vergessen Sie nicht, dass DeepPavlov ein Forum hat - stellen Sie Ihre Fragen zu Bibliothek und Modellen. Vielen Dank für Ihre Aufmerksamkeit!

Source: https://habr.com/ru/post/de476772/


All Articles