查看原文
其他

智能领域系统能力培养大成之作!——《智能计算系统》重磅出版!




导读:随着智能产业的飞速发展,社会迫切需要大量高水平的人工智能人才。因此,我国近千所高校的计算机学院和信息学院都在培养人工智能方向的人才,而且我国已经有上百所高校开始设立专门的人工智能专业。可以说,我国人工智能高等教育的大幕正在徐徐拉开。

今天,教育界对人工智能人才培养的决策,将会对历史产生深远的影响。因此,我们应当慎重思考 一个关键问题:人工智能专业的高等教育需要培养什么样的人才?

有一种看法认为:人工智能专业只需要教学生如何开发智能应用和编写智能算法,至于运行这些应用和算法的计算系统,则不是教育的重点。这种看法,类似于汽车专业只需要教学生如何组装车辆,而不需要让学生理解发动机的机理;又类似于计算机专业只需要教学生如何写APP,而不需要让学生理解CPU和操作系统的机理。重应用、轻系统的风气,有可能使我国人工智能基础研究和产业发展处于“头重脚轻”的失衡状态。

与此形成鲜明对比的是,我们的国际同行对于智能计算系统的重视程度远远超过普通人的想象。仅以谷歌公司为例。众所周知,谷歌拥有全世界最大规模、最高水平、最全产品的智能应用和算法研究团队。仅谷歌一个公司就发表了2019年国际机器学习会议(ICML)近20%的论文,和整个中国相当。然而,当我们真正认真审视谷歌时就会发现,谷歌并不只是一个算法公司,它更是一个系统公司。谷歌的董事长J.Hennessy是国际最知名的计算机系统结构研究者,图灵奖得主;谷歌人工智能研究的总领导者J.Dean(每次谷歌I/O大会都是他代表谷歌介绍全公司的智能研究进展)是计算机系统研究者,著名的MapReduce分布式计算系统就出自他之手。谷歌在人工智能领域最令人瞩目的三个贡献——机器学习编程框架TensorFlow,战胜人类围棋世界冠军李世石的AlphaGo,以及谷歌自研的智能芯片TPU——也和系统有关,而非单纯的算法。

因此,人工智能专业的高等教育,应当培养人工智能系统或者子系统的研究者、设计者和制造者。只有实现这个目标,高校培养的人才才能源源不断地全面支撑我国人工智能的产业和研究。为了实现这个目标,人工智能专业的课程体系,不仅仅应当包括机器学习算法、视听觉应用等课程,还应当包括一定的硬件和系统类的课程。

事实上,国内有很多前辈和专家也意识到了这个问题。很多国内高校并不是主观上不想给学生开设面向人工智能专业的系统类课程,而是开设这样的课程有一些客观困难,不容易克服。毕竟智能计算系统是一个新兴的交叉方向,所涉及的知识非常新,老师们找不到现成的课程可以参考。事实上,即便是国际顶尖高校,过去也没有太多这方面的教学经验(例如,斯坦福大学2015年曾请我去讲授这个方向的短期课程)。另外,讲授智能计算系统课程所需要的背景知识也非常广泛,涉及算法、结构、芯片、编程等方方面面,能对这些知识都有全面涉猎的老师确实不多。

但是,在所有的困难中,大家一致认为,最关键的困难就在于没有现成的教材。教材是课程的基础,要上好一门课,没有合适的教材是不可能的。据我们了解,目前国际上也没有一本能全面覆盖人工智能计算系统(尤其是当代机器学习计算系统)新进展的教材。因为我们实验室在研究上涉及智能计算系统的各个方面,又在中国科学院大学、北京大学、北京航空航天大学等院校有讲授智能计算系统课程的经验,所以很多老师问我们,是否能编写一本内容较新、较全面的教材。于是,我们参考过去讲课的录音录像,整理形成了这本《智能计算系统》教材。希望这本教材能抛砖引玉,为高校开设面向人工智能专业的系统类课程提供微小的助力,为我国培养人工智能人才起到一点推动作用。

智能计算系统课程的价值

个人认为,智能计算系统课程对于学生、教师、高校,都具有重要的价值,能产生深远的影响。

对于学生来说,学习智能计算系统课程有助于形成系统能力和系统思维。系统能力可以帮助学生在就业市场中拥有更强的竞争力。在不久的将来,全国上百所开设人工智能专业的高校每年将培养出上万名学过智能算法的学生。到那时,如果一个学生只会算法调参,而对整个系统的耗时、耗电毫无感觉,不具备把一个算法在实际系统上部署起来的能力,找到好工作的难度会较大。而智能计算系统课程的学习,就能让学生真正理解人工智能到底是怎样运转的(包括一个人工智能算法到底如何调用编程框架,编程框架怎么和操作系统打交道,编程框架里的算子又是怎样在芯片上运行起来),就能使学生拥有亲手构建出复杂的系统或者子系统的能力。很自然地,就更容易在就业的竞争中脱颖而出。我曾经在网上看到一个段子:“会用TensorFlow每年挣20万元人民币,会写TensorFlow每年挣20万美元。”这个段子其实还是有一定的现实依据的。

