Back to blog

LLM 概念大全

把 LLM、GPT、Transformer、token、prompt、RAG 和工具调用这些常见名词一次摆清楚。
2022年11月30日
14 分钟阅读

大语言模型(Large Language Model,LLM)是基于海量数据预训练的深度学习模型,利用拥有数亿至数万亿参数的神经网络(通常为 Transformer,也就是“转换器”架构)来理解和生成人类语言。它们通过自监督学习,根据前文预测下一个标记(token),具备文本生成、翻译、总结和代码编写等多种自然语言处理能力。

这段定义很标准,也很容易看完就忘。

学习 LLM 的时候,最容易卡住的是名词之间的关系:

  • LLM
  • GPT(Generative Pre-trained Transformer,生成式预训练 Transformer)
  • ChatGPT
  • Transformer
  • token
  • prompt(提示词 / 输入上下文)
  • 上下文窗口
  • RAG(Retrieval-Augmented Generation,检索增强生成)
  • 工具调用

每个词单独看都能查到定义,放在一起就像一团线。

这篇文章就做一件事:把这团线拆开。

它不会假装把所有数学细节都讲完,但会把后面反复遇到的概念先摆成一张地图。知道每个词放在哪一层,之后再看 ChatGPT、Claude、Gemini、DeepSeek,就不容易被名字绕进去。

LLM 概念关系图

01|名词关系

先把最容易混的几个词放准。

LLM 是一个大框,指一类能处理和生成语言的大模型。GPT(Generative Pre-trained Transformer,生成式预训练 Transformer)、Claude、Gemini、Qwen、DeepSeek,都可以放进这个框里。

Transformer 是今天主流 LLM 常用的架构。它是一种处理序列数据的神经网络结构。2017 年 Google 那篇《Attention Is All You Need》把这套结构推到台前,后面的 GPT、BERT(Bidirectional Encoder Representations from Transformers,双向 Transformer 编码表示)以及很多聊天模型都沿着这条路往下走。

GPT 是一条具体的模型路线。这个名字已经把核心说出来了:生成式、预训练、Transformer。GPT-3、GPT-4 都是这条路线上的模型。

ChatGPT 则是 OpenAI 在 2022 年 11 月推出的聊天产品。普通人真正感到震动的点在这里:模型能力第一次被放进一个网页对话框里,可以直接聊天、改代码、写邮件、承认错误。

ChatGPT 网页界面示意

这几个词的层级大概是:LLM 是模型类型,Transformer 是架构,GPT 是模型路线,ChatGPT 是产品入口。

02|生成原理

LLM 最底层的动作,听起来有点朴素:

它在预测下一个 token。

为了方便理解,可以先粗略说成“猜下一个字”。token 可以先理解成模型处理文本时的一小块单位,下一节会展开。

比如输入:

今天天气真

模型内部会算出一个概率分布。下一个 token 可能是:

  • “好”——概率最高
  • “不错”——概率次高
  • “热”——也有可能
  • “奇怪”——概率低一点

模型选出一个 token,比如“好”。于是当前文本变成:

今天天气真好

它再基于这段新文本继续预测下一个 token。这样一步一步滚下去,慢慢变成一句完整回答。

你看到的是一整段话,模型实际做的是一连串选择。

同一个问题有时会得到不同回答,原因就在这里:模型没有从固定答案库里取结果,而是在当前上下文里不断生成最可能接下去的内容。

LLM 逐 token 生成循环图

这里有一个容易误解的地方。

说它“预测下一个 token”,不等于说它很笨。一个足够大的模型,在足够多的数据上训练过之后,预测下一个 token 这件事会被逼着学到很多东西:语法、事实、代码格式、推理模式、问答习惯、写作风格。

它没有像人一样先在脑子里想好一整段意思,再把意思翻译成文字。它更像是在一个极大的语言空间里,根据上下文一步步往前走。

这话听着有点不爽,但它能解释很多现象:

  • 为什么它能写得很流畅
  • 为什么它会一本正经地编错事实
  • 为什么 prompt 改几个字,输出就可能变掉
  • 为什么长对话会越来越贵

