当前位置: 首页» 聚焦

智能计算系统 :专栏·最前线 | 中国石油大学(北京):产学研齐头并进,初生犊攻坚克难!

2021年寒假期间举办的智能计算系统教学研讨班,邀请到了来自不同高校的6名具备一定开课经验的一线教师代表,与参会老师们共同分享探讨教学心得与经验。

2020年4月,《智能计算系统(导论)》在中国石油大学(北京)信息科学与工程学院开课,学时32。这是我们首次面向低年级大一学生的开课尝试,教学团队迎难而上,积极适应性调整教学内容与课程模式,切实帮助学生提高综合能力。

今天,我们请到了中国石油大学(北京)的授课教师——刘伟峰老师,来为我们分享《智能计算系统》的开课教学经验与心得。

1b95b474e69e4a1e82a34806c9e250a9.jpg

刘伟峰中国石油大学(北京)教授、博士生导师。2002年和2006年分别于中国石油大学(北京)计算机科学与技术系获学士与硕士学位,2016年于哥本哈根大学尼尔斯·玻尔研究所获计算科学博士学位。他的主要研究方向为数值线性代数和并行计算,其中尤其关注稀疏矩阵的数据结构、并行算法和软件。他关于并行稀疏矩阵计算的开源代码被众多数学库所采用,多种实际科学与工程应用因此获得显著性能提升。他的研究工作发表于SC、ICS、PPoPP、ASPLOS、IPDPS和ICPP等重要国际会议,并担任SC、ICS、IPDPS、ICPP、Cluster和Euro-Par等多个重要国际会议的技术程序委员会委员,以及TPDS、SISC和TKDE等多个重要国际期刊的审稿人。

2020年授课情况

2020年春季学期,中国石油大学(北京)信息科学与工程学院面向大一学生,开设《智能计算系统(导论)》课程,学时32。

授课方式:线上授课

选课人数:课程对于大一本科生而言难度很大,我们原本对于选课人数的预期也比较低。为了让老师们能够更好地备课,我们把课程的开课时段放在整个学期的后8周,这个安排与同学们的高数和物理期末考试时间冲突,再加上五一放假减少了6个学时的课程,导致同学们在有限的学习时间内除了应付其他课程的考试,还需要吃透这门高难度的综合性课程,“压力山大”。同学们最初的选课热情超过我们的预期,超过80人,但因为开设在大一,设为选修课,支持学生随时退课,最终坚持到最后并通过期末考核的学生有19人。第一次在大一尝试,有19人坚持下来,我们觉得已经很棒了。

授课团队:授课团队由5名教师组成,分别为刘伟峰(6)、鲁强(2)、范江波(6)、吴双元(6)、张丽英(6)(括号数字代表每位老师对应的授课学时)

助教团队:助教团队有9人,由低年级研究生和高年级本科生组成,由于最开始选课人数多,所以助教人数也安排比较多,最终选课人数缩减后,实际上是一名助教对应两名同学,保证了良好到位的教学辅导。

实验安排:学生不分组,2大实验+6个小作业

考核方式:无笔试无考勤,6个小作业以报告方式考核

课程内容设置

不同于其他学校,中国石油大学(北京)此次开课,面对的是低年级的大一本科生。对于他们而言,没有足够的前序知识铺垫,也没有建立较为完善的知识体系和系统性思维,教授这门课挑战十足。面对这种情况,刘老师与教学团队老师们迎难而上,创新性地将《智能计算系统》课程实现“适应性降维”调整,课名改为《智能计算系统(导论)》,在课程内容和教学方式上也做了相应的改变,让我们来看看他们是怎么做的吧!

1. 绪论部分(陈云霁,鲁强,第1-2学时)

选课学生在前八周通过《智能计算系统》教材和B站公开课先行自学部分课程。

第一堂课,陈云霁老师进行了线上开班致辞,陈老师的亲临指导给欢欣鼓舞的同学们打了一剂“强心针”;之后,由对知识图谱方面比较专业的鲁强老师,在人工智能的发展历史和典型应用场景上进行了图文并茂、丰富多彩的介绍,帮助同学建立对人工智能和智能计算系统整体的认知与理解。

2. 机器学习基础(范江波,第3-8学时)

首先讲授学习智能计算系统所需要理解的基本机器学习知识,包括矩阵-向量计算和NumPy使用、线性回归、三层神经网训练和其中矩阵-向量计算的重要性。由于后期对TensorFlow的学习需要这样的编程环境,而大一的同学很多没有接触过Python以及线性代数的知识,对矩阵-向量计算概念相对模糊。在授课结束后,范老师留了一些作业,包括线性回归是如何和神经网络产生联系的,以及神经网络训练的计算过程,矩阵-向量计算的表达等。

3. 期中Project汇报(第9-10学时)

期中Project题目:浅层神经网络运行分析

期中Project前置自学内容:除了范老师在之前讲解的知识外,同学们需要自学吴恩达深度学习课程的第三周之浅层神经网络。为了降低同学们的学习难度,老师们会给出编程答案。

期中Project要求:要求能够结合理论,理解整个程序的架构,对语句做注释,真正理解每段程序的含义。针对智能计算系统,老师特别要求学生需要插入time.time()函数记录关键步骤运行时间,找出其中耗时最长的几个函数,并尝试解释其功能和耗时较长的原因。

期中Project考核形式:以PPT形式,独立答辩,每人汇报5分钟;上交PDF格式报告,包括代码、注释、执行时间分析等。

汇报反馈:刘老师提到,同学们在此次汇报的完成上相当不错。

4. 深度学习框架和模型(吴双元,第11-16学时)

