首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Apache OpenNLP集成ONNX Runtime现可高效执行Transformer模型

微软和Apache OpenNLP项目,在OpenNLP中集成ONNX Runtime,于Java服务和应用程序提供经加速的自然语言处理(NLP)推理运算,也就是说,除了OpenNLP自己的模型格式之外,现在通过添加ONNX Runtime,来支持包括ONNX以及其他模型格式。

Apache OpenNLP是一个Java自然语言处理开源机器学习函数库,被许多知名开源应用程序使用,包括Apache Solr、Apache UIMA和Apache Lucene等,同时也被应用在许多商业项目和学术研究中。而ONNX Runtime则是机器学习模型跨平台加速器,提供高性能计算,并且和各种硬件、开发环境兼容,适用于当前主流深度学习框架所训练的模型。

Apache OpenNLP的发展要追溯到2000年代初期,其运用最大熵值和基于感知器(Perceptron)的算法,进行语句侦测、标记化(Tokenization)、语言侦测和命名实体侦测等自然语言处理任务。

虽然最大熵值和感知器模型训练方法不需要用到GPU,额外成本相对较低,但是训练出来的模型,却无法与使用Transformer架构的现代化自然语言处理模型性能相比,Apache OpenNLP团队提到,尽管有许多自然语言处理开发已经转移到Python生态系统,但是Java开发人员也还是需要各种强大的自然语言处理功能,毕竟Java仍然是热门的程序语言之一。

在2022年初Apache OpenNLP 2.0项目发布,目的是要缩小OpenNLP与现代深度学习自然语言处理模型的差距。而在Apache OpenNLP中集成ONNX Runtime,便可以不需要重复模型训练工作,就能完成该目标。

在Apache OpenNLP 2.0中,像是Hugging Face Hub中基于Transformer的模型,可以转换成ONNX,并且从Apache OpenNLP通过ONNX Runtime直接使用,或是用户也能使用Python生态系统喜欢的工具训练模型,之后再以Apache OpenNLP使用该模型。

Apache OpenNLP不提供任何模型训练和评估功能,所有的训练和评估工作,都需要用户以其他工具和框架完成,同时Apache OpenNLP也不会要求用户,应用特定的工具和框架创建和评估模型。另外,在Apache OpenNLP也不需要进行任何模型再训练,当用户已经利用外部工具准备好模型,只需要将其导出成ONNX,便可以直接在Apache OpenNLP使用,并且也不会再需要外部服务,因此能够简化应用程序架构。

除了文件分类和命名实体识别等任务外,开发团队提到,在之后的版本,会继续对诸如词性标注和语言侦测等自然语言处理功能,提供OpenNLP接口的ONNX Runtime实例。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220924A04CR300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券