系列说明本系列基于BOSS直聘等平台AI应用开发、AI算法、AI Infra等岗位的最新JD提炼高频考点每天拆解一个知识点从零到一、由浅入深。今日是第1天Transformer原理——几乎所有JD里熟悉大模型核心原理如Transformer架构、注意力机制这句话的主角。一、为什么从Transformer讲起翻遍最近的招聘要求你会发现一个规律不管岗位叫AI应用开发、“大模型算法还是AI Infra”第一条核心要求几乎都长这样熟悉大模型核心原理Transformer架构、注意力机制了解训练/微调/部署全流程。Transformer就是GPT、Claude、DeepSeek、通义千问等所有大模型的共同底座。GPT全称是GenerativePre-trainedTransformer——名字里就带着它。不懂Transformer后面学微调、推理优化都是空中楼阁。它解决了什么问题2017年之前处理文本的主流是RNN循环神经网络它像人逐字读书读完第1个字记住一点读第2个字再更新记忆……问题很明显记性差读到第1000个字早就忘了第1个字长距离依赖难速度慢必须一个字一个字串行处理无法并行GPU干着急2017年Google论文《Attention Is All You Need》提出Transformer核心思想一句话别一个字一个字读了把整句话一眼看全让每个字直接和所有字建立联系。二、核心机制注意力Attention——用开会来理解想象你在开一场项目会议会上10个人都发了言。当轮到你总结时你不会平均记住每个人的每句话而是根据当前话题给不同人的发言分配不同的关注度——讨论预算时你重点回忆CFO的话讨论排期时你重点回忆PM的话。自注意力Self-Attention就是让句子中的每个词干这件事。举个例子“小猫追球它跑得很快”。要理解它指谁模型会计算它和句中每个词的相关度分数注意力权重小猫0.7、追0.1、球0.15……然后按权重加权汇总所有词的信息于是它的表示里浓缩了小猫的语义。指代消解就这么自然地发生了。Q、K、V一次图书馆检索计算注意力时每个词会生成三个向量用图书馆查资料类比向量类比作用QQuery你的检索问题“我想找什么信息”KKey书脊上的标签“我能提供什么信息”VValue书里的正文内容真正被取走的内容流程拿你的Q去和所有书的K做匹配算相似度→ 相似度高的书权重高 → 按权重把所有V加权求和得到最终结果。Q和K负责找到相关内容V负责传递实际内容。输入: 它生成 Q/K/V 三个向量Q 与句中所有词的 K 做点积得到注意力分数Softmax 归一化为权重小猫0.7 球0.15 追0.1 ...权重 × 所有词的 V 加权求和输出: 融合了小猫语义的新表示多头注意力多角度同时看一次注意力只能捕捉一种关系比如指代。Transformer用多个头并行做注意力头1关注语法关系、头2关注语义相似、头3关注位置邻近……最后拼接起来。就像同时派出8个助理每人负责从不同角度记会议纪要最后汇总。三、完整架构一条流水线Transformer原始论文是编码器-解码器结构用于翻译而GPT这类大模型只用了**解码器Decoder**部分。一层解码器的流水线如下是否注意力的缺陷是不感知顺序输入文本分词 转为向量明天详细讲位置编码给每个词打上顺序标记多头自注意力词与词交换信息前馈网络 FFN对每个词独立做非线性变换残差连接 层归一化稳定训练还有下一层?输出层: 预测下一个词所以必须补位置编码三个配角也别忽视位置编码注意力本身不分左右必须额外告诉模型词的顺序猫追狗和狗追猫才不会一样残差连接把输入直接抄一条近路加到输出上防止几十层堆叠后梯度消失——类似高速公路的应急车道前馈网络FFN注意力负责交流信息FFN负责消化信息大模型的很多知识就存在这一层的参数里GPT的本质就是把这几层结构堆几十上百层用海量文本训练它做一件事——预测下一个词。你和ChatGPT对话时它每次只是接龙出下一个token循环往复。四、动手实战20行代码看懂自注意力不用任何框架用NumPy实现一个最小的自注意力跑一遍你就懂了。环境准备Python 3.x即可pipinstallnumpy代码保存为self_attention.pyimportnumpyasnp np.random.seed(42)d8# 向量维度n4# 句子长度假设句子是 小猫 追 球 它# 1. 模拟4个词的输入向量真实场景由Embedding层生成Xnp.random.randn(n,d)# 2. 随机初始化 Q/K/V 的投影矩阵真实模型中是训练出来的Wq,Wk,Wv(np.random.randn(d,d)*0.1for_inrange(3))Q,K,VX Wq,X Wk,X Wv# 3. 注意力分数 Q 和 K 的点积除以 sqrt(d) 防止分数过大scoresQ K.T/np.sqrt(d)# 4. Softmax 归一化成权重每行和为1defsoftmax(x):enp.exp(x-x.max(axis-1,keepdimsTrue))returne/e.sum(axis-1,keepdimsTrue)attnsoftmax(scores)# 5. 权重加权 V得到融合上下文的新表示outputattn Vprint(注意力权重矩阵第4行『它』对各词的关注度:)print(np.round(attn,2))print(\n输出形状:,output.shape)# (4, 8)每个词都更新了表示观察要点注意力权重矩阵的第4行就是它对小猫、追、球、它四个词的关注度分布。真实大模型里这个矩阵第4行在小猫位置的权重会显著更高——这就是模型理解指代的方式。进阶作业把d改成64把注意力包一层循环实现多头注意力对比权重矩阵的差异。五、面试高频问题 JD 背后的考点为什么要除以 √d点积随维度增大而变大不缩放会让Softmax进入饱和区梯度消失。Q、K、V 为什么是三个不同的矩阵若相同一个词对自己的注意力永远是最大值学不到关注别人。GPT用DecoderBERT用什么BERT只用Encoder双向注意力适合理解类任务GPT用带因果掩码的Decoder只能看左边适合生成。Decoder的因果掩码是什么训练时遮住未来的词防止作弊看到答案——这也是生成模型必须逐token输出的原因。Self-Attention的计算复杂度O(n²·d)序列长度翻倍、计算量翻4倍——这是长上下文贵、且各家都在优化如FlashAttention、稀疏注意力的根本原因。六、总结今天记住三句话就够了Transformer 自注意力 前馈网络堆N层取代RNN实现并行计算和长距离依赖建模。自注意力 用Q查K、按权重取V本质是让每个词动态决定该关注谁。GPT就是Decoder-only的Transformer反复预测下一个词——大模型没有魔法只有下一个token的概率分布。明日预告 · Day 2 | Token与分词为什么strawberry里有几个r难倒了无数大模型模型眼中的文字不是字而是Token一个汉字可能1个token也可能3个。我们将用OpenAI的tiktokenizer工具亲手数token并讲清它和你API账单的直接关系。