提供基于transformer的pipeline、准确率达SOTA,spaCy 3.0正式版发布

2021-02-23 12:18:43 浏览数 (1)

机器之心报道

作者:小舟、杜伟

spaCy 3.0 正式版来了。

spaCy 是具有工业级强度的 Python NLP 工具包,被称为最快的工业级自然语言处理工具。它支持多种自然语言处理的基本功能,主要功能包括分词、词性标注、词干化、命名实体识别、名词短语提取等。

近日,spaCy v3.0 正式发布,这是一次重大更新。

spcCy 3.0 更新文档地址:https://github.com/explosion/spaCy/releases/tag/v3.0.0

spaCy v3.0 有以下特点:

  • 具有新的基于 transformer 的 pipeline,这使得 spaCy 的准确率达到了当前的 SOTA 水平;
  • 提供了新的 workflow 系统,帮助用户将原型变为产品;
  • pipeline 配置更加简单,训练 pipeline 也更加轻松;
  • 与 NLP 生态系统的其他部分有许多新的和改进的集成。

spaCy v3.0 旨在优化用户的应用体验。用户可以使用强大的新配置系统来描述所有的设置,从而在 PyTorch 或 TensorFlow 等框架中编写支持 spaCy 组件的模型。新的 workflow 系统更加适用于步骤复杂的现代 NLP 流程。

快速安装启动

为了实现最流畅的更新过程,项目开发者建议用户在一个新的虚拟环境中启动:

代码语言:javascript复制
pip install -U spacy

在具体操作上,用户可以选择自己的操作系统、包管理器、硬件、配置、训练 pipeline,以及选择 pipeline 时可以选择侧重效率性或者准确性。

新功能与改进之处

本次更新的 spaCy v3.0 增添了一些新功能,也进行了一系列改进,具体如下:

  • 基于 Transformer 的 pipeline,支持多任务学习;
  • 针对 18 种语言再训练的模型集合以及 58 个训练的 pipeline(包括 5 个基于 transformer 的pipeline);
  • 针对所有支持语言再训练的 pipeline,以及用于马其顿语和俄语的新的核心 pipeline;
  • 新的训练工作流和配置系统;
  • 使用 PyTorch、TensorFlow 和 MXNet 等任何机器学习框架实现自定义模型;
  • 管理从预处理到模型部署等端到端多步骤工作流的 spaCy 项目;
  • 集成数据版本控制(Data Version Control, DVC)、Streamlit、Weights & Biases、Ray 等;
  • 利用 Ray 的并行训练和分布式计算;
  • 新的内置pipeline组件:SentenceRecognizer、Morphologizer、Lemmatizer、AttributeRuler 和 Transformer;
  • 针对自定义组件的全新改进版 pipeline 组件 API 和装饰器;
  • 从用户训练配置的其他 pipeline 中获取经过训练的组件;
  • 为所有经过训练的 pipeline 包提供预建和更高效的二进制 wheel;
  • 使用 Semgrex 运算符在依赖解析(dependency parse)中提供用于匹配模式的 DependencyMatcher;
  • 在 Matcher 中支持贪婪模式(greedy pattern);
  • 新的数据结构 SpanGroup,可以通过 Doc.spans 有效地存储可能重叠的 span 的集合;
  • 用于自定义注册函数的类型提示和基于类型的数据验证;
  • 各种新方法、属性和命令。

58 个训练的 pipeline

用户在下载训练的 pipeline 时,可以使用 spacy download 命令。58 个训练的 pipeline 如下图所示:

部分截图。

用户在自己的数据上训练 pipeline 时可参考训练文档,地址:https://spacy.io/usage/training

已删除或重命名的 API

下图中弃用的方法、属性和参数已经在 v3.0 中删除,其中的大多数已经弃用了一段时间,并且很多以往会引发错误。如果用户使用的是最新版本的 spaCy v2.x,则代码对它们的依赖性不大。

参考链接:

https://explosion.ai/blog/spacy-v3

https://zhuanlan.zhihu.com/p/51425975

0 人点赞