NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

智能计算系统:如何设计智能计算课程 | 品味书香

陈云霁 等 编著

  • 2020-05-29
  • 本文字数:5470 字

    阅读完需:约 18 分钟

智能计算系统:如何设计智能计算课程 | 品味书香

本文节选自陈云霁等人编著的机械工业出版社出版的《智能计算系统》一书。


随着智能产业的飞速发展,社会迫切需要大量高水平的人工智能人才。因此,我国近千所高校的计算机学院和信息学院都在培养人工智能方向的人才,而且我国已经有上百所高校开始设立专门的人工智能专业。可以说,我国人工智能高等教育的大幕正在徐徐拉开。今天,教育界对人工智能人才培养的决策,将会对历史产生深远的影响。因此,我们应当慎重思考一个关键问题:人工智能专业的高等教育需要培养什么样的人才?


有一种看法认为:人工智能专业只需要教学生如何开发智能应用和编写智能算法,至于运行这些应用和算法的计算系统,则不是教育的重点。这种看法,类似于汽车专业只需要教学生如何组装车辆,而不需要让学生理解发动机的机理;又类似于计算机专业只需要教学生如何写 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 章,李玲研究员负责整理了第 2、3 章,李威副研究员负责整理了第 4、9 章,郭崎研究员负责整理了第 5、8 章,杜子东副研究员负责整理了第 6 章,周徐达助理研究员负责整理了第 7 章。我和李玲研究员负责了全书的统稿。杜子东副研究员负责了本书的习题。此外,李震助理研究员、韩栋助理研究员,以及韦洁、潘朝凤、曾惜、于涌、王秉睿、张磊、郝一帆、刘恩赫、何皓源、高钰峰、宋新开、杜伟健等同志也参与了本书的部分工作。杜伟健、张振兴和宋新开对本书习题做出了贡献。方舟、曾惜、张振兴、李普泽和陈斌昌等同志负责了本书多幅图的绘制。张曦珊副研究员、张蕊助理研究员,以及吴逍雨、承书尧、汪瑜、谭懿峻等同志参与了本书的校对。在此向这些同志表示衷心的感谢。同时,我们也特别感谢西北工业大学的周兴社教授和南开大学的李涛教授对智能计算系统的课程建设和教材编写提供的宝贵意见。由于我们学识水平有限,书中一定还有错漏之处,恳请读者多多批评指正。如有任何意见和建议,欢迎发邮件至 ics_textbook@ict.ac.cn。


本书的写作受到了国家重点研发计划、国家自然科学基金、“核高基”科技重大专项、中科院先导专项、中科院弘光专项、中科院前沿科学重点项目、中科院标准化研究项目、北京市自然科学基金、北京智源人工智能研究院和腾讯科学探索奖的支持。此外,机械工业出版社华章公司的温莉芳、刘立卿等同志给予我们大量的帮助。在此一并表示诚挚的谢意。


图书介绍https://item.jd.com/12815882.html



公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-05-29 10:001638

评论

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

周鸿祎谈“360GPT”两翼齐飞战略;SaaS生态百家接入、120万家企业用户、2千万终端用户

B Impact

面向 Web、微服务应用的 Serverless 托管平台云应用引擎 CAE

宇宙之一粟

云服务器 CAE 云应用

Scrum 管理工具哪个好?国内知名工具的 Scrum 管理过程体验

PingCode

Scrum 敏捷开发管理 敏捷开发管理工具

文心一言更大的故事是在云计算

百度开发者中心

百度智能云 文心一言

kafka Log存储解析以及索引机制

石臻臻的杂货铺

kafka

Nautilus Chain 首个生态基础设施 Poseiswap,公布空投规则

EOSdreamer111

魔法诗~~~一套基于Vue开发的实用、高端、炫酷的响应式前端网页!!!

京茶吉鹿

Vue 前端 网页设计

Swift之struct二进制大小分析

京东科技开发者

swift App struct 移动开发 企业号 3 月 PK 榜

出手即不凡,一年共投408个公司,人均退出近5个 | 创业邦2023女性投资人榜单发布

创业邦

pytest学习和使用5-Pytest和Unittest中的断言如何使用?

Python 自动化测试 pytest 测试报告 Allure

c4d超强三维动画设计:CINEMA 4D Studio R2023.2.0 中文激活版

真大的脸盆

Mac Mac 软件 C4D

避免使用CSS @import 影响页面加载速度

南城FE

CSS css3 前端

mysqldump 详解

GreatSQL

MySQL greatsql greatsql社区

ChatGPT 开源了第一款插件,都来学习一下源码吧!

Python猫

IntelliJ IDEA 2023.1 版本可以安装了

HoneyMoose

软件工程高效学 | 实践工具:Microsoft Office Visio

TiAmo

开发工具 Visio绘图注释工具

机器学习实战系列[一]:工业蒸汽量预测(最新版本上篇)含数据探索特征工程等

汀丶人工智能

数据挖掘 机器学习 决策树 LightGBM

应对网络不可靠挑战,用 OpenYurt 实现边缘业务连续性

阿里巴巴云原生

阿里云 开源 云原生 openyurt

一种自平衡解决数据倾斜的分表方法

京东科技开发者

数据倾斜 分布分表 企业号 3 月 PK 榜 B 端产品 数据分表

不降功能只降资源,六个应用场景带你了解OCP Express

OceanBase 数据库

数据库 oceanbase

数字云南的那山,那水,那些人

脑极体

5G

微软云与 OpenAI 竞争 ChatGPT 企业级客户:安全性、老客户、多云、模型迭代效率

B Impact

ShareSDK Android SDK API

MobTech袤博科技

ShareSDK Android端权限说明

MobTech袤博科技

让创新更多元,让世界更美好,2023女性影响力峰会圆满举办

创业邦

【4月8日】Elastic 中国开发者大会 2023 议程预告

极限实验室

大数据 elasticsearch elastic 开源 开发者大会

Nautilus Chain 首个生态基础设施 Poseiswap,公布空投规则

股市老人

java实现布隆过滤器

小小怪下士

Java 程序员 布隆过滤器

AI训练性能提升30%,阿里云发布GPU计算裸金属实例ebmgn7ex

云布道师

弹性计算

履约核心引擎低代码化原理与实践

京东科技开发者

低代码 规则引擎 企业号 3 月 PK 榜 履约中心

又见版本升级!一句话概括 Milvus 2.2.4:资源隔离、多云、高效

Zilliz

非结构化数据 Milvus Zilliz

智能计算系统:如何设计智能计算课程 | 品味书香_AI&大模型_InfoQ精选文章