DeepPavlov pour les développeurs: configuration et déploiement # 2

Tous les articles du cycle:

1. DeepPavlov pour les développeurs: # 1 outils NLP et créer des robots de chat
2. DeepPavlov pour les développeurs: configuration et déploiement n ° 2

Bonjour à tous! Dans le premier article de notre série, nous avons appris ce qu'est DeepPavlov, quels modèles de bibliothèque sont prêts à l'emploi sans formation préalable et comment exécuter des serveurs REST avec eux. Avant de commencer la formation des modèles, nous parlerons des différentes options de déploiement des modèles DeepPavlov et de certaines fonctionnalités des paramètres de la bibliothèque.

Nous convenons que tous les scripts pour exécuter la bibliothèque sont exécutés dans l'environnement Python avec la bibliothèque DeepPavlov installée (pour l'installation, voir le premier article, pour virtualenv , lire ici ). Les exemples de cet article ne nécessitent pas la connaissance de la syntaxe Python.



Modes d'interaction avec les modèles PNL DeepPavlov


DeepPavlov prend actuellement en charge 4 façons d'interagir avec les modèles PNL (à la fois pré-formés et créés par l'utilisateur):

  • Le serveur REST (mode riseapi ) est le principal outil d'intégration des modèles, il a été décrit en détail dans un article précédent (documentation) .
  • Socket de serveur TCP ou UNIX (mode risesocket ) - si une intégration de bas niveau (documentation) est requise.
  • Bot in Telegram (mode télégramme ) - mode démo, vous permet d'interagir avec le modèle via Telegram (documentation) .
  • Ligne de commande (mode interactif ) - mode démo et débogage, vous permet d'interagir avec le modèle via la ligne de commande. Le modèle en mode d'interaction via la ligne de commande est initialisé avec la commande suivante:
    python -m deeppavlov interact 


Le paramètre <config_path> (requis dans les quatre modes) peut prendre soit le chemin d'accès complet au fichier de configuration du modèle, soit le nom du fichier de configuration sans extension. Dans ce dernier cas, la configuration du modèle doit être enregistrée dans la bibliothèque.

Les configurations de tous les modèles fournis avec DeepPavlov sont enregistrées dans la bibliothèque. La liste des modèles fournis peut être trouvée dans la section MODÈLES de la documentation DeepPavlov, leurs configurations peuvent être trouvées ici .

Utilisation du GPU


Dans l'un des modes ci-dessus, les modèles PNL sont initialisés, basés sur des réseaux de neurones. Cela les rend assez exigeants en ressources informatiques. Vous pouvez améliorer les performances des modèles en utilisant le GPU. Pour ce faire, vous avez besoin d'une carte graphique nVidia avec suffisamment de mémoire vidéo (selon le modèle que vous utilisez) et une version prise en charge du cadre CUDA . Vous pouvez trouver toutes les informations nécessaires sur le lancement de modèles DeepPavlov sur le GPU ici .

Fichiers de paramètres de bibliothèque


Tous les paramètres de la bibliothèque sont contenus dans trois fichiers:

  • server_config.json - paramètres pour les serveurs REST et socket, ainsi qu'un connecteur Telegram
  • dialog_logger_config.json - paramètres de journalisation des demandes aux modèles
  • log_config.json - paramètres de journalisation de la bibliothèque

Par défaut, les fichiers de configuration se trouvent dans <deep_pavlov_root> / utils / settings , où <deep_pavlov_root> est le répertoire d'installation de DeepPavlov (il s'agit généralement de lib / python <XX> / site-packages / deeppavlov dans un environnement virtuel). Utilisation de la commande

 python -m deeppavlov.settings 

Vous pouvez trouver le chemin exact du répertoire avec les fichiers de paramètres. Vous pouvez également définir le chemin d'accès à un répertoire qui vous convient en le spécifiant dans la variable d'environnement DP_SETTINGS_PATH . Après la première exécution de la commande ci-dessus (un serveur avec n'importe quel modèle DeepPavlov formé), les fichiers du répertoire par défaut seront copiés dans le répertoire à partir de DP_SETTINGS_PATH . L'équipe

 python -m deeppavlov.settings -d 

réinitialise les paramètres en copiant les fichiers de paramètres du répertoire par défaut au-dessus des fichiers vers DP_SETTINGS_PATH .

À partir des paramètres de DeepPavlov, vous devez faire attention à:

  • server_config.json , paramètre model_args_names:
    Du dernier article, nous nous souvenons:
    - arguments de l'API REST DeepPavlov nommés;
    - tout modèle dans DeepPavlov est identifié par le nom de sa configuration.
    Ainsi, les noms d'argument par défaut pour chaque modèle sont tirés de sa configuration.

    Nous analyserons en détail la structure des configurations de modèle dans les articles suivants; nous notons maintenant que les noms d'arguments dans l'API REST peuvent être redéfinis comme suit:

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

    La séquence des noms d'arguments correspond à la séquence dans laquelle les arguments sont définis dans la configuration du modèle, la chaîne vide comme valeur du paramètre model_args_names correspond aux noms par défaut.
  • log_config.json:
    Veuillez noter que pour enregistrer uvicorn, un enregistreur est utilisé, qui est configuré séparément. Vous pouvez lire ici la structure de configuration du module de journalisation Python.

Exécution de modèles pré-formés dans Docker


Tout modèle DeepPavlov pré-formé peut être lancé dans le conteneur Docker en mode de service REST. Des instructions détaillées sont dans nos référentiels sur DockerHub: ici pour le CPU, ici pour le GPU. Les modèles d'API dans les conteneurs sont entièrement cohérents avec la description de l'article précédent.

Nuage de Deeppavlov


Pour faciliter le travail avec les modèles NLP pré-formés de DeepPavlov, nous avons commencé à les fournir en mode SaaS. Pour utiliser les modèles, vous devez vous inscrire à notre service et obtenir un jeton dans la section Jetons de votre compte personnel. La documentation de l'API se trouve dans la section Info. Sous un jeton, vous pouvez envoyer jusqu'à 1 000 demandes au modèle.

Actuellement, le service est lancé dans la version Alpha et son utilisation est gratuite. En outre, l'ensemble et le format pour la fourniture de modèles seront étendus conformément aux demandes des utilisateurs. Le formulaire de demande se trouve au bas de la page de démonstration .

Les modèles suivants sont désormais disponibles dans DeepPavlov Cloud:

  • Reconnaissance des entités nommées (multilingue) - reconnaissance des entités nommées;
  • Sentiment (RU) - classification de la tonalité du texte;
  • SQuAD (multilingue) - la réponse à une question au texte en tant que fragment de ce texte.

Conclusion


Dans cet article, nous nous sommes familiarisés avec les fonctionnalités de configuration et de déploiement des modèles DeepPavlov, avons découvert les images Docker DP et la possibilité d'un accès gratuit aux modèles DP en tant que SaaS.

Dans le prochain article, nous formerons un modèle DeepPavlov simple sur notre jeu de données. Et n'oubliez pas que DeepPavlov a un forum - posez vos questions concernant la bibliothèque et les modèles. Merci de votre attention!

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


All Articles