【一文读懂】算法工程师如何从0构建LLM大语言模型

94 阅读11分钟

【一文读懂】算法工程师如何从0构建LLM大语言模型

在 ChatGPT 席卷世界之后,很多人都听过「大语言模型(LLM)」这个词。
但当我们问自己:“LLM 的内部结构究竟是什么?” 时,往往只有模糊的印象。

它似乎是某种“巨大的黑箱”,能理解人类语言、生成回答、甚至推理创作。
然而,打开那层黑箱,你会发现——它其实是一个层层构建的语言“思考机器”。

今天,我们从结构角度,带你看清 LLM 的核心组成:
分词(Tokenization) → 词嵌入(Embedding) → 位置编码 → N 层 Transformer架构 → 输出概率。

(上图是经典的 Transformer 整体框架结构,它的原始出处是发表于 2017 年的开创性论文"Attention Is All You Need",读完整篇文章您就可以理解)【AI大模型教程】

一、分词(Tokenization):把文字拆成模型能懂的「语言颗粒」

人类用“字”或“词”交流,但计算机只懂数字。
Tokenization(分词) 的任务,就是把自然语言切成一个个模型能理解的最小单位——Token

举个例子:

句子:我喜欢学习AI

可能会被切分成:

["我", "喜欢", "学习", "A", "I"]

每个 token 都会被映射成一个唯一编号(比如 104、2075、...)。
模型之后处理的,其实就是这些编号,而非汉字本身。

为什么要分词?
因为这样能把语言“离散化”为数字序列,方便输入神经网络,同时控制计算量。
不同模型的分词方式(如 BPE、SentencePiece)各有优化重点,但核心逻辑一致:

把连续的语言世界,离散成模型可计算的语言粒子。


二、词嵌入(Embedding):让符号拥有「语义温度」

在语言模型中,计算机最初看到的只是一个个离散的符号(token),例如“猫”“银行”“run”。
这些符号对计算机来说是没有意义的,它们只是数字 ID。
而 Embedding 层 的作用,就是让这些冰冷的符号拥有“语义温度”——也就是,把它们映射到一个可以计算语义距离的向量空间中。

1. 从符号到向量

Embedding 可以理解为一个“词典矩阵”:
每个词(token)都被表示为一个固定长度的向量(如 1024 维)。
模型在训练过程中,会不断调整这些向量,使得语义相近的词在空间中靠得更近。

例如:

  • • “猫(cat)”和“狗(dog)”的向量距离会非常接近;
  • • 而“猫(cat)”和“金融(finance)”的距离则会很远。

于是,模型不仅“看到”了词本身,还能“感知”它与其他词的语义关系。
这为后续的注意力机制(Self-Attention)提供了基础的“语义几何空间”。

2. 向量空间的语义规律

在这个高维空间中,语义关系会以几何结构的方式自然显现。
比如经典例子:

  • • king - man + woman ≈ queen
    这说明模型“理解”了性别、角色等抽象语义差异。

3. 谁来训练这些向量?

词嵌入的生成并不是手工设定的,而是通过大规模无监督学习自动获得的。
最早的模型如 word2vecGloVe 专门用来训练词向量;
而在现代大语言模型(如 GPT、Qwen、DeepSeek)中,
Embedding 层的参数与模型一同训练,并在更庞大的语料中持续更新。

例如,Qwen-1.5 系列在预训练阶段就包含了上百亿条语料,
Embedding 层会随着模型学习语义关系而不断演化,
使其能精细地捕捉不同语言、领域、风格的语义细节。

换句话说:

词嵌入是语言模型的「语义地基」,
它将离散的语言符号转化为连续的语义坐标,
为 Transformer 理解、推理和生成语言打下基础。


三、位置编码:赋予语言「顺序感」

到这里,模型知道每个词“是什么”,
但还不知道它“在句子里的位置”。
例如:

“猫追狗” vs “狗追猫”
词相同,但顺序颠倒,意义完全不同。

Transformer 结构没有像 RNN 那样的“时间记忆”,
所以必须显式告诉它词语的顺序。

这就是 Position Encoding(位置编码) 的作用。

