@MLWhiz:我花了两个多月的时间撰写GenAI Fundamentals系列——这是我试图建立关于“LLMs如何运作”的思维模型…
摘要
拉胡尔(MLWhiz)撰写的综合博客系列从零开始构建对LLMs的理解,涵盖transformer、预训练和后训练五个部分。
查看缓存全文
缓存时间: 2026/07/09 09:40
我已经花了两个多月的时间撰写《GenAI基础》系列文章——这是我从零开始构建“LLM到底是怎么工作的“心智模型的尝试,没有含糊其辞。刚刚添加了第五部分。五个部分按顺序排列如下:
- 用MLE的方式理解Transformer——在你写一行代码之前,先明白Transformer到底是什么。https://buff.ly/dFUh4AH
- 揭开Transformer的神秘面纱——让我们真正搭建一个——从零开始的实现:注意力机制、位置编码、那些容易出错的地方。https://buff.ly/G71JxyX
- 什么是LLM?Token、嵌入与大图景——从原始文本到下一个Token预测,包括Token化的一些趣事。https://buff.ly/M2Tj2aN
- 预训练101:数据、规模与损失函数——随机权重如何变成基础模型:交叉熵、数据管道、计算预算。https://buff.ly/VQcz2fM
- 后训练101:从基础模型到助手——基础模型如何变成ChatGPT/Claude/DeepSeek-R1:SFT、RLHF vs DPO、KTO,以及RLVR/GRPO推理时代。https://buff.ly/4DrUbv9
这条脉络是:先建立直觉,再动手构建,理解它预测什么,理解它如何被训练,最后理解它如何成为助手。如果你曾对“Transformer架构“点头称是却不确定注意力机制为什么有效,那就从第一部分开始吧。
用MLE的方式理解Transformer
来源:https://www.mlwhiz.com/p/transformers?utm_content=bufferad5c1&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
[图片]
嘿,我是Rahul!👋
每周我都会在MLwhiz上发布长篇ML+AI文章,涵盖ML、AI和系统设计。付费订阅者还能获得包含完整代码演练的操作指南。我偶尔会发布额外的文章。如果你想成为付费订阅者,点击这里:
在接下来的几周里,我会写更多关于GenAI的内容,包括预训练和后训练等主题。这篇文章是基础篇之一,旨在为这个系列打下基础。
[图片]
[图片]
Transformer已成为几乎所有任务的默认标准。尽管这个架构最初是为NLP引入的,但现在它驱动着计算机视觉、推荐系统,以及最重要的——整个现代LLM浪潮。然而,尽管无处不在,Transformer仍然难以理解。我读了多遍谷歌那篇首次引入Transformer的研究论文(https://arxiv.org/pdf/1706.03762.pdf),再加上无数博客文章,才真正理解Transformer的工作原理。所以,我想用尽可能简单的语言、一些非常基础的数学知识以及一些双关语(因为我主张学习要有乐趣)把整个概念讲清楚。我会尽量减少术语和难度,但这是个深奥的话题,我只能尽力而为。我的目标是让读者在读完这篇文章后,即使是最琐碎的细节也能理解。
另外,这篇正式是我最长的一篇文章,无论是写作时间还是篇幅。所以我建议你拿杯咖啡。 ☕️
在我们深入之前,先看看我们要走的路线:我们从Transformer是做什么的大图景开始,然后拆解编码器堆栈(注意力、前馈网络、位置编码,以及那些神秘的“Add & Norm“框)。然后,我们会转到解码器堆栈及其关键技巧——掩码,再装上输出头来真正得到我们的德语单词,最后介绍整个结构如何训练以及如何在测试时进行预测。路很长,但我保证风景值得。开始吧。
问:那么,我为什么要理解Transformer?
过去,LSTM和GRU架构(如我之前的NLP文章(https://www.mlwhiz.com/p/deeplearning_architectures_text_classification)中所解释的)以及注意力机制曾是语言建模问题(简单来说,预测下一个词)和翻译系统的State of the Art方法。但这些架构的主要问题是它们是循环性质的,运行时间随着序列长度增加而增加。也就是说,这些架构以顺序方式处理句子中的每个词,因此随着句子长度增加,整个运行时间增加。
Transformer,一种在论文《Attention is All You Need》中首次解释的模型架构,放弃了这种循环,完全依赖注意力机制来捕捉输入和输出之间的全局依赖关系。这使它更快。
[图片]
来自论文
这是论文中的完整Transformer图。它确实令人望而生畏。所以在这篇文章中,我将通过逐一讲解每个部分来揭开其神秘面纱。请继续阅读。
问:听起来很有趣。那么Transformer到底做什么?
本质上,Transformer几乎可以执行任何NLP任务。它可用于语言建模、翻译或分类,并且通过消除问题的顺序性来快速完成。因此,在机器翻译应用中,Transformer将一种语言转换为另一种语言;对于分类问题,它将使用适当的输出层提供类别概率。一切都取决于网络的最终输出层;Transformer的基本结构对于任何任务都基本保持不变。
在这篇文章中,我将继续使用机器翻译的例子。从很高的层次来看,这就是翻译任务的Transformer的样子。它输入一个英语句子,返回一个德语句子。
[图片]
用于翻译的Transformer
问:这太基础了。😎 你能详细讲讲吗?
好吧,记住,这是你要求的。我们更进一步,试着理解Transformer的组成。基本上,Transformer由一堆编码器和解码器层组成。编码器层的作用是使用注意力机制将英语句子编码为数字形式,而解码器旨在使用来自编码器层的编码信息为特定英语句子提供德语翻译。
在下图中,Transformer接收一个英语句子作为输入,该句子经过6个编码器层编码。最后一个编码器层的输出然后进入每个解码器层,将英语翻译成德语。
[图片]
Transformer中的数据流
问:那还不错,但编码器堆栈具体如何编码一个英语句子?
耐心点,我正要说。正如我所说,编码器堆栈包含六个相互堆叠的编码器层(论文中给出了这个数字,但后续版本的Transformer使用了更多层)。堆栈中的每个编码器基本上有两个主要层:
- 多头自注意力层,以及
- 位置级全连接前馈网络
[图片]
非常基础的编码器层
这两个名称很拗口,对吧?先别放弃,因为我将在接下来的部分中解释它们。现在,只需记住编码器层包含注意力和位置级前馈网络。
问:但这一层期望输入是什么形式?
这一层期望输入的形状为SxD(如下图所示),其中S是源句子(英语句子)的长度,D是嵌入的维度,其权重可以与网络一起训练。在这篇文章中,我们将默认使用D=512。而S是一个批次中句子的最大长度,因此它通常随批次变化。
相似文章
@DanKornas:通过结构化的斯坦福课程学习LLMs和生成式AI。你将学到:- 理解transformer和LLM概念…
一门结构化的斯坦福课程被分享,涵盖transformer和LLM概念,不将其视为黑箱。
@Ai_Vaidehi: 使用LLM构建AI系统的步骤。下面我给出了一个简单详细的解释。步骤1 – 大语言模型(LLMs) (𝗟𝗮𝗿�…
使用LLM构建AI系统的逐步指南,涵盖从选择模型到使用框架、向量数据库和数据提取工具进行评估的步骤。
@oliviscusAI:OpenAI 联合创始人刚刚发布了他的个人指南,教你从头训练大语言模型。它叫 llm.c。无需繁琐设置。只…
OpenAI 联合创始人 Andrej Karpathy 发布了 llm.c,这是一份开源指南,教你如何从头训练大语言模型。代码简洁,可在任何硬件上运行,包括 CPU 和 MacBook,并且比标准方法快 7%。
@TheAhmadOsman: 不可思议的资源 从第一性原理理解LLM的最完整指南现已可在网上阅读…
一份全面的免费指南,从第一性原理解释LLM,涵盖令牌、Transformer、注意力机制、微调和本地部署。
@techNmak: 从零构建LLMs 发现来自Vizuara的宝藏,一个43讲的系列课程,真正兑现了承诺:构建…
Vizuara的43讲系列课程教你如何从零构建LLMs,涵盖Transformer架构、GPT内部原理、分词(BPE)和注意力机制,并提供完整的Python实现。