推理与生成

合集文章导航
本合集共 8 篇文章,涵盖大模型推理与生成核心知识:
推理流程篇
- 大模型推理是什么? - 从 Prompt 到输出的完整流程
- Temperature、Top-k、Top-p 是什么? - 如何控制生成结果
- KV Cache 是什么? - 为什么它能加速大模型推理
能力与限制篇
4. 上下文长度是什么? - 为什么长文本推理更慢、更贵
5. 流式输出怎么实现? - 为什么大模型可以边生成边显示
6. 结构化输出和 Function Calling 是什么? - 如何让模型稳定返回 JSON
优化与问题篇
7. 推理加速有哪些方法? - 量化、批处理、并行和 vLLM
8. 大模型生成常见问题 - 幻觉、重复、截断和安全兜底
大模型推理与生成:AI是如何"想"出答案的?
你对着ChatGPT打了四个字:"帮我请假"。
它秒回了你一封格式工整的邮件,语气恰到好处,既不会让老板觉得你在敷衍,又不会显得太卑微。
但你有没有想过:这几秒钟里,AI的大脑到底经历了什么?
它是怎么"想"出请假理由的?又是怎么知道要用"尊敬的张总"开头,而不是"嘿老板"?
这背后的原理,就是整个系列要讲的东西——大模型的推理与生成。
推理不是"思考",是翻字典
先纠正一个误区:AI并没有在真正地"思考"。
当你输入一段话,AI做的事情更像是——翻字典。
只不过这本字典有点特别。它有1750亿页,每一页不是解释一个词,而是记录了"这个词后面通常会接什么"。
你输入"今天天气",它翻到"天气"这个词周围,发现后面接"真不错"的概率是30%,"很糟糕"是20%,"怎么样"是15%……
然后它挑一个概率最高的——或者不完全最高,而是带点随机性的——作为下一个词输出。
这就是推理(Inference)的本质:不是思考,是查表。
但这个"表"太复杂了,复杂到能写出流畅的文章、代码、诗歌。

生成不是一口气说完的,而是一个字一个字蹦出来的
你看到的AI回复似乎是一瞬间出来的。
但实际上,它是一个字一个字生成的。
更准确地说,是一个Token一个Token生成的。
Token是什么?可以是半个词、一个词、或者一个标点。中文里大致等于1-2个汉字,英文里是一个单词或词根。
重点来了:AI每次只能生成一个Token,而且这个Token必须依赖前面所有的Token。
就像小时候玩的故事接龙。你说"从前有座山",我接"山上有座庙"——我的"庙"必须基于你的"山"。
AI也一样。"帮"必须在"请"之后,"假"必须在"帮"之后。每一步都环环相扣。
这意味着:你想让AI写100个字的回复,它至少要翻100次"字典"。
这就是为什么AI回复有时候很慢——不是它想得久,是它翻得勤。
有些AI会"流式输出",让你看到文字一个字一个字跳出来。这不是因为它打字慢,而是它在翻字典的过程中就把已翻好的部分显示给你看了。

为什么同样的问题,AI每次回答都不一样?
你有没有发现,同一个问题问AI两遍,它可能给你两个略有不同的答案?
这不是Bug。这是设计。
背后有三个参数在控制:Temperature、Top-k、Top-p。
Temperature你可以理解为"创意总监"。设得高,AI就放飞自我,天马行空。设得低,它就规规矩矩,中规中矩。
写小说?调高温度,让它给你意想不到的情节。
写邮件?调低温度,让它输出稳定可靠的格式。
Top-k和Top-p是"智囊团规模"。值越大,AI选词的范围越广,风格越"民主"。值越小,AI只挑最确定的词,风格越"独裁"。
说白了:
- 温度高 + Top-p大 = 脑洞大开,创意十足
- 温度低 + Top-p小 = 稳定输出,不敢越雷池半步
不同场景用不同配置。就像做饭,火太大糊了,火太小夹生。

