DeepPavlov para desarrolladores: configuración e implementación n. ° 2

Todos los artículos del ciclo:

1. DeepPavlov para desarrolladores: herramientas n. ° 1 de PNL y crear bots de chat
2. DeepPavlov para desarrolladores: configuración e implementación n. ° 2

Hola a todos! En el primer artículo de nuestra serie, aprendimos qué es DeepPavlov, qué modelos de biblioteca están listos para usar sin capacitación previa y cómo ejecutar servidores REST con ellos. Antes de comenzar la capacitación de modelos, hablaremos sobre las diversas opciones para implementar modelos DeepPavlov y algunas características de la configuración de la biblioteca.

Estamos de acuerdo en que todos los scripts de inicio de la biblioteca se ejecutan en el entorno Python con la biblioteca DeepPavlov instalada (para la instalación, consulte el primer artículo, para virtualenv , lea aquí ). Los ejemplos en este artículo no requieren conocimiento de la sintaxis de Python.



Modos de interacción con los modelos de PNL DeepPavlov


DeepPavlov actualmente admite 4 formas de interactuar con modelos de PNL (tanto pre-entrenados como creados por el usuario):

  • El servidor REST (modo riseapi ) es la herramienta principal para integrar modelos, se describió en detalle en un artículo anterior (documentación) .
  • Servidor de sockets TCP o UNIX (modo risesocket ): si se requiere una integración de bajo nivel (documentación) .
  • Bot en Telegram (modo telegrama ): el modo de demostración le permite interactuar con el modelo a través de Telegram (documentación) .
  • Línea de comando (modo de interacción ): el modo de demostración y depuración le permite interactuar con el modelo a través de la línea de comando. El modelo en el modo de interacción a través de la línea de comando se inicializa con el siguiente comando:
    python -m deeppavlov interact 


El parámetro <config_path> (requerido en los cuatro modos) puede tomar la ruta completa al archivo de configuración del modelo o el nombre del archivo de configuración sin una extensión. En el último caso, la configuración del modelo debe registrarse en la biblioteca.

Las configuraciones de todos los modelos suministrados con DeepPavlov se registran en la biblioteca. La lista de modelos suministrados se puede encontrar en la sección MODELOS de la documentación de DeepPavlov, sus configuraciones se pueden encontrar aquí .

Uso de GPU


En cualquiera de los modos anteriores, se inicializan los modelos de PNL, que se basan en redes neuronales. Esto los hace bastante exigentes con los recursos informáticos. Puede mejorar el rendimiento de los modelos utilizando la GPU. Para hacer esto, necesitará una tarjeta gráfica nVidia con suficiente memoria de video (dependiendo del modelo que esté ejecutando) y una versión compatible del marco CUDA . Puede encontrar toda la información necesaria sobre el lanzamiento de modelos DeepPavlov en la GPU aquí .

Archivos de configuración de la biblioteca


Todas las configuraciones de la biblioteca están contenidas en tres archivos:

  • server_config.json : configuración para REST y servidores de socket, así como un conector de Telegram
  • dialog_logger_config.json : configuración para registrar solicitudes en modelos
  • log_config.json - configuración de registro de la biblioteca

De forma predeterminada, los archivos de configuración se encuentran en <raíz_pavlov_deep> / utils / settings , donde <raíz_pavlov_deep> es el directorio de instalación de DeepPavlov (generalmente es lib / python <XX> / site-packages / deeppavlov en un entorno virtual). Usando el comando

 python -m deeppavlov.settings 

Puede encontrar la ruta exacta al directorio con los archivos de configuración. También puede establecer la ruta a un directorio conveniente para usted al especificarlo en la variable de entorno DP_SETTINGS_PATH . Después de la primera ejecución del comando anterior (un servidor con cualquier modelo DeepPavlov entrenado), los archivos del directorio predeterminado se copiarán en el directorio desde DP_SETTINGS_PATH . El equipo

 python -m deeppavlov.settings -d 

restablece la configuración copiando los archivos de configuración del directorio predeterminado en la parte superior de los archivos a DP_SETTINGS_PATH .

Desde la configuración de DeepPavlov debe prestar atención a:

  • server_config.json , parámetro model_args_names:
    Del último artículo recordamos:
    - argumentos a la API REST DeepPavlov nombrados;
    - cualquier modelo en DeepPavlov se identifica por el nombre de su configuración.
    Por lo tanto, los nombres de argumento predeterminados para cada modelo se toman de su configuración.

    Analizaremos la estructura de las configuraciones del modelo en detalle en los siguientes artículos; ahora solo notamos que los nombres de argumentos en la API REST se pueden redefinir de la siguiente manera:

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

    La secuencia de nombres de argumentos corresponde a la secuencia en la que los argumentos se definen en la configuración del modelo, la cadena vacía como el valor del parámetro model_args_names corresponde a los nombres predeterminados.
  • log_config.json:
    Tenga en cuenta que para iniciar sesión uvicorn se utiliza un registrador, que se configura por separado. Puede leer sobre la estructura de configuración del módulo de registro de Python aquí .

Ejecución de modelos pre-entrenados en Docker


Cualquier modelo DeepPavlov previamente entrenado se puede iniciar en el contenedor Docker en el modo de servicio REST. Las instrucciones detalladas están en nuestros repositorios en DockerHub: aquí para la CPU, aquí para la GPU. Los modelos de API en contenedores son totalmente consistentes con la descripción del artículo anterior.

Nube Deeppavlov


Para facilitar el trabajo con modelos NLP pre-entrenados de DeepPavlov, comenzamos a proporcionarlos en modo SaaS. Para usar los modelos, debe registrarse en nuestro servicio y obtener un token en la sección Tokens de su cuenta personal. La documentación de la API se encuentra en la sección Información. Bajo un token, puede enviar hasta 1000 solicitudes al modelo.

Actualmente, el servicio se lanza en la versión Alpha y su uso es gratuito. Además, el conjunto y el formato para la provisión de modelos se ampliarán de acuerdo con las solicitudes de los usuarios. El formulario de solicitud se puede encontrar en la parte inferior de la página de demostración .

Los siguientes modelos ahora están disponibles en DeepPavlov Cloud:

  • Reconocimiento de entidad con nombre (multilingüe): reconocimiento de entidades con nombre;
  • Sentimiento (RU): clasificación de la tonalidad del texto;
  • SQuAD (multilingüe): la respuesta a una pregunta del texto como un fragmento de este texto.

Conclusión


En este artículo, nos familiarizamos con las características de configuración e implementación de los modelos DeepPavlov, aprendimos sobre las imágenes Docker DP y la posibilidad de acceso libre a los modelos DP como SaaS.

En el próximo artículo, entrenaremos un modelo simple de DeepPavlov en nuestro conjunto de datos. Y no olvide que DeepPavlov tiene un foro : haga sus preguntas sobre la biblioteca y los modelos. Gracias por su atencion!

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


All Articles