LLM 的很多能力和很多毛病,都能从“预测下一个 token”这件事往外推。

03|Token 单位

token 这块确实要先纠正一个常见误解:它不是字,也不是完整的词。

它是分词器切出来的最小处理单位。英文里,一个 token 可能是一个词,也可能是一个词的一部分,还经常带着前面的空格。中文里,一个 token 可能是一个字,也可能是一个子词。

比如英文句子:

I don’t like waiting

在 GPT 类模型里可能被切成:

  • I
  • don
  • 't
  • like
  • waiting

这里的空格也被算进 token 里。

中文会更复杂一点。常见字可能单独成 token,不常见组合可能被拆得更碎。你不用背分词算法,但要知道一件事:

模型不是直接按“字数”或“词数”工作,而是按 token 工作。

最直接的影响是费用。很多 API(Application Programming Interface,应用程序接口)按 token 计费:你发进去 2000 个 input tokens,模型吐出来 1000 个 output tokens,账单按这 3000 个 token 算。

输入越长,模型要处理的 token 越多,响应通常也越慢。上下文窗口同样按 token 算。你说“我塞了一整篇文章进去”,模型看到的其实是一串 token。

后面讲 prompt、context window、temperature,都会回到这个单位上。

04|训练过程

如果 LLM 只是预测下一个 token,为什么它没有一直写小说,反而能回答问题?

答案在训练过程里。

一个能聊天的模型,通常不是只训练一次就结束。更像是经历几轮不同目标的训练。

预训练:先学会续写

预训练是最大的一步。

做法可以粗略理解成:把大量文本喂给模型,让它不断做预测下一个 token 的练习。

比如训练文本里有一句:

北京是中国的首都。

模型看到“北京是中国的”,它要预测后面更可能接“首都”。猜对了,参数往这个方向调;猜错了,也根据误差调参数。

这个过程不需要人工给每句话打标签。文本本身就能提供训练信号:前文是输入,后文就是答案。

预训练结束后,会得到一个 base model。它很会续写,但不一定会按你的要求回答。

你问它:

什么是光合作用?

它可能续出:

什么是光合作用?这是一道常见考试题……

它没有故意捣乱。预训练阶段学到的主要动作是“接着写”,还没学会“当一个助手回答”。

SFT:把续写调成问答

SFT 是 Supervised Fine-Tuning,监督微调。

这一步会准备一批人工写好的问答对。比如:

  • 用户问:什么是光合作用?
  • 理想回答:光合作用是植物利用光能,把二氧化碳和水转化为有机物,并释放氧气的过程。

模型继续在这些数据上训练,开始学会一种新格式:别人问问题,我就给出像样的回答。

这一步不一定需要预训练那种海量数据,但对产品体验很有影响。没有 SFT,模型像一个会接龙的人;有了 SFT,它才开始像一个能接指令的人。

RLHF:把回答调得更合人类偏好

RLHF 是 Reinforcement Learning from Human Feedback,基于人类反馈的强化学习。

OpenAI 在 ChatGPT 发布说明里写过,它使用了和 InstructGPT 类似的方法:先让模型生成多个回答,再让人类标注员排序,哪个更好、哪个更差。然后用这些排序训练奖励模型,再用 PPO(Proximal Policy Optimization,近端策略优化)之类的方法继续调模型。

这一步主要调整回答偏好,而不是继续往模型里塞知识。

比如:

  • 遇到危险请求,要拒绝
  • 不确定时,要承认不知道
  • 回答要自然,不要像乱续写
  • 用户问错了前提,可以指出来

这三步可以先这样理解:预训练让模型有能力,SFT 让它学会问答格式,RLHF 再把回答调向人类更偏好的样子。

LLM 训练过程图

这里也要把边界说清楚:RLHF 不等于直接给模型装上“推理能力”。它更像是在调回答风格和偏好。模型能不能推理,跟预训练数据、模型规模、架构、训练方法、后训练数据都有关系,不能把功劳全塞给 RLHF。