为什么长对话更慢更贵?
你有没有这种感觉:对话一长,AI就开始"卡"了。
一开始秒回,聊了几十轮之后,等半天才能出结果。
原因很简单:它要翻的"字典"变厚了。
每次生成新Token,AI都要"看"一遍之前的全部Token。10句话的对话翻10次,100句话的对话就要翻100次。
这就像背课文。你背10个字随口就来,背1000个字得喘半天。
为了解决这个问题,聪明人发明了KV Cache——你可以把它想象成AI的"记忆宫殿"。
已经翻过的字典页,先存起来,下次直接读,不用再翻一遍。
但宫殿越大,维护成本越高。这也是为什么现在各大AI都在"卷"上下文长度——不是AI记不住,是你让它记太多,它翻起来也累。

怎么让AI乖乖"填表"而不是自由发挥?
你让AI返回JSON格式的数据,它有时候会给你一串流畅的自然语言,而不是你要的结构化数据。
这很让人头疼。
问题出在哪?AI是在"猜"下一个词,它可不知道你只想让它输出花括号。
为了让AI乖乖输出结构化内容,工程师们发明了约束解码(Constrained Decoding)。
翻译成人话:AI每次翻字典之前,先被"没收"一部分选项。只能从符合格式的词里挑。
就像考试的选择题——题目让你只能选C,你就算觉得D也对,也只能选C。
更厉害的是Function Calling。这让AI不只能说话,还能"动手"。
比如你问"北京现在多少度?"
没有Function Calling,AI可能会瞎编一个:"北京现在25度"——因为它的训练数据里有很多关于天气的描述。
有了Function Calling,AI会先去查天气预报的API,获取真实数据,再回复你。
这就相当于给AI装上了手和脚,让它从"只会说"变成"能做事"。

怎么让AI跑得更快?
1750亿参数的模型,跑一次要多少算力?
很多很多。
所以工程师们想了一堆办法让它提速。
量化是最常见的——把"精装书"换成"口袋书"。
原本用32位小数表示一个数,现在用8位甚至4位。精度掉一点点,速度提好几倍。
就像你看小说,精装版字大纸厚,口袋版字小纸薄,内容一模一样,占地小多了。
批处理是另一种思路——拼车而不是包车。
一个请求占用一块GPU,浪费。那就同时处理100个请求,大家共享GPU。
代价是响应时间会波动:你想快,但前面99个人还在排队。
还有vLLM这种专门的推理引擎,用了PagedAttention技术,让显存管理更高效。
没有银弹。不同场景用不同方案。

AI也会"犯傻"——幻觉、重复、截断
说了这么多原理,最后聊聊AI的"毛病"。
幻觉最好理解:AI瞎编答案,还说得特别自信。
原因很简单:它不是在"回忆"知识,它是在"猜测"下一个词。训练数据里"看起来对"的答案太多了,它分不清真假。
就像学霸考试,题目不会就瞎编,编得头头是道,分数还挺好。
重复是另一个毛病:AI有时候会卡在某个词上反复说。
"很好很好很好很好"——这不是Bug,是因为模型过度依赖某些高频模式,就像卡带的录音机。
截断更常见:上下文窗口满了,后面的内容AI就"看不见"了。
写长文章写到一半突然跑偏?大概率是上下文太长了,AI把开头忘得差不多了。
每家有每家的安全兜底机制,但归根结底——AI是个超级学霸,不是全知全能的神。
这个系列要讲什么?
读完这篇,你可能还觉得AI挺神秘的。
没关系。
接下来的8篇文章,会把AI"怎么想"这件事拆开来讲。
从你输入第一个字,到AI输出第一个字,中间每一步发生了什么。
为什么有时候快有时候慢?为什么有时候准有时候瞎编?
下一篇文章,我们就从最基础的开始:大模型推理的完整流程到底是什么样的?
看完你就知道,那个"几秒钟出结果"的背后,其实藏着一整套精密的计算流水线。
