课程概述(DONE)#

课程简介#

《AI 系统》本课程可以作为计算机及相关专业硕博研究生的专业选修课程,它是一门多领域交叉学科,涉及概率论与数理统计、高等数学、数据结构、程序设计、半导体设计、工程系统、计算机体系结构、人工智能、实际工程应用等多门学科。是研究使用计算机系统怎样模拟人类智能的一门学科,是计算机专业智能化方向重要课程。

《AI 系统》该课程旨在帮助学生把握和理解人工智能学科在计算机领域的性质、地位和作用,掌握人工智能系统层面的基本理论、技术、实际应用及研究方向,使学生对人工智能和系统结构的学科范畴有基本了解,为后续学习奠定基础,为学生今后从事相关领域的研究工作或项目开发工作奠定基础,让学生通过编程练习典型应用实例,提升学生的抽象思维能力和理论应用实际能力。

本课程主要围绕人工智能和计算机系统的各个方面的理论基础与技术基础知识而展开,具体来说,本课程的教学目标为:通过以下内容展开介绍,以让开发者了解人工智能系统的来龙去脉,形成人工智能系统的系统化与层次化的初步理解,为后续展开具体的人工智能系统内容打好初步基础。

课程主要包括以下六大模块:

第一部分《AI 系统概述》:AI 基础知识和 AI 系统的全栈概述的AI 系统概述,以及人工智能系统的系统性设计和方法论,主要是整体了解 AI 训练和推理全栈的体系结构内容。

第二部分《AI 硬件体系结构》:硬核篇介绍 AI 芯片概况,从芯片基础到 AI 芯片的范围都会涉及,芯片设计需要考虑上层 AI 框架的前端、后端编译、以及针对 AI 算法的实现角度等相关技术综合设计符合 AI 范式的芯片架构。

第三部分《AI 编译器》:进阶篇介绍 AI 编译器原理,将站在系统设计的角度,思考在设计现代机器学习系统中需要考虑的编译器问题,特别是针对 AI 计算图的中间表达乃至后端优化。

第四部分《AI 推理系统与引擎》:实际应用推理系统与推理引擎,AI 系统领域众多,技术点也非常的多,但本质还是得回归到业务本质,让行业、企业能够真正应用起来,而推理系统涉及一些核心算法是真正在部署与推理端,帮助 AI 业务进行落地。

第五部分《AI 框架核心模块》:介绍AI 框架核心技术,首先介绍任何一个 AI 框架都离不开的自动微分技术,通过自动微分功能后就会产生表示神经网络的图和算子,然后介绍 AI 框架前端的优化,还有最近大模型分布式训练在 AI 框架中的关键技术。

课程前言#

我在2019年来到了华为技术有限公司的 2012 实验室,后来加入了计算产品线从事昇腾产业,是国内为数不多的 AI(Artificial Intelligence, 人工智能)基础研究的发源地之一,很多学生和 AI 基础软硬件研究者慕名而来从事 AI 产业相关技术。这里拥有许多出色的 AI 的算法研究(如自然语言处理、计算机视觉、计算神经学等),同时也拥有一系列关于计算机系统的扎实研究(如操作系统、编程语言、编译器、计算机体系架构、AI 芯片设计等)。

当我在公司内部主要负责 AI 训练框架 MindSpore 和推理引擎 MindSpore Lite 的开发,深刻地了解到了:人工智能算法是如何利用计算机结构体系实现计算加速和部署。反观国内外鲜有相关的材料和课程介绍,大部分都是聚焦在如何开发一个 AI 算法,有更加深入的内容则是解读不同 AI 框架里面的某个注册机制,例如如何注册自定义算子等。再一次对外的交流过程中,我发现很多学生和从业者对人工智能算法,如何利用计算机结构体系实现计算加速和部署尤为兴趣,而且会投来疑惑的眼神。这促使我思考能否在中国这一片 AI 应用落地的摇篮之地,乃至于在国内最顶尖的学校(清华大学、浙江大学、哈尔滨工业大学等知名学府)教学大纲中,是不是缺一门衔接人工智能和计算机结构体系的课程。

