facebook NLP 自然语言处理框架 Pytext 简介

book-nlp:图书长度文件的自然语言处理管道 BookNLP BookNLP是一种自然语言处理管道,可扩展到书籍和其他长文档(英语),包括: 词性标记(斯坦福大学) 依赖项解析(MaltParser) 命名实体识别(斯坦福大学) 角色名称聚类(例如,“ Tom”,“ Tom Sawyer”,“ Mr。Sawyer”,“ Thomas Sawyer”-> TOM_SAWYER) 说话者语录识别 代词共指解析 过度标记(例如“动物”,“人工制品”,“身体”,“认知”等) 该管道在下面的文章中进行了描述。 如果您使用此软件撰写研究论文,请引用: David Bamman,Ted Underwood和Noah Smith,“文学角色的贝叶斯混合效应模型”,ACL 2014。 怎么跑 初赛 下载外部jar(对于GitHub的100MB文件大小限制而言,它们太大了) 下载并解压缩 将stanford-corenlp-4.1.0 立即下载

自然语言处理(NLP)在现代深度学习生态中越来越常见。从流行的深度学习框架到云端API的支持,例如Google云、Azure、AWS或Bluemix,NLP是深度学习平台不可或缺的部分。尽管已经取得了令人难以置信的进步,但构建大规模的NLP应用依然还有极大的挑战,在学习研究和生产部署之间还存在很多摩擦。作为当前市场上最大的会话环境之一,Facebook已经面对构建大规模NLP应用的挑战有一些年头了,最近,Facebook的工程团队开源了第一个版本的Pytext,一个基于PyTorch的NLP框架,可以用来构建高效的NLP解决方案。

PyText的最终目标是简化端对端的NLP工作流实现。为了实现这一目标,PyText需要解决当前NLP流程中的一些问题,其中最令人头疼的就是NLP应用在实验环境和生产环境的不匹配问题。

更好地平衡NLP实验和生产部署

现代NLP解决方案通常包含非常重的实验环节,在这个阶段数据科学家们将借鉴研究文件快速测试新的想法和模型,以便达成一定的性能指标。在实验阶段,数据科学家倾向于使用容易上手、界面简单的框架,以便快速实现高级、动态的模型,例如PyTorch或TensorFlow Eager。当需要部署到生产环境时,动态图模型的固有局限性就带了新的挑战,这一阶段的深度学习技术需要使用静态计算图,并且需要为大规模计算进行优化。TensorFlow、Caffe2或MxNet都属于这一类型的技术栈。结果是大型数据科学团队不得不为实验和生产部署使用不同的技术栈。

PyTorch是最早解决了快速实验与规模化部署之间冲突的深度学习框架之一。基于PyTorch构建的PyText为NLP领域应用了这些解决实验环境与生产部署之间冲突的优化原则。

理解PyText

从概念角度触发,PyText被设计为实现以下四个基本目标:

  1. 尽可能简单、快速的实现新模型

  2. 简化将预构建模型应用于新数据的工作量

  3. 同时为研究者和工程师定义清晰的工作流,以便构建和评估模型,并以最小的代价上线模型

  4. 确保部署的模型在推理时具有高性能:低延迟、高吞吐量

PyText的处理容量最终打造的建模框架,可供研究者和工程师构建端到端的训练或推理流水线。当前的PyText实现涵盖了NLP工作流声明周期中的基本环节,为快速实验、原始数据处理、指标统计、训练和模型推理提供了必要的接口。一个高层级的PyText架构图可以清晰地展示这些环节如何封装了框架的原生组件:

如上图所示,PyText的架构包含以下组成部分:

  • Task:将多个用于训练或推理的组件拼装为一个流水线
  • Data Handler:处理原始输入数据,贮备张量批数据,以便送入模型
  • Model:定义神经网络的架构
  • Optimizer:封装模型参数优化过程,基于模型的前馈损失进行优化
  • Metric Reporter:实现模型相关指标的计算和报表提供
  • Trainer: 使用数据处理器、模型、损失和优化器来训练和筛选模型
  • Predictor:使用数据处理器和模型对给定的数据集进行推理
  • Exporter: ONNX8导出训练好的PyTorch模型到Caffe2图

你可以看到,PyText利用ONNX(Open Neural Network Exchange Format)将模型从实验环境的PyTorch格式转换为生产环境的Caffe2运行模型。

PyText预置了众多NLP任务组件,例如文本分类、单词标注、语义分析和语言模型等,可以快速实现NLP工作流。类似的,PyText使用上下文模型介入语言理解领域,例如使用SeqNN模型用于意图标注任务,或者使用一个上下文相关的意图槽模型用于多个任务的联合训练。

