热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

百度飞桨_提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件

11月5日,在『WAVE Summit+』2019 深度学习开发者秋季峰会上,百度对外发布基于 ERNIE 的语义理解开发套件,旨在为企业级开发者提供更领先、高效、易用的 ERNI

11月5日,在『WAVE Summit+』2019 深度学习开发者秋季峰会上,百度对外发布基于 ERNIE 的语义理解开发套件,旨在为企业级开发者提供更领先、高效、易用的 ERNIE 应用服务,全面释放 ERNIE 的工业化价值,其中包含 ERNIE 轻量级解决方案,提速 1000倍!
技术图片

今年 7 月,百度发布持续学习语义理解框架 ERNIE 2.0,在共计 16 个中英文任务上超越BERT、XLNET,取得了 SOTA 的效果。

ERNIE2.0 发布以来,ERNIE 产业化应用进程不断加速,易用性不断提升,配套产品也不断丰富和完善。目前,ERNIE2.0 在百度内部及行业内已取得了广泛应用,在多种场景下都取得了明显效果提升。这些场景的成功运用为 ERNIE 产业化应用积累了丰富的经验。

技术图片

上图为 ERNIE 全景图,预置了包含 ERNIE 通用模型、ERNIE 任务模型、ERNIE 领域模型以及本次发布的 ERNIE Tiny 轻量级模型等系列预训练模型。在此基础上,构建了包含工具和平台的飞桨语义理解开发套件。全面覆盖了训练、调优、部署等开发流程,具备轻量方案、能力全面、极速预测、部署灵活、平台赋能等五大特色。接下来,我们逐一揭秘。

技术图片

特色1:轻量级解决方案,预测速度提升 1000 倍

ERNIE 2.0 拥有强大的语义理解能力,而这些能力需要强大的算力才能充分发挥,这为实际应用带来了非常大的挑战。为此,百度发布轻量级预训练模型 ERNIE Tiny 以及一键式数据蒸馏工具 ERNIE Slim,预测速度提升达到 1000 倍。

技术图片
ERNIE Tiny 技术原理

ERNIE Tiny 主要通过模型结构压缩和模型蒸馏的方法,将 ERNIE 2.0 Base 模型进行压缩,其特点和优势主要包括以下四个方面:

? 浅:模型采用 3 层 Transformer 结构,线性提速 4 倍;
? 宽:模型加宽隐层参数,从 ERNIE 2.0 的 768 扩展到 1024,宽度的增加带来效果的提升 。依托飞桨的通用矩阵运算优化,『变宽』并不会带来速度线性的下降;
? 短:为缩短输入文本的序列长度,降低计算复杂度,模型首次采用中文 Subword 粒度输入,长度平均缩短 40%;
? 萃:ERNIE Tiny 在训练中扮演学生角色,利用模型蒸馏的方式在 Transformer 层和Prediction 层学习教师模型 ERNIE 2.0 模型对应层的分布和输出。

通过以上四个方面的压缩,ERNIE Tiny 模型的效果相对于 ERNIE 2.0 Base 平均只下降了2.37%,但相对于『SOTA Before BERT』提升了 8.35%,而速度提升了 4.3 倍。
技术图片

ERNIE Tiny 的预测速度在一些性能要求苛刻的场景中是不够的,这些场景中延迟响应往往要求小于 1ms,为此,套件提供了一键式数据蒸馏 ERNIE Slim 工具。该工具以数据为桥梁,将 ERNIE 的知识迁移至小模型,在效果损失很小的情况下实现预测速度上千倍的提升。

技术图片
ERNIE Slim 技术原理

ERNIE Slim 原理同传统深度学习数据蒸馏的方法略有不同。首先需要使用 ERNIE 2.0 模型对输入标注数据对进行 Fine-tune 得到 Teacher Model,然后使用 Teacher Model 对无标注数据进行预测,该步骤中我们可采用添加噪声词、同词性词语替换、N-sampling 三种策略进行数据增强,最后通过 BoW、CNN 等计算复杂度小的模型进行训练。

下表展示了 ERNIE Slim 的效果。从表格中可以看出,相对于 ERNIE 2.0 Base 模型,数据蒸馏后的小模型效果损失不大,预测速度提升千倍以上;而相对于简单模型,速度接近的情况下,效果会得到显著提升。

特色2:一键式高性能全类微调工具

ERNIE Fine-tune 微调工具旨在为给开发者提供一套简单好用的 Fine-tune 框架,目前覆盖 NLP 四大常用任务:单句分类、句对匹配、命名实体识别、阅读理解。工具集支持多机多卡 Fine-tune,同时使用 FP16 Tensor Core 技术在 Tesla V 系列 GPU上获得 60% 的训练速度提升。

Fine-tune 微调工具包含了一个基于飞桨的训练组织框架 Propeller,可以帮助开发者进行模型管理、参数热启动、自动多卡并行等工作,从而让开发者更专注于网络结构以及输入数据流水线的构建。

特色3:极速预测 API

ERNIE Fast-inference API 旨在解决产品应用的延迟敏感场景,为企业开发者提供极速预测的 C++ API,便于开发者集成。该工具也充分借助了最新版飞桨的高速预测优势,飞桨1.6 通过 OP 聚合算法,有效加速了 ERNIE 的预测。

在延迟敏感场景下,对比竞品在 GPU(P4) 设备 21% 的延迟降低,ERNIE Fast-inference API 在 CPU(Intel Xeon Gold 6148 CPU)设备上的延迟降低 60%。

技术图片

特色4:向量服务器,支持跨平台灵活部署

为进一步降低开发者使用成本,套件提供预测服务方案——ERNIE Service,来方便获取ERNIE 模型的向量分布以及预测打分。

技术图片
ERNIE Service 架构

ERNIE Service 是基于 Python 构建的多 GPU 预测服务,Client 端发送的请求会自动分发至 GPU 上执行 ERNIE Fast-inference API 来获取 ERNIE 向量及打分。目前 ERNIE Service 支持不同平台、不同设备、不同语言的灵活调用,具备预测性能高等特点,相比竞品 BERT-as-service 在 QPS 上提升 13%。

特色5:平台赋能

此外,套件还包含了 ERNIE 的平台化使用方案,开发者可通过 EasyDL 专业版一站式完成 NLP 任务的数据标注、处理、ERNIE 微调、优化、部署等全流程的功能,为开发者提供丰富的算法、算力服务,进一步降低 ERNIE 的产业化应用门槛。平台预置了常用的NLP 文本分类、文本匹配等经典网络,能够快速满足多层次开发者的需求。

综合来看,ERNIE的语义理解开发套件依托百度在预训练模型等自然语言处理技术和飞桨平台领先优势,为人工智能产业化大生产贡献力量,赋能各行各业。

相关链接:
? ERNIE工业级开源工具:
https://github.com/PaddlePaddle/ERNIE
? ERNIE平台化服务:
https://ai.baidu.com/easydl/pro

划重点!

11月23日,艾尼(ERNIE)的巡回沙龙将在上海加场,干货满满的现场,行业A级的导师,还有一群志同道合的小伙伴,还在等什么?感兴趣的开发者们赶快点击下方链接报名参加吧!
报名地址:https://iwenjuan.baidu.com/?code=vc78lp
扫码关注百度NLP官方公众号,获取百度NLP技术的第一手资讯!
加入ERNIE官方技术交流群(760439550),百度工程师实时为您答疑解惑!
立即前往GitHub( github.com/PaddlePaddle/ERNIE )为ERNIE点亮Star,马上学习和使用起来吧!


推荐阅读
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
author-avatar
潸-苫_390
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有