这里回顾dlsys第一讲,本讲内容是课程介绍。

课程主页:

大纲

  • 为什么要研究深度学习系统?
  • 课程信息和规划;

课程目标

  • 本课程将为您介绍现代深度学习系统的功能;
  • 您将了解现代深度学习系统的基本概念,例如自动微分、神经网络架构、优化以及在GPU等系统上的高效操作;
  • 为了巩固您的理解,在此过程中(在您的家庭作业中),您将构建(从头开始)needle,这是一个与PyTorch松类似的深度学习库,并在该库中实现许多常见的架构;

为什么要研究深度学习系统?

为什么学习深度学习?

在回答为什么要研究深度学习系统之前,老师首先给出了为什么要学习深度学习的原因?深度学习最近10年来取得惊人的进展,老师这里给出了一些例子:

这些例子大部分都是大机构利用大算力做出来的结果,那么小玩家是否有机会呢?这里老师举了三个例子:

为什么学习深度学习系统?

从谷歌趋势可以看出,深度学习越来越流行,其中几个关键点是深度学习框架(系统)的出现,这说明深度学习系统使得深度学习更加流行:

深度学习系统的威力

老师这里给出了10年前和现在做相同的任务的代码量和时间对比,导致差异的主要原因就是深度学习系统的出现:

学习深度系统的原因

理由#1:为了构建深度学习系统

  • 尽管TensorFlow和PyTorch占据深度学习库的主导地位,但这个领域的竞争环境非常不稳定(例如,最近出现的 JAX);
  • 您可能希望致力于开发现有框架(实际上所有框架都是开源的),或者为特定任务开发您自己的新框架;
  • 这门课(和一些练习)会让你做好准备;

理由#2:更有效地使用现有系统

  • 了解现有深度学习系统的内部结构可以让您更有效地使用它们;
  • 想让你的自定义非标准层在TensorFlow/PyTorch中运行得更快?你会想要了解这些操作是如何执行的;
  • 理解深度学习系统是一种“超能力”,可以让你更有效地完成你的研究目标;

理由#3:深度学习系统很有趣!

  • 尽管它们看似复杂,但深度学习系统背后的核心底层算法(自动微分+基于梯度的优化)非常简单;
  • 与(比如)操作系统不同,您可能可以用 <2000 行(密集)代码编写一个“合理的”深度学习库;
  • 当你第一次构建你的自动微分库,并意识到你可以在不知道你将如何从数学上推导它的情况下获取梯度的梯度.;

课程信息和规划

这里老师做了自我介绍,并对课程的在线版本做了说明,这里只回顾部分内容。

课程学习目标

  • 在本课程结束时,您将了解现代深度学习库的基本功能,包括自动微分、基于梯度的优化等概念;
  • 您能够真正从头开始实施多种标准深度学习架构(MLP、ConvNet、RNN、Transformer);
  • 您将了解硬件加速(例如,在GPU上)如何在现代深度学习架构的底层工作,并能够开发您自己的高效代码;

暂定议题表

  • 广泛的主题:ML复习/背景、自动微分、全连接网络、优化、NN库、卷积神经网络、硬件和GPU加速、序列模型、训练大型模型、transformers + attention、生成模型;
  • 讲座大部分分为“算法”讲座和“实现”讲座(或合二为一);

课程组成

本课程将包括四个主要元素:

  1. 视频讲座;
  2. 基于编程(自动评分)的作业;
  3. (小组)期末项目;
  4. 课程论坛互动/讨论;

说明:

  • 为了从课程中获得全部信息,参加所有这些活动很重要;
  • 参加该课程没有正式的“学分”,但每个家庭作业平均至少达到80%并提交期末项目的人都将获得结业证书;