它会为每个 token 增加一个位置向量,比如第一个词加 [sin(1), cos(1)],第二个加 [sin(2), cos(2)]……
这样模型在学习时能区分出:

“前后顺序不同 → 含义也不同”。

现在,模型拥有了语义(Embedding)+ 顺序(Position)两种基础信息。
接下来,我们进入真正的核心——Transformer Block。


四、Transformer Block:语言理解的「心脏」

我们希望 LLM 不仅是简单的词语拼接机器,而是具备强大的推理和语义理解能力的“语言大脑”。 为了实现这一目标,仅仅堆叠神经元是不够的。Transformer Block 作为 LLM 的基本计算单元,必须包含一套精巧的协作机制,才能有效地完成以下关键任务:

  1. 1. 捕捉上下文的动态关系(解决多义词歧义)。
  2. 2. 同时从多个维度解析语言(解决复杂性和多重含义)。
  3. 3. 确保生成过程的逻辑和时间正确性(解决自回归生成问题)。
  4. 4. 对抽象特征进行深度加工和提炼(解决高层语义理解)。

接下来的各个组件(自注意力、多头、掩码、前馈网络等),正是为了协同完成上述复杂任务而设计,它们共同构成了真正加工语言的“车间”的内部流程。

一个 LLM 通常由几十上百层(比如 GPT-4 约 120 层)这样的 Block 堆叠而成。
每一层都负责对语言的理解更进一步。


(1)自注意力机制(Self-Attention):理解上下文的灵魂机制

核心思想是:

“一个词的意义,取决于它与上下文的关系。”

例如这句话:

“她把卡里的钱存到了A行。”

这里的“A行”,到底指的是银行还是公司分行
模型不能凭“行”这个词本身去判断,
它要根据上下文的线索——“卡里的钱”“存到”——去理解语义。

Self-Attention 就是让模型学会这样“环顾四周”。
每个词在这一层都会生成三个向量:

  • • Query(查询):表示“我现在想找和我有关的信息”;
  • • Key(键):表示“我能被别人关联到哪些信息”;
  • • Value(值):表示“如果别人找到我,我能提供什么信息”。

你可以把它想象成一个会议场景:
每个词(与会者)都有一个提问卡(Query),一张名片(Key),和一份资料(Value)。
当“行”这个词想弄清自己是什么意思时,它会把自己的 Query 拿去和所有词的 Key 对比。
相似度越高,说明对方提供的信息越相关,就会给予更高的“注意力权重”。
最后,“行”会根据这些权重,把别人的 Value 按比例整合起来,
于是它对自己的理解变得更清晰——在这个语境下,它就是“银行”的“行”。


(2)多头注意力机制(Multi-Head Attention):从多个视角理解语言

仅靠一个注意力通道是不够的。
语言中的联系是多维的——有的词在语法上相关,有的在语义上呼应。
为了同时捕捉这些不同层面的信息,
Transformer 引入了 多头注意力机制(Multi-Head Attention)

模型会并行地建立多个独立的注意力通道,每个“头”都专注于不同的语言关系。

可以把它想象成一个讨论组:
每个成员从自己的角度阅读句子,最后再综合意见。

例如:

  • • 第一个头关注主语和动词之间的关系
  • • 第二个头关注时间副词和动作之间的联系
  • • 第三个头可能专门捕捉情感色彩或语气变化

所有这些“视角”最后被融合在一起,
形成了对整句话更立体、更全面的理解。
这就是多头注意力的意义所在。


(3)带掩码的多头注意力(Masked Multi-Head Attention):防止“偷看未来”

在语言生成(Decoder)阶段,
模型必须一边生成、一边预测下一个词。
它不能“偷看”未来还没生成的部分。

为此,引入了 Mask(掩码)机制

对当前位置之后的词,模型会自动屏蔽,不去计算它们的注意力。

这样,模型在生成句子时,
只能参考已经生成的内容,
就像人类写作时一边想一边写,
保证语言的时间顺序是正确的。


(4)前馈神经网络(Feed Forward):提取更高层语义