我的第一反应是基于目前在华为昇腾从事的 AI 相关的工作来进行拓展。那时,加州大学伯克利分校的《AI Systems(人工智能系统)》课程较为知名,这门课描述了机器学习系统的不同研究方向,内容以研读论文为主;可惜的是,许多论文已经无法经受住时间的检验;微软开放的《AI Systems》课程因为课缺乏对于知识的整体梳理,未能形成完整的 AI 系统知识体系架构;学习完这门课程,学生未能对于从头搭建机器学习系统有明确的思路。华盛顿大学曾短期开过《Deep Learning Systems(深度学习系统)》课程,这门课程讲述了机器学习程序的编译过程。而由于这门课程以讲述 Apache TVM 深度学习编译器为主要目的,对于机器学习系统缺乏完整的教学;另外,斯坦福大学的课程《Machine Learning Systems Design(机器学习系统设计)》因为课程设计人的研究领域以数据库为主,因此该课程专注于数据清洗、数据管理、数据标注等主题;MindSpore 的首席架构师金雪峰老师合作与英国爱丁堡大学的麦络老师开发的《机器学习系统:设计和实现》,由于其内容更加专注于 AI 框架的实现,从而引入了很多跟 AI 系统不相关的强化学习、联邦学习等最新的 AI 算法介绍,但是缺乏从计算机结构体系的整个软硬件系统层视角来系统性论述人工智能系统所涉及的基础软硬件内容。

回首2022年年底,我们已经拥有了优秀的操作系统、数据库、分布式系统等基础性教材。同时,在人工智能相关算法方面也有了一系列教材。然而,无论是国内外,很难找到一本系统性讲述人工智能系统的教材。随着国内的 AI 芯片的公司和大模型基础设施的公司如如后春笋般涌现,但是另外一方面,许多公司和高校实验室不得不花费大量的人力和物力从头培养学生和工程师,使他们加强对于人工智能底层基础设施的认识。这类教材的缺乏已经制约了高校的人才培养,制约了企业人才的培养,不利于高校培养出符合业界学界和时代发展的人才了。因此,开始思考:我们是不是应该推出一本人工智能系统的教科书了呢?

课程开始#

于是便开始设计《AI 系统》这一课程,这门课程讲述了人工智能系统背后的设计理念。慢慢地梳理相关的大纲、知识点,利用自己在工作之余所积累的相关知识点进行串联起来。带着写书的构想,我开始和朋友以及周边的同事沟通。大家都非常认可编写这类书的巨大价值,但是现实的情况是:很少有人愿意做这么一件费力的事情。

而我和同行交流时也发现:他们更愿意改进市面上已经有的教科书,即做有迹可循的事情,而不是摸着石头过河,做从无到有的事情。特别是对于人工智能系统这个快速发展,频繁试错的领域,能不能写出经受时间检验的书也是一个未知数。

传统的图书写作,往往依赖于一、两个教授将学科十余年的发展慢慢总结整理成书。这种模式类似于传统软件开发的瀑布流方式。可是,在科技的世界,软件的发展从传统的瀑布流进化到如今的开源敏捷开发。而图书的写作为什么还要停留在传统方式呢?于是我开始趁着在苏州给C9高校为期三天的人工智能 AI 框架的核心原理的培训这一契机,制作了一系列围绕 AI 框架核心模块 -- 自动微分的原理实现,从胶片到实操代码。并收到了来自浙江大学、上海交通大学、华东师范大学、南京大学等学生的高度好评,于是相隔了2个月之后,在22年的10月份开始尝试制作第一个AI框架原理的视频,并在全网上线,从书籍的撰写到围绕书籍内容进行视频的制作。一个人,没有找到伙伴,凭着一腔热爱技术分享,说干就干!

上线了多期视频后,经过了几个月的视频分享,内容一期又一期,深度来越深,刚开始的时候,因为没有流量,关注的人只有少数的几百人。随着《AI 系统》最初的设计,分享从AI框架慢慢扩展到推理引擎、AI编译器等,我们将项目或者课程名定为《AI 系统》。希望通过分享人工智能系统设计原理,同时也为学生和 AI 行业从业者提供大量人工智能系统实现的实际项目经验分享,让他们在将来工作和科研中遇到实际问题知道该如何分析和解决。

社区构建#

其实从22年10月份开始围绕《AI 系统》的第一个视频开始,并没有在社区引起多大的关注量,做的视频很用心行也没有几个人观看,不过当时候开发《AI 系统》课程的目标很强,因为已经梳理出来一个非常明确的大纲(跟最后的目录几乎接近一致),于是为了自己做技术积累也好,为了让更多的人关注到AI系统这个领域也好,为了计算产业培养更多优秀的人才也好。于是咬咬牙继续坚持了4个月,完成了围绕《AI框架核心模块》的30多个视频。

