适用于开发人员的DeepPavlov:#2设置和部署

该周期的所有文章:

1. 针对开发人员的DeepPavlov:#1 NLP工具和创建聊天机器人
2. 针对开发人员的DeepPavlov:#2的设置和部署

大家好! 在本系列的第一篇文章中,我们了解了DeepPavlov是什么,无需事先培训即可使用的库模型以及如何使用它们运行REST服务器。 在开始模型训练之前,我们将讨论部署DeepPavlov模型的各种可能性以及库设置的某些功能。

我们同意所有库启动脚本都是在安装了DeepPavlov库的Python环境中执行的(有关安装,请参阅第一篇文章,有关virtualenv ,请阅读此处 )。 本文中的示例不需要了解Python语法。



与NLP模型的交互模式DeepPavlov


DeepPavlov当前支持与NLP模型进行交互的4种方式(预先训练和用户创建):

  • REST服务器( riseapi模式)是集成模型的主要工具,它在上一篇文章 (文档)中有详细介绍。
  • TCP或UNIX套接字服务器( risesocket模式)-如果需要低级集成(文档)
  • Bot in Telegram( 电报模式)-演示模式,允许您通过Telegram (文档)与模型进行交互。
  • 命令行( 交互模式)-演示和调试模式,允许您通过命令行与模型进行交互。 通过命令行在交互模式下的模型使用以下命令初始化:
    python -m deeppavlov interact 


<config_path>参数(在所有四种模式下都必需)可以采用模型配置文件的完整路径,也可以采用不带扩展名的配置文件的名称。 在后一种情况下,应在库中注册模型配置。

DeepPavlov随附的所有型号的配置均已在该库中注册。 提供的模型列表可在DeepPavlov 文档的“模型”部分中找到,其配置可在此处找到。

GPU使用率


在上述任何一种模式下,都会基于神经网络初始化NLP模型。 这使他们对计算资源的要求很高。 您可以使用GPU来提高模型的性能。 为此,您需要一个nVidia图形卡,该图形卡具有足够的视频内存(取决于您所运行的型号)和受支持的CUDA框架版本。 您可以在此处找到有关在GPU上启动DeepPavlov模型的所有必要信息。

库设置文件


所有库设置都包含在三个文件中:

  • server_config.json -REST和套接字服务器以及电报连接器的设置
  • dialog_logger_config.json-用于将请求记录到模型的设置
  • log_config.json-库日志记录设置

默认情况下,配置文件位于<deep_pavlov_root> / utils / settings中 ,其中<deep_pavlov_root>DeepPavlov的安装目录(在虚拟环境中,通常是lib / python <XX> / site-packages / deeppavlov )。 使用命令

 python -m deeppavlov.settings 

您可以使用设置文件找到目录的确切路径。 您还可以通过在环境变量DP_SETTINGS_PATH中指定它来为您方便的目录设置路径。 第一次运行以上命令(带有任何经过训练的DeepPavlov模型的服务器)后,默认目录中的文件将被复制到DP_SETTINGS_PATH的目录中。 团队

 python -m deeppavlov.settings -d 

通过将设置文件从文件顶部的默认目录复制到DP_SETTINGS_PATH来重置设置。

在DeepPavlov的设置中,您应注意:

  • server_config.json ,参数model_args_names:
    上一篇文章中,我们记得:
    -命名为REST API DeepPavlov的参数;
    -DeepPavlov中的任何模型均由其配置名称标识。
    因此,每个模型的默认参数名称均取自其配置。

    在下面的文章中,我们将详细分析模型配置的结构;现在,我们仅注意到REST API中的参数名称可以按以下方式重新定义:

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

    参数名称的顺序与在模型配置中定义参数的顺序相对应,作为model_args_names参数值的空字符串与默认名称相对应。
  • log_config.json:
    请注意,用于记录uvicorn的记录器是单独配置的。 您可以在此处阅读有关日志记录Python模块的配置结构的信息

在Docker中运行预训练的模型


任何预先训练的DeepPavlov模型都可以在REST服务模式下在Docker容器中启动。 详细说明在我们关于DockerHub的存储库中:这里是CPU, 这里是GPU。 容器中的API模型与上一篇文章中的描述完全一致。

Deeppavlov云


为了使使用DeepPavlov中经过预训练的NLP模型更加容易,我们开始以SaaS模式提供它们。 要使用模型,您需要在我们的服务中注册并在您个人帐户的“令牌”部分中获得令牌。 API文档位于“信息”部分。 使用一个令牌,您最多可以向模型发送1000个请求。

当前,该服务以Alpha版本启动,免费使用。 此外,将根据用户要求扩展提供模型的集合和格式。 请求表可以在“ 演示”页面的底部找到。

DeepPavlov Cloud现在提供以下模型:

  • 命名实体识别(多语言)-命名实体的识别;
  • 情感(RU)-文本的音调分类;
  • SQuAD(多语言)-作为文本片段的文本问题的答案。

结论


在本文中,我们熟悉了DeepPavlov模型的配置和部署功能,了解了Docker DP映像以及作为SaaS自由访问DP模型的可能性。

在下一篇文章中,我们将在数据集中训练一个简单的DeepPavlov模型。 并且不要忘记DeepPavlov有一个论坛 -提出有关库和模型的问题。 感谢您的关注!

Source: https://habr.com/ru/post/zh-CN476772/


All Articles