APP下载
报价宝  ›  科技  › 

Spark NLP库备受青睐 我也入个门

报价宝 来源:baojiabao.com 发布时间:2019-11-11 14:58:00 10月03日更新
报价宝综合消息Spark NLP库备受青睐 我也入个门

点选上方关注,All in AI中国Spark NLP库已成为一种流行的AI框架,可为您的专案提供速度和可扩充套件性。了解如何开始利用John Snow Labs的Spark NLP。

人工智能在企业中的采用

O'Reilly在企业中采用人工智能的年度报告于2019年2月释出。这是一项针对多个垂直行业的1300名从业人员的调查,向受访者询问他们的组织在生产中有哪些能带来收入的人工智能专案。这是对当今公司如何真正使用AI的精彩分析 - 以及如何将其用于快速扩充套件到深度学习、人机循环、知识图谱和强化学习。

该调查要求受访者列出他们使用的所有ML或AI框架和工具。这是答案的摘要:

这个为期18个月的Spark NLP库在所有AI框架和工具中排名第7(注意“其他开源工具”和“其他云服务”)。它也是迄今为止使用最广泛的NLP库 - 是spaCy的两倍。事实上,在scikit-learn,TensorFlow,Keras和PyTorch之后,它是本调查中最受欢迎的AI库。

最先进的精度、速度和可扩充套件性

这项调查与我们在过去一年中所经历的采用率上升以及在医疗保健、金融、生命科学和招聘中成功使用Spark NLP的公共案例研究一致。这种快速采用的根本原因在于近年来发生的最先进的NLP的重大转变。

精度

在过去3 - 5年中,自然语言处理的深度学习的兴起意味着在流行的库中实施的算法,如spaCy、Stanford CoreNLP、nltk和OpenNLP,不如最新的科学论文所能做到的那么准确。

声称提供最先进的准确性和速度让我们不断寻求产品化最新的科学进步。以下是我们迄今为止的表现:

速率

为了使Apache Spark的效能更接近裸机,在单个机器和丛集上进行了优化,这意味着常见的NLP流水线可以比传统库允许的固有设计限制快几个数量级。

迄今为止最全面的基准测试,比较生产级NLP库,一年前释出在O'Reilly Radar上。左侧是在单个Intel i5,4核,16 GB内存机器上训练简单管道(句子边界检测、标记化和词性标记)的执行时比较:

能够利用GPU进行训练和推理已成为赌注。使用TensorFlow进行深度学习,使Spark NLP能够充分利用现代计算机平台 - 从nVidia的DGX-1到英特尔的Cascade Lake处理器。较旧的库,无论是否使用某些深度学习技术,都需要重写以利用这些新的硬件创新,这些创新可以将NLP管道的速度和规模提高一个数量级。

可扩充套件性

能够将模型训练、推理和完整AI管道从本地机器扩充套件到具有很少或没有程式码更改的丛集,这也成为了赌注。本地构建在Apache Spark ML上使Spark NLP可以在任何Spark丛集、内部部署或任何云提供商上扩充套件。借助Spark的分散式执行计划和快取,可以对加速进行优化,该计划和快取已经在几乎任何当前的储存和计算平台上进行了测试。

企业采用的其他驱动因素

产品级别的程式码库

我们致力于为企业提供工作软件。与AllenNLP和NLP Architect等面向研究的库相比,这是我们的首要目标。

开放源代码许可

选择了坚持使用Apache 2.0许可证,以便可以免费使用库,包括在商业环境中使用。这与Stanford CoreNLP形成鲜明对比,Stanford CoreNLP需要商业用途的付费许可证,而有些spaCy模型使用的ShareAlike CC许可存在问题。

完整的PYTHON、JAVA和SCALA API

支援多种程式语言不仅可以增加库的受众。它还使您能够利用已实现的模型,而无需在执行时的环境之间来回移动资料。例如,使用(仅适用于Python)spaCy需要将资料从JVM程序移动到Python程序以便呼叫它,这导致架构更复杂,而且通常比必要的速度慢得多。