首先讲授最后大实验所需的TF框架的基本使用方式,之后讲授和分析LeNet、 AlexNet等典型的深度学习模型,以及其中的卷积、池化等主要计算模式,并分析计算和访存量,从而为之后做系统与高效计算奠定基础。最后引入图像风格迁移,并联系到之前讲授的一系列知识,考虑到有一定难度,老师们尽量做到能够浅显易懂地把知识讲给同学们。

5. 系统基础知识(刘伟峰,第17-18学时)

刘老师提到,“如果说计算机系统和体系结构以及智能计算系统这门课程之间取一个交集点的话,这个交集一定是矩阵计算,这也是这几门课程最重要的知识点。” 由于采取线上授课的形式,绘图较为容易,因此在上课时,刘老师会给同学们线上画点积算法,讲授矩阵相乘的点积算法和行-行算法,之后讲授矩阵相乘的分块算法和使用AVX2的实现,然后现场编程和编译运行,分析三种算法的性能。最后结合课程B站视频,引导同学们建立对计算和访存的认识。

6. BangC基础知识(刘伟峰,第19-20学时)

这部分内容首先介绍协处理器硬件架构和程序设计模式,之后现场从0开始编写一个BangC程序的host代码,接着为同学们讲解BangC开发手册,分析DLP存储层次结构,并编写使用gdram和sram的BangC程序。

7. 关键论文导读(刘伟峰,第21-22学时)

论文导读部分的课程引入,是《智能计算系统》课程在各大高校开课以来的首次实践。引入此部分内容的考虑在于,刘老师认为,业内的一些知名企业/产业,在最初很多都是基于一个想法,到一份Paper,在经历无数次的尝试与实践后最终落地实现规模化应用。刘老师希望能够带领同学们逐步了解如何从一份paper到一个产业的衍化逻辑,希望同学们不仅能够掌握技术,还能掌握行业发展态势。

刘老师带领同学们用一节课导读与课程相关的在ASPLOS、 ISCA、 MICRO等顶级会议和期刊上发表的关键学术论文,同时也留了作业,要求同学们在2014到2019年的论文中任选两篇进行精读并完成一份报告。在报告中需要给出:

论文的研究内容对应的是《智能计算系统》 教材中哪一章哪一节的知识点;

论文的每一节(指诸如Introduction、 Background and Motivation Experimental Methodology等这种)的主要内容是什么,并写出一个你认为的亮点;

论文的Introduction一节里每一个自然段里的主要内容是什么,并描述这些自然段之间的逻辑关系;

在整篇论文中任选一个比较长的自然段,描述该自然段里每一句话之间的逻辑关系。

8. 实验一与实验二(张丽英,第21-24学时)

实验内容同《智能计算系统》实验一与二,无调整变化。

9. 期末project演示(第25-26学时)

最后期末Project的演示,包含论文阅读的作业、算子集成的作业以及图像风格迁移的作业,通过整体汇报展示,同学们理论与实践的综合水平与系统能力得到显著提升。

0be7cc98380c4f1b923cf9b4e90b90ae.png

(图为学生汇报成果摘选)

教学探讨

1. 如何实现降维的适应性教学

在将更适用于高年级本科生以及低年级研究生的课程“降维”成面向大一本科生的《智能计算系统(导论)》时,刘老师及教学团队发现,这实际上是给授课教学进行了“升维”——同学们为了能够消化吸收这些课程内容,需要短时间内恶补许多基础知识,如Python、线性代数、机器学习、英文文献阅读、Linux等,压力很大,但可见的实际效果是,能坚持到最后的学生的综合素质与自学能力都有明显提升。

2. 课程教学中理论与实验优化结合的探讨

刘老师与教学团队都认为实验非常不错,基于目前的实验,有没有可能把图像风格迁移案例的技术内容进一步细化和拆分,在每一章节都明确学生需掌握的知识点与案例的对应关系。

小编画外音在之前的文章中也提到,去年的学校均采用实验1.0版本,在理论课程全部结束后完成几个实验。随后课程团队对实验内容进行优化迭代,推出实验2.0版本,并配套自动评测平台,在去年下半年预先在北大实行初试点,反馈相当不错,由此在2021年将在各大高校全面推行实验2.0版本。较之1.0版本,2.0版本的实验能够很好地解决刘老师团队此处的探讨:实验以风格迁移作为应用驱动,结合各章节的重难点,设计了多个分章节实验与拓展思考,理论章节与分章节实验一一对应。同学们通过完成每一章学习之后的实验内容,能够明晰切实地掌握理论知识。在层层递进的分阶段实验中,将软硬件知识点贯穿起来,让学生真正掌握智能计算系统的部署与优化。

3. 如何能够高效准确地验证学生对课程内容的掌握程度(如何判断“玩家把怪打死了”)

小编画外音如何高效把握学习进度,如何直观感受知识的“获得”,也是课程团队在去年一年实践中思考的问题。在不久的未来,《智能计算系统》教学团队将推出配套的实践教程,并利用各章节实验抽象得出的多个知识点构建“智能计算系统知识树”:学生每完成一个实验,便能够“点亮”知识树的一部分。通过遍历知识树,学生可以更好地直观掌握各个知识点之间的有机联系,获得对整个技术栈的体系性理解。同时,为了调动学生的学习积极性,我们也在考虑更有意思、互动性更强的课程模式,使之不再单单是一门课程或一本书,而成为对教学的一种新尝试,这种创新的教学机制具体怎样帮助提升学生的学习热情,让我们拭目以待!

详情见链接:https://mp.weixin.qq.com/s/omhaGWX5LsM_X8ZZiykdow

(编辑 刘晓玉)

分享到: