当前位置: 首页 > news >正文

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 残差连接(Residual Connection)详解以及算法实现

锋哥原创的Transformer 大语言模型(LLM)基石视频教程:

https://www.bilibili.com/video/BV1X92pBqEhV

课程介绍

本课程主要讲解Transformer简介,Transformer架构介绍,Transformer架构详解,包括输入层,位置编码,多头注意力机制,前馈神经网络,编码器层,解码器层,输出层,以及Transformer Pytorch2内置实现,Transformer基于PyTorch2手写实现等知识。

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 残差连接(Residual Connection)详解以及算法实现

在深层网络中,随着网络深度的增加,梯度在反向传播时容易消失或爆炸,导致网络难以训练。为了解决这个问题,Transformer采用了残差连接,即将每一层的输入与该层的输出进行相加,而不是直接使用该层的输出。

形式:

这种连接方式保证了在网络初期,若子层变换的结果接近于零,则输出与输入相同,从而缓解了深度神经网络中梯度消失的问题。

优点:

  1. 恒等映射:使得网络能容易地学习到恒等映射,即如果某一层的变换没有效果,模型可以跳过该层。

  2. 梯度流畅:在反向传播时,梯度可以通过残差连接直接传递,避免了梯度消失的问题。

代码实现:

# 实现残差连接 class ResidualConnection(nn.Module): def __init__(self, d_model, dropout=0.1): # d_model 词嵌入维度 512 dropout 随机丢失率 super().__init__() self.norm = LayerNorm(features=d_model) self.dropout = nn.Dropout(dropout) def forward(self, x, sublayer): """ 前向传播 参数: x: 输入张量 [batch_size, seq_len, d_model] sublayer: 残差连接的子层 多头自注意力机制,或者来自前馈神经网络 返回: 残差连接后的张量 """ return x + self.dropout(self.norm(sublayer(x))) if __name__ == '__main__': vocab_size = 2000 # 词表大小 embedding_dim = 512 # 词嵌入维度的大小 embeddings = Embeddings(vocab_size, embedding_dim) embed_result = embeddings( torch.tensor([[1999, 2, 99, 4, 5], [66, 2, 3, 22, 5], [66, 2, 3, 4, 5]])) print("embed_result.shape:", embed_result.shape) print("embed_result", embed_result) positional_encoding = PositionalEncoding(embedding_dim) result = positional_encoding(embed_result) print("result:", result) print("result.shape:", result.shape) # 测试自注意力机制 # query = key = value = result # mask = create_sequence_mask(5) # dropout = nn.Dropout(0.1) # attention_output, attention_weights = self_attention(query, key, value, mask, dropout) # print("attention_output.shape:", attention_output.shape) # [3, 5, 512] # print("attention_weights.shape:", attention_weights.shape) # [3, 5, 5] mha = MultiHeadAttention(d_model=512, num_heads=8) # print(mha) mask = create_sequence_mask(5) # 定义匿名函数 sublayer = lambda x: mha(x, x, x, mask) # 测试残差连接 rc = ResidualConnection(d_model=512) result_rc = rc(result, sublayer) print("result_rc.shape:", result_rc.shape)

运行输出:

http://www.cnnetsun.cn/news/32784.html

相关文章:

  • AWS-Nuke 终极指南:彻底清理AWS账户的完整教程
  • Python性能测试终极指南:用pyperf工具包提升代码效率
  • InterviewThis:开发者面试必备的全面评估指南,助你找到理想工作环境
  • 5分钟快速上手:Yaak桌面API客户端终极使用指南
  • Intel RealSense深度相机标定完全指南:从基础到高级参数调整
  • 在线教育学习|基于java + vue在线教育学习系统(源码+数据库+文档)
  • 350万美元颠覆千亿模型格局:Cogito v2 109B MoE开启开源效率革命
  • 出行旅游安排|基于springboot出行旅游安排系统(源码+数据库+文档)
  • 学生管理|基于springboot学生管理系统(源码+数据库+文档)
  • 酒店预约|基于springboot 酒店预约系统(源码+数据库+文档)
  • K8s API Server:集群的大脑
  • 10、Samba网络服务:NetBIOS名称解析与浏览功能详解
  • 13、Samba文件与打印共享配置全解析
  • 6、SELinux 策略配置与 Web 应用限制实践
  • 17、SELinux调试与审计全解析
  • Qwen3-VL-8B-Thinking-FP8:80亿参数开启多模态AI普惠时代
  • ComfyUI与舆情监控系统联动:自动生成事件相关配图
  • 16、打造让用户满意的网络环境
  • 24、深入探究 Samba 安全与服务集成
  • 如何在Ubuntu 20.04上正确配置Intel RealSense L515相机支持:完整解决方案指南
  • Windows命令行工具终极指南:3分钟快速上手系统管理神器
  • 18、Unix系统进程监控与脚本实现
  • 25、磁盘分区监控与主机自动ping脚本详解
  • Android TV性能优化工具配置指南:三步告别卡顿与内存泄漏
  • Canvas动画性能优化终极指南:10个让动画流畅如丝的核心技巧
  • 320亿参数逆袭!GLM-Z1开源模型重塑企业AI推理范式
  • Microsoft Equation Editor 3.0 公式编辑器完全解决方案
  • spotDL音乐下载终极指南:从Spotify到本地的完美转换
  • springboot基于vue的题库管理系统_1jhwudo9(源码+lw+部署讲解+答辩ppt等)
  • 8、Red Hat Linux 用户管理与软件管理指南