文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么进行Spark NLP使用入门

2023-06-19 12:51

关注

怎么进行Spark NLP使用入门,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

AI在企业中的应用

关于AI在企业中应用的年度O‘Reilly报告已经在2019年2月发布, 该报告针对多个垂直行业的1300多从业人员进行调查, 该调查包含受访者所在企业中生产环境的AI项目,这些AI项目是如何在企业中应用,以及AI如何快速的扩展到深度学习,人机互助系统,知识图谱, 强化学习中。
该调查包含了受访者企业主要使用ML以及AI的框架以及工具情况,下图为使用情况总结的展示图:

怎么进行Spark NLP使用入门

其中Spark NLP在所有的框架以及工具排在第7位,是迄今为止最受欢迎NLP库,其受欢迎程度是spaCy的两倍, 事实上,除了其他开源工具以及其他云服务外提供工具或者框架之外,Spark NLP是继scikit-learn, TensorFlow, Keras,和 PyTorch之后最受欢迎的AI工具。

高准确度,高性能以及扩展性

该调查与近年来Spark NLP在医疗保健,金融, 生命科学和招聘中应用越来越广泛保持一致, 根本原因在NLP技术在近年来发生重大转变。

高准确度

在过去的3-5年中深度学习在自然语言领域的兴起使得算法的精度越来越高,而传统的例如 spaCy, Stanford CoreNLP, ntlp以及OpenNLP在精度上显然比不上这些最新的研究成果。
为了追求更高的准确度以及性能,工业界不断将最新的研究成果产品化, 下图是迄今为止的总结(基于en_core_web_lg标准测试的F1值):

怎么进行Spark NLP使用入门

高性能

由于Apache Spark的优化使得无论在单机或者在集群的性能都已经非常接近bare metal的性能, Spark NLP的性能可以比传统的AI库快一个数量级, 这些传统的库受限于他们的设计。

一年前O'Reily发布了迄今为止最全面的产品级别的NLP库性能对比测试, 下图中左侧为在spaCy和Spark NLP训练简单流水的性能对比图, 该测试基于单机配置(Intel I5, 4核, 16GB内存)进行:

怎么进行Spark NLP使用入门

利用GPU来进行训练以及推理编程深度学习的领域的一大趋势,使用TensorFlow进行深度学习使得Spark NLP能够充分利用现代计算机平台 - 从nVida的DGX-1到Intel的Cascade Lake处理器, 传统的库, 不管有没有使用深度学习的技术, 需要重写代码才能够充分利用这些新硬件的特性,而正是这些新硬件的特性使得NLP性能提高了一个数量级。

可扩展性

在深度学习领域能够将模型训练,推理,整个AI流水无缝从单机迁移到集群变得越来越关键,Spark NPL得益于原生的构建Apache Spark ML之上,能够在spark集群做任意扩展, 而Spark的分布式执行计划以及Cache的优化也能助力提升Spark NLP性能。

产品化的其他工作

产品级别的代码

不同于AllenNLP以及NLP Architect这样面向研究的NLP库,我们致力于向企业提供我们的Spark NLP库。

开源许可协议

Spark NLP使用Apache 2.0的许可协议, 不同于Stanford CoreNLP(商业化需要付费)以及SpaCy模型使用的ShareAlike CC许可协议,该协议是完全免费应用于商品化。

Python, Java, Scala支持

支持多语言编程不仅提高了Spark NLP的受众面,而且可以避免在使用过程数据的交换,例如, SpaCy只支持Python, 用户在使用过程需要将数据在JVM进程和Python进程进行交换,这样会导致架构变得复杂以及性能下降。

快速的版本发布

除了社区贡献,Spark NLP还有一个专门的开发团队,Spark NLP基本上每个月发布两次,在2018年总共发布了26个版本, Spark NLP社区非常欢迎贡献代码,文档,模型以及问题。

入门

Python

Spark NLP 2.0 一大设计目标就是使用者不要了解Spark或者TensorFlow就可以使用Spark和TensorFlow平台带来的好处。用户不必要了解什么是Spark ML的estimator和transformer, 或者什么是tensorFlow graph或者session, 用户也可以使用Spark NLP 构建自己的模型,但是能够以最少时间和学习曲线完成,Spark NLP内置的15种训练流水和模型可以覆盖大部分的用户场景。
用户可以通过pip或者conda安装Spark NLP的python版本,Jupyter以及Databricks的安装以及配置细节可以参考 安装页面 (https://nlp.johnsnowlabs.com/docs/en/install), Spark NLP 被广泛应用在各种组件当中,包括Zepplin, SageMaker, Azure,GCP, Cloudera以及Vanilla spark,支持K8S和非K8S环境。
下图是展示的是情绪分析的简单例子:

怎么进行Spark NLP使用入门

下图是利用Bert模型训练命名实体识别的例子:

怎么进行Spark NLP使用入门

上述例子代码能够在spark集群上处理大量文本,其中有两个关键的方法 - annotate(), 该方法以string类型作为输入, transform(), 该方法的数据输入是spark 的data frame。

Scala

Spark NLP是用Scala语言编写的, 可以直接操作Spark Data Frame, 在这过程中数据零拷贝,可以充分利用Spark执行计划以及其他优化,因此对于Scala和Java开发者,使用Spark NLP非常方便。

Spark NLP 可以Maven库中找到, 用户只要加上Spark NLP的依赖就可以使用它, 如果用户希望是有Spark NLP's OCR能力,需要安装额外的依赖。下图是个拼写检查的例子:

怎么进行Spark NLP使用入门

深入了解Spark NLP

Spark NLP为用户屏蔽许多复杂的细节,因此上面的代码片段都非常简单, 此外Spark NLP也提供了灵活性,用户可以根据自己的需求进行定制。Spark NLP针对训练领域的NLP模型做过深度优化。下面详细介绍Bert模型训练命名实体识别的Python代码:

GIVE IT A GO

Spark NLP主页包含大量的样例, 文档以及安装说明文档, 此外Spark NLP还提供了docker镜像, 用户可以很方便的在本地构建自己的环境。用户如果遇到任何问题, 用户可以登录Slack寻求帮助。

看完上述内容,你们掌握怎么进行Spark NLP使用入门的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