LLM(大语言模型)到底是怎么工作的?

目录

  • [1. 前言:它为什么能"听懂"人话?](#1. 前言:它为什么能"听懂"人话?)
  • [2. 什么是大语言模型?](#2. 什么是大语言模型?)
  • [3. 整体流程:一张图看懂](#3. 整体流程:一张图看懂)
  • [4. 分词器:把语言变成"数字钥匙"](#4. 分词器:把语言变成"数字钥匙")
  • [5. 嵌入与位置编码:让数字带上"含义"和"位置"](#5. 嵌入与位置编码:让数字带上"含义"和"位置")
  • [6. Transformer:模型的大脑](#6. Transformer:模型的大脑)
    • [6.1 自注意力机制:让"I"想起"am"](#6.1 自注意力机制:让"I"想起"am")
    • [6.2 多头注意力:从不同角度理解](#6.2 多头注意力:从不同角度理解)
    • [6.3 前馈网络:非线性变换](#6.3 前馈网络:非线性变换)
  • [7. 训练过程:从"白纸"到"通才"](#7. 训练过程:从"白纸"到"通才")
    • [7.1 预训练:海量数据中学习语言规律](#7.1 预训练:海量数据中学习语言规律)
    • [7.2 指令微调与人类对齐:让模型学会"听话"](#7.2 指令微调与人类对齐:让模型学会"听话")
  • [8. 推理过程:一个字一个字"吐"出答案](#8. 推理过程:一个字一个字"吐"出答案)
  • [9. 为什么 LLM 会"犯错"?](#9. 为什么 LLM 会"犯错"?)
  • [10. 总结与展望](#10. 总结与展望)

1. 前言:它为什么能"听懂"人话?

你有没有想过,当你向 ChatGPT 提问时,它到底是怎么"理解"你的问题,又是怎么组织出那些看起来像模像样的回答的?它真的在思考吗?还是说,它只是某种超级复杂的"鹦鹉学舌"?

在这篇文章里,我们就用尽可能通俗的方式,把大语言模型(LLM)的工作流程拆开来看一看。从你输入一句话,到屏幕上出现第一个字,再到几千字的回答生成完毕,这中间到底发生了什么?

2. 什么是大语言模型?

首先,大语言模型(Large Language Model,LLM)本质上是一个"预测下一个词"的概率模型。听起来很无聊?但正是这个简单到不可思议的目标,加上海量的数据、巨大的参数量和精巧的模型结构,催生出了我们看到的"智能"。

它的核心任务可以概括为:给定一段文本,预测下一个最可能出现的 token

这里的"token"很重要,它不一定是完整的单词,更多的是一个词根、一个标点或一个中文字符。比如"我喜欢吃苹果"可能会被切分成 ["我", "喜欢", "吃", "苹果"] 这样的 token 序列。

3. 整体流程:一张图看懂

在深入细节之前,我们先看一张 LLM 的宏观工作流程图:
#mermaid-svg-07vjK0ye3GKYZT4f{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-07vjK0ye3GKYZT4f .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-07vjK0ye3GKYZT4f .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-07vjK0ye3GKYZT4f .error-icon{fill:#552222;}#mermaid-svg-07vjK0ye3GKYZT4f .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-07vjK0ye3GKYZT4f .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-07vjK0ye3GKYZT4f .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-07vjK0ye3GKYZT4f .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-07vjK0ye3GKYZT4f .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-07vjK0ye3GKYZT4f .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-07vjK0ye3GKYZT4f .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-07vjK0ye3GKYZT4f .marker{fill:#333333;stroke:#333333;}#mermaid-svg-07vjK0ye3GKYZT4f .marker.cross{stroke:#333333;}#mermaid-svg-07vjK0ye3GKYZT4f svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-07vjK0ye3GKYZT4f p{margin:0;}#mermaid-svg-07vjK0ye3GKYZT4f .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-07vjK0ye3GKYZT4f .cluster-label text{fill:#333;}#mermaid-svg-07vjK0ye3GKYZT4f .cluster-label span{color:#333;}#mermaid-svg-07vjK0ye3GKYZT4f .cluster-label span p{background-color:transparent;}#mermaid-svg-07vjK0ye3GKYZT4f .label text,#mermaid-svg-07vjK0ye3GKYZT4f span{fill:#333;color:#333;}#mermaid-svg-07vjK0ye3GKYZT4f .node rect,#mermaid-svg-07vjK0ye3GKYZT4f .node circle,#mermaid-svg-07vjK0ye3GKYZT4f .node ellipse,#mermaid-svg-07vjK0ye3GKYZT4f .node polygon,#mermaid-svg-07vjK0ye3GKYZT4f .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-07vjK0ye3GKYZT4f .rough-node .label text,#mermaid-svg-07vjK0ye3GKYZT4f .node .label text,#mermaid-svg-07vjK0ye3GKYZT4f .image-shape .label,#mermaid-svg-07vjK0ye3GKYZT4f .icon-shape .label{text-anchor:middle;}#mermaid-svg-07vjK0ye3GKYZT4f .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-07vjK0ye3GKYZT4f .rough-node .label,#mermaid-svg-07vjK0ye3GKYZT4f .node .label,#mermaid-svg-07vjK0ye3GKYZT4f .image-shape .label,#mermaid-svg-07vjK0ye3GKYZT4f .icon-shape .label{text-align:center;}#mermaid-svg-07vjK0ye3GKYZT4f .node.clickable{cursor:pointer;}#mermaid-svg-07vjK0ye3GKYZT4f .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-07vjK0ye3GKYZT4f .arrowheadPath{fill:#333333;}#mermaid-svg-07vjK0ye3GKYZT4f .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-07vjK0ye3GKYZT4f .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-07vjK0ye3GKYZT4f .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-07vjK0ye3GKYZT4f .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-07vjK0ye3GKYZT4f .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-07vjK0ye3GKYZT4f .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-07vjK0ye3GKYZT4f .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-07vjK0ye3GKYZT4f .cluster text{fill:#333;}#mermaid-svg-07vjK0ye3GKYZT4f .cluster span{color:#333;}#mermaid-svg-07vjK0ye3GKYZT4f div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-07vjK0ye3GKYZT4f .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-07vjK0ye3GKYZT4f rect.text{fill:none;stroke-width:0;}#mermaid-svg-07vjK0ye3GKYZT4f .icon-shape,#mermaid-svg-07vjK0ye3GKYZT4f .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-07vjK0ye3GKYZT4f .icon-shape p,#mermaid-svg-07vjK0ye3GKYZT4f .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-07vjK0ye3GKYZT4f .icon-shape .label rect,#mermaid-svg-07vjK0ye3GKYZT4f .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-07vjK0ye3GKYZT4f .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-07vjK0ye3GKYZT4f .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-07vjK0ye3GKYZT4f :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 否

用户输入提示词
分词器(Tokenizer)
token序列
嵌入层(Embedding) + 位置编码
Transformer 层堆叠(×N)
输出层(Linear + Softmax)
预测下一个 token
是否结束?
将预测 token 追加到序列
结束生成,输出完整回答

接下来,我们就沿着这张图,把每一步拆开讲清楚。

4. 分词器:把语言变成"数字钥匙"

计算机不能直接理解文字,它只能处理数字。分词器(Tokenizer) 的工作就是把一句自然语言切成一个个 token,然后映射到模型词汇表中的整数 ID。

比如,句子 "Hello, world!" 在 GPT 的分词中可能被切为:

  • ["Hello", ",", " world", "!"]

每个 token 对应一个唯一的数字 ID,比如 [15496, 11, 995, 0]。这些数字就是模型"看到"的输入。

5. 嵌入与位置编码:让数字带上"含义"和"位置"

光有 token ID 还不够,模型需要知道每个 token 的语义,更需要知道它们在句子中的顺序。

  • 嵌入层(Embedding):把一个 token ID 映射成一个高维向量(例如 768 维或 4096 维)。这个向量可以理解为这个 token 的"语义指纹"。
  • 位置编码(Positional Encoding):向这些向量中注入位置信息。因为 Transformer 模型本身是并行处理的,不像 RNN 那样天然有顺序,所以必须显式告诉模型"这个 token 是句子里的第几个"。

经过这一步,我们得到了一串带有位置信息的向量,它们就是 Transformer 的输入。

6. Transformer:模型的大脑

Transformer 是当今 LLM 的核心架构,它主要由多头注意力(Multi-Head Attention)前馈网络(Feed-Forward Network) 交替堆叠而成。
#mermaid-svg-Afzduj3vjq4TC8FF{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Afzduj3vjq4TC8FF .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Afzduj3vjq4TC8FF .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Afzduj3vjq4TC8FF .error-icon{fill:#552222;}#mermaid-svg-Afzduj3vjq4TC8FF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Afzduj3vjq4TC8FF .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Afzduj3vjq4TC8FF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Afzduj3vjq4TC8FF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Afzduj3vjq4TC8FF .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Afzduj3vjq4TC8FF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Afzduj3vjq4TC8FF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Afzduj3vjq4TC8FF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Afzduj3vjq4TC8FF .marker.cross{stroke:#333333;}#mermaid-svg-Afzduj3vjq4TC8FF svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Afzduj3vjq4TC8FF p{margin:0;}#mermaid-svg-Afzduj3vjq4TC8FF .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Afzduj3vjq4TC8FF .cluster-label text{fill:#333;}#mermaid-svg-Afzduj3vjq4TC8FF .cluster-label span{color:#333;}#mermaid-svg-Afzduj3vjq4TC8FF .cluster-label span p{background-color:transparent;}#mermaid-svg-Afzduj3vjq4TC8FF .label text,#mermaid-svg-Afzduj3vjq4TC8FF span{fill:#333;color:#333;}#mermaid-svg-Afzduj3vjq4TC8FF .node rect,#mermaid-svg-Afzduj3vjq4TC8FF .node circle,#mermaid-svg-Afzduj3vjq4TC8FF .node ellipse,#mermaid-svg-Afzduj3vjq4TC8FF .node polygon,#mermaid-svg-Afzduj3vjq4TC8FF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Afzduj3vjq4TC8FF .rough-node .label text,#mermaid-svg-Afzduj3vjq4TC8FF .node .label text,#mermaid-svg-Afzduj3vjq4TC8FF .image-shape .label,#mermaid-svg-Afzduj3vjq4TC8FF .icon-shape .label{text-anchor:middle;}#mermaid-svg-Afzduj3vjq4TC8FF .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Afzduj3vjq4TC8FF .rough-node .label,#mermaid-svg-Afzduj3vjq4TC8FF .node .label,#mermaid-svg-Afzduj3vjq4TC8FF .image-shape .label,#mermaid-svg-Afzduj3vjq4TC8FF .icon-shape .label{text-align:center;}#mermaid-svg-Afzduj3vjq4TC8FF .node.clickable{cursor:pointer;}#mermaid-svg-Afzduj3vjq4TC8FF .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Afzduj3vjq4TC8FF .arrowheadPath{fill:#333333;}#mermaid-svg-Afzduj3vjq4TC8FF .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Afzduj3vjq4TC8FF .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Afzduj3vjq4TC8FF .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Afzduj3vjq4TC8FF .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Afzduj3vjq4TC8FF .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Afzduj3vjq4TC8FF .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Afzduj3vjq4TC8FF .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Afzduj3vjq4TC8FF .cluster text{fill:#333;}#mermaid-svg-Afzduj3vjq4TC8FF .cluster span{color:#333;}#mermaid-svg-Afzduj3vjq4TC8FF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Afzduj3vjq4TC8FF .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Afzduj3vjq4TC8FF rect.text{fill:none;stroke-width:0;}#mermaid-svg-Afzduj3vjq4TC8FF .icon-shape,#mermaid-svg-Afzduj3vjq4TC8FF .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Afzduj3vjq4TC8FF .icon-shape p,#mermaid-svg-Afzduj3vjq4TC8FF .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Afzduj3vjq4TC8FF .icon-shape .label rect,#mermaid-svg-Afzduj3vjq4TC8FF .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Afzduj3vjq4TC8FF .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Afzduj3vjq4TC8FF .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Afzduj3vjq4TC8FF :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Transformer 层 (×N)
多头自注意力(Multi-Head Self-Attention)
残差连接 + 层归一化
前馈网络(Feed-Forward)
残差连接 + 层归一化
输入序列向量
更丰富的上下文向量

6.1 自注意力机制:让"I"想起"am"

自注意力(Self-Attention) 是 Transformer 的灵魂。它的作用就是让当前的 token 去"看"句子中所有的 token,并计算出一个权重,表示"我该关注谁"。

比如在句子 "The cat sat on the mat because it was tired" 中,当模型处理到 "it" 时,它需要知道 "it" 指的是 "cat" 还是 "mat"。自注意力机制会通过计算 "it" 与 "cat"、"mat" 之间的关联分数,最终让 "cat" 获得更高的权重,从而消解歧义。

计算过程可以简化为:每个 token 都会生成三个向量------Query(查询)、Key(键)和 Value(值)。通过 Query 和所有 Key 的点积,就能得到注意力权重,再用这些权重对 Value 加权求和,就得到了当前 token 的"上下文感知"表示。

6.2 多头注意力:从不同角度理解

多头注意力(Multi-Head Attention) 就是同时做多组不同的注意力计算,让模型可以关注到不同位置、不同语义层面的信息。比如一个头关注语法关系,另一个头关注指代消解,还有一个头关注局部搭配。

6.3 前馈网络:非线性变换

注意力层拿到上下文信息后,会交给一个前馈神经网络(Feed-Forward Network) 做一次非线性的特征变换,增强模型的表达能力。然后,通过残差连接(Residual Connection)层归一化(Layer Normalization) 来稳定训练,防止梯度消失。

7. 训练过程:从"白纸"到"通才"

一个 LLM 通常要经历两个阶段的训练:

7.1 预训练:海量数据中学习语言规律

预训练(Pre-training) 阶段,模型在海量的互联网文本、书籍、代码等数据上,用"预测下一个 token"这个任务进行训练。这个阶段会让模型学会语法、常识、推理能力等,但此时的模型只是一个"文档补全器",你问它问题,它可能只会把问题补全成一段话,而不是给出一个有用的回答。

7.2 指令微调与人类对齐:让模型学会"听话"

为了让模型真正成为助手,我们需要进行指令微调(Instruction Tuning)基于人类反馈的强化学习(RLHF)。在这个阶段,我们给模型看大量高质量的"指令-回答"对,并让人类对模型的回答进行排序,训练一个奖励模型,再用强化学习去优化模型。经过对齐后,模型就学会了"回答问题"的模式,而不是单纯地补全文本。

8. 推理过程:一个字一个字"吐"出答案

当你向训练好的 LLM 提问时,它是如何生成回答的呢?

采用的是自回归(Autoregressive) 生成方式:模型每次只预测下一个 token,然后将这个 token 拼接到输入序列末尾,再对新的序列预测下一个 token,如此循环,直到预测出特殊的结束 token(如 <eos>)或达到最大长度。
#mermaid-svg-JfJ7Gy0k23q8doAh{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-JfJ7Gy0k23q8doAh .error-icon{fill:#552222;}#mermaid-svg-JfJ7Gy0k23q8doAh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JfJ7Gy0k23q8doAh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JfJ7Gy0k23q8doAh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JfJ7Gy0k23q8doAh .marker.cross{stroke:#333333;}#mermaid-svg-JfJ7Gy0k23q8doAh svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JfJ7Gy0k23q8doAh p{margin:0;}#mermaid-svg-JfJ7Gy0k23q8doAh .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-JfJ7Gy0k23q8doAh .cluster-label text{fill:#333;}#mermaid-svg-JfJ7Gy0k23q8doAh .cluster-label span{color:#333;}#mermaid-svg-JfJ7Gy0k23q8doAh .cluster-label span p{background-color:transparent;}#mermaid-svg-JfJ7Gy0k23q8doAh .label text,#mermaid-svg-JfJ7Gy0k23q8doAh span{fill:#333;color:#333;}#mermaid-svg-JfJ7Gy0k23q8doAh .node rect,#mermaid-svg-JfJ7Gy0k23q8doAh .node circle,#mermaid-svg-JfJ7Gy0k23q8doAh .node ellipse,#mermaid-svg-JfJ7Gy0k23q8doAh .node polygon,#mermaid-svg-JfJ7Gy0k23q8doAh .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JfJ7Gy0k23q8doAh .rough-node .label text,#mermaid-svg-JfJ7Gy0k23q8doAh .node .label text,#mermaid-svg-JfJ7Gy0k23q8doAh .image-shape .label,#mermaid-svg-JfJ7Gy0k23q8doAh .icon-shape .label{text-anchor:middle;}#mermaid-svg-JfJ7Gy0k23q8doAh .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-JfJ7Gy0k23q8doAh .rough-node .label,#mermaid-svg-JfJ7Gy0k23q8doAh .node .label,#mermaid-svg-JfJ7Gy0k23q8doAh .image-shape .label,#mermaid-svg-JfJ7Gy0k23q8doAh .icon-shape .label{text-align:center;}#mermaid-svg-JfJ7Gy0k23q8doAh .node.clickable{cursor:pointer;}#mermaid-svg-JfJ7Gy0k23q8doAh .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-JfJ7Gy0k23q8doAh .arrowheadPath{fill:#333333;}#mermaid-svg-JfJ7Gy0k23q8doAh .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JfJ7Gy0k23q8doAh .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JfJ7Gy0k23q8doAh .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JfJ7Gy0k23q8doAh .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-JfJ7Gy0k23q8doAh .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JfJ7Gy0k23q8doAh .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-JfJ7Gy0k23q8doAh .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JfJ7Gy0k23q8doAh .cluster text{fill:#333;}#mermaid-svg-JfJ7Gy0k23q8doAh .cluster span{color:#333;}#mermaid-svg-JfJ7Gy0k23q8doAh div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JfJ7Gy0k23q8doAh .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-JfJ7Gy0k23q8doAh rect.text{fill:none;stroke-width:0;}#mermaid-svg-JfJ7Gy0k23q8doAh .icon-shape,#mermaid-svg-JfJ7Gy0k23q8doAh .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JfJ7Gy0k23q8doAh .icon-shape p,#mermaid-svg-JfJ7Gy0k23q8doAh .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-JfJ7Gy0k23q8doAh .icon-shape .label rect,#mermaid-svg-JfJ7Gy0k23q8doAh .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JfJ7Gy0k23q8doAh .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-JfJ7Gy0k23q8doAh .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-JfJ7Gy0k23q8doAh :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 输入: 今天天气
模型预测: 真
新序列: 今天天气真
模型预测: 好
新序列: 今天天气真好
模型预测:
生成结束

每一步预测时,模型会输出一个在所有词汇表上的概率分布,我们通常会选择概率最高的 token(贪心解码),或者引入一些随机性(如 top-p 采样、温度调节)来让回答更多样化。

9. 为什么 LLM 会"犯错"?

了解了原理,也就能理解 LLM 的一些局限:

  • 幻觉(Hallucination):因为模型本质上是在做概率预测,而不是查询知识库,所以它可能会编造出看起来合理但完全虚构的事实。
  • 上下文窗口限制:尽管现在的模型上下文窗口已经很长(几十万 token),但超出窗口的内容会被遗忘。
  • 缺乏真正的理解:模型没有意识,也不具备真正的逻辑推理能力,它只是一个复杂的模式匹配器。
  • 偏见:训练数据中的偏见会被模型学到并放大。

10. 总结与展望

LLM 的工作原理可以浓缩为一句话:一个用海量数据训练出来的、基于 Transformer 架构的、以预测下一个 token 为目标的巨型概率模型,再经过指令微调和人类对齐,最终展现出了惊人的语言生成能力

它没有"灵魂",但它的确在很多任务上表现得像拥有了灵魂。未来,随着多模态(文本+图像+音频)、工具调用、长程记忆等能力的持续进化,LLM 会变得更加实用和强大。

希望这篇文章能帮你揭开 LLM 神秘面纱的一角,让你下次再和 ChatGPT 聊天时,能对"它"的内心世界多一份理解。

相关推荐
tanglinS1 小时前
双端面磨床汇总:面向工艺工程师的设备选型参考
大数据·运维·人工智能·自动化·材质
Fnetlink11 小时前
Fnet 云网安 260807
服务器·网络·人工智能·安全·网络安全
雪隐1 小时前
汪峰把1100人裁到400人,AI正在把你的工位变成表情包
人工智能
杨超越luckly1 小时前
Agent应用指南:巨幕之下 · 中国 IMAX 影院205城的空间布局
人工智能·arcgis·html·agent·数据可视化
zhangfeng11331 小时前
AI编程范式:从Vibe Coding(氛围编程)向SDD规范驱动开发演进全解析
人工智能·驱动开发·ai编程
湘美书院--湘美谈教育1 小时前
湘美书院人工智能访谈录:AI助力科学研究自动化
大数据·运维·人工智能·机器学习·自动化·电脑·生活
TechEdu2026062 小时前
[人工智能]Scikit-learn:Python中的实用机器学习库
人工智能·机器学习·ai·scikit-learn
hhzz2 小时前
《深度学习框架PyTorch入门与实践》系列:01-PyTorch入门与环境搭建之从安装到第一个神经网络
人工智能·pytorch·神经网络
一个天蝎座 白勺 程序猿2 小时前
MongoDB迁移新范式|从烟囱式孤岛到KES-AI融合架构
人工智能·mongodb·架构·kingbasees