中学生就能看懂:从零开始理解LLM内部原理【一】

本篇原文来自于作者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 架构的所有细节。文章会尽量剥离掉机器学习中的复杂术语和行话,把所有内容还原为最简单的形式:数字。但必要时我们会解释相关术语,以便你在阅读带有术语的内容时能有所参照。

理论上,一个有决心的人可以基于这里的所有信息重现一个现代的 LLM,因此文章覆盖的内容非常多,也不适合“随便看看”。我们会讲解如下内容:

1. 一个简单的神经网络

2. 这些模型是如何被训练的?

3. 这些模型如何生成语言?

4. 什么使得 LLM 如此有效?

5. 嵌入(Embeddings)

6. 子词分词器(Sub-word tokenizers)

7. 自注意力机制(Self-attention)

8. Softmax

9. 残差连接(Residual connections)

10. 层归一化(Layer Normalization)

11. Dropout

12. 多头注意力(Multi-head attention)

13. 位置嵌入(Positional embeddings)

14. GPT 架构

15. Transformer 架构

1

一个简单的神经网络

你可以把神经网络模型看作一个魔法“盒子”,放进去一些信息,会“吐出“你期望的信息。比如,放进去一张图片,输出图片的类别;放进去一段文字,输出文字的情感类别。但要注意的是,神经网络只能接受数字作为输入,也只能输出数字——没有例外。所以,设计的核心就在于如何将输入转化为数字,将输出数字解释为对目标的实现,最终构建能够处理你提供的输入信息,并生成所需输出信息的神经网络

现在来看如何用加法与乘法构建一个能够对物体进行分类的简单神经网络。在这个模型中:

输入的信息为已知物体的数据:

  • 颜色值(RGB 值)

  • 体积(单位:毫升)

目标输出是物体的分类:

  • 叶子(Leaf)

  • 花朵(Flower)

这里有两个例子输入信息:

接下来,我们构建一个能够完成此分类任务的神经网络。

首先需要决定的是如何解释输入和输出,即让输入输出“数字化”。由于这里的输入已经是数字,因此可以直接送入神经网络。但输出的是类别—叶子或者花朵,而神经网络无法直接输出这些类别。因此,考虑两个方案让输出的数字和类别对应:

方案 1:输出一个数字。如果数字为正,则判断为叶子,否则判断为花朵。

方案 2:输出两个数字,分别代表叶子和花朵(的概率),较大的数字代表分类结果。

我们选择方案 2,因为它在后续的扩展中更具通用性。以下是使用该方案的神经网络示意图:

在这个图中,我们输入了四个数字(色值与体积),输出了两个数字。由于输出代表叶子的数字为0.8,代表花朵的数字为0.2,所以分类结果就是叶子(0.8>0.2)。

解释图中的三个术语:

  • 神经元/节点(Neurons/nodes):图中圆圈内的数字。

  • 权重(Weights):图中连线上的数字。

  • 层(Layers):一组神经元被称为一层。上面的神经网络有三层:输入层(4 个神经元)、中间层(3 个神经元)和输出层(2 个神经元)。

如何计算预测结果:

  1. 假设已经训练好一个神经网络,包括上图中的层次、连线与权重、以及输入输出神经元对应的解释都已经确定与校准。

  2. 我们将4个数字(RGB与体积)输入到输入层的四个神经元。

  3. 现在开始向前传播到下一层:将神经元中的数字与连线上的权重相乘,并将结果相加,填入到下一层对应的神经元,依次类推。

  4. 计算完输出层的神经元后,较大的数字就对应分类结果。在上图中,较大的数字输出在代表叶子的神经元,所以分类结果就是“叶子”。

注意,模型本身并不理解叶子、花朵或 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运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
在这里插入图片描述

掌握大模型技术你还能拥有更多可能性

• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;

• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;

• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;

• 更优质的项目可以为未来创新创业提供基石。

可能大家都想学习AI大模型技术,也_想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把都打包整理好,希望能够真正帮助到大家_。

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,下面是我整理好的一套完整的学习路线,希望能够帮助到你们学习AI大模型。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

三、AI大模型经典PDF书籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四、AI大模型各大场景实战案例

在这里插入图片描述

结语

【一一AGI大模型学习 所有资源获取处(无偿领取)一一】
所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值