CCCF专栏|智能计算系统-人工智能专业的系统课程

我国人工智能底层研究能力缺失严重,最根本的原因在于缺乏这方面的人才教育和培养。2018作者陈在中国科学院大学开设了“智能计算系统”课程。这门课程受到学生的欢迎,许多选择不参加课程的学生跟随了整个学期。

关键词:智能计算系统人工智能专业课程

编者按:五年前,本文作者陈受邀在专栏发表了一篇名为《建筑研究者的人工智能之梦》1的文章,首次公开介绍了他从通用处理器到深度学习处理器的心路历程(那篇文章后来被收入《优秀文章精选》)。经过5年的努力,陈在深度学习处理器方向做出了国际公认的贡献:其学术论文被顶级会议18超过四分之一的论文引用,其技术成果应用于华为、曙光、阿里等近1亿台智能手机和服务器。因此,他被《科学》杂志评价为智能芯片的“先驱”和“领导者”。如今,当深度学习处理器已经成为学术界和工业界的热点时,陈再次转身,迈向人工智能系统课程教学的新阶段。本文将与你分享他走向这个新阶段的心路历程。

开设智能计算系统课程

本人是中科院计算所青年研究员,主要从事计算机系统结构与人工智能交叉方向的基础研究。看到这篇文章的标题和作者单位,你可能会觉得有点奇怪:作者和人工智能专业课有什么关系?因为在传统意义上,上课是高校老师的责任,中科院的职工没有义务上课,除非他们自愿担任中国科学院大学(HKUST)的岗位教授。

驱使我积极思考人工智能专业课程设计的主要原因是这样一个众所周知的现象:人工智能上层(算法层和应用层,见图1)研究得越多,中国科研人员对世界的贡献就越大;级别越低(系统级和芯片级),中国科研人员的贡献越少。在各种ImageNet比赛中,国内多家机构的算法模型都呈现出“称霸榜单”的态势,可以说代表了世界领先水平。但这些算法模型大多是基于CUDA 2编程语言、Tensorflow编程框架和GPU开发的。在这些低水平的“硬技术”中,中国科研人员对世界的贡献相对较小。底层研究能力的缺失,不仅会阻碍我国人工智能的基础研究,更重要的是会使我国智能产业成为空中楼阁,走上信息产业受制于核心芯片和操作系统的老路。

图1人工智能研究的一般水平

中国人工智能基础研究能力不足的原因有很多,我认为最根本的原因在于这方面的人才教育和培养不足。没有肥沃的土壤,没有参天大树可以生长。没有具有系统思维的人工智能专业的学生,中国就很难出现像杰夫·迪恩这样的智能计算系统大师,也生产不出具有国际竞争力的智能系统产品。因此,在人工智能学生的培养上,我们应该主动改变现状。

2018,全国35所高校开设人工智能本科专业,这是重新思考和梳理人工智能培养体系的大好机会。据我所知,大部分高校在考虑人工智能课程体系时,都是采用纯算法、纯应用的教学思路。这样培养出来的学生还是偏向上层应用开发,缺乏对智能计算系统的全面理解。

其实高校有识之士很多,在课程设计上绕过系统课程往往受制于三个客观困难:一是国内可供参考的人工智能系统课程不多;二是国内人工智能系统课程师资匮乏;第三,国际上缺乏人工智能系统课程的教材。

基于自己的研究背景,对人工智能的算法和系统有一些粗浅的认识。能否为解决人工智能系统课程、师资、教材等方面的困难尽一份绵薄之力?有没有可能培养一些具有系统思维和能力的人工智能学生?

因此,在2018学年,我向中国科学院大学申请开设人工智能的系统化课程,命名为“智能计算系统”(曾名为“智能计算机”),希望培养学生对智能计算完整的软硬件技术栈(包括基本智能算法、智能计算编程框架、智能计算编程语言、智能芯片架构等)的全面理解。).这门课程受到学生的欢迎,许多选择不参加课程的学生跟随了整个学期。特别让我感动的是,其他研究所的学生自发从中关村来到怀柔听课。从最后一节课开始来回开车花了三个小时,回到中关村已经是深夜了。这可能说明这门课对学生是有吸引力的,大家听课都有实实在在的收获。