Self-Attention 帮模型理解了词与词之间的关系,
但每个词自身的特征也需要进一步加工。
这时就轮到 前馈网络(Feed Forward Network) 出场了。

它相当于给每个词单独配备一段小型的“思考回路”,
帮助模型进一步提炼和重组语义。
经过这一步,模型能捕捉到更深层次、更抽象的特征,
让语言理解更加细腻。


(5)残差连接与层归一化:让学习更稳定

Transformer 的每一层还包含两项关键设计:
残差连接(Residual Connection) 和 层归一化(Layer Normalization)

  • • 残差连接让输入信息能够绕过当前层直接传递下去,
    防止网络太深导致“记不住”原始信息。
  • • 层归一化则让每层的数值保持稳定,
    避免训练过程发散或震荡。

通过这两个机制,Transformer 可以稳定地堆叠几十层甚至上百层,
仍然保持信息流动顺畅。


🧠 小结

Transformer Block 的内部结构,就像一台“语言理解引擎”:

  1. 1. Self-Attention:理解上下文,建立词与词的关系;
  2. 2. Multi-Head:多角度并行思考;
  3. 3. Mask:保证生成时不“偷看未来”;
  4. 4. Feed Forward:提炼更高层语义;
  5. 5. 残差与归一化:保证深层网络稳定训练。

当这样的 Block 层层堆叠时,
模型就能从浅层语法、到深层语义、再到逻辑推理,
一步步构建出对语言的深度理解。


五、输出层:预测下一个 Token 的概率

所有 Transformer 层的输出最终汇总成一个隐藏向量,
这个向量会被投影(Linear Projection)回到词表维度,
得到每个可能词的概率分布:

“我今天很 ——”
→ 高概率输出:“开心”、“累”、“忙”……
→ 低概率输出:“香蕉”、“汽车”。

模型通过 Softmax 将这些分数转成概率,
从中采样或选取最高值,就生成下一个词。
这就是语言生成的基本过程。


六、模型的参数:哪些会被迭代?

在整个模型结构中,以下部分的参数会在训练中不断更新:

模块参数类型
Embedding 层每个 token 的词向量矩阵
Attention 层Q, K, V, O 四个投影矩阵
Feed Forward 层两层线性权重矩阵
层归一化缩放和偏移参数

这些参数的数量往往以 百亿甚至万亿 计,
训练的过程,就是通过梯度下降不断微调这些参数,让模型“更懂语言”。


七、算法工程师在做什么?

算法工程师的核心工作包括:

  1. 1. 结构设计
  • • 确定模型规模(层数、维度、注意力头数);
  • • 选择激活函数、优化器、并行策略。
  1. 2. 训练优化
  • • 调整学习率、批大小、梯度裁剪;
  • • 分布式训练、显存优化、混合精度。
  1. 3. 监控与评估
  • • 监控损失下降曲线;
  • • 评估模型的困惑度(Perplexity)与生成质量。

他们像“脑神经建筑师”,既要懂数学,又要懂算力。


八、模型结构之后:LLM 的训练阶段

上面介绍的,是 底模结构(Base Model)
在这之上,模型还要经过多个训练阶段:

  1. 1. 预训练(Pretraining)
  • • 学习语言的统计规律(预测下一个词)
  • • 让模型拥有语义理解与生成能力。
  1. 2. 监督微调(SFT)
  • • 让模型模仿人类的问答风格、逻辑结构。
  1. 3. 对齐(RLHF / DPO)
  • • 根据人类偏好进一步优化,让模型“更合人意”。

这些阶段都依赖同一个模型结构
只是用不同的数据与损失函数去更新同一套参数。
也就是说,Transformer 架构是整个 LLM 的“骨架”,
而训练阶段只是不断“喂养”与“塑形”的过程。


🧩 总结:语言的机器心脏

我们可以用一句话概括整个逻辑:

Tokenization 让文字被看见,
Embedding 让文字有意义,
Position 让语言有顺序,
Transformer 让语义被理解,
Output 让思想得以表达。

这,就是一个 LLM 的完整生命线。
它并非魔法,而是数学与结构的奇迹。
在无数层矩阵计算的背后,是人类让语言自我理解的壮举。