跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

深入解读人工智能 LLM 模型工作机制

详细解析了大型语言模型(LLM)的核心架构,涵盖 GPT 模型的基本原理与 Transformer 架构的关键组件。内容从神经网络基础出发,逐步推导至注意力机制、前馈网络及位置编码的实现细节,并对比了编码器与解码器在序列生成任务中的不同作用。通过矩阵运算与统计概念补充,帮助读者理解模型底层逻辑,为掌握大模型开发与应用奠定理论基础。

念念不忘发布于 2025/2/6更新于 2026/10/2589 浏览
深入解读人工智能 LLM 模型工作机制

序言

本节作为整篇的收官之作,将介绍全球首家推动人工智能生成人类语言的公司——OpenAI 的 GPT 模型的基本原理。理解该模型是进入 AI 行业的基础。OpenAI 的创始团队包括科技巨头 Elon Musk 以及 Geoffrey Hinton 的学生伊利亚·苏茨克弗(Ilya Sutskever)。OpenAI 最初公开了 ChatGPT-2 的语言模型(LLM)源代码,但在随后的 ChatGPT-3 及之后的版本中停止了开源。本节介绍的模型由 OpenAI 参与者、现任斯坦福大学教授李飞飞的学生 Andrej Karpathy 基于 ChatGPT-3 模型而来。

GPT 架构

接下来谈谈 GPT 架构。大多数 GPT 模型(尽管有不同的变化)都使用这种架构。使用框图表示法,这就是 GPT 架构的高级示意图:

此时,除了'GPT Transformer 块',其他模块我们都已详细讨论过。这里的 + 号只是表示两个向量相加(这意味着两个嵌入必须同样大小)。来看一下这个 GPT Transformer 块:

就是这样。之所以称之为'Transformer',是因为它源自并属于一种 Transformer 架构——我们将在下一节中详细了解。理解上没有影响,因为这里展示的所有模块我们都已讨论过。让我们回顾一下到目前为止构建这个 GPT 架构的过程:

  • 我们了解到神经网络接收数字并输出其他数字,权重是可训练的参数
  • 我们可以对这些输入/输出数字进行解释,赋予神经网络现实世界的意义
  • 我们可以串联神经网络创建更大的网络,并可以将每一个称为'块',用框来表示以简化图解。每个块的作用都是接收一组数字并输出另一组数字
  • 我们学习了很多不同类型的块,每种块都有其不同的作用
  • GPT 只是这些块的一个特殊排列,如上图所示,解释方式在第一部分已讨论过

随着时间的推移,人们在此基础上做出了各种修改,使得现代 LLM 更加强大,但基本原理保持不变。

现在,这个 GPT Transformer 实际上在原始 Transformer 论文中被称为'解码器'。让我们看看这一点。

Transformer 架构

这是驱动语言模型能力迅速提升的关键创新之一。Transformer 不仅提高了预测准确性,还比先前的模型更高效(更容易训练),允许构建更大的模型。这是 GPT 架构的基础。

观察 GPT 架构,你会发现它非常适合生成序列中的下一个词。它基本遵循我们在第一部分讨论的逻辑:从几个词开始,然后逐个生成词。但是,如果你想进行翻译呢?比如,你有一句德语句子(例如'Wo wohnst du?' = 'Where do you live?'),你希望将其翻译成英语。我们该如何训练模型来完成这项任务?

第一步,我们需要找到一种输入德语单词的方法,这意味着我们要扩展嵌入,包含德语和英语。一种简单的输入方式是将德语句子和生成的英文句子连接起来,并将其输入上下文。为了让模型更容易理解,我们可以添加一个分隔符。每一步看起来像这样:

这可以工作,但仍有改进空间:

  • 如果上下文长度固定,有时会丢失原始句子
  • 模型需要学习很多内容。包括两种语言,还需要知道是分隔符,它应该在此处开始翻译
  • 每次生成一个词时,都需要处理整个德语句子,存在不同偏移。这意味着相同内容的内部表示不同,模型应该能够通过这些表示进行翻译

Transformer 最初就是为此任务创建的,它由'编码器'和'解码器'组成——基本上是两个独立的模块。一个模块仅处理德语句子,生成中间表示(仍然是数值集合)——这被称为编码器。第二个模块生成单词(我们已经见过很多)。唯一的区别是,除了将已生成的单词输入解码器外,还将编码器输出的德语句子作为额外输入。也就是说,在生成语言时,它的上下文是已生成的所有单词加上德语句子。这个模块被称为解码器。

这些编码器和解码器由一些块组成,尤其是夹在其他层之间的注意力块。我们来看'Attention is all you need'论文中的 Transformer 架构示意图并尝试理解它:

左侧的竖直块集合称为'编码器',右侧的称为'解码器'。让我们逐个理解每个部分:

前馈网络

前馈网络是没有循环的网络。第一部分中讨论的原始网络就是一个前馈网络。事实上,这个块采用了非常相似的结构。它包含两个线性层,每个层之后都有一个 ReLU(见第一部分关于 ReLU 的介绍)和一个 Dropout 层。请记住,这个前馈网络适用于每个位置独立。也就是说,位置 0 有一个前馈网络,位置 1 有一个,依此类推。但是位置 x 的神经元不会与位置 y 的前馈网络相连。这样做的重要性在于防止网络在训练时'偷看'前方信息。

