【机器学习】(34)—— 更大的语言模型
更大的语言模型一次利用更长的上下文文章目录更大的语言模型一次利用更长的上下文1. 短窗口看不全信息2. Transformer编码器与解码器3. 自注意力动态决定谁重要3.1 缩放点积公式3.2 代码单头缩放点积可运行4. 预训练掩码预测在优化什么4.1 代码构造掩码样本数据侧5. 生成提示后的反复补全5.1 贪心与带温度的采样6. 端到端小流程概念7. 收益、代价与汽车场景7.1 上线前核对8. 能力边界与常见误区9. 术语与延伸阅读10. 小结摘要第 33 篇用 N-gram 与 RNN 说明了「下一词概率」与短上下文的局限。**大规模语言模型Large Language Model, LLM**仍在预测 token 序列但参数更多并能一次汇聚更长上下文。本文讲清 Transformer 骨架、缩放点积自注意力、掩码预训练与生成采样给出可运行的 NumPy 演示并对照汽车工单 / 车评场景的适用边界。适合读完语言模型入门、需要建立 LLM 概念地图的读者。读完可独立说明注意力权重从何而来、预训练在优化什么、生成为何仍可能幻觉。1. 短窗口看不全信息N-gram 把条件钉在固定长度上RNN 逐步传递历史对很长依赖仍吃力。看这条故障描述冷车时怠速抖动。上周已更换火花塞。路试正常但再次冷启动时抖动依旧。若模型只能盯住最后几个字「更换火花塞」可能根本不在窗口内续写容易跑偏。工业界常用的更大语言模型预测目标没有变——仍是序列里下一个或被遮住的token——但有两个常见差别相对 N-gram / 常规 RNN含义参数更多可拟合更复杂的共现与结构上下文更长一次看到更长片段而不是只靠逐步短记忆专栏前文【机器学习】33—— 语言模型 讲了 token、N-gram 与 RNN【机器学习】29—— Embedding 的查表在 LLM 里仍把每个 token 映成稠密向量再交给注意力层。2. Transformer编码器与解码器当前最常见的 LLM 骨架是Transformer。完整形态包含编码器Encoder输入序列 → 中间表示解码器Decoder中间表示 → 输出序列两侧都是很深的神经网络中间靠注意力与前馈层堆叠而不是把 N-gram 的N NN硬加大。结构常见用途汽车向例子编码器 解码器翻译等序列到序列中文工单草稿 → 英文摘要偏编码器整句表示供分类车评情感 / 故障类型分类偏解码器续写、对话式生成根据症状生成回复草稿本篇重点建立「注意力 堆叠」的直觉。具体该选编码器侧还是解码器侧取决于任务要「表示一段文本」还是「往后写字」。3. 自注意力动态决定谁重要自注意力self-attention对序列中每个位置估计同一段输入里其他位置对自己有多重要。「自」表示注意力发生在输入序列内部。示意句车辆未过路口因为它太累。「它」可能指「车辆」或「路口」。在「太累」语境下「车辆」通常应获得更高权重若改成「太宽」「路口」往往升高。概念说明双向自注意力可看当前位置两侧编码器侧常用单向自注意力主要看已生成一侧逐词生成时常用多头 multi-head同一层多组注意力学不同关系多层堆叠浅层偏局部深层可组合更抽象模式嵌入空间里的远近【机器学习】30—— 嵌入空间是静态几何自注意力是在当前句子里动态加权。流程通常是Embedding → 注意力 → 前馈 → 再堆叠。3.1 缩放点积公式对长度为n nn的序列先把每个位置的向量线性映射成查询Q QQ、键K KK、值V VV再计算A t t e n t i o n ( Q , K , V ) s o f t m a x ( Q K ⊤ d k ) V \mathrm{Attention}(Q,K,V)\mathrm{softmax}\left(\frac{QK^{\top}}{\sqrt{d_k}}\right)VAttention(Q,K,V)softmax(dk​​QK⊤​)V符号含义Q QQ查询矩阵形状约( n , d k ) (n, d_k)(n,dk​)K KK键矩阵形状约( n , d k ) (n, d_k)(n,dk​)V VV值矩阵形状约( n , d v ) (n, d_v)(n,dv​)d k d_kdk​键 / 查询维数d k \sqrt{d_k}dk​​缩放因子减轻点积过大导致 Softmax 过尖Softmax 行每个位置对所有位置的注意力权重和为 1输出是V VV的加权和权重大的位置其「值」向量对当前表示贡献更大。这与 【机器学习】27—— 神经网络多分类 里 Softmax 把分数变成概率的用法一致只是这里 Softmax 作用在「位置×位置」的分数上。朴素实现里分数矩阵大小约为n × n n\times nn×n再乘层数与头数代价大致随n 2 n^{2}n2涨。上下文开到极长显存与算力会先告急。3.2 代码单头缩放点积可运行下面用 3 个词、手工向量演示完整一步算分数 → Softmax → 加权求和。把「它」设得更靠近「车辆」。importnumpyasnpdefsoftmax_rows(x:np.ndarray)-np.ndarray:zx-x.max(axis-1,keepdimsTrue)enp.exp(z)returne/e.sum(axis-1,keepdimsTrue)defscaled_dot_attention(Q,K,V):Q,K: (n, d_k), V: (n, d_v) - (n, d_v), weights (n, n)d_kQ.shape[-1]scores(Q K.T)/np.sqrt(d_k)weightssoftmax_rows(scores)outweights Vreturnout,weights# 行顺序车辆、路口、它Enp.array([[1.0,0.2],# 车辆[0.2,1.0],# 路口[0.9,0.3],# 它更靠近车辆],dtypefloat,)# 教学简化QKVE真实模型里是三个不同线性层out,wscaled_dot_attention(E,E,E)labels[车辆,路口,它]print(「它」对三词的注意力权重:)forname,pinzip(labels,w[2]):print(f{name}:{p:.3f})print(「它」位置的输出向量:,out[2].round(3))# 正常情况对「车辆」的权重应高于「路口」自身位置也会分到一部分权重若把第三行改成更靠近「路口」的向量对「路口」的权重会升高。机制是相关性加权不是写死的指代规则。多头时会把d dd维拆成多组各组各自算一套注意力再拼回多层则把上一层输出当作下一层输入逐步组合更复杂的模式。4. 预训练掩码预测在优化什么工业级 LLM 极少从零在小车评集上硬训到可用。常见第一阶段是在大规模文本上做自监督例如掩码预测masked prediction遮住部分 token根据可见上下文去猜。原句冷车时怠速抖动更换火花塞后仍抖动 掩码冷车时____抖动更换____后仍抖动对被遮位置模型输出词表上的概率分布再用交叉熵衡量与真实 token 的差距多类损失词表很大。大量样本会迫使网络利用共现与结构线索。之后还可做指令微调等提高「按提示办事」的能力——细节留到下一篇。说法含义预训练在通识大规模语料上先学通用序列规律掩码训练时人为隐藏部分 token交叉熵对正确 token 的负对数概率作分类损失指令微调用「指令→回答」数据继续训练后续篇4.1 代码构造掩码样本数据侧importrandomdefmask_tokens(tokens:list[str],mask_rate:float0.15,mask_token:str[MASK]):随机遮住若干位置返回 (masked_tokens, 被遮位置与原词)。maskedlist(tokens)targets{}fori,tokinenumerate(tokens):ifrandom.random()mask_rate:targets[i]tok masked[i]mask_tokenreturnmasked,targets sentlist(冷车时怠速抖动更换火花塞后仍抖动)# 按字演示masked,targetsmask_tokens(sent,mask_rate0.2)print(掩码后:,.join(masked))print(需预测的位置:,targets)真实训练里分词多用子词掩码策略更精细整词掩码、动态掩码等。这里只说明损失信号来自「猜被遮住的那几处」。对汽车业务通识预训练提供语言能力领域工单 / 故障码往往还要微调或检索增强。离散 ID 与文本如何接到同一训练流程可对照 【机器学习】31—— 如何得到 Embedding——LLM 侧规模大几个数量级但「表示可学习」的思路相通。5. 生成提示后的反复补全模型会估计空缺处的分布后就可在用户提示后接上假想空白反复取 token写成句段。提示前文→ 下一 token 分布 → 选取贪心 / 采样 → 拼回序列 → 再预测 → … 直到结束条件5.1 贪心与带温度的采样贪心每步取arg ⁡ max ⁡ \arg\maxargmax采样可先用温度T TT平滑分布p i ′ exp ⁡ ( z i / T ) ∑ j exp ⁡ ( z j / T ) p_i\frac{\exp(z_i/T)}{\sum_j\exp(z_j/T)}pi′​∑j​exp(zj​/T)exp(zi​/T)​T TT越小越尖、越「果断」T TT越大越平、越多样。defsample_next(logits:np.ndarray,temperature:float1.0)-int:logits: (V,) 未归一化分数 → 采样一个下标。zlogits/max(temperature,1e-6)zz-z.max()pnp.exp(z)pp/p.sum()returnint(np.random.choice(len(p),pp))defgenerate(prefix_logits_fn,start_ids,max_new16,temperature0.8,eos_idNone): prefix_logits_fn(ids) - (V,) logits 演示生成循环真实 LLM 由 Transformer 提供 logits。 idslist(start_ids)for_inrange(max_new):logitsprefix_logits_fn(ids)nxtsample_next(logits,temperaturetemperature)ids.append(nxt)ifeos_idisnotNoneandnxteos_id:breakreturnids# 玩具词表 5logits 与「上一个 id」弱相关仅演示接口deftoy_logits(ids):V5logitsnp.zeros(V)logits[ids[-1]%V]2.0logits[(ids[-1]1)%V]1.0returnlogitsprint(采样轨迹:,generate(toy_logits,[0],max_new8,temperature0.7))看起来像在解应用题时底层仍常是「对这类题面的高概率续写」。能力可以很强但评估必须单独设计不能默认「会写」等于「事实正确」。6. 端到端小流程概念把本篇串成一条可对照的流水线1. Token 化子词 Embedding 2. 多层自注意力 前馈Transformer 块 3. 预训练掩码 / 下一词等自监督损失 4. 可选指令微调、领域微调 5. 推理提示 → 反复生成温度 / 截断等解码参数 6. 业务侧规则校验、人工抽检、引用检索若需要事实步骤专栏可对照Embedding第 2932 篇Softmax 多类头第 27 篇过拟合与算力第 21、28 篇下一词概率直觉第 33 篇相关串讲【机器学习】32—— Embedding 串讲、【机器学习】28—— 神经网络小结。7. 收益、代价与汽车场景常见收益常见代价 / 风险续写更流畅可打包翻译、摘要幻觉事实错误、编造细节长上下文有助于消歧与指代训练与推理算力、电耗高减少部分手工文本特征数据偏见进入生成车评摘要、草稿回复更省事不能免检当作维修结论参数规模上在数据与算力跟上时更大 Transformer 往往更强这与「小任务先用小模型」不矛盾。上 LLM 的前提是任务确实需要长文本理解或生成。场景更稳妥的起点品牌 / 车型等表格 IDEmbedding 监督模型短文本分类小模型或编码器式表示长工单摘要、草稿回复LLM 人工 / 规则校验安全相关诊断定责禁止仅凭生成文本7.1 上线前核对[ ] 任务是否真需要长上下文 / 生成而不是表格模型即可 [ ] 解码参数温度等已在验证样例上试过 [ ] 幻觉风险是否有检索、规则或人工闸门 [ ] 延迟与成本是否可接受注意上下文长度 [ ] 领域术语 / 故障码是否需微调或词表约束8. 能力边界与常见误区情况说明把 LLM 当可靠知识库生成的是高概率文本不是保证真实的库查询忽略n 2 n^{2}n2代价超长上下文会迅速抬高算力小车评集从头训「自己的大模型」数据与算力通常不够用预训练 微调表格字段全改成提示词结构化字段用 Embedding 往往更直接不设校验就自动结案幻觉风险不可接受多头多层任意堆叠成本、延迟与过拟合都会上升温度开很大还要求稳定口径多样与稳定互斥需按产品目标调适用前提有长文本或生成需求且能承担校验成本。纯数值油耗回归不必先上 LLM。9. 术语与延伸阅读术语含义LLM大规模语言模型Transformer以注意力为核心的序列架构自注意力序列内部位置的相关性加权Q / K / V查询、键、值三套投影多头注意力多组注意力再拼接掩码预测遮住 token 再训练去猜温度采样用 T 平滑 logits 再采样幻觉内容看似合理但不正确资源说明【机器学习】33—— 语言模型token、N-gram、RNN【机器学习】29—— Embedding稠密向量与查表【机器学习】30—— 嵌入空间距离与静态嵌入【机器学习】31—— 如何得到 Embedding联合训练与上下文嵌入PyTorch Transformer官方层接口10. 小结更大的语言模型仍做 token 序列上的概率建模但靠更多参数与自注意力一次汇聚更长上下文超过短窗口 N-gram 与常规 RNN。缩放点积注意力用 Softmax 得到位置权重再对V VV加权预训练常用掩码预测生成是提示后的反复补全可用温度调节多样性。收益是流畅与任务打包能力代价是幻觉、算力与偏见。汽车场景表格 ID 继续 Embedding长文本生成必须加校验。下一篇谈微调、蒸馏与提示在预训练大模型上用较小代价适配业务以及提示在推断阶段的作用。系列导航上一篇【机器学习】33—— 语言模型下一篇预告微调、蒸馏与提示把大模型接到业务上如果本篇对你有帮助欢迎点赞、收藏、关注博主机器学习专栏持续更新中下次更新不迷路。