跳到主要内容

41-大模型训练、推理全流程详细图解

前言

上节学了Transformer 架构的Encoder、Decoder 两种类型。

大模型都是 Decoder 架构,嵌入、重排模型是Encoder架构。

Decoder架构是单向/因果自注意力,适合生成,Encoder架构是双向自注意力,适合理解。

还学了大模型的训练、推理两个阶段。

image-20260804220004363

这节我们继续深入细节

推理阶段流程

Q、K、V

所有大模型的文字输出,都依靠Decoder自回归逐字生成,而支撑这套生成逻辑的底层 计算单元,就是Q、K、V三组向量。

image-20260804220100663

每一个输入的token,比如「我」「喜欢」「吃」「苹果」「。」,都会独立生成一组配套的Q、K、V三个向量,三者各司其职

  • Q(查询):代表当前这个词的检索诉求,相当于我们带着问题去上下文里寻找关联信息。
  • K(键):是每个文字自带的语义标签,仅用来和Q计算相似度,判断两段内容的相关程度,只参与打分环节,打分完成后不再参与后续运算。
  • V(值):承载文字真实完整的语义内容,也是唯一会被加权融合、最终输出的信息载体。

image-20260804220326255

第一步,拿当前词的Q,遍历全部文字对应的K一一匹配,算出两两之间的相关分数

第二步,分数经过归一化处理,得到一组注意力权重,色块越深代表对应位置语义相关性越高

第三步,用得到的所有权重,分别乘以每一个位置的V,再把全部加权后的V累加求和,最终生成融合了整段上下文信息的新向量,作为当前「喜欢」这个位置的输出。

K只负责匹配打分,只有全部V会参与加权求和

哪怕部分文字相关性偏低、权重数值很小,它对应的V也会参与计算,贡献少量上下文信息,不会直接丢弃任意一段语义。

那拿到QKV加权融合得到的新向量之后呢?

image-20260804220438532

QKV 自注意力层:融合全局上下文语义

因为根据Q和K匹配计算了权重,加权融合了所有V算出来的向量,肯定是融合了所有语义的

然后这个语义要转成符合语法、词汇规律的自然语言表达

FFN前馈网络:把注意力融合好的上下文向量,深度加工、提炼词汇搭配、语法逻辑、常识关联

这样处理之后,向量除了带语义信息,也更符合语法了。

有了这个向量,那下一步自然就是去词表里选词输出了:

image-20260807215802133

经过线性输出层,把高纬度向量映射到词表,为每个词生成一个原始分数

然后用Softmax归一化就是把分数转为词得概率,之后选概率最高的输出就好了

image-20260807215822478

至此,我们就理清楚了Transformer Decoder自回归生成完整计算链路

Transformer Decoder自回归生成完整计算链路总结

image-20260807215842468

  1. 输入文本
    • 我们输入一段完整上下文,也就是用户提问、之前的对话内容等,作为模型全部参考素材,所有后续计算都基于这段文本展开。
  2. Token拆分
    • 模型不会直接识别汉字、词语,会先把整段文本切割成最小计算单元Token,可以是单字、词语、子词,拆分后每一个单元独立参与运算。
  3. 词向量嵌入
    • 每一个拆分完成的Token,都会映射成一串高维数字向量,也就是词向量。
    • 文字本身无法被电脑计算,向量是文本数字化的载体,是所有运算的基础。
  4. QKV 自注意力层(核心上下文融合模块)
    • 每个Token的原始向量会通过三组独立权重,分别变换出Q查询、K键、V值三组向量; 再用所有权重加权融合全部Token的V向量;
    • 拿当前位置的Q,和全部 Token的K做匹配打分,经过Softmax归一化转为概率权重
    • QKV 的唯一作用:聚拢全文所有上下文信息,让当前文字能看懂整段文本里的关联语义,输出融合全局信息的新向量。
  5. FFN前馈网络(语言特征加工)
    • 经过注意力融合后的向量送入两层全连接网络做非线性变换,相当于对聚拢来的上下文信息做深度整理,提炼词汇搭配、语法逻辑、常识规律,让向量具备完整的语言表达特征。
  6. 线性输出层
    • 将FFN加工完成的高维语义向量,映射到词汇表同等长度的一维数组,给词库里每一个可能出现的字词打出原始匹配分数,此时分数没有归一化,不代表概率。
  7. Softmax采样,选出下一个Token
    • 对上一步全部字词的原始分数做Softmax归一化,把所有数值转为0~1、总和为1的概率分布
    • 再通过贪心、Top-P等采样规则,挑选概率最高/匹配度合适的文字,作为模型本轮输出的下一个Token。

