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

根植于工业级大规模深度学习应用场景的PaddlePaddle

2018年11月,英特尔人工智能大会(AIDC2018)在北京国贸酒店举行,这也是英特尔首次专门面向开发者和和技术社区的人工

2018年11月,英特尔人工智能大会(AIDC 2018)在北京国贸酒店举行,这也是英特尔首次专门面向开发者和和技术社区的人工智能大会。PaddlePaddle总架构师于佃海应邀在大会主论坛做了主题演讲,介绍了百度开源深度学习框架PaddlePaddle的最新进展以及百度实际业务中的大规模深度学习应用实践,特别强调了PaddlePaddle在海量数据超大规模稀疏特征场景下的高效分布式训练特色。

于佃海表示,百度很早就开始拥抱机器学习技术,对于深度学习,百度一开始就把握住了先机。早在2012年,百度就成功将DNN模型应用于语音识别和光学字符识别(OCR)任务;而紧接着在2013年,凤巢广告和搜索排序也先后上线深度学习模型,这些都属于业内首次,也奠定了百度在世界范围内深度学习研究和应用的领先优势。从此百度逐步全面进入深度学习时代,在深度学习框架研发、平台建设和技术创新应用等方面都一直走在前沿。

作为国内唯一的开源深度学习框架,PaddlePaddle承载了百度多年以来在深度学习领域的深厚积累。于佃海介绍,PaddlePaddle的原型来自于百度从2013年开始研发的深度学习框架Paddle项目,Paddle的得名就是并行分布式学习(Parallel Distributed Deep Learning)。这个项目是非常有远见和前瞻性的。首先,在当时还没有什么工业界的深度学习框架,也就是百度在深度学习应用刚起步时就意识到了建设通用框架的重要性;另一个是并行分布式,深度学习的威力依赖大数据,工业级的深度学习必须有大规模训练的支持,百度在深度学习框架构建之初就定位了它的分布式训练能力。

而对于百度而言,深度学习的应用确实和大数据、强算力下的大规模训练密切相关。除了大家熟知的语音、视觉、自然语言处理等AI基础方向外,于佃海特别介绍了在搜索、广告、信息流推荐等产品线的核心系统中超大规模深度学习的应用,这些应用除了数据规模大之外,还有高维度稀疏特征的典型特性。

例如在网页搜索中,百度将深度学习技术用于语义匹配特征计算。自2013年初次上线以来,持续优化迭代,目前深度学习语义特征已是百度这个最大中文搜索引擎上的最关键的排序特征,极大破除了搜索排序依赖关键词匹配的弊端,有效改善了长尾和冷门Query的搜索效果,也建立了百度搜索的技术领先优势。对应的网络模型是百度自主研发的深度语义匹配网络SimNet系列模型,输入是Query和网页的各个信息域,利用用户行为数据来进行大规模训练。这个任务的数据规模达到了千亿级别以上,而文本任务的词嵌入(Word Embedding)向量表示特点,也使得参数规模达到了数亿。在实际业务中,每一个语义匹配特征对应的模型,都是使用几十个高性能计算结点多机多线程分布式训练来完成。

而对于广告和信息流推荐业务上的深度学习应用,还有更特别的挑战。这些场景上,深度学习用来构建系统最核心的点击率预估模型,使用了比语义匹配更多的离散特征,包括一些ID特征和组合特征。特别是在信息流业务上,内容端信息更加丰富,展现序列更长,浏览和点击的历史信息也更多,整体特征空间变得更大。结果就是特征规模最终可达百亿级别以上,在Embedding表示下,参数规模能达到千亿甚至万亿,模型大小超过TB。但对每条样本来讲,其对特征的命中又是稀疏的,可能只有数十个到数千个有效特征被激活。这就形成了超高维度加稀疏的特性,给训练和在线部署都带来了极大挑战。一方面,全局参数已经多到单机无法加载,另一方面仍然是海量数据的超大规模训练。还有就是这些场景的时效性非常强,新的训练数据也在不断产生。在实际业务中,百度对于此类任务使用用百结点以上的集群来在线训练,每个小时可以完成数亿样本的充分增量训练,并在线实时提供预测服务。

基于这些实际业务中大规模深度学习应用的介绍,于佃海指出,不同场景的深度学习的特点及规模化的难度存在极大差异。图像类任务,往往网络的深度和计算的密集型比较突出。但对于文本任务而言,一个尤其重要的特点是词语的向量表示,每个词的Embedding向量的维度几十到上千,而词表往往会从几万到百万的规模,这使得词语的参数Embedding就非常巨大,但实际每个句子中词语出现又是很稀疏的,这给计算和并行训练都带来了新的挑战。而在很多实际互联网应用中,往往又广泛引入大量稀疏特征,这使得高维稀疏特征的参数真的变成了一个超级大表,整个分布式并行模式都需要有针对性的设计。