而系统思维对于提高学生的科研能力有帮助。缺乏系统思维的学生很容易陷入精度的牛角尖中,把科学研究当成体育比赛来搞(别人做了97%的精度,我就要做98%;别人做了98%,我就要做99%),最后研究道路越走越窄。事实上,从系统角度看,评价智能的标准远不止精度一个维度。速度、能效、成本等都是很重要的维度,无论在哪一个维度上做出突破,都是非常有价值的研究。因此,近年来深度学习领域一些非常有影响力的工作如稀疏化、低位宽等,都是在提升整个智能计算系统的速度和能效上做文章,而不是只盯着精度不放。所以说,学习智能计算系统课程,能让学生形成系统思维,在科研道路上拥有更宽广的舞台。

对于教学科研人员来说,讲授智能计算系统课程,对于自己的科研能力也可能有很大的帮助。我自己担任任课教师时就发现,科研人员把一门课教好,自己的收获可能比学生还大。这也就是《礼记·学记》所说的“教学相长”。因为做科研只能让人对一个方向中的某些具体知识点很熟,而教学某种意义上逼着教师要对整个方向有全面的理解,这样反过来又能让科研的思路更开阔。智能计算系统课程覆盖面比较广,教好这门课受益尤其大,能使教师的知识面从软到硬更加全面。

对于高校管理人员来讲,系统研究已经成为人工智能发展的热点,在学科布局中应予以充分重视。2019年,一些国际顶尖高校和企业(如斯坦福大学、卡内基梅隆大学、加州大学伯克利分校、麻省理工学院、谷歌、脸书、英特尔、微软等)的数十位知名研究者(包括图灵奖得主Y.LeCun、美国科学院院士M.Jordan、美国工程院院士B.Dally、美国工程院院士J.Dean等)联合发布了一份白皮书——“SysML:The New Frontier of Machine Learning Systems”,展望了机器学习计算系统软硬件技术的未来发展。这充分体现出,在国际上无论是学术界还是工业界,都对智能计算系统高度关注。在这样的新兴热门方向尽早布局并培育一批教师,无疑对提升高校乃至我国在国际学术界的影响力有巨大帮助。

智能计算系统课程的内容

对于教学比较熟悉的教师可能会问:“智能计算系统这门课程涉及面太广,知识点太多,在一门课内学完是否难度太大?”是的,智能计算系统课程涉及算法、芯片、编程等方方面面,每个方面展开来都可以是自成体系的一门课。所有枝枝蔓蔓要在一门课、一个学期里学完是不可能的。因此,我们在设计智能计算系统这门课程时采用了两个原则:应用驱动,全栈贯通。课程以一个应用为牵引,在软硬件技术栈的各个层次,聚焦于完成这个应用所需要的知识。这样不仅能使教师在一个学期内把智能计算系统课程教完,还有以下两个好处。

第一,一门好的工程学科的课程应当是学以致用的。尤其是智能计算系统这样的课程,如果上完之后只学会了一些理论知识,那教学效果一定不理想。应用驱动可以让学生学完了课程,就能把课程知识在实践中用起来。第二,帮助学生形成系统性理解。过去计算机专业课程设计有个问题,就是条块分割明显,比如操作系统和计算机体系结构是割裂的,操作系统对计算机体系结构提出了什么要求,计算机体系结构对操作系统有哪些支持,没有一门课把这些串起来,打通学生知识的“任督二脉”。智能计算系统作为高年级本科生(或研究生)课程,通过应用的牵引,能帮助学生把过去所有的人工智能软硬件知识都串起来,形成整体理解。

具体来说,智能计算系统课程以图像风格迁移(例如,把一个实景照片转换成梵高风格的画)这一具体应用为牵引,来对整个智能计算系统软硬件技术栈做介绍。为此,本书的第1章将对人工智能、智能计算系统进行概述,同时介绍风格迁移这一贯穿全书的驱动范例。

接下来,课程讲述完成这个应用所必需的神经网络和深度学习算法知识。对于图像风格迁移不涉及的算法知识,课程就不做过度展开。这样在最多不超过6个学时内就能够把算法部分讲完。上述内容将在本书的第2、3章做介绍。