05|Transformer 架构

LLM 为什么大多跑在 Transformer 上?

这要回到 2017 年。

在 Transformer 之前,处理文本序列常见的是 RNN(Recurrent Neural Network,循环神经网络)、LSTM(Long Short-Term Memory,长短期记忆网络)这类结构。它们有一个很自然的思路:像人读句子一样,从左到右一个词一个词处理。

问题也在这里。

它太串行了。

前一个位置没算完,后一个位置就很难开始。GPU 擅长并行计算,但 RNN 这种结构会让很多计算排队。

另一个问题是长距离依赖。

句子很长时,前面的信息传到后面会被稀释。读到第 100 个 token 时,第 1 个 token 的影响可能已经很弱。

2017 年的《Attention Is All You Need》做了一件很硬的事:把 recurrence 扔掉,只用 attention。

attention 可以粗略理解成:处理当前 token 时,让它去看上下文里的其他 token,并给每个 token 分配不同权重。

比如这句话:

我刚买了一本小说,今天就开始读它。

模型处理“它”时,不能只看“它”这个字。它要回头看前文,判断“它”更可能指向谁。

“小说”的权重应该高,“我”的权重低一点,“今天”的权重也低一点。

Attention 权重示意图

Transformer 的优势主要落在两点:视野更大,训练更容易并行。

每个位置都能直接和其他位置建立关系,不必等信息慢慢从前面传过来。很多位置的计算也可以一起做。对大规模数据和大模型来说,这个差别非常大。

GPT、BERT(Bidirectional Encoder Representations from Transformers,双向 Transformer 编码表示)、Claude、Gemini、DeepSeek 这类模型后来都绕不开 Transformer,原因也在这里。

入门阶段不需要把多头注意力、位置编码、FFN、LayerNorm 全部吃透。先知道 Transformer 解决了什么问题:它让模型能带着更大的上下文视野去预测 token,也让大规模训练更现实。

06|Prompt 输入

Prompt 输入结构图

prompt 经常被翻译成“提示词”,但这个翻译有点窄。

它不只是你输入框里的那一句问题。

对模型来说,prompt 是它这次生成前能看到的全部上下文。里面可能包括:

  • 你的问题
  • 你贴进去的资料
  • 你要求的格式
  • 你给的例子
  • 系统指令
  • 对话历史

模型不是凭空回答。它是在当前 prompt 里继续生成。

prompt 写法会直接影响结果。

同样问“帮我总结这篇文章”,你只丢一句话,和你明确告诉它“按三点总结,每点不超过 80 字,保留关键数字,不要加入原文没有的信息”,结果会完全不一样。

这不是玄学。

它只是因为你给模型的上下文不同,模型下一步预测的方向也不同。

System Prompt 也是这个逻辑。它通常放在更靠前的位置,用来告诉模型身份、语气、约束。比如:

你是一个严谨的技术编辑。回答时先指出事实风险,再给修改建议。

模型不会“相信”这句话,它只是把这句话也当成上下文的一部分。接下来生成时,会更倾向于符合这段上下文。

prompt engineering 本质上就是上下文组织能力。

07|上下文窗口

上下文窗口示意图

context window,中文常说上下文窗口。

它指的是模型一次能看到的 token 上限。

这个数字在几年里涨得很快:

  • 2020 年 GPT-3 约 2K tokens
  • 2023 年 GPT-4 有 8K / 32K 版本
  • 2023 年 Claude 扩到 100K tokens,Anthropic 说大约对应 75,000 words
  • 2024 年 Gemini 1.5 Pro 把窗口拉到 1M tokens

窗口越大,你一次能塞给模型的材料越多。短窗口只能放一个问题和几段上下文;长窗口可以塞论文、代码仓库、会议纪要,甚至一本书的一大部分。

但窗口不是长期记忆。

模型没有因为你昨天聊过某件事,就天然记住你。它能“记得”,通常是因为那段历史还在当前上下文里,或者产品额外做了记忆系统,把你的偏好重新塞回 prompt。

更准确的说法是:

