大语言模型(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,就不容易被名字绕进去。

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 月推出的聊天产品。普通人真正感到震动的点在这里:模型能力第一次被放进一个网页对话框里,可以直接聊天、改代码、写邮件、承认错误。

这几个词的层级大概是:LLM 是模型类型,Transformer 是架构,GPT 是模型路线,ChatGPT 是产品入口。
02|生成原理
LLM 最底层的动作,听起来有点朴素:
它在预测下一个 token。
为了方便理解,可以先粗略说成“猜下一个字”。token 可以先理解成模型处理文本时的一小块单位,下一节会展开。
比如输入:
今天天气真
模型内部会算出一个概率分布。下一个 token 可能是:
- “好”——概率最高
- “不错”——概率次高
- “热”——也有可能
- “奇怪”——概率低一点
模型选出一个 token,比如“好”。于是当前文本变成:
今天天气真好
它再基于这段新文本继续预测下一个 token。这样一步一步滚下去,慢慢变成一句完整回答。
你看到的是一整段话,模型实际做的是一连串选择。
同一个问题有时会得到不同回答,原因就在这里:模型没有从固定答案库里取结果,而是在当前上下文里不断生成最可能接下去的内容。

这里有一个容易误解的地方。
说它“预测下一个 token”,不等于说它很笨。一个足够大的模型,在足够多的数据上训练过之后,预测下一个 token 这件事会被逼着学到很多东西:语法、事实、代码格式、推理模式、问答习惯、写作风格。
它没有像人一样先在脑子里想好一整段意思,再把意思翻译成文字。它更像是在一个极大的语言空间里,根据上下文一步步往前走。
这话听着有点不爽,但它能解释很多现象:
- 为什么它能写得很流畅
- 为什么它会一本正经地编错事实
- 为什么 prompt 改几个字,输出就可能变掉
- 为什么长对话会越来越贵
LLM 的很多能力和很多毛病,都能从“预测下一个 token”这件事往外推。
03|Token 单位
token 这块确实要先纠正一个常见误解:它不是字,也不是完整的词。
它是分词器切出来的最小处理单位。英文里,一个 token 可能是一个词,也可能是一个词的一部分,还经常带着前面的空格。中文里,一个 token 可能是一个字,也可能是一个子词。
比如英文句子:
I don’t like waiting
在 GPT 类模型里可能被切成:
Idon'tlikewaiting
这里的空格也被算进 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 再把回答调向人类更偏好的样子。

这里也要把边界说清楚: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 分配不同权重。
比如这句话:
我刚买了一本小说,今天就开始读它。
模型处理“它”时,不能只看“它”这个字。它要回头看前文,判断“它”更可能指向谁。
“小说”的权重应该高,“我”的权重低一点,“今天”的权重也低一点。

Transformer 的优势主要落在两点:视野更大,训练更容易并行。
每个位置都能直接和其他位置建立关系,不必等信息慢慢从前面传过来。很多位置的计算也可以一起做。对大规模数据和大模型来说,这个差别非常大。
GPT、BERT(Bidirectional Encoder Representations from Transformers,双向 Transformer 编码表示)、Claude、Gemini、DeepSeek 这类模型后来都绕不开 Transformer,原因也在这里。
入门阶段不需要把多头注意力、位置编码、FFN、LayerNorm 全部吃透。先知道 Transformer 解决了什么问题:它让模型能带着更大的上下文视野去预测 token,也让大规模训练更现实。
06|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 绕不开的问题。
它指的是:模型输出看起来很顺,语气也很确定,但事实是错的。
OpenAI 在 ChatGPT 发布说明里也提到过,ChatGPT 有时会写出 plausible-sounding but incorrect or nonsensical answers。翻成人话就是:它会给出看起来合理、但其实错误或者没意义的答案。
为什么会这样?
因为模型的基础动作是生成高概率文本,不是查数据库。
你问它一个训练数据里没有、当前上下文里也没有的信息,它不会天然停下来查证。它可能会根据见过的相似模式,生成一个“看起来像答案”的句子。
比如你问一个不存在的论文标题,它可能编出作者、年份、摘要,格式还挺像真的。
它不是偶尔马虎,而是这类生成式模型天生就容易踩的坑。
缓解幻觉的办法很多,但没有一个能把它完全抹掉:
- 给模型可靠上下文
- 让模型引用来源
- 让模型不确定时说不知道
- 用 RAG 接外部知识库
- 用工具调用查实时数据
- 人自己做事实核对
用 LLM 做事实性任务时,态度要硬一点:它可以帮你起草、压缩、改写、找线索,但事实不能只靠它一句话。
10|RAG 检索
RAG 的全称是 Retrieval-Augmented Generation,中文通常叫检索增强生成。
它解决的是一个很实际的问题:模型参数里不可能装下所有最新、最准确、最私有的信息。
公司内部文档、最新政策、你自己的笔记、刚发布的论文,模型可能没见过。就算见过,也不一定记得准。
RAG 的思路是:别指望模型全靠脑子回答,先帮它把材料找出来。
流程一般是:
- 把文档切块,做向量化,放进检索库
- 用户提问时,先从库里找相关片段
- 把这些片段和用户问题一起放进 prompt
- 模型基于材料生成回答
这不是重新训练模型。
它更像是考试时允许开卷:模型本身还是那个模型,但这次答题前,你把相关资料塞到了它眼前。
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

很多看起来很厉害的 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|理解地图

回到开头那段定义。
“大语言模型是基于海量数据预训练的深度学习模型”,这句话没错,但它太像压缩包。真正展开后,里面至少有几层东西:
- token 是它处理语言的单位
- next token prediction 是它生成文字的基础动作
- 预训练让它学到语言模式和大量知识痕迹
- SFT 让它更会按指令回答
- RLHF 让它更贴近人类偏好
- Transformer 让它能带着上下文视野处理序列
- prompt 决定它这次看到什么
- context window 决定它一次能看多远
- temperature 等采样参数影响它回答时有多发散
- 幻觉提醒你它不是数据库
- RAG 给它补外部资料
- 工具调用给它接外部动作
这就是 LLM 的基本地图。
LLM 更像一套拼起来的系统。架构和训练决定它的基础能力;后训练让它更适合被人直接使用;prompt、上下文、RAG 和工具调用,则决定它这一次能看到什么、能调用什么。
理解这张地图之后,再看各种模型名字,就不会只剩下“哪个更厉害”。你可以拆开问:
它是什么架构?训练过哪些阶段?上下文窗口多大?有没有接工具?事实从哪里来?回答不确定时怎么处理?
能这样拆,后面再学具体模型和具体应用,就不会只剩下一堆名词。