交叉注意力

你会注意到解码器有一个多头注意力,其箭头来自编码器。这里发生了什么?记得自注意力和多头注意力中的 value、key、query 吗?它们都来自同一个序列。事实上,query 只是序列的最后一个词。那么,如果我们保留 query,但将 value 和 key 来自一个完全不同的序列会怎样?这就是这里发生的情况。value 和 key 来自编码器的输出。数学上没有任何改变,只是 key 和 value 的输入来源发生了变化。

Nx 堆叠

Nx 表示这个块重复 N 次。基本上,你在将一个块层层堆叠,前一个块的输出作为下一个块的输入。这样可以使神经网络更深。从图上看,编码器输出如何传递给解码器可能让人困惑。假设 N=5。我们是否将每层编码器输出传递给对应的解码器层?不是的。实际上你只需运行一次编码器,然后将同一表示提供给 5 个解码器层。

加与归一化块

这与下方相同(作者似乎只是为了节省空间)。通常包含残差连接(Add)和层归一化(LayerNorm),用于稳定训练过程并加速收敛。

其他内容我们已经讨论过。现在你已经完整理解了 Transformer 架构,从简单的加法和乘法操作一步步构建到现在的完整自包含解释!你知道如何从头构建 Transformer 的每一行、每一加法、每一块和每个单词的意义。

附录

矩阵乘法

在嵌入部分中,我们引入了向量和矩阵的概念。矩阵有两个维度(行数和列数)。向量也可以看作一个只有一个维度的矩阵。两个矩阵的乘积定义为:

点表示相乘。现在我们再看一下第一张图中蓝色和有机神经元的计算。如果我们将权重写成矩阵,输入作为向量,可以将整个运算表示如下:

如果权重矩阵称为'W',输入称为'x',则 Wx 为结果(在此情况下是中间层)。我们也可以将两者转置写作 xW——这是个人偏好的问题。

标准差

在层归一化部分,我们使用了标准差的概念。标准差是一个统计量,用于描述数值的分布范围(在一组数字中),例如,如果所有值都相同,则标准差为零。如果每个值都与这些值的均值相距很远,则标准差会很高。计算一组数字 a1, a2, a3…(假设有 N 个数字)的标准差的公式如下:将每个数字减去均值,然后将每个 N 个数字的结果平方。将所有这些数字相加,然后除以 N,最后对结果开平方根。

位置编码

我们在上文中提到过位置嵌入。位置编码与嵌入向量长度相同,不同之处在于它不是嵌入,且无需训练。我们为每个位置分配一个独特的向量。例如,位置 1 是一个向量,位置 2 是另一个,以此类推。这解决了 RNN 无法并行处理的问题,让模型能够感知词序。

结语

通过上述章节,我们系统地梳理了从基础神经网络到 GPT 架构,再到 Transformer 核心组件的完整技术链路。理解这些底层机制对于开发、微调及应用大语言模型至关重要。在实际工程中,开发者需关注算力优化、数据质量及推理效率,同时结合具体业务场景选择合适的模型架构。随着技术的演进,Transformer 变体不断涌现,但其核心的注意力机制与残差连接思想仍是当前 AI 发展的基石。

目录

  1. 序言
  2. GPT 架构
  3. Transformer 架构
  4. 前馈网络
  5. 交叉注意力
  6. Nx 堆叠
  7. 加与归一化块
  8. 附录
  9. 矩阵乘法
  10. 标准差
  11. 位置编码
  12. 结语

更多推荐文章

查看全部
  • Transformer 模型架构详解与核心组件解析
  • Java 集合框架:接口体系、常用实现、底层结构与线程安全
  • C++ 仿 muduo 库高并发服务器 TcpServer 模块实现
  • 国内主流AI大模型企业及产品布局解析
  • PentAGI AI 自动化渗透工具 Docker 部署实战
  • AI Agent 框架选型指南:OpenClaw、LangChain、AutoGPT、CrewAI 深度对比
  • C++ 测试与调试实战:保障代码质量与稳定性
  • Python 3.12 logging 模块 LogRecord 详解
  • OpenClaw 对接飞书机器人:消息无响应与 Gateway 断开排查
  • Java 处理 JSON 编程实用技巧
  • GitHub 日榜精选:AI Agent、Web 分析与开发工具
  • TCP TIME_WAIT 状态的作用与服务器端状态过多的原因
  • 前端 Promise 详解:从原理到面试实战
  • STL vector 常用接口使用及底层原理与实现
  • 网络安全应急响应流程与方法论
  • OpenClaw 配置飞书机器人完整指南
  • LLaMA-Factory 自定义评估指标完整实现指南
  • Web 应用登录注册接口设计与实现全解析
  • 基于 Document Picture-in-Picture API 实现视频小窗与主窗口同步控制
  • Python 编程十大核心工具详解:开发、数据与机器学习实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online