GMTC北京站9折购票倒计时,部分日程已上线,戳此查看 了解详情
写点什么

百度马艳军:深度学习开源框架建设前沿

  • 2022 年 5 月 13 日
  • 本文字数:3785 字

    阅读完需:约 12 分钟

百度马艳军:深度学习开源框架建设前沿

 深度学习框架被称为“智能时代的操作系统”,是推动人工智能应用大规模落地的核心动力引擎。国家“十四五”规划将深度学习框架列入“新一代人工智能”领域,作为前沿创新技术重点支持。近年来,国产深度学习开源框架迎来集中爆发,一众优秀项目在产业实践中站稳了脚跟。

 

百度飞桨(PaddlePaddle)是国内首个自主研发、开源开放的产业级深度学习框架,并于去年全新发布了开源框架 2.2 版本。2022 年 4 月 29 日《极客有约》邀请到了百度 AI 技术生态总经理马艳军博士,同时也是 OpenI 启智社区技术委员会委员,和大家一起畅聊开源深度学习框架建设的话题。马艳军总体负责产业级深度学习开源开放平台飞桨的产品和技术研发及生态建设,主要研究方向包括自然语言处理、深度学习等,相关成果在百度产品中广泛应用,并在 ACL 等权威会议、期刊发表论文 20 余篇,多次担任顶级国际会议的 Area Chair。本期访谈中,马艳军主要围绕飞桨平台的技术和生态分享了自己在这一领域的经验和观点。

