神经网络:从零到精通

Andrej Karpathy 开设的一门关于从头开始用代码构建神经网络的课程。我们从反向传播的基础知识开始,构建现代深度神经网络,例如 GPT。在我看来,语言模型是学习深度学习的绝佳场所,即使您的目的是最终进入计算机视觉等其他领域,因为您学到的大部分内容都可以立即转移。这就是我们深入研究并关注语言模型的原因。

先决条件:扎实的编程(Python)、初级数学(例如导数、高斯)。与他人一起学习会更容易,请在我们的 Discord 频道中打个招呼:

教学大纲 


 神经网络和反向传播的详细介绍:构建微梯度(https://www.youtube.com/watch?v=VMj-3S1tku0

这是对神经网络反向传播和训练最详细的解释。它只假设你具备 Python 的基本知识和高中微积分的模糊记忆。

第一部分:语言建模的详细介绍:构建 (https://www.youtube.com/watch?v=PaCmpygFfXo)        

我们实现了一个二元字符级语言模型,我们将在后续视频中进一步将其复杂化为现代 Transformer 语言模型,例如 GPT。在本视频中,重点是 (1) 介绍 torch.Tensor 及其微妙之处以及在有效评估神经网络中的用途,以及 (2) 语言建模的整体框架,包括模型训练、采样和损失评估(例如分类的负对数似然)。

第 2 部分:MLP 
https://www.youtube.com/watch?v=TCH_1BHY58I

我们实现了多层感知器(MLP)字符级语言模型。在本视频中,我们还介绍了机器学习的许多基础知识(例如模型训练、学习率调整、超参数、评估、训练/开发/测试分割、欠拟合/过拟合等)。

第 3 部分:激活和梯度、BatchNorm(https://www.youtube.com/watch?v=P6sfmUTpUmc

我们深入研究多层 MLP 的一些内部结构,并仔细检查前向传递激活、后向传递梯度的统计数据,以及它们缩放不当时的一些陷阱。我们还研究了您想要用来了解深度网络健康状况的典型诊断工具和可视化。我们了解为什么训练深度神经网络可能很脆弱,并介绍了第一个使训练变得更加容易的现代创新:批量归一化。剩余连接和 Adam 优化器仍然是后续视频中值得注意的待办事项。

第 4 部分:成为 Backprop Ninja(https://www.youtube.com/watch?v=q8SA3rM6ckI

我们从之前的视频中获取 2 层 MLP(带有 BatchNorm),并手动反向传播,而不使用 PyTorch autograd 的 loss.backward():通过交叉熵损失、第二个线性层、tanh、batchnorm、第一个线性层和嵌入表。在此过程中,我们对梯度如何在计算图中向后流动以及在高效张量的水平上获得了强烈的直观理解,而不仅仅是像微梯度中的单个标量。这有助于培养围绕如何优化神经网络的能力和直觉,并使您能够更加自信地创新和调试现代神经网络。

第 5 部分:构建 WaveNet(https://www.youtube.com/watch?v=t3YJ5hKiMQ0

我们采用之前视频中的 2 层 MLP,并通过树状结构使其更深,得到类似于 DeepMind 的 WaveNet (2016) 的卷积神经网络架构。在 WaveNet 论文中,使用因果扩张卷积(尚未涵盖)可以更有效地实现相同的分层架构。一路走来,我们对 torch.nn 有了更好的了解,它是什么,它在幕后是如何工作的,以及典型的深度学习开发过程是什么样的(大量阅读文档,跟踪多维张量形状,移动在 jupyter 笔记本和存储库代码之间,...)。

让我们构建 GPT:从头开始,用代码,详细说明。(https://www.youtube.com/watch?v=kCc8FmEb1nY

我们根据论文“Attention is All You Need”和 OpenAI 的 GPT-2 / GPT-3 构建了一个生成式预训练 Transformer (GPT)。我们谈论与 ChatGPT 的连接,它已经席卷了世界。我们观看 GitHub Copilot,它本身就是一个 GPT,帮助我们编写一个 GPT(元:D!)。我建议人们观看早期的 makemore 视频,以熟悉自回归语言建模框架以及张量和 PyTorch nn 的基础知识,我们在本视频中认为这是理所当然的。

 让我们构建 GPT Tokenizer https://www.youtube.com/watch?v=zduSFxRajkE

分词器是大型语言模型 (LLM) 中必要且普遍的组件,它在字符串和标记(文本块)之间进行转换。分词器是 LLM 管道的一个完全独立的阶段:它们有自己的训练集、训练算法(字节对编码),并且在训练后实现两个基本功能:从字符串到标记的encode(),以及从标记返回到标记的decode()。字符串。在本次讲座中,我们从头开始构建 OpenAI 的 GPT 系列中使用的 Tokenizer。在这个过程中,我们会看到LLM的很多奇怪的行为和问题实际上都可以追溯到标记化。我们将讨论其中的一些问题,讨论为什么标记化有问题,以及为什么有人理想地找到一种方法来完全删除这个阶段。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值