从NLP工作流的角度来说,PyText可以快速将一个思路从实验阶段转换为生产阶段。一个PyText应用的典型工作流包含如下的步骤:

  1. 用PyText实现模型,确保测试集上的离线指标正确
  2. 将模型发布到打包的基于PyTorch的推理服务,在实时样本上执行小规模评估
  3. 自动导出到Caffe2网络,不过在有些情况下,例如当使用复杂的流程控制逻辑时,或者使用自定义数据结构式,PyTorch 1.0还不支持
  4. 如果第3步不支持,那么使用Py-Torch C++ API9重写模型,并封装为一个Caffe2操作符
  5. 将模型发布为生产就绪的Caffe2预测服务并启动

使用PyText

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

$ pip install pytext-nlp

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

(pytext) $ cat demo/configs/docnn.json
{
  "task": {
    "DocClassificationTask": {
      "data_handler": {
        "train_path": "tests/data/train_data_tiny.tsv",
        "eval_path": "tests/data/test_data_tiny.tsv",
        "test_path": "tests/data/test_data_tiny.tsv"
      }
    }
  }
}

$ pytext train < demo/configs/docnn.json

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

from word_tagging import ModelInputConfig, TargetConfig

class WordTaggingTask(Task):
  class Config(Task.Config):
    features: ModelInputConfig = ModelInputConfig()
    targets: TargetConfig = TargetConfig()
    data_handler: WordTaggingDataHandler.Config = WordTaggingDataHandler.Config()
    model: WordTaggingModel.Config = WordTaggingModel.Config()
    trainer: Trainer.Config = Trainer.Config()
    optimizer: OptimizerParams = OptimizerParams()
    scheduler: Optional[SchedulerParams] = SchedulerParams()
    metric_reporter: WordTaggingMetricReporter.Config = WordTaggingMetricReporter.Config()
    exporter: Optional[TextModelExporter.Config] = TextModelExporter.Config()

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

(pytext) $ pytext test < "$CONFIG"

(pytext) $ pytext export --output-path exported_model.c2 < "$CONFIG"

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

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

汇智网翻译整理,转载请标明出处。Pytext简介

基于RYU+Mininet的SDN校园网络实战:从零搭建虚拟化实验环境 本文详细介绍了如何利用RYU控制器和Mininet搭建SDN校园网络实验环境,从Ubuntu虚拟机准备到网络拓扑设计,再到关键网络功能实现。通过实战案例展示SDN在校园网络中的应用优势,包括简化配置、提升效率等,为网络工程师和学生提供了一套完整的虚拟化实验方案。 阅读详情

相关推荐

carsim与simulink联合仿真学习笔记(二)——使用C-class车模做driver model仿真(5 driver sensors)

Driver model 在carsim的Simulink库中自带外部驾驶员模型,打开后如图所示: 然后打开carsim中对应的数据集,如图所示: 具体仿真步骤不在赘述,注意到这里选择的是E-Class车模,那么如果我想选择C-Class车型进行仿真呢?点三角选择车型可以看到: 马赛克部分是我后来建的,如过没有使用过是没有马赛克部分的。那么既然这里没有C-class,又该怎么办呢? 创建C-...

xufuqiang2017的博客 4116

探索BookNLP:自然语言处理的新篇章

**BookNLP** 是一个开源的自然语言处理(NLP)工具包,专为长文本,尤其是书籍和文档的深度理解和分析而设计。该项目由加州大学伯克利分校的研究人员开发,旨在提供高效的文本结构识别、实体抽取、关系抽取等能力,帮助研究者和开发者更好地挖掘文本中的知识。 ## 技术分析 BookNLP的核心是基于最新深度学习模型的预训练方法。它利用大规模的未标注文本数据进行预训练,然后在特定任务上微调以提升...

gitblog_00009的博客 513

中移物联ML307C模组OPENCPU笔记2

本文介绍了如何编译和运行一个DEMO程序,以官方SDK为例。

weixin_43700831的博客 1881

PyText入门(环境搭建和demo实现)

简介 12月15日,facebook宣布开源PyText NLP框架。 PyText是一种基于深度学习的NLP建模框架,基于PyTorch 1.0构建。它可以连接 ONNX 和 Caffe2,借助 PyText,AI 研究人员和工程师可以把 PyTorch 模型转化为 ONNX,然后将其导出为 Caffe2,用于大规模生产部署,让模型的建立,更新,发布更加便捷。 项目地址:https://gith...

<p>专注挖坑</p> 4392

【博弈论】势博弈(potential game)、EPG以及最佳响应、Nash均衡和帕累托(pareto)最优的理解