00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.5x
    网页全屏
    全屏
    00:00


    如何看待深度学习框架

     

    深度学习框架非常类似于操作系统,是底层芯片指令集与上层应用之间的连接层,既要做好对底层 AI 芯片的适配、融合与优化,也要对上层应用提供数以千计的算法开发接口。它相当于人类身体的腰腹部位,是全身发力的核心支点。深度学习框架与操作系统的主要相似点还在于生态属性。一系列软硬件技术都要围绕着框架紧密结合、共同发展,才能获得良好的效果。

     

    在 AI 研究的早期,学术界发现很多深度学习算法可以拆分成众多可复用的固定模块,为了提升算法开发的效率,便开始研发深度学习框架。2015 年之后的几年,AI 技术积累雄厚的科技企业陆续推出了 TensorFlow、PaddlePaddle、PyTorch 等框架。这些框架在产业界和科研界得到了广泛应用,对很多应用场景都有极大的提升和推动作用。

    飞桨框架的创新

     

    PaddlePaddle 于 2016 年开源,是国内最早开源开放的深度学习框架,然后在 2019 年有了中文名“飞桨”。英文名称 PaddlePaddle 来自于 PArallel Distributed Deep LEarning 的简写,而中文名飞桨则出自明朝朱熹的一首诗“闻说双飞桨,翩然下广津”,以飞桨命名也蕴含着快速发展的寓意。飞桨发源于百度公司内部的研发和业务诉求,在产业实践中经过多年打磨,取得了突破性进展,并形成了比较成熟的开源生态。

     

    马艳军提到,各大主流深度学习框架走过的发展路线都是类似的,并且各家产品在技术上会相互借鉴、共同创新,因此会有很多相同相似的特性。与其它框架相比,飞桨最大的不同之处在于这款框架与产业应用有更紧密的结合,为生产环境做了很多细致的工作,不仅仅在算法层面开展优化,而且会专门进行框架层面的升级。以动静统一为例,为了满足企业场景中灵活调试和快速部署的需求,飞桨在业内最早提出动静统一的设计并将之真正实现。所谓动静统一,动的是灵活,静的是高效率,既要有开发的灵活性,也要训练部署的高效率。从本质上讲,这也是打通了科研与企业两大领域之间的联系。基于上述底层技术架构的支撑,开发者可以很方便的将研发出来的学术算法直接应用到产业实践中。这一设计在产业界接受度颇高,吸引了很多企业使用飞桨。类似这样的底层框架创新还有很多,而且往往来源于企业开发者的实际业务。在这样的良性循环中,飞桨框架逐渐走出了自己独特的发展路线,形成了一种平台化的深度学习开源开放生态。

    深度学习框架的应用场景

     

    作为更加贴近产业实践的深度学习框架,飞桨在实际应用中非常适合各类型企业的使用。

     

    例如一些企业尚不具备一流的深度学习算法研发能力,在实践中更偏向于采用业界成熟的算法,结合自己的数据和场景进行优化。针对这样的需求,飞桨提供了一整套开发套件和工具组件,打通了典型 AI 应用开发的全流程。企业可以使用飞桨快速开发出适合自身场景的优化算法,更早在实践中部署 AI 能力。

     

    还有一些企业虽然自身具备较好的研发能力,但在实践中因为成本等因素,不愿意重复造轮子,也很适合使用飞桨获得开箱即用的算法组合。

     

    另一类企业对算法的性能有很高的要求,希望获得尽可能高的训练和部署效率。这些企业可以使用飞桨获得很好的性能,同时节省可观的资源。

     

    除了企业用户外,也有很多科研人员和学校师生在使用飞桨框架。过去两年来,飞桨针对学术需求做了很多优化,尤其是如前所述实现了动静统一后,开发调试大大简化,提升了科研人员的使用体验,所以最近飞桨的科研用户比例有了不小的提升。

     

    在科研场景中,飞桨的用户主要分为两大类。其中一大类是做人工智能相关的研究,主要关注深度学习算法的开发和改进。这类需求对深度学习框架的灵活性与可扩展性有极高的要求,需要框架能够非常灵活地定制算子,尽量通过 Python 层就实现高度定制化的功能特性。另一大类则是科学计算需求,需要深度学习框架为物理、化学、生物等科学领域的研究提供对应的能力和优化。这一类需求同样对框架的灵活性和可扩展性有很高的挑战。因此飞桨在过去两年中不断在这两大指标上极致优化,希望能同时充分满足企业与科研用户的多样化需求。

     

    马艳军提到,与操作系统相比,深度学习框架其实是更接近用户的。因为人工智能算法本身就是和应用非常贴近的,并且深度学习应用的整个流程,包括数据准备、模型开发、训练和部署都是业务场景中需要完成的。因此业务场景中的用户同样需要与深度学习框架进行大量交互,很多时候用户本身也会参与到社区生态的开发工作中来,这种互动是在操作系统领域很难看到的。

    如何做好生态建设

     

    人工智能生态有一些独有的特性,导致生态本身会有相当程度的复杂性。首先,人工智能有很强的赋能属性,在赋能千行百业的时候,需要与行业场景深入融合才能发挥更大的作用。与众多行业结合为产业赋能的过程中,人工智能生态自然就要与这些行业充分互动,复杂性也会大大提升。

     

    例如很多中小企业需要充分借力开源开放平台实现更多跟场景结合的方案,进而服务大型企业,一定程度上起到毛细血管的作用;使用 AI 技术的头部企业会面临很多本行业的复杂问题,需要上述中小企业从专业角度帮助提供 AI 解决方案。再如,很多高校学生在学习阶段就会开始使用人工智能生态中的各种工具,从而生态也要适应他们的很多需求。

     

    从开源社区的角度来看,像 OpenI 启智这样的社区中会有很多人工智能相关的项目,这些项目环环相扣形成网络效应,互相协作,共同提升,最终形成繁荣的社区发展面貌。如果社区中的项目不能形成这样的紧密联系,那么就很难形成网络效应,在互相促进中加速发展。

     

    如上所述,深度学习框架生态在发展的过程中就要同时考虑中小企业、头部企业和高校学术界的方方面面需求,同时还要考虑到为不同的开源项目提供沟通融合的管道。飞桨在多年的发展过程中就针对这样的需求做了很多工作,在这个过程中不断起到“连接”各个角色的作用,例如与高校教师合作了很多项目,或者在开源社区中培育很多项目等等。这些项目为生态注入了源源不断的创新活力,使社区能够持续推陈出新。与此同时,包括媒体人、布道师等角色也在飞桨生态中发挥着各自的作用,大家共同努力,打造出了一个欣欣向荣的人工智能开源生态。

     

    在运营这样一个生态的过程中,成功的关键要素就是要做好“连接”的工作,与生态共创、共享,让生态伙伴都能从中受益。例如飞桨会与芯片厂商合作开发面向特定场景的软硬一体解决方案,基于硬件开发很多模型库算法,从而打通了硬件厂商与算法开发人员之间的沟通渠道。通过这种以具体项目为依托的形式,飞桨生态中的交流效率得到了显著提升,也让更多生态参与者能够长期留在社区中参与贡献并共享成果。

     

    这样的生态体系就像一片生机勃勃的“热带雨林”,可以为许许多多的开发者提供丰富的资源。各种类型、各种背景、研究各种能力和模型的开发者都可以在这个生态中找到自己的用武之地,这也是飞桨生态最吸引人的魅力所在。

    深度学习框架的未来展望

     

    谈到深度学习框架的未来发展这个话题,马艳军也有自己的一些看法。首先人工智能技术本身还有很大的发展空间,当下出现了很多不同类型的技术互相融合的趋势,例如框架与芯片的融合、跨模态技术的融合、技术与行业场景的融合等等。这样的融合过程中就会出现很多技术创新。

     

    另一方面,随着人工智能在各个行业中展现出可观的应用价值,相关技术需要进一步降低门槛,以便推动更多组织在实践中有效利用人工智能。行业需要包括深度学习框架在内的更多低门槛的工具来吸引更多用户来发挥聪明才智,让不同类型的开发者都能充分利用人工智能的能力。

     

    飞桨平台开源的几年来,有很多开发者进入这个生态做出了自己的贡献。就是这些贡献帮助飞桨逐渐打磨出了很好的使用体验。飞桨也非常珍惜和感谢他们的努力与支持。未来,人工智能框架还有很长的路要走,马艳军也希望更多开发者能够与飞桨共同在开源社区成长,见证飞桨和社区共同发展迈向新的台阶。

     

    在本期节目中,马艳军也向观众推荐了几本好书。首先是飞桨官方出的《零基础实践深度学习》,其中有很多动手实操内容,非常适合入门学习。飞桨也同包括北航的刘祥龙老师在内的多位老师合作编写了多本著作,都很适合开发人员动手实践,快速上手深度学习,欢迎感兴趣的读者搜索查找。

     

    最后也预告一下,大家可以关注即将于 5 月 20 日线上举办的WAVE SUMMIT 2022深度学习开发者峰会,飞桨最新的技术、产品、生态进展都会在这个峰会上发布。


    百度搜索“WAVE SUMMIT”,即可报名预约、关注飞桨公众号,不但可以获得最全大会演讲秘籍,入群参加互动抽奖,还有机会获得价值千元飞桨定制大礼包。

     

    2022 年 5 月 13 日 14:46170

    评论

    发布
    暂无评论
    发现更多内容

    计算机原理学习笔记 Day8

    穿过生命散发芬芳

    计算机原理 4月日更

    阿里高工熬夜14天码出这份Java10w字的面试手册!却遭GitHub封杀

    Java架构之路

    Java 程序员 架构 面试 编程语言

    TcaplusDB君 · 行业新闻汇编(4月17日)

    TcaplusDB

    数据库 nosql 数据 TcaplusDB

    ThreadPoolExecutor源码解读(四)如何正确使用线程池(总结坑点+核心参数调优)

    徐同学呀

    ThreadPoolExecutor

    探索区块链Baas平台的奥秘,源中瑞公共服务平台开发技术

    源中瑞-龙先生

    区块链 源中瑞 Baas

    程序员3年CRUD从8K涨到20K,这4个月我到底经历了什么?

    码农之家

    编程 程序员 互联网 面试 职场

    架构师实战营 模块二总结

    代廉洁

    架构实战营

    CopyOnWriteArrayList源码解读之CopyOnWrite思想的利与弊

    徐同学呀

    Java源码 JUC CopyOnWriteArrayList

    FutureTask源码解读,阻塞获取异步计算结果(阻塞、取消、装饰器、适配器、Callable)

    徐同学呀

    Java源码 JUC Future

    华为帐号服务学习笔记(四):Authorization Code模式服务端开发

    Coding狙击

    Java android

    ScheduledThreadPoolExecutor源码解读(一)DelayedWorkQueue高度定制延迟阻塞优先工作队列

    徐同学呀

    线程池 Java源码 ScheduledThreadPool JUC

    第 0 期架构训练营模块 2 作业

    架构实战营

    阿里P8重磅总结:看完别说不会了哦,SpringBoot「完结篇」

    比伯

    Java 编程 程序人生 计算机 架构】

    还有人搞不懂数据仓库与数据库的区别?

    大数据技术指南

    数据仓库 4月日更

    架构师实战营 模块二作业(微信朋友圈高性能复杂度架构分析)

    代廉洁

    架构实战营

    史上最强的:京东北极星商业系统权限管控实践

    Java架构师迁哥

    ThreadPoolExecutor源码解读(二)execute提交任务,Worker详解。如何执行任务?如何回收空闲线程?

    徐同学呀

    线程池 Java源码 JUC ThreadPoolExecutor

    ThreadPoolExecutor源码解读(一)重新认识ThreadPoolExecutor(核心参数、生命周期、位运算、ThreadFactory、拒接策略)

    徐同学呀

    线程池 Java源码 JUC ThreadPoolExecutor

    MySQL 索引概要

    学个球

    MySQL 索引

    堪称神作!阿里数位专家联合写的“大厂高频Java面试手册”

    码农之家

    Java 编程 程序员 互联网 面试

    阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质

    Java架构之路

    Java 程序员 架构 面试 编程语言

    阿里高工熬夜18天码出Java150K字面试宝典,却遭Github全面封杀

    Java架构之路

    Java 程序员 架构 面试 编程语言

    openLooKeng如何应对“野蛮零散”的大数据

    openLooKeng

    大数据 开源 openLooKeng

    关于ReentrantReadWriteLock,首个获取读锁的线程单独记录问题讨论(firstReader和firstReaderHoldCount)

    徐同学呀

    AQS Java源码 JUC

    2021互联网大厂高频面试专题500道:并发编程/Spring/MyBatis(附答案解析)

    比伯

    Java 编程 架构 程序人生 计算机

    Impala架构详解

    五分钟学大数据

    4月日更 impala

    Anolis OS 8.2 RC2 发行,支持飞腾、海光、兆芯、鲲鹏等芯片

    阿里云基础软件团队

    Github霸榜数月!原来是阿里大牛最新的Java性能优化实战笔记

    钟奕礼

    Java 编程 程序员 架构 面试

    聪明人的训练(十七)

    Changing Lin

    4月日更

    ThreadPoolExecutor源码解读(三)如何优雅的关闭线程池(shutdown、shutdownNow、awaitTermination)

    徐同学呀

    线程池 Java源码 JUC ThreadPoolExecutor

    为极客时间增加自动提醒功能,督促用户回来上课

    克比

    百度马艳军:深度学习开源框架建设前沿_AI_王强_InfoQ精选文章