模型不是记住了你,它只是这次还能看见你前面说过的话。

长窗口也不是免费午餐。

Transformer 的 attention 计算和序列长度关系很重。粗略说,传统 full attention 的复杂度接近 O(n²):窗口翻倍,关系计算可能不只是翻倍。现实系统会用各种优化方法,但大窗口依然意味着更高成本、更慢响应、更复杂的工程权衡。

大窗口只能说明这一次能塞进去的内容更多,不代表模型天然拥有长期记忆。

08|采样参数

采样参数示意图

模型每一步都会得到一堆候选 token 和概率。

那它到底选哪个?

这就涉及 temperature、top-p、top-k 这些采样参数。

temperature 管的是随机性。温度低,模型更倾向于选概率最高的 token,输出更稳定,适合事实问答、代码、格式化任务。温度高,低概率 token 也有机会被选中,输出会更发散,更适合头脑风暴、写作、起标题。

如果 temperature 接近 0,同一个 prompt 的结果通常更接近。不是绝对一样,但会稳定很多。

top-k 和 top-p 也是在收窄候选范围。top-k=40,意思是模型只在概率最高的 40 个 token 里选;top-p=0.9,则是选出一批累计概率达到 90% 的候选 token,再从里面采样。

这几个参数都在调一件事:模型选下一个 token 时,到底有多敢冒险。

写代码时你通常不想它太冒险。写广告语或文章标题时,适当冒险反而可能更有用。

09|幻觉问题

LLM 幻觉风险示意图

幻觉是 LLM 绕不开的问题。

它指的是:模型输出看起来很顺,语气也很确定,但事实是错的。

OpenAI 在 ChatGPT 发布说明里也提到过,ChatGPT 有时会写出 plausible-sounding but incorrect or nonsensical answers。翻成人话就是:它会给出看起来合理、但其实错误或者没意义的答案。

为什么会这样?

因为模型的基础动作是生成高概率文本,不是查数据库。

你问它一个训练数据里没有、当前上下文里也没有的信息,它不会天然停下来查证。它可能会根据见过的相似模式,生成一个“看起来像答案”的句子。

比如你问一个不存在的论文标题,它可能编出作者、年份、摘要,格式还挺像真的。

它不是偶尔马虎,而是这类生成式模型天生就容易踩的坑。

缓解幻觉的办法很多,但没有一个能把它完全抹掉:

  • 给模型可靠上下文
  • 让模型引用来源
  • 让模型不确定时说不知道
  • 用 RAG 接外部知识库
  • 用工具调用查实时数据
  • 人自己做事实核对

用 LLM 做事实性任务时,态度要硬一点:它可以帮你起草、压缩、改写、找线索,但事实不能只靠它一句话。

10|RAG 检索

RAG 的全称是 Retrieval-Augmented Generation,中文通常叫检索增强生成。

它解决的是一个很实际的问题:模型参数里不可能装下所有最新、最准确、最私有的信息。

公司内部文档、最新政策、你自己的笔记、刚发布的论文,模型可能没见过。就算见过,也不一定记得准。

RAG 的思路是:别指望模型全靠脑子回答,先帮它把材料找出来。

流程一般是:

  1. 把文档切块,做向量化,放进检索库
  2. 用户提问时,先从库里找相关片段
  3. 把这些片段和用户问题一起放进 prompt
  4. 模型基于材料生成回答

这不是重新训练模型。

它更像是考试时允许开卷:模型本身还是那个模型,但这次答题前,你把相关资料塞到了它眼前。

RAG 的好处是能补外部知识,也能让回答更容易追溯来源。Lewis 等人在 2020 年的 RAG 论文里就强调过,把参数记忆和非参数记忆结合,可以让生成更具体、更事实化。

但 RAG 也不是保险箱。

检索错了,模型会基于错材料回答;材料片段不完整,模型会补空;prompt 写得不好,模型也可能忽略关键证据。

RAG 能把模型拉回资料上,幻觉会少一些,但不能指望它把错误彻底清零。

11|工具调用

RAG 解决的是“知道什么”。