文章目录前言一、Potential game二、Nash均衡和Pareto-optimal(帕累托最优)1.Nash 均衡2.Pareto最优三、Best response(最佳响应)四、Exact potential game(EPG)1.合作-傀儡博弈2.合作博弈3.傀儡博弈4.自激博弈5.双边对称交互博弈使用理解 前言 本文主要详细讲解potential game的概念以及Exact potential game 的定义和分类,以及这么博弈方法是如何在论文中引入并使用的,本文仅是对自己在该模块

weixin_44535200的博客 2万+

我看MFC的过去、现在和未来

首先说句题外话,虽然我现在的“主业”是Qt,但自己扪心自问,对MFC的熟悉程度要超过Qt。正是由于有了对MFC的熟悉,才能在使用Qt时,比较清醒的认清两者的优劣之处,在此暂且不提。 这个话题也可以说是由来已久,众说纷纭,今时我也谈谈自己的感悟。 一、对MFC的总体看法 首先看看云风在其《游戏之旅-我的编程感悟》一书中对MFC的看法: “我所见到的程序员中,很多把C+

qter_wd007的专栏 6115

【亲测免费】 BookNLP 开源项目教程

BookNLP 是一个自然语言处理(NLP)管道,专门设计用于处理书籍和其他长篇文档(目前仅支持英文)。它提供了多种功能,包括词性标注、依存句法分析、实体识别、角色名称聚类、共指消解、引述者识别、超感词标注和事件标注等。BookNLP 提供了两个模型:一个较大的模型适合 GPU 和多核计算机,另一个较小的模型适合个人计算机。 ## 2. 项目快速启动 ### 安装 首先,确保你已经安装了 A...

gitblog_01171的博客 699

YOLOv11 结合多尺度卷积注意力机制(MSCA):小目标检测精度提升20%的完整实现指南

用不同尺寸的深度卷积(如d×7×1、d×1×7等)提取多尺度特征;通过通道融合,强化小目标的细节信息;仅增加4.2M参数,却能让小目标检测精度大幅提升(对比表见后文)。

m0_71589036的博客 184

PyText简介 - Facebook自然语言处理框架

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33676492的博客 367

AgentScope Java 2.0 项目实战:使用AgentScope Builder 构建企业级多租户 AI Agent 平台

本文基于 AgentScope Builder 源码深度分析,系统讲解多租户 AI Agent 构建平台的完整开发流程。涵盖 Spring Boot 3.x + WebFlux 后端架构、React 18 + TypeScript 前端实现、HarnessAgent 运行时、CompositeFilesystem 多租户隔离、SSE 流式对话、6 种 IM 渠道接入(钉钉/飞书/企微/GitHub/GitLab)、Git 与 Nacos 技能市场、JWT 认证、Docker Sandbox 隔离等核心技术。

program哲学 717

开放平台实现安全的身份认证与授权原理与实战:使用OAuth 2.0实现授权码模式

作者:禅与计算机程序设计艺术 1.背景介绍 随着互联网应用的飞速发展,各种网站、App、小程序等都将逐渐向用户提供了丰富的功能和服务。在这些应用中,用户通常需要登录才能使用这些服务,这就涉及到用户信息的安全问题。如果用户的信息被泄露或篡改,那么可能造成严重后果。因此,为这些应用提供安全且健壮的身份验

AI天才研究院 492

Pytext简介:facebook的基于PyTorch的NLP框架

自然语言处理(NLP)在现代深度学习生态中越来越常见。从流行的深度学习框架到云端API的支持,例如Google云、Azure、AWS或Bluemix,NLP是深度学习平台不可或缺的部分。尽管已经取得了令人难以置信的进步,但构建大规模的NLP应用依然还有极大的挑战,在学习研究和生产部署之间还存在很多摩擦。作为当前市场上最大的会话环境之一,Facebook已经面对构建大规模NLP应用的挑战有一些年头了...

我的乌托 333