此时已经到了23年1月份,在23年2月份开始录制AI框架的底层编译器,从传统编译器开始,刚好到了23年2到3月份的时候,国内很多本科和硕士开展编译器的课程,于是我的视频变成了学生们课外的视频读物,粉丝量开始上千,我也收到很多小伙伴的新的反馈,更加坚定自己做视频的动力。

在不断坚持的过程中,也非常感谢身边和家人的无私支持,因为在工作之余持续做技术分享,受限于大部分知识在网络上其知识点非常的少、非常的偏门以外,需要对知识点进行高度的提炼和总结,把自己知道和不知道的深入领域去挖掘、去学习、去深入、去洞察、去梳理、去总结。除此知识的梳理占了大部分时间意外,还要录课,剪视频。每晚到了凌晨2/3点,坚持了1年半左右。

收到分享的视频和PPT在美团、字节、蚂蚁、百度、小红书等公司和清华、北大、中科院、中科大、国防科大等高校的邀请分享以外,他们表示会给到小组内做技术分享,因此决定开源整个视频和内容的制作过程,包括视频里面的每一张图片都尽可能自己进行重绘,让读者更加容易理解和学习。

众智之力#

充分发动众筹、众智的力量后,项目的内容得以持续高质量地添加。自从开源了项目以后,图书的受众快速增长,GitHub上关注度的增长让我们受宠若惊。在社区的推动下,参与进来进行内容审核、视频字幕补充、内容细化的小伙伴越来越多,图书的每一个细节内容快速地补充,所有细节和更加深刻的知识点都已经开始全面推进。这么多年来,我第一次意识到我在人工智能系统中学习到的和积累到的知识,在解决现实复杂问题的时候是如此的有用,能够帮助到这么多人!

很多时候,当我们面对未知而巨大的困难时,个人的力量真的很渺小,即使再渺小的力量下,坚持下去一定会有所收获的。而和朋友、社区一起就变成了强大的力量,让我们鼓起勇气,走出了最关键的一步!希望我们在开源社区的《AI 系统》的内容,能给整个计算产业带来更多的思考和产业落地的借鉴思路。

截止到书稿快接近尾声,本课程已经汇聚超过50个小伙伴的贡献,特别在这里要感谢华为郝志宏、李兆雅同事的牵线,让项目的内容作为浙江大学吴飞教授领衔负责的教育部关键领域硕博核心课程《人工智能系统架构》配套教材,在哈尔滨工业大学软件学院副院长苏统华教授的支持下,已经在哈尔滨工业大学2024年春季开课试行,大受欢迎。

除此以外,需要特别感谢负责AI 硬件体系结构的刘军、张晓天、李明慧、张圣航、刘纬恒、李宗泽、赵文千;感谢负责 AI 编译原理的史家兴、宋一帆、韩昊知、李行、武震卿、张浩、陈庚天;负责 AI 推理引擎的高鑫淼、何伟、刘旭斌、杨璇、徐宏博、栾少、谢迎、刘欣楠、李行、江典恒,感谢负责 AI 框架核心的金傲群。

最后,还要感谢参与字幕和内容校对的张泽斌、魏铭康、王远航、郝嘉伟、陈志宇、刘旭斌、赵含霖、乔凯、孙仲琦、李敏涛、管一铭、谢鑫鑫、邓实诚、杨绎等同学。

最后,我们非常欢迎新成员的加入以提升书籍质量,扩展内容。感兴趣的读者可以通过书籍的 AI 系统社区联系我们。我们非常期待和大家一起努力,编写出一本推动业界发展的AI系统图书!

ZOMI 酱

2024年6月20日

备注#

文字课程开源在 AISys,系列视频托管B 站油管,PPT 开源在github,欢迎取用!!!

非常希望您也参与到这个开源课程中,B 站给 ZOMI 留言哦!

欢迎大家使用的过程中发现 bug 或者勘误直接提交代码 PR 到开源社区哦!

欢迎大家使用的过程中发现 bug 或者勘误直接提交 PR 到开源社区哦!

请大家尊重开源和 ZOMI 的努力,引用 PPT 的内容请规范转载标明出处哦!