工具调用解决的是“能做什么”。

模型本身不会真的查天气、发邮件、跑 SQL(Structured Query Language,结构化查询语言)、执行 Python。它只是生成文本。所谓工具调用,是让模型在合适的时候输出一个结构化请求,然后由外部程序去执行。

OpenAI 在 2023 年的 function calling 更新里给过类似例子:用户问天气,模型不直接编天气,而是生成一个函数调用请求:

get_current_weather(location="Boston", unit="celsius")

外部系统拿到这个请求,去调用天气 API,把结果传回模型。模型再把结果组织成自然语言回答。

有了这一步,LLM 才能从“只会说话”走到“能调工具”。

常见场景包括:

  • 联网搜索
  • 查询数据库
  • 执行代码
  • 读取文件
  • 发起日程或邮件草稿
  • 调用公司内部 API

RAG 与工具调用对比图

很多看起来很厉害的 AI 应用,底层其实都是 LLM + 工具。

模型负责理解用户意图、生成调用参数、解释结果。真正的实时数据、计算、文件操作、外部动作,交给工具。

这比把 LLM 想成一个万能大脑更准确。

12|模型类型

你去 Hugging Face 下模型,或者看模型发布公告,经常会看到一堆后缀:base、instruct、chat、dense、MoE(Mixture of Experts,专家混合模型)。它们不是同一类划分,混在一起看很容易乱。

先看训练阶段。

一个模型刚做完大规模预训练,通常更接近 base model。它学到了大量语言模式,擅长续写,但直接拿来聊天会很别扭。你问一句“帮我解释光合作用”,它可能顺着你的句子继续写成教材题干,而不是给你一个清楚答案。

后面加上指令数据微调,就会出现 instruct model。它更懂“按要求输出”这件事。很多开源模型会单独放一个 instruct 版本,就是为了让普通用户更容易直接用。

再往聊天产品走,还会有面向多轮对话的偏好调优。ChatGPT、Claude、Gemini 这类产品背后通常就是这类 chat model。它们不只是会补全文字,还会处理上下文、拒绝危险请求、按更自然的语气回应。

再看模型结构。

Dense model 可以粗略理解成“每次回答,整套模型大部分参数都参与工作”。MoE 走的是另一种思路:模型总参数很多,但每个 token 只激活一部分专家。

DeepSeek-V3 是一个很适合拿来理解 MoE 的例子。它的技术报告里写的是 671B 总参数,每个 token 激活 37B 参数。671B 像总库存,37B 像这次真正被调用的部分。

看模型参数量时,只盯着一个大数字不够。还要看它处在哪个训练阶段,是 base、instruct 还是 chat;也要看结构是 dense 还是 MoE,每次推理实际激活多少参数。

13|理解地图

LLM 基本地图总结图

回到开头那段定义。

“大语言模型是基于海量数据预训练的深度学习模型”,这句话没错,但它太像压缩包。真正展开后,里面至少有几层东西:

  • token 是它处理语言的单位
  • next token prediction 是它生成文字的基础动作
  • 预训练让它学到语言模式和大量知识痕迹
  • SFT 让它更会按指令回答
  • RLHF 让它更贴近人类偏好
  • Transformer 让它能带着上下文视野处理序列
  • prompt 决定它这次看到什么
  • context window 决定它一次能看多远
  • temperature 等采样参数影响它回答时有多发散
  • 幻觉提醒你它不是数据库
  • RAG 给它补外部资料
  • 工具调用给它接外部动作

这就是 LLM 的基本地图。

LLM 更像一套拼起来的系统。架构和训练决定它的基础能力;后训练让它更适合被人直接使用;prompt、上下文、RAG 和工具调用,则决定它这一次能看到什么、能调用什么。

理解这张地图之后,再看各种模型名字,就不会只剩下“哪个更厉害”。你可以拆开问:

它是什么架构?训练过哪些阶段?上下文窗口多大?有没有接工具?事实从哪里来?回答不确定时怎么处理?

能这样拆,后面再学具体模型和具体应用,就不会只剩下一堆名词。