微信小程序 - {errCode: 10008, errno: 1500104, errMsg: “writeBLECharacteristicValue:fail write characteris

微信小程序errCode: 10008, errno: 1500104, errMsg: "writeBLECharacteristicValue:fail write characteristics error. 10008, errMsg=The value's length is invalid.",uni-app微信小程序报错,uniApp小程序调用蓝牙api报错,向低功耗蓝牙设备的某个特征写入数据时错误,UniApp微信小程序蓝牙API调用报错10008解决方案,蓝牙设备进行通信时,向设备写入数据

🏆 前端领域优质创作者 4428

Facebook AI的工业级NLP开源框架—— Pytext简介

1 简介 PyText是基于NLP深度学习技术、通过Pytorch构建的建模框架。PyText解决了既要实现快速实验又要部署大规模服务模型的经常相互冲突。它主要通过以下两点来实现上面的需求: 通过为模型组件提供简单且可扩展的接口和抽象, 使用PyTorch通过优化的Caffe2执行引擎导出模型,进行预测推理。 并且,Facebook已经采...

yanqianglifei的专栏 823

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

***NLP开源框架PyText简介

参考博文:Facebook AI的工业级NLP开源框架—— Pytext简介

u014765410的博客 434

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

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

向AI转型的程序员都关注了这个号????????????机器学习AI算法工程 公众号:datayxFacebook开源了自家工程师们一直在用的NLP建模框架PyText。这个框架,每天要...

datayx的文章 552

Facebook AI的工业级NLP开源框架—— Pytext

PyText是基于NLP深度学习技术、通过Pytorch构建的建模框架。PyText解决了既要实现快速实验又要部署大规模服务模型的经常相互冲突。并且,Facebook已经采用了使用PyText快速迭代新的建模思路,然后大规模无缝衔接地发布它们。 相关资料 主页: https://facebook.ai/developers/tools/pytext 官方博客: https:/...

weixin_30338461的博客 149

PyText:基于PyTorch的自然语言处理框架

PyText 是一个基于 PyTorch 的自然语言处理(NLP)框架。该项目由 Facebook Research 开发,旨在为研究人员和开发者提供一个简单、可扩展的 NLP 模型构建平台。主要编程语言为 Python。 ## 核心功能 PyText 的核心功能包括: - 提供生产就绪的模型,适用于多种 NLP/NLU 任务,如文本分类、序列标注、意图和槽位填充等。 - 简单和可扩展的模型...

gitblog_00050的博客 402

mermaid-live-editor:在线画流程图,三步出图并分享

mermaid-live-editor 是 mermaid 官方提供的在线图表编辑器。打开网页即可用,不安装、不注册,左侧输入 mermaid 语法,右侧实时画出流程图、时序图或甘特图。画完直接复制地址栏就能发给别人,使用前提只有一个浏览器。 ## 最快上手:两栏布局加示例图 打开页面就是两栏:左边代码,右边预览,并已预置一张示例图。把左侧文本换成自己的内容即可,比如一段判断流程: ```

gitblog_00057的博客 424

facebook自然语言处理(NLP)平台Pytext简介

自然语言处理(NLP)在现代深度学习生态中越来越常见。从流行的深度学习框架到云端API的支持,例如Google云、Azure、AWS或Bluemix,NLP是深度学习平台不可或缺的部分。尽管已经取得了令人难以置信的进步,但构建大规模的NLP应用依然还有极大的挑战,在学习研究和生产部署之间还存在很多摩擦。作为当前市场上最大的会话环境之一,Facebook已经面对构建大规模NLP应用的挑战有一些年头了...

rejames的博客 687

pytext,一个超强的 Python 库!

开发者可以根据特定需求自定义模型的各个层,这为模型的定制提供了极大的灵活性。# 在PyText配置中使用自定义模型PyText是一个由Facebook研发的强大的自然语言处理库,专为快速开发和部署NLP模型而设计。它提供了从文本预处理到模型训练和评估的完整工作流,支持多种NLP任务如文本分类、序列标注和机器翻译。PyText的核心优势在于其与PyTorch的深度集成,利用动态图和自动微分等功能,极大地简化了模型开发过程。此外,它还支持多语言处理、自定义模型组件,以及与生产环境的无缝集成。

涛哥聊Python 1188

facebook开源更快的NLP开发框架PyText

Open-sourcing PyText for faster NLP development 方便大家阅读,从官网 粘下来了 facebook刚开源PyText,官网访问https://code.fb.com/ai-research/pytext-open-source-nlp-framework/ github:https://github.com/facebookresearch/py...

未来战警 1217

PyText终极指南:Facebook开源的自然语言建模框架深度解析

PyText是Facebook基于PyTorch开发的深度学习自然语言建模框架,专为解决快速实验与大规模服务之间的冲突需求而设计。这个强大的自然语言处理工具让研究人员和工程师能够在保持模型性能的同时,实现高效的迭代开发和生产部署。😊 ## 🚀 为什么选择PyText框架? PyText框架的核心优势在于其**模块化设计**和**生产就绪**的特性。与传统的NLP工具不同,PyText提供了

gitblog_00272的博客 437

PyText框架简介

自然语言处理(NLP)在现代深度学习生态中越来越常见。从流行的深度学习框架到云端API的支持,例如Google云、Azure、AWS或Bluemix,NLP是深度学习平台不可或缺的部分。尽管已经取得了令人难以置信的进步,但构建大规模的NLP应用依然还有极大的挑战,在学习研究和生产部署之间还存在很多摩擦。作为当前市场上最大的会话环境之一,Facebook已经面对构建大规模NLP应用的挑战有一些年头了...

新缸中之脑 1219
上一篇: eosjs调用getactions
下一篇: 用Flair(PyTorch构建的NLP开发包)进行文本分类
落叶无声9
博客等级 码龄12年 443粉丝 343原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值