Part 1:Transformer结构
Transformer 是一种在自然语言处理(NLP)领域取得重大突破的深度学习模型,它通过自注意力机制(Self-Attention)取代了传统的循环神经网络(RNN)和卷积神经网络(CNN),在处理长距离依赖和并行计算方面表现出色。Transformer 模型由编码器(Encoder)和解码器(Decoder)两部分组成,广泛应用于机器翻译、文本生成等任务。
以“我想去东北玩”这句话为例,Transformer 模型会通过以下步骤进行处理:
- 输入编码:首先,句子会被分词并转换为词向量(Word Embedding),并加入位置编码(Positional Encoding)以保留词序信息。
- 自注意力机制:在编码器中,模型通过自注意力机制计算每个词与其他词之间的关系,捕捉上下文信息。例如,“东北”与“玩”之间的关联会被重点关注。
- 前馈神经网络:经过自注意力机制后,数据会通过前馈神经网络进行进一步处理,提取更高级的特征。
- 解码过程:如果任务是生成翻译或回答,解码器会基于编码器的输出逐步生成目标序列。例如,翻译成英文“I want to visit Northeast China”。
- 输出结果:最终,模型会输出处理后的结果,可能是翻译、分类或生成的新文本。
Ps:有一说一官方的表达真的很让人没有读下去的欲望,本人以后将摒弃这种风格(手动狗头,科研大佬别喷我)
1.1 骨架拆解:
Step 0:向量身份证办理处(Embedding)
每个字都要通过派出所式流程:
- 词向量贴膜:"东"字→[0.3, -0.8, 1.2,…](50%概率匹配原文老大爷式风格)
- 位置编码上户口:给每个字加装GPS定位)
# 伪代码示意(实际搞灵魂代码请右转)
东北_坐标 = 东向量 + 东风快递级位置编码
Step 1:Attention KTV大型选秀现场
所有字冲进KTV包房搞量子纠缠:
- QKV三件套:每个字化身三身份(Query/Key/Value)
**“东”**举起Query麦克风✨:- 和"北"的Key深情对唱(矩阵相乘狂算关联度)
- 动态计分板屏显:<东北组合>得分0.85 MVP❗
- 分数经过softmax柔光滤镜,变成VIP入场券
#公式简化版
attention_score = (Q * K.T) / sqrt(dim)
最终灯光 = softmax(attention_score) * V # 顶级打光师闭眼操作
Step 2:多头竞技大逃杀
你以为只搞一轮?Too young!实际是八组注意力头组队飙戏:
- 1号:死磕美食路线(锅包肉→松花江→冰雪大世界)
- 5号:专注方言识别("整"的108种含义破译📖)
- 8号:预防幻觉暴走(及时掐灭"去东北看企鹅"的荒唐念头)
所有头的结果拼接后,还要经过线性层的直男表单操作
Step 3:前馈榨汁机多层暴击
注意力精华投喂给MLP榨汁机搞深度萃取:
# 黑科技SwiGLU结构示意
hidden = SwiGLU(注意力输出) # 先给果汁加跳跳糖
output = Linear(hidden) # 再拿榨汁机滚三遍
这相当于把"我想去东北玩"这句话:
- 搅碎成记忆碎片 → 文火焖煮抽提语义 → 高压喷射成型为潜在旅游攻略💥
1.2 实战黑科技大赏
想要偷偷修改Transformer架构?试试这些暑期限定外挂:
改造部位 | 骚操作 | 效果 |
---|---|---|
注意力头 | 动态关闭部分头 | 像给AI拔智齿—防止过拟合牙疼 |
位置编码 | 切换为ALiBi位姿 | 支持5000字小作文—外推能力+MAX! |
残差连接 | 给跳跃连接喂狗粮 | 缓解梯度消失—网络深度+10086 |
魔鬼细节警告:
- 输入序列超长时,KV缓存会比甲方需求更吃显存(别问,问就是显存爆炸名场面)
- LayerNorm像美颜滤镜,能让梯度更新更顺滑(但别和RMSNorm搞混了警告⚠️)
- 训练时如果用bf16精度,建议把空调开到16℃防爆炸(炼丹师的夏日限定玄学🌡️)
1.3 参数量爆炸奥义
当我们把模型扩展到70B参数(参考的GQA黑魔法):
- 显存占用:从哈尔滨冰雕变成三峡大坝规模
- 计算速度:从电动三轮进化为高铁复兴号
- 部署难度:需要请出分布式计算的十八罗汉阵(隐藏条款)
这时候你会发现,想要运行完整的训练流程,需要的不是代码能力而是:
《卡戴珊式显存管理术》 + 《基金经理的梯度裁剪指南》 + 《少林易筋经之优化器调参大法》
当计算loss时:
- 梯度像瀑布倒流回每一层网络
- 参数进入"骂骂咧咧但不得不改"模式
# 伪代码示意
with autograd.detect_anomaly():
反向传播() # 此时程序员会疯狂哐哐砸键盘
建议配合《大悲咒》循环BGM食用更佳🙏—
Part 2:硬核组件PK赛——神仙们都在卷什么?
2.1 RMSNorm vs LayerNorm:标准化宫斗大戏
- LayerNorm:传统老艺术家
# 给每个神经元做美甲(均值方差对齐) (x - mean(x)) / sqrt(variance(x) + ε)
- RMSNorm:新锐实力派
# 放弃均值,程序员的头发+1 x / sqrt(mean(x²) + ε)
栗子:好比东北阿姨扫雪,LayerNorm要把雪堆整平,RMSNorm只关心雪堆高度别超过红绿灯!🚦
2.2 RoPE旋转位置编码——文字的华尔兹
想让AI记住"爱你三万遍"和"三万遍爱你"的区别?RoPE让文字位置跳起向量旋转舞💃:
- 每个位置对应旋转矩阵(详情见图)
- 实现公式: x i ′ = x i ⋅ e i θ j x_i' = x_i \cdot e^{i\theta_j} xi′=xi⋅eiθj ( θ \theta θ=位置相关角)
- 优势:
- 让远程文字照样谈恋爱(解决长文本失忆)
- 比传统位置编码省40%算力(老板感动哭)
2.3 SwiGLU激活函数——神经网络的千层套路
传统ReLU只会躺平输出max(0,x),SwiGLU却是时间管理大师:
# 完全看不懂的数学公式
Swish(x) = x * sigmoid(βx) # β是可学习的海王参数
Gate = Swish(W_gate * x) # 门控:决定信息流量
Output = Gate ⊙ (W_up * x) # ⊙是元素级羞羞操作
人话翻译:就像给每个神经元配了三个打工仔(升维→筛选→降维),比普通激活函数多赚30%的信息收益!
2.4 GQA分组查询注意力——穷人的钞能力
当70B大模型显存爆炸时,GQA给你省出一个显卡钱💰:
方案 | 显存消耗 | 效果 |
---|---|---|
原生Attention | 100% | 原汁原味 |
MQA(人人共享) | 20% | 可能智障 |
GQA | 50% | 机智如初(最优解) |
原理说明:
把8个头分成4组,每组共享KV钥匙(K/V)。就像公司把会议分成小组,效率不减预算砍半!
Part 3:DeepSeek模型推理——赛博修仙步步惊心 🧑💻
以输入"杭州哪里能逛gai"为例,解析DeepSeek推理九重天:
3.1 输入咒语编码
# 提示词工程showtime
template = "你是个爱用颜文字的本地导游(,,•́ . •̀,,)"
input_ids = tokenizer.encode(f"<|system|>{template}</s><|user|>杭州哪里能逛gai</s><|assistant|>")
# 输出:["101", "3045", ...] 文字密码get√
3.2 知识内核觉醒
经过32层Transformer改造:
- 前6层:
识别"杭州"→西湖/互联网之都
🧠动态:RMSNorm给向量调亮度,RoPE修正地理位置 - 中间18层:
SwiGLU激活"逛gai"→in77/湖滨银泰/武林夜市 - 最后8层:
GQA筛选最优解:西湖边(概率值0.78)
3.3 输出控场艺术
当temperature=0.7时:
推荐西湖边的in77商圈(๑>◡<๑)
网红打卡点:
✨南宋御街 → 逛街+给对象拍照两不误(旁边的吴山广场真的不错)
若temperature=0.2(低温直男模式):
建议前往西湖区武林广场商圈,该区域包含杭州大厦等综合商业体。