人工智能专业学生的培养与课程体系

人工智能专业的课程体系设计应服务于学生的培养目标。那么高校人工智能专业应该培养什么样的学生呢?

这个问题可能没有统一的答案。与人工智能专业非常接近的计算机专业相比,显然高校的计算机专业培养的不是计算机用户,而是计算机机器或子系统的研究人员、设计人员和制造人员。

我国计算机专业的前辈在60多年前开始设置计算机专业时,就有一个高瞻远瞩的计划,培养计算机机器或子系统的研究人员、设计人员和制造人员。经过60年的演变,这个方案依然基本保持了当年的初衷。如今,各高校的计算机专业基本上都开设了计算机组成原理、操作系统、编译原理、计算机体系结构等系统的必修课(见图2)。也就是说,虽然大部分计算机专业的学生毕业后从事的是软件开发,但对计算机硬件系统还是有基本了解的。

图2网易云课堂3计算机专业培养方案

人工智能专业学生的培养目标应该是人工智能系统或子系统的研究者、设计者和制造者。只有实现这一目标,高校培养的人才才能持续、全面地支撑我国人工智能的产业和研究。为了实现这个目标,人工智能专业的课程设计应该软硬兼施(就像计算机专业一样)。如果人工智能专业只开设机器学习算法、视听应用等课程,充其量只能算是“人工智能应用专业”或“人工智能算法专业”。毕竟算法只是冰山一角,冰山的90%还是硬件和系统。

以谷歌为例,这家公司拥有全球最大的AI算法研究团队。谷歌董事长约翰·汉尼斯是计算机架构科学家,也是图灵奖获得者。谷歌AI总经理杰夫·迪恩(Jeff Dean)是一名计算机系统研究员;Google AI最显著的三个进步(Tensorflow、AlphaGo、TPU)都是系统,而不仅仅是某个特定的算法,算法只是系统的一部分。所以从人工智能的国际学术主流来看,系统和算法一样重要。

只学过算法的同学可能擅长调整模型参数,但对一个算法的耗时耗力毫无感觉。这样的学生不具备将一个算法应用于工业系统的基本技能(因为一个算法如果真的要被使用,必须满足延迟和能耗的限制)。

只有加入system line的课程,学生才能真正理解人工智能是如何工作的,包括一个人工智能算法如何调用编程框架,编程框架如何处理操作系统,编程框架中的运算符如何一步步在芯片上运行。这样的学生可以自己构建复杂的系统或子系统,在科研上会有更大的潜力,在行业中的竞争力也会更强。正如业内人士所说,“Tensorflow将用于年赚30万人民币,Tensorflow将设计为年赚30万美元。”

很多老师跟我说:“人工智能专业真的应该有一些系统的课程。但是国内从来没有过这样的课,也没有合适的教材。我们学院也缺乏相应的老师来教授这样的课程。”这是三个实际的客观难点,但不应该影响我们人工智能专业的课程设计。

从学生的角度来说,人工智能专业开设什么课程,应该是基于国家和企业对学生会有什么需求,而不是完全基于现在的老师会做什么。60年前,我们国家很少有人见过电脑,更别说开课了。但对于两弹一星等科学和工程计算任务,中国还是成立了中科院计算技术研究所,在计算技术研究所举办了计算机教师培训班,在清华、中科大等高校开设了计算机专业(此处无法一一列举),导致了今天中国庞大的计算机产业。