可以看到,深度学习的大规模,不只是大数据和大网络,我们同时要关注其特征量和计算特异性。这些都给通用的高性能深度学习编程框架的设计和实现带来了困难。对于百度当前各产品线上的海量数据超大规模稀疏特征的深度学习任务,当今市面上的大部分开源框架是很难支撑起来的,当然其中一些在设计层面就没有特别考虑工业级的大规模训练问题。而对于PaddlePaddle,是一直伴随着百度的产品业务应用需求成长起来的。于佃海表示,在设计和实现上,除了保持深度学习框架自身的通用性和灵活性之外,PaddlePaddle一直同步强化其大规模并行训练的能力。对大规模高维稀疏数据并行训练的强有力支持是PaddlePaddle的核心关键特色。例如在百度信息流推荐场景下,PaddlePaddle十小时内可轻松完成千亿规模参数模型在百亿日志数据上在线训练,完美支持信息流推荐排序任务。我们注意到,在今年7月的百度开发者大会的深度学习公开课上,百度曾专题介绍过大规模稀疏训练的的相关技术,而在刚刚过去的百度世界大会上的AI论坛上,也特别强调过PaddlePaddle的这一特色。

此外,于佃海还介绍了最近刚刚发布的PaddlePaddle Suite,由核心框架、服务平台、模块组件三大部分组成。除了多平台支持的高性能训练和预测框架外,特别介绍了以AutoDL和PARL为带代表的强大的平台层和丰富的组件层。PARL是基于PaddlePaddle的深度强化学习(Reinforcement Learning)框架。在刚刚结束的在NeurIPS 2018的强化学习AI挑战赛中,面对400多只强手如林的参数队伍,百度的PARL研发团队以绝对领先优势获得第一名。而PARL的高效分布式训练能力,也是其夺冠的重要因素之一。

最后于佃海介绍了PaddlePaddle与英特尔在底层性能优化上开展的包括nGraph在内的广泛而深入的合作,并表示PaddlePaddle对性能优化的追求永无止境,除了大规模分布式训练能力外,对于深度学习框架的各个环节都会持续优化,发挥深度学习框架和大规模分布式训练完美结合的优势,矢志打造能支撑工业级应用的高性能AI框架。


推荐阅读
  • ZeroMQ在云计算环境下的高效消息传递库第四章学习心得
    本章节深入探讨了ZeroMQ在云计算环境中的高效消息传递机制,涵盖客户端请求-响应模式、最近最少使用(LRU)队列、心跳检测、面向服务的队列、基于磁盘的离线队列以及主从备份服务等关键技术。此外,还介绍了无中间件的请求-响应架构,强调了这些技术在提升系统性能和可靠性方面的应用价值。个人理解方面,ZeroMQ通过这些机制有效解决了分布式系统中常见的通信延迟和数据一致性问题。 ... [详细]
  • 从用户转型为开发者:一场思维升级的旅程 | 专访 StarRocks Committer 周威
    从用户转变为开发者,不仅是一次角色的转换,更是一场深刻的思维升级之旅。本次专访中,StarRocks Committer 周威分享了他如何在这一过程中逐步提升技术能力与思维方式,为开源社区贡献自己的力量。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • Spring Security 认证模块的项目构建与初始化
    本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ... [详细]
  • 如何在Oracle ASM_Diskgroup中重命名现有磁盘
    如何在Oracle ASM_Diskgroup中重命名现有磁盘 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 六个接私活的平台,技术在手,财富自由!值得推荐给每一位专业人士!
    本文将介绍六个适合专业人士接私活的平台,帮助技术人才实现财富自由。这些平台不仅提供了丰富的项目机会,还为用户搭建了高效的合作桥梁,是每位技术人士不容错过的资源。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 如何正确配置与使用日志组件:Log4j、SLF4J及Logback的连接与整合方法
    在当前的软件开发实践中,无论是开源项目还是日常工作中,日志框架都是不可或缺的工具之一。本文详细探讨了如何正确配置与使用Log4j、SLF4J及Logback这三个流行的日志组件,并深入解析了它们之间的连接与整合方法,旨在帮助开发者高效地管理和优化日志记录流程。 ... [详细]
author-avatar
lanxians
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有