前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pytext支持分布式训练,Facebook AI基于PyTorch的NLP框架,简化部署流程

Pytext支持分布式训练,Facebook AI基于PyTorch的NLP框架,简化部署流程

作者头像
机器学习AI算法工程
发布2019-10-28 16:22:40
5400
发布2019-10-28 16:22:40
举报
Facebook开源了自家工程师们一直在用的NLP建模框架PyText。这个框架,每天要为Facebook旗下各种应用处理超过10亿次NLP任务,Facebook AI的工业级NLP开源框架。(简化部署流程,大规模应用也OK)

PyText基于PyTorch,能够加速从研究到应用的进度,从模型的研究到完整实施只需要几天时间。框架里还包含了一些预训练模型,可以直接拿来处理文本分类、序列标注等任务。

资料如下:

主页:https://facebook.ai/developers/tools/pytext

论文:https://research.fb.com/publications/pytext-a-seamless-path-from-nlp-research-to-production/

官方文档:https://pytext-pytext.readthedocs-hosted.com/en/latest/index.html#

官方博客:https://code.fb.com/ai-research/pytext-open-source-nlp-framework/

GitHub:https://github.com/facebookresearch/pytext

PyText解决了既要实现快速实验又要部署大规模服务模型的经常相互冲突。它主要通过以下两点来实现上面的需求:

  • 通过为模型组件提供简单且可扩展的接口和抽象,
  • 使用PyTorch通过优化的Caffe2执行引擎导出模型,进行预测推理。

并且,Facebook已经采用了使用PyText快速迭代新的建模思路,然后大规模无缝衔接地发布它们。

Pytext核心功能

  • 适用于各种NLP / NLU任务的完备生产模型:
    • Zhang et al. (2016): A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding (https://www.ijcai.org/Proceedings/16/Papers/425.pdf)
    • Lample et al. (2016): Neural Architectures for Named Entity Recognition
    • Yoon Kim (2014): Convolutional Neural Networks for Sentence Classification
    • Lin et al. (2017): A Structured Self-attentive Sentence Embedding
    • 文本分类器
    • 序列标记
    • 联合意图槽模型
    • 上下文意图 - intent-slot models
  • 可扩展组件,可轻松创建新模型和任务
  • 支持集成训练
  • 支持分布式训练(在PyTorch 1.0中使用新的C10d后端)
  • 参考实现和预训练模型论文:Gupta et al. (2018): Semantic Parsing for Task Oriented Dialog using Hierarchical Representations

文本分类,序列标记(实体识别),Joint Model (Intent+Slot)(比如阅读理解,任务对话中常用的模型)等的预训练模型。

使用PyText

上手PyText非常简单,按标准python包的方法安装框架:

代码语言:javascript
复制
pip install pytext-nlp

然后,我们就可以使用一个任务配置来训练NLP模型了:

Task是PyText应用中的用来定义模型的核心部件。每一个任务都有一个嵌入的配置,它定义了不同组件之间的关系,如下面代码所示:

一旦模型训练完毕,我们就可以对模型进行评估,也可以导出为Caffe2格式:

需要指出的是,PyText提供了可扩展的架构,可以定制、扩展其中任何一个构建模块。

PyText代表了NLP开发的一个重要里程碑,它是最早解决实验与生产匹配问题的框架之一。基于Facebook和PyTorch社区的支持,PyText可能有机会称为深度学习生态中最重要的NLP技术栈之一。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Pytext核心功能
  • 使用PyText
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档