DeepPavlov: 强大的聊天机器人和对话系统开源AI库(附安装指南)

2020 年 11 月 3 日 TensorFlow


DeepPavlov 是一个基于 TensorFlow、Keras 和 PyTorch 构建的开源对话式 AI 库。


DeepPavlov 旨在:
  • 开发可用于生产环境的聊天机器人和复杂的对话系统;
  • 研究 NLP(尤其是对话系统)领域。



安装

1. 我们支持 Linux 与 Windows 平台,以及 Python 3.6 和 Python 3.7
  • 不支持 Python 3.5!

  • Windows上的安装需要 Git(例如 git)和安装了适用于 Visual Studio 2015、2017  的 Microsoft Visual C++ 可再发行软件包!


2. 创建并激活虚拟环境:
  • Linux

python -m venv env
source ./env/bin/activate


  • Windows

python -m venv env
.\env\Scripts\activate.bat


3. 在环境中安装软件包:

pip install deeppavlov



快速入门

DeepPavlov 中有很多很棒的经过预训练的 NLP 模型。每个模型均由其配置文件确定。


可以在 deeppavlov.configs (Python) 的文档页面上找到模型列表:

from deeppavlov import configs


确定了模型(+ 配置文件)后,可以通过两种方式来训练、评估模型并进行推断:
  • 通过 命令行界面 (CLI)
  • 通过 Python
  • 文档页面
    http://docs.deeppavlov.ai/en/master/features/overview.html

  • 命令行界面 (CLI)
    https://github.com/deepmipt/DeepPavlov#command-line-interface-cli

  • Python
    https://github.com/deepmipt/DeepPavlov#python


GPU 要求

要在 GPU 上运行受支持的 DeepPavlov 模型,您应该在主机上安装 CUDA 10.0,并在 Python 环境中安装支持 GPU 的 TensorFlow (tensorflow-gpu)。当前支持的 TensorFlow 版本是 1.15.2。


在安装模型的软件包之前先运行:

pip install tensorflow-gpu==1.15.2


来安装所需的 tensorflow-gpu 版本。


在选择接口之前,先安装模型的软件包要求 (CLI):