从老师的角度来看,人工智能的系统研究已经成为国际学术热点。教这类课程是一个互相学习的过程,可以帮助老师走到国际学术的前沿。今年,来自Top4大学(斯坦福大学、卡内基梅隆大学、加州大学伯克利分校和麻省理工学院)和其他国际机构的美国计算机研究人员联合发布了一份名为“机器学习系统”的白皮书。在这样一个新兴的热门方向培养一批青年教师,对于提升所在高校乃至中国在人工智能学术领域的影响力,无疑有很大的帮助。

因此,对于人工智能专业的学生和教师来说,开设系统课程是必要的,也是切实可行的。

什么是智能计算系统?

简单来说,智能计算系统是人工智能的物质载体。目前,智能计算系统通常是集成通用CPU和智能芯片(NVIDIA GPU或寒武纪MLU等)的异构系统。),并为开发者提供了智能计算编程框架和编程语言。之所以要在通用CPU中加入智能芯片,主要是因为通用CPU很难满足人工智能计算日益增长的速度和能耗要求。比如2012,Google Brain花了16,000个CPU核运行了几天来训练如何识别猫脸,对于工业应用来说很难接受。显然,为了真正使用人工智能技术,必须使用异构智能计算系统。为了降低异构智能计算系统的编程难度,需要有一个智能计算的编程框架和编程语言。

事实上,智能计算系统已经以各种形式广泛渗透到我们的生活中。IBM的超级计算机Summit利用机器学习预测天气,BAT的数据中心运行大量广告推荐任务,华为的手机集成寒武纪深度学习处理器处理图像分析和语音识别,特斯拉的autopilot系统……都可以算是智能计算系统。在智能时代,中国乃至全世界都需要大量智能计算系统的开发者、设计者和使用者。

智能计算系统的发展不是一朝一夕的事情。80年代面向符号智能处理的专用计算机(Prolog和LISP)可以看作是第一代智能计算系统。但当时人工智能缺乏实际应用,算法也不成熟。而且当时摩尔定律还处于高速发展阶段,专用计算机相对于性能每18个月就能翻倍的通用CPU并没有太大优势。因此,第一代智能计算系统逐渐退出了历史舞台。

《智能计算系统》课程重点介绍第二代智能计算系统,主要是用于深度学习等机器学习任务的计算机。与30年前的第一代智能计算系统相比,今天的第二代深度学习智能计算系统可以说是遇到了天时、地利、人和。目前,图像识别、语音识别、自然语言理解、游戏、广告推荐等人工智能应用已经开始落地,深度学习算法的发展速度令人应接不暇。更重要的是,通用CPU的性能发展已经停止,要支撑深度学习算法的不断发展,必须依靠智能计算系统。因此,深度学习智能计算系统将是学术界和工业界长期关注的焦点。“智能计算系统”课程将帮助学生深入了解深度学习智能计算系统。

第二代智能计算系统主要支持深度学习等机器学习任务。未来,如果人类真的要在通用人工智能的道路上向前迈进一步,未来第三代智能计算系统需要支持的算法将远远超出机器学习的范畴,必须包括联想、推理、涌现等高级认知智能算法。我个人猜测,第三代智能计算系统可能是一个孵化通用人工智能的虚拟世界环境。“智能计算系统”课程可能会激发学生的好奇心,吸引他们在未来致力于第三代智能计算系统的研究。

智能计算系统课程概况

“智能计算系统”课程主要面向人工智能、计算机和软件工程专业的大四本科生或研究生。课程目标是培养学生全面理解智能计算完整的软硬件技术栈(包括基础智能算法、智能计算编程框架、智能计算编程语言、智能芯片架构等。)并成为智能计算系统(子系统)的设计者和开发者。

课程前言包括C/C++程序设计语言,计算机组成原理与算法导论(或称机器学习)。课程课时比较灵活,可以是大学上学期(40课时,课程大纲见表1),短学期可以集中一周(20课时),也可以嵌入其他机器学习课程作为补充。对于20个小时的短期学习,课程希望学生能够对智能计算系统“知其然”,主要是为了实际操作;40个小时的长期学习,课程希望学生能“知道为什么”智能计算系统,所以要把机理讲透。