智能算法要在智能芯片上运行起来,还需要编程框架这一系统软件的支持。对上,编程框架降低程序员编写具体智能应用的难度;对下,编程框架将智能算法拆分成一些具体算子,并将算子分配到智能芯片(或者CPU)上运行。编程框架是很复杂的系统软件。但是实现图像风格迁移所需要的编程框架知识相对有限(比如说,TensorFlow编程框架中有上千个算子,但是风格迁移只涉及其中不到十分之一)。这样教师在6个左右的学时里,就可以教给学生如何使用主流的编程框架,以及编程框架内在的运行机理。上述内容将在本书的第4、5章做介绍。

编程框架再往下是智能芯片。由于传统CPU远远不能满足智能计算飞速增长的速度和能效需求,智能计算系统的算力需要由专门的深度学习处理器提供。开发一款能处理各种视频识别、语音识别、广告推荐、自然语言理解任务的工业级深度学习处理器,需要成百上千有经验的工程师数十个月的努力。但是,在这门课里,我们只需要考虑有限目标,即如何针对图像风格迁移这一具体应用来设计深度学习处理器,包括设计思想、设计方法、具体结构等。当然,为了让学生能了解业界前沿动态,本书也会介绍真正的工业级深度学习处理器的大致结构。这样教师在6个左右的学时里,就可以让学生比较系统地掌握深度学习处理器的基础知识。上述内容将在本书的第6、7章做介绍。

深度学习处理器的指令集和结构与传统的通用CPU有较大区别。为了方便程序员充分发挥深度学习处理器的计算能力,需要有新的高级智能编程语言。因此,本书的第8章将介绍一种智能编程语言(BCL语言)。这种编程语言考虑了如何提升程序员编写智能算法的生产效率,也考虑了如何利用深度学习处理器的结构特点。本书在这一章除了介绍如何用BCL语言开发出图像风格迁移所需的基本算子,还提供了系统级开发和优化实践。这一部分内容大约需要3个学时。

智能计算系统课程的最终目标是让学生融会贯通地理解智能计算系统的完整软硬件技术栈。如果只是单纯学习上述章节的内容,可能学生掌握的还是一些割裂的知识点,必须要有一个实验,把这些知识点串起来,打通“任督二脉”。因此,本书的第9章具体介绍了一个实验,即如何开发一个能完成图像风格迁移任务的简单智能计算系统。理论上,学生把这个实验做好,就应该能对整个课程的知识体系有一定的全局理解。完成这个实验所需要的学时数和学生基础有较大的关系,可能要根据各个高校的实际情况来决定。此外,如果课程体系允许,我们建议专门开设一门智能计算系统实验课。我们专门编写的《智能计算系统实验教程》将于2020年出版,提供更全面、丰富的实验,为专门的智能计算系统实验课提供支撑。

在设计上述课程内容时,我们主要考虑的是中国科学院大学(简称国科大)的学生情况。我们在其他兄弟院校讲授这门课程时发现,各个学校的前置课程和学生基础不太一样,教师可以根据自身情况对各个部分的学时做灵活调整。比如,如果学生之前学过人工智能或者机器学习基础课,第2、3章算法部分的课时数可缩短。再比如,如果学生没有学过计算机体系结构或者计算机组成原理,那么第6、7章深度学习处理器部分可以讲慢一点,增加一些课时。

书中标*的章节或习题,供有志于从事智能计算系统研究的读者选读或选做。

(本文摘自《智能计算系统》中前言部分内容)

《智能计算系统》由深度学习处理器芯片研究的开拓者陈云霁领衔,中科院计算所、软件所的专家学者倾心写就。智能领域系统能力培养大成之作!
领衔作者陈云霁带领团队研制了国际上第一个深度学习处理器芯片“寒武纪1号”,本书凝聚了作者团队多年的科研和教学成果,是前沿研究与技术实践结合,快速提升智能领域系统能力的教材和技术参考书。本书通过一个贯穿始终的应用案例——图像风格迁移,全面系统地介绍智能计算系统的软硬件技术栈,涵盖神经网络基础算法、深度学习编程框架、智能芯片体系结构、智能编程语言等。
作者简介
陈云霁 中国科学院计算技术研究所研究员、博导、智能处理器研究中心主任,中国科学院大学岗位教授,教育部高等学校计算机类专业教学指导委员会计算机系统专委会委员。他带领团队研制了国际上首个深度学习处理器芯片“寒武纪1号”。他的研究成果已经实现了规模化应用。他的学术论文多次获得计算机体系结构顶级国际会议最佳论文奖,受到上百个国际知名机构跟踪引用。因此,他被Science杂志刊文评价为深度学习处理器研究的“先驱”和“引领者”。
他曾获国家杰出青年科学基金、中国青年科技奖、全国创新争先奖、教育部“青年长江学者”、国家自然科学基金委“优秀青年基金”、国家万人计划“青年拔尖人才”,并被《MIT科技评论》评为全球35位杰出青年创新者(2015年度)。他还是北京智源人工智能研究院智能体系结构与芯片方向首席科学家。点击上方链接购买

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存