11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响。
很多未到场的开发者觉得遗憾,希望可以了解飞桨发布会背后的更多技术细节,因此我们特别策划了一个系列稿件,分别从核心框架、基础模型库、端到端开发套件、工具组件和服务平台五个层面分别详细解读飞桨的核心技术与最新进展,敬请关注。
今天给大家带来的是系列文章之飞桨的基础模型库解读。
飞桨模型库,包含智能视觉(PaddleCV),智能文本处理(PaddleNLP),智能语音(PaddleSpeech)和智能推荐(PaddleRec)四大领域,飞桨官方支持 100 多个经过产业实践长期打磨的主流模型,其中包括在国际竞赛中夺得冠军的模型;同时开源开放 200 多个预训练模型,助力快速的产业应用。核心内容 1562 字,预计阅读时间 3 分钟。全文 7659 字,强烈建议收藏备查。
飞桨全景图,本文主要针对基础模型库部分进行深度解读。
第一部分,首先看一下最新版本模型库的主要更新点。
本次主要更新点
1.1. PaddleCV
发布训练部署端到端的图像分割库 PaddleSeg,图像分类新增 EfficientNet 等 43 个预训练模型。PaddleDetection 新增 2019 Objects365 Full Track 冠军模型、BlazeFace 等人脸检测小模型,行人检测和车辆检测的预训练模型。PaddleVideo 新增 ActivityNet Challenge 2019 夺冠模型,扩展包含 video caption、video grounding 等模型。
1.2. PaddleNLP
发布全新 seq2seq 相关 API 和文本生成模型样例。语义表示库新增 XLNet 预训练模型;开源 EMNLP 2019 阅读理解竞赛冠军模型 D-NET,同时支持 18 个不同抽取式阅读理解数据集打榜。发布飞桨多任务学习库 PALM (PAddLe Multi-task learning),更便捷支持多任务机器学习调研。
1.3. PaddleSpeech
全新发布,包含语音识别模型 DeepSpeech 和语音合成模型 DeepVoice3。
1.4. PaddleRec
增加 PaddleRec 的更多模型覆盖。
以上可以看到,本次的升级点中,飞桨提供了更多的官方支持模型和预训练模型,同时也开源多个国际冠军模型,截至目前,飞桨已官方支持超过 100 个模型和 200 多个预训练模型,极大的方便开发者的快速应用实践。
飞桨模型库发布全新完整解读
本次新版发布,飞桨模型库增加了 8 类任务下的 40 多个算法模型,覆盖任务门类更全面,算法模型更丰富,基本可以满足产业应用的各种业务需求,快速助力开发者实际项目的落地实现。
▲ 官方支持100多个算法,200多个预训练模型
飞桨的模型库已经比较完备地支持了自然语言处理,计算机视觉、推荐和语音四大领域。官方支持的模型从 60 个扩充到了 100 多个,新增了对于语音算法的支持。截至目前,飞桨已经可以支持人工智能领域应用主流算法模型的。开发者在工业应用项目落地中,可以利用飞桨模型库中快速实现。
具体来看,在计算机视觉领域,飞桨在图像分类、生成、检测、视频理解、图像分割等领域都有新增的模型。在自然语言处理领域,飞桨在语义表示、阅读理解和问答上有升级,同样,在推荐、语音方面,都做了进一步的完善和升级。
除了对于经典模型的支持,飞桨还开源了多项百度在国际竞赛中夺冠的算法模型,这里面既包括在计算机视觉领域的视频理解、人像分割,也包含自然语言处理领域的阅读理解。
值得一提的是,在近期刚刚召开的 NLP 领域顶级会议 EMNLP 中,飞桨的 D-NET 模型,击败众多重量级参赛玩家,在这次竞赛当中得了 10 项阅读理解的冠军。这个模型飞桨也毫无保留的开放给广大开发者。
下面,我们将从主流四大领域分别为开发者介绍飞桨模型库的一些核心内容,因为算法模型数量众多且受限于篇幅,仅对算法模型的分类及名称、简介和应用场景、以及在不同数据集上的评价指标进行了整理。
一方面,对于刚入门的开发者,可以提供模型库的整体宏观视角,另一方面,本文也可以作为一个速查手册,强烈建议收藏,供开发者快速根据需求选用。
如果迫不及待想了解某个算法的详细内容,可以直接传送门走起!
https://github.com/PaddlePaddle/models
智能视觉PaddleCV
3.1. 图像分类
图像分类是根据图像的语义信息对不同类别图像进行区分,是计算机视觉中重要的基础问题,是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层视觉任务的基础,在许多领域都有着广泛的应用。如:安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。
更多图像分类模型请参考 Image Classification:
https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification
3.2. 目标检测
目标检测任务的目标是给定一张图像或是一个视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。对于计算机而言,能够“看到”的是图像被编码之后的数字,但很难解图像或是视频帧中出现了人或是物体这样的高层语义概念,也就更加难以定位目标出现在图像中哪个区域。
目标检测模型请参考 PaddleDetection:
https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection
3.3. 图像分割
图像语义分割顾名思义是将图像像素按照表达的语义含义的不同进行分组/分割,图像语义是指对图像内容的理解,例如,能够描绘出什么物体在哪里做了什么事情等,分割是指对图片中的每个像素点进行标注,标注属于哪一类别。近年来用在无人车驾驶技术中分割街景来避让行人和车辆、医疗影像分析中辅助诊断等。
3.4.关键点检测
人体骨骼关键点检测 (Pose Estimation) 主要检测人体的一些关键点,如关节,五官等,通过关键点描述人体骨骼信息。人体骨骼关键点检测对于描述人体姿态,预测人体行为至关重要。是诸多计算机视觉任务的基础,例如动作分类,异常行为检测,以及自动驾驶等等。
3.5. 图像生成
图像生成是指根据输入向量,生成目标图像。这里的输入向量可以是随机的噪声或用户指定的条件向量。具体的应用场景有:手写体生成、人脸合成、风格迁移、图像修复等。PaddleGAN 包含和图像生成相关的多个模型。
3.6. 场景文字识别
场景文字识别是在图像背景复杂、分辨率低下、字体多样、分布随意等情况下,将图像信息转化为文字序列的过程,可认为是一种特别的翻译过程:将图像输入翻译为自然语言输出。
3.7. 度量学习
度量学习也称作距离度量学习、相似度学习,通过学习对象之间的距离,度量学习能够用于分析对象时间的关联、比较关系,在实际问题中应用较为广泛,可应用于辅助分类、聚类问题,也广泛用于图像检索、人脸识别等领域。
3.8. 视频分类和动作定位
视频分类和动作定位是视频理解任务的基础。
视频数据包含语音、图像等多种信息,因此理解视频任务不仅需要处理语音和图像,还需要提取视频帧时间序列中的上下文信息。
视频分类模型提供了提取全局时序特征的方法,主要方式有卷积神经网络 (C3D, I3D, C2D 等),神经网络和传统图像算法结合 (VLAD 等),循环神经网络等建模方法。
视频动作定位模型需要同时识别视频动作的类别和起止时间点,通常采用类似于图像目标检测中的算法在时间维度上进行建模。
智能文本处理PaddleNLP
PaddleNLP 是基于飞桨深度学习框架开发的自然语言处理 (NLP) 工具,算法,模型和数据的开源项目。百度在 NLP 领域十几年的深厚积淀为 PaddleNLP 提供了强大的核心动力。使用 PaddleNLP,您可以得到:
-
丰富而全面的 NLP 任务支持:PaddleNLP 为您提供了多粒度,多场景的应用支持。涵盖了从分词,词性标注,命名实体识别等 NLP 基础技术,到文本分类,文本相似度计算,语义表示,文本生成等 NLP 核心技术。同时,PaddleNLP 还提供了针对常见 NLP 大型应用系统(如阅读理解,对话系统,机器翻译系统等)的特定核心技术和工具组件,模型和预训练参数等,让您在 NLP 领域畅通无阻。
-
稳定可靠的 NLP 模型和强大的预训练参数:PaddleNLP 集成了百度内部广泛使用的 NLP 工具模型,为您提供了稳定可靠的 NLP 算法解决方案。基于百亿级数据的预训练参数和丰富的预训练模型,助您轻松提高模型效果,为您的 NLP 业务注入强大动力。
-
持续改进和技术支持,零基础搭建 NLP 应用:PaddleNLP 为您提供持续的技术支持和模型算法更新,为您的 NLP 业务保驾护航。
4.1. NLP基础技术
4.1.1. 中文词法分析 LAC (Lexical Analysis of Chinese)
百度自主研发中文特色模型词法分析任务,集成了中文分词、词性标注和命名实体识别任务。输入是一个字符串,而输出是句子中的词边界和词性、实体类别。
4.1.2.词向量(Word2vec)
提供单机多卡,多机等分布式训练中文词向量能力,支持主流词向量模型(skip-gram,cbow 等),可以快速使用自定义数据训练词向量模型。
4.1.3. 语言模型 (Language_model)
给定一个输入词序列(中文需要先分词、英文需要先 tokenize),计算其生成概率。语言模型的评价指标 PPL (困惑度),用于表示模型生成句子的流利程度。
4.2. NLP 核心技术
4.2.1. 语义表示
PaddleLARK (Paddle LAngauge Representation ToolKit) 是传统语言模型的进一步发展,通过在大规模语料上训练得到的通用的语义表示模型,可以助益其他自然语言处理任务,是通用预训练 + 特定任务精调范式的体现。PaddleLARK 集成了 ELMO,BERT,ERNIE 1.0,ERNIE 2.0,XLNet 等热门中英文预训练模型。
4.2.2. 文本相似度计算
SimNet (Similarity Net) 是一个计算短文本相似度的框架,主要包括 BOW、CNN、RNN、MMDNN 等核心网络结构形式。SimNet 框架在百度各产品上广泛应用,提供语义相似度计算训练和预测框架,适用于信息检索、新闻推荐、智能客服等多个应用场景,帮助企业解决语义匹配问题。
4.2.3. 文本生成
PaddleTextGEN (Paddle Text Generation) ,一个基于飞桨的文本生成框架,提供了一些列经典文本生成模型案例,如 vanilla seq2seq,seq2seq with attention,variational seq2seq 模型等。
4.3. NLP 系统应用
4.3.1. 情感分析
4.3.2. 阅读理解
PaddleMRC (Paddle Machine Reading Comprehension),集合了百度在阅读理解领域相关的模型,工具,开源数据集等一系列工作。
4.3.3. 机器翻译
PaddleMT ,全称为 Paddle Machine Translation,基于 Transformer 的经典机器翻译模型,基于论文《Attention Is All You Need》:https://arxiv.org/abs/1706.03762
4.3.4. 对话系统
PaddleDialogue 包含对话系统方向的模型、数据集和工具。
百度最新前沿工作开源,请参考 Research:
https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/Research
智能推荐PaddleRec
个性化推荐,在当前的互联网服务中正在发挥越来越大的作用,目前大部分电子商务系统、社交网络,广告推荐,搜索引擎,都不同程度的使用了各种形式的个性化推荐技术,帮助用户快速找到他们想要的信息。PaddleRec 包含的模型如下。
智能语音PaddleSpeech
PaddleSpeech 包含语音识别和语音合成相关的模型。
想与更多的深度学习开发者交流,请加入飞桨官方 QQ 群:796771754。
如果您想详细了解更多飞桨 PaddlePaddle 的相关内容,请参阅以下文档。
官网地址:
https://www.paddlepaddle.org.cn/
项目地址:
https://github.com/PaddlePaddle/models