image-20260807220306770

KV Cache

这个流程还涉及一个KVCache的概念:

如果每输出一个字,就把全部历史文本从头完整跑一遍QKV,会产生海量重复计算,推理速度极慢,所以工业界靠KVCache解决这个算力浪费问题。

首次处理用户输入上下文(初始Prompt)时,完整走完QKV计算,把所有token算出的K向量、V向量存入显存缓存;

后续每一轮只新增1个待预测token,仅计算这个新位置的Q,不需要重新计算历史文本的K、V;

计算注意力匹配时,直接读取缓存里全部历史K、V,完成打分加权;本轮预测出下一个文字后,再把这个新token的K、V追加写入缓存,扩充Cache内容。

image-20260807220500114

为什么AI训练要在显卡(GPU)上跑

自回归生成过程需要大量的向量、矩阵运算,像QKV 匹配打分、FFN特征变换、Softmax归一化全是批量并行计算,这类计算天生更适合在GPU上跑,CPU串行处理速度会慢几百上千倍

image-20260807220655730

所以AI训练、推理都需要大量显卡。

上面的自回归生成其实是推理阶段的流程。

训练阶段

image-20260807220720253

训练的目的是让模型学会根据上文,预测下一个词

所以需要给他正确答案(监督机制)

这是和推理阶段的区别,生成的内容和正确答案对比,如果差别大就要反推回去更新参数:

image-20260807220753023

这个叫做计算损失、反向传播。

要准备正确答案,自然就需要数据集。

所以训练阶段的流程是这样的:

image-20260807220813173

多了数据集、损失计算、反向传播、评估这些流程。

最终产出的训练好的大模型,就可以推理用了。

完整串大模型一下从训练到推理的流程:

image-20260807220839062

得到下一个token的词的概率分布后,我们还可以通过采样策略来控制选词逻辑,直接决定输出内容的严谨度与创意性。

Greedy贪心策略

固定选择概率排名第一的字词,全程不存在随机抽取,相同输入每次回答完全一致。

优势是逻辑精准、无跑偏;

缺点是句式单调、容易重复,适合代码、专业问答、数据整理场景。

Top-K采样(带随机)

第一步筛选概率最高的前K个词组成候选池,第二步再在其中采样,在筛选出的词池内按照概率随机选词,自带随机性,相同提问多次输出会有细微差别。

可手动控制候选词数量,平衡稳定与多样性。

Top-P核采样(带随机,行业主流)

从最高概率开始累加数值,选出累积概率达到阈值P的所有词语作为候选,再在词池内随机采样;

会根据概率分布自动增减候选词数量,适配各类文本场景,生成语句更自然流畅。

Temperature温度参数(调节随机强弱,配套前两种采样使用)

不会新增/删减候选词汇,只缩放词语之间的概率差距:

低温会放大高概率词优势,随机性大幅减弱,回答保守规整;

高温抹平概率差距,冷门词汇更容易被选中,内容发散、创意更强。

温度趋近0时效果近似贪心策略。

image-20260807220946204

在openai系列模型里就支持topp和temperature 的设置:

image-20260807221007007

Total probability mass of tokens to consider at each step

每一步需要纳入计算的Token总概率体量

总之,模型经过前向运算输出全词表的概率分布后,我们就能搭配不同选样策略、温度,来调控随机性强弱,灵活切换严谨问答、创意写作等不同生成风格。

完整流程如下:

image-20260807221035113

总结

我们全面过了一遍大模型训练阶段、推理阶段的全流程。

首先是注意力机制的QKV:

文本被拆分为Token并转化为词向量后,会生成查询向量Q、键向量K、值向量V。

依靠Q与全部K做相似度匹配算出注意力权重,再用权重加权融合所有V,完成全文上下文语义聚合。

之后向量送入FFN前馈网络,进一步提炼语法、常识与词汇搭配特征。

再经由线性层映射至完整词表,通过Softmax转换为各候选字词的概率分布。

基于不同的采样策略,选词输出。

这就是大模型推理阶段自回归生成过程的全流程。

过程中会基于kv cache缓存kv 计算结果,这样每次就不用重复计算每个token的kv向量了。

而训练阶段,则要给他正确答案来监督,所以要准备数据集,之后要经过损失计算,计算差别,然后反向传播更新参数,最后产出训练好的大模型。

从数据集监督训练,到模型推理生成,构成了一套完整闭环,市面上所有生成式大模型均遵循这套流程。(大模型原理了解下流程、概念即可,重点还是放在学习Agent开发上)