本篇原文来自于作者Rohit Patel的长篇雄文《Understanding LLMs from Scratch Using Middle School Math-A self-contained, full explanation to inner workings of an LLM》(用中学数学从零开始理解大型语言模型:LLM内部原理的完整全解读》)。由于中英文表达的差异以及较多的数据科学专业名词,原文中仍然有一些较晦涩与解释不清之处。因此,我们在原文翻译的基础上,进行了适当的改写与充实,以帮助大家更好的理解这篇文章。相信你如果完整阅读完本文,一定会对LLM的工作原理有崭新的认识。
本文中将从头开始讲解大语言模型(LLM)的工作原理——**假设你只会加法和乘法,也不会引用其他知识来源。我们从用纸和笔构建一个简单的神经网络模型开始,然后逐步深入,带你全面理解现代 LLM 和 Transformer 架构的所有细节。文章会尽量剥离掉机器学习中的复杂术语和行话,把所有内容还原为最简单的形式:数字。但必要时我们会解释相关术语,以便你在阅读带有术语的内容时能有所参照。
一、一个简单的神经网络
你可以把神经网络模型看作一个魔法“盒子”,放进去一些信息,会“吐出“你期望的信息。比如,放进去一张图片,输出图片的类别;放进去一段文字,输出文字的情感类别。但要注意的是,神经网络只能接受数字作为输入,也只能输出数字——没有例外。所以,设计的核心就在于如何将输入转化为数字,将输出数字解释为对目标的实现,最终构建能够处理你提供的输入信息,并生成所需输出信息的神经网络。
现在来看如何用加法与乘法构建一个能够对物体进行分类的简单神经网络。在这个模型中:
输入的信息为已知物体的数据:
- 颜色值(RGB 值)
- 体积(单位:毫升)
目标输出是物体的分类:
- 叶子(Leaf)
- 花朵(Flower)
这里有两个例子输入信息:
接下来,我们构建一个能够完成此分类任务的神经网络。
首先需要决定的是如何解释输入和输出,即让输入输出“数字化”。由于这里的输入已经是数字,因此可以直接送入神经网络。但输出的是类别—叶子或者花朵,而神经网络无法直接输出这些类别。因此,考虑两个方案让输出的数字和类别对应:
方案 1:输出一个数字。如果数字为正,则判断为叶子,否则判断为花朵。
方案 2:输出两个数字,分别代表叶子和花朵(的概率),较大的数字代表分类结果。
我们选择方案 2,因为它在后续的扩展中更具通用性。以下是使用该方案的神经网络示意图:
在这个图中,我们输入了四个数字(色值与体积),输出了两个数字。由于输出代表叶子的数字为0.8,代表花朵的数字为0.2,所以分类结果就是叶子(0.8>0.2)。
解释图中的三个术语:
- 神经元/节点(Neurons/nodes):图中圆圈内的数字。
- 权重(Weights):图中连线上的数字。
- 层(Layers):一组神经元被称为一层。上面的神经网络有三层:输入层(4 个神经元)、中间层(3 个神经元)和输出层(2 个神经元)。
如何计算预测结果:
-
假设已经训练好一个神经网络,包括上图中的层次、连线与权重、以及输入输出神经元对应的解释都已经确定与校准。
-
我们将4个数字(RGB与体积)输入到输入层的四个神经元。
-
现在开始向前传播到下一层:将神经元中的数字与连线上的权重相乘,并将结果相加,填入到下一层对应的神经元,依次类推。
-
计算完输出层的神经元后,较大的数字就对应分类结果。在上图中,较大的数字输出在代表叶子的神经元,所以分类结果就是“叶子”。
注意,模型本身并不理解叶子、花朵或 RGB 和体积的含义。它的任务仅仅是接收 4 个数字作为输入,输出 2 个数字。我们根据自己的解释,将输入视为 RGB 和体积,将输出视为叶子或花朵的概率。这种解释完全由我们决定,而模型的任务只是通过合适的权重将输入映射到最后的输出。
有趣的是,我们可以用同一个神经网络处理完全不同的任务。比如,输入云量、湿度等 4 个数字,输出“晴天”或“雨天”的概率。如果权重校准得当,那么这个神经网络就可以同时完成叶子/花朵分类和天气预测的任务!神经网络只会输出两个数字,至于如何解释这些数字,完全由我们决定。
一些被省略的复杂细节:
1. 激活层 (Activation Layer)
含义:
激活层是神经网络中不可缺少的一部分,它对每个神经元的输出值应用一个非线性函数,使得它能够处理更复杂的问题。激活函数常用的有 ReLU (Rectified Linear Unit),它的规则很简单:
- 如果输入值是负数,输出设置为 0。
- 如果输入值是正数,输出保持不变。
上图例子:
在之前的神经网络中,我们有一个中间层的神经元值,比如:
- 一个神经元的值是 -26.6,另一个是 -47.1。
如果我们使用 ReLU 激活函数,这两个值会被替换为 0,因为它们都是负数。在应用 ReLU 激活函数后,神经网络的计算会继续向前传播,使用这些修改后的值来计算下一层的神经元值。
为什么需要激活层:
- 如果没有激活层,神经网络的所有计算(加法和乘法)实际上可以被简化为一个简单的线性计算公式(看下面的例子)。即输出层的每个神经元的值可以直接用输入层神经元值加权求和得到,而不需要额外的中间层。
- 激活层通过引入非线性,使得网络能够学习和拟合更复杂的关系,比如曲线分类问题,而不仅仅是简单的线性分类。
没有激活层的例子:
如果没有激活层,输出层绿色节点的值可以直接表示为输入层的加权求和,比如:
(0.10 * -0.17 + 0.12 * 0.39 - 0.36 * 0.1) x R + (-0.29 * -0.17 - 0.05 * 0.39 - 0.21* 0.1) x G + ……
最终整个网络可以被简化成两层,失去了中间层的意义。
2. 偏置 (Bias)
含义:
偏置是神经元的一个额外数值,用于调整神经元的最终输出值。它与加权求和的结果相加,用于提升模型的表达能力。每个神经元都可以有一个偏置值。
上图例子:
假设中间层蓝色节点的计算公式如下:
其中:
- (32, 107, 56, 11.2) 是输入神经元值(上一层)。
- (0.10, -0.29, -0.07, 0.46) 是对应的权重。
- 0.25 是偏置值。
计算结果为:= -26.35
作用:
- 如果没有偏置,模型只能通过调整权重来拟合/校准输入与输出之间的关系。
- 引入偏置后,即使输入为零,神经元仍然可以输出一个值(偏置的值),从而使网络具有更大的灵活性。
神经网络模型参数的定义:
模型中的参数 (parameters) 包括:
- 所有神经元之间的权重。
- 所有神经元的偏置值。
这些参数是通过模型的训练过程不断优化的。
3. Softmax 函数
含义:
Softmax 是一种将输出层的值转换为概率分布的函数。它的作用是:
- 将所有输出值转化为非负数。
- 确保所有输出值加起来等于 1。
Softmax 的公式如下(看不懂不影响):
其中:
- z_i 是输出层的第 i 个神经元的值。
- e^{z_i} 是指数函数。
上图例子:
假设输出层的两个神经元值分别是:
- 0.8 对应叶子。
- 0.2 对应花朵。
经过 Softmax 处理后,输出值可能变为:
- 叶子:
- 花朵:
此时,输出值为概率,可以更直观地表示分类的信心与结果。
为什么不用直接比较输出值:
- 输出层的值可能是正数或负数,直接比较可能不直观。
- Softmax 确保了值是概率分布,可以在多分类任务中更好地应用。
简单的总结:
- 激活层:引入非线性计算(否则多层就丧失意义),提升神经网络表达能力。
- 偏置:增加模型灵活性,使得输出不完全依赖于输入。
- Softmax:把输出转化为概率分布,更便于理解与解释。
最后,如果加上这几个相对复杂的细节,整个神经网络的工作过程为:
1. 输入层:
- 接收 RGB 和体积(4 个数字)。
2. 中间层:
- 首先对输入进行加权求和,并通过偏置值做调整。
- 然后通过激活函数(如 ReLU)处理,将负值置为 0,正值保持不变。
3. 输出层:
- 中间层的值通过加权求和与偏置调整,得到输出值。
- 假设输出为两个值(如 0.8 和 0.2),表示叶子和花朵的原始分类分数。
- 使用 Softmax 转换为概率分布(如 0.64 和 0.36),最终输出分类结果。
OK,现在我们有了一个简单的神经网络。
二、如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源
,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享
!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 2024行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】