频繁释出

除了社群贡献,Spark NLP还由一个完整的核心团队积极开发。我们每月释出两次 - 2018年有26个新版本。我们欢迎程式码、文件、模型或问题的贡献 - 请首先检视GitHub上的现有问题。

入门

PYTHON

Spark NLP 2.0的一个主要设计目标是让人们在不了解它们的情况下获得Spark和TensorFlow的好处。您不必知道Spark ML估算器或变换器是什么,或者TensorFlow图或会话是什么。如果您正在构建自己的自定义模型或图表,这些仍然可用,但它们现在面向前端,以最少的时间和学习曲线完成工作。我们还添加了15个预先训练好的管道和模型,涵盖了最常见的用例。

为Python安装Spark NLP需要一行pip安装或conda安装。此安装页面包含有关Jupyter和Databricks配置的更多详细资讯。实时专案例程还可以在Zeppelin、SageMaker、Azure、GCP、Cloudera和vanilla Spark上使用该库,包括Kubernetes内外。

安装完成后,执行情绪分析需要:

以下是使用BERT嵌入执行命名实体识别所需的全部内容:

这些示例中的管道物件有两个关键方法 - 带字串的annotate()和带Spark资料帧的transform()。这使您可以扩充套件此程式码,以处理任何Spark群集上的大量文字。

SCALA

Spark NLP是用Scala编写的,它直接在Spark资料帧上执行,无需复制资料,同时充分利用Spark执行计划程式和其他优化。因此,对于Scala和Java开发人员来说,使用库是一件轻而易举的事。

该库在Maven Center上释出,因此只需在Maven或SBT档案中新增依赖项即可安装它。如果您还想安装Spark NLP的OCR(物件字元识别)功能,还需要新增第二个依赖项。

安装完成后,拼写检查句子的方法如下:

Scala和Python API在每个版本中保持相似且100%完整。

在hood下面

在上面分享的几行程式码中,有许多内容可供使用 - 而且您可以为其他应用程序自定义很多程式码。 Spark NLP针对特定领域的NLP模型进行了大量优化,例如参见Spark NLP for Healthcare商业扩充套件,因此所有用于定义预训练模型、管道和资源的工具都在公共和文件化的API中。

以下是使用上一节中的BERT Python程式码进行命名实体识别所采取的主要步骤:

sparknlp.start()启动一个新的Spark会话,如果没有的话,就返回它。PretrainedPipeline()载入explain_document_dl管道的英语版本,预先训练的模型以及它所依赖的嵌入。它们储存在本地并快取。TensorFlow在执行Spark的同一JVM程序中初始化,载入预训练的嵌入和深度学习模型(如NER)。如果在群集上执行,模型将自动分发和共享。annotate()呼叫执行一个NLP推理管道,它启用每个阶段的算法(标记化、POS等)。NER阶段在TensorFlow上执行 - 使用一个具有bi-LSTM层的神经网络作为标记,使用一个CNN作为字元。。嵌入用于在NER推理过程中将上下文令牌转换为向量。结果物件是一个普通的旧的本地Python字典。来吧,试一试!

Spark NLP主页包含示例、文件和安装指南。

如果您希望自己探索样本笔记本,Spark NLP Workshop有一个预先构建的Docker容器,通过键入3个单行程式,您可以在本地计算机上执行完整的环境。

Bio:David Talby是Pacific AI的首席技术官,在构建和运营网络规模的资料科学和业务平台方面拥有丰富的经验,并且建立了世界一流的敏捷分散式团队。此前,他曾在微软的Bing Group工作,负责Bing Shopping在美国和欧洲的业务运营,并在亚马逊和西雅图工作,在那里他建立并运营分散式团队,帮助扩充套件亚马逊的金融系统。David拥有电脑科学博士学位和电脑科学与工商管理硕士学位。编译出品

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 数码相机价格 笔记本价格 电视机价格 红米手机价格 降噪耳机价格