表1智能计算系统课程大纲(40学时)

在课程教学中,我们应该坚持两个原则。首先是应用驱动。一门好的工科要学以致用,尤其是“智能计算系统”这门课。如果只是在课程结束后学习一些定理和公式,基本上是无效的。另一个原则是全栈穿透。过去计算机专业的课程设计存在一个问题,就是有明显的条块分割,比如操作系统和计算机体系结构的分离,操作系统对计算机体系结构提出什么要求,计算机体系结构对操作系统有什么支持,没有一门课程把这些联系在一起。“智能计算系统”作为一门高年级的本科(或研究生)课程,有义务帮助学生将过去所有的人工智能软硬件知识联系起来,形成整体的认识。

对于“智能计算系统”这门课程,驱动范式是一只抓握的手。在国科大的过程中,我们选择了视频风格转移作为驱动实例。简单来说,风格转移可以保持一个视频每一帧的基本内容,但是改变画面的绘画风格(比如从普通照片转移到毕加索风格或者中国水墨画风格,如图3)。对于学生来说,这是一个在他们能力范围内的有趣且有驱动力的例子。

图3从普通照片向毕加索风格转变的驱动示例

我们围绕如何实现视频的实时风格迁移,带着学生一步一步写算法,移植到编程框架中,为编程框架写算子,为算子设计芯片,搭建多芯片系统,从速度、能效、精度等方面评估这个系统的优劣,然后对系统进行闭环迭代优化。最后给大家一个智能计算系统的实验环境,包括摄像头和智能芯片开发板,让同学们实现一个摄像头拍摄的视频实时转换画风的“半成品”应用。

标签

我妈妈是一名中学老师。在我成长的过程中,给过我很多帮助的前辈、胡、也都是常年浸淫在教学一线,有着极大教学热情的名师。从小到大,这些长辈的言传身教让我深深感受到,教育是一项伟大的事业,可以深刻地改变学生,改变行业,改变社会,改变国家,改变人类。我们今天教给学生的人工智能知识,可能会影响我们国家明天在智能时代的竞争力。所以,虽然我手头有很多基础研究任务,但我仍然愿意把人工智能系统人才的培养作为我未来最重要的使命,把大部分时间和精力花在各个大学“智能计算系统”这门课程的教学和推广上。

非常可喜的是,“智能计算系统”这门新课程得到了很多师生的支持和鼓励,虽然还存在很多缺陷。我们已经或将要在中国科学院大学、北京大学、北京航空航天大学、天津大学、中国科学技术大学、南开大学、北京理工大学、华中科技大学等几所高校联合开设这门课程。今年还将开放本课程的所有PPT、讲义、教材、视频、代码、云平台、开发板,供老师批评指正。非常欢迎你给我发邮件,提出你的宝贵意见。

未来希望与更多培养人工智能专业学生的院校合作,广泛参与人工智能系统课程的交流与探讨,提升人工智能系统课程的教学水平。相信通过大家的共同努力,人工智能系统课程开设的实际困难一定会得到解决,让未来中国培养的人工智能人才没有技术短板。

作为一名年轻教师,我在教学能力和经验上与很多教育领域的前辈有着巨大的差距,我需要学习更多。“智能计算系统”这门课,顶多起到培养我国人工智能系统能力的作用。正如鲁迅先生在《热风·随想》中为青年人写的一段话所说:“如果有一点热,一点光,它就会变成萤火虫,或者它能在黑暗中放出一点光...如果有火炬,太阳出来了,我们自然会...随心所欲地赞美火炬或太阳;因为他给人类拍照,甚至是我。”

脚注:

1本文发表在《中国计算机联合会通讯(CCCF)》第5期,2014。/机构/机构明细?id=3738875863074816。_ack=1 .

2 CUDA:计算统一设备架构,计算统一设备架构。

3另见

点击“阅读原文”加入CCF。