python -m deeppavlov install <config_path>
  • 其中 <config_path> 是所选模型的配置文件的路径(例如 deeppavlov/configs/ner/slotfill_dstc2.json)或者不带 .json 扩展名的名称(例如 slotfill_dstc2


命令行界面 (CLI)

请运行以下命令通过 CLI 以交互方式从模型获取预测:

python -m deeppavlov interact <config_path> [-d]
  • -d 下载所需数据 - 预训练的模型文件和嵌入向量(可选)。



您可以使用相同的简单方式进行训练:

python -m deeppavlov train <config_path> [-d]


无论是否存在 -d 标记,都将下载数据集。


您也可以使用您自己的数据进行训练,需要在训练配置文档中修改数据集读取器路径。数据格式已在相应的模型文档页面中指定。

  • 训练配置文档
    http://docs.deeppavlov.ai/en/master/intro/config_description.html#train-config


您还可以通过配置执行更多操作:

python -m deeppavlov <action> <config_path> [-d]
  • <action> 可以为
    • download,用于下载模型数据(与 -d 相同),
    • train,使用配置文件中指定的数据训练模型,
    • evaluate,在同一数据集上计算指标,
    • interact,通过 CLI 进行交互,
    • riseapi,运行 REST API 服务器(请参阅 文档[1]),
    • telegram,作为 Telegram 机器人运行(请参阅 文档[2]),
    • msbot,作为 Miscrosoft Bot Framework 服务器运行(请参阅 文档[3]),
    • predict,从 stdin 或 <file_path>(如果指定了 -f <file_path>)获取样本预测。
  • <config_path>,指定模型配置文件的路径(或名称)
  • -d,下载所需数据



Python

要通过 Python 以交互方式从模型获取预测,请运行:

from deeppavlov import build_model

model = build_model(<config_path>, download=True)

# get predictions for 'input_text1', 'input_text2'
model(['input_text1', 'input_text2'])
  • 其中 download=True 表示从网络下载所需的数据 - 预训练的模型文件和嵌入向量(可选),
  • <config_path> 是所选模型的配置文件的路径(例如 "deeppavlov/configs/ner/ner_ontonotes_bert_mult.json")或 deeppavlov.configs 属性(例如不带引号的 deeppavlov.configs.ner.ner_ontonotes_bert_mult)。


您可以使用相同的简单方式进行训练:

from deeppavlov import train_model 

model = train_model(<config_path>, download=True)
  • download=True 表示下载预训练的模型,因此将首先加载预训练的模型,然后进行训练(可选)。


无论是否存在 -d 标记,都将下载数据集。


您也可以使用您自己的数据进行训练,需要在训练配置文档中修改数据集读取器路径。数据格式已在相应的模型文档页面中指定。

  • 训练配置文档
    http://docs.deeppavlov.ai/en/master/intro/config_description.html#train-config


您还可以根据配置文件中指定的数据集计算指标:

from deeppavlov import evaluate_model 

model = evaluate_model(<config_path>, download=True)


此外,还提供了与各种信使的集成,请参阅 Telegram 机器人文档页面以及“集成”部分中的其他内容,以获取更多信息。

  • Telegram 机器人文档页面
    http://docs.deeppavlov.ai/en/master/integrations/telegram.html



团队

DeepPavlov 由 MIPT 的神经网络和深度学习实验室构建和维护。


欢迎您留下关于如何改善 DeepPavlov 框架的反馈意见

  • 反馈
    https://github.com/deepmipt/DeepPavlov



如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

  • 文档[1]
    http://docs.deeppavlov.ai/en/master/integrations/rest_api.html

  • 文档[2]
    http://docs.deeppavlov.ai/en/master/integrations/telegram.html

  • 文档[3]
    http://docs.deeppavlov.ai/en/master/integrations/ms_bot.html

  • 演示:demo.deeppavlov.ai

  • 文档:docs.deeppavlov.ai

    • 模型列表:http://docs.deeppavlov.ai/en/master/features/overview.html

    • 贡献指南:http://docs.deeppavlov.ai/en/master/devguides/contribution_guide.html

  • 教程:examples/ 和 colab 扩展教程

    • https://github.com/deepmipt/dp_tutorials

    • https://github.com/deepmipt/DeepPavlov/tree/master/examples



了解更多请点击 “阅读原文” 访问 GitHub。

登录查看更多
2

相关内容

【2020新书】懒人程序员专用书C++20,681页pdf
专知会员服务
43+阅读 · 2020年12月15日
【干货书】Pytorch自然语言处理,210页pdf
专知会员服务
164+阅读 · 2020年10月30日
【干货书】Python高级数据科学分析,424页pdf
专知会员服务
114+阅读 · 2020年8月7日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
119+阅读 · 2019年12月31日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
polyglot:Pipeline 多语言NLP工具
AINLP
4+阅读 · 2018年12月11日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
Arxiv
0+阅读 · 2021年2月2日
Polarity Loss for Zero-shot Object Detection
Arxiv
3+阅读 · 2018年11月22日
A Survey on Deep Transfer Learning
Arxiv
11+阅读 · 2018年8月6日
Arxiv
8+阅读 · 2018年5月17日
VIP会员
相关VIP内容
【2020新书】懒人程序员专用书C++20,681页pdf
专知会员服务
43+阅读 · 2020年12月15日
【干货书】Pytorch自然语言处理,210页pdf
专知会员服务
164+阅读 · 2020年10月30日
【干货书】Python高级数据科学分析,424页pdf
专知会员服务
114+阅读 · 2020年8月7日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
119+阅读 · 2019年12月31日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
相关资讯
polyglot:Pipeline 多语言NLP工具
AINLP
4+阅读 · 2018年12月11日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
Top
微信扫码咨询专知VIP会员