news 2026/8/9 21:15:48

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 编码器(Encoder)详解以及算法实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 编码器(Encoder)详解以及算法实现

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

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

课程介绍

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

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 编码器(Encoder)详解以及算法实现

编码器结构:

  1. 多头自注意力 (MHA):每个位置对整句做“信息汇聚”。

  2. 前馈网络 (FFN):逐位置的两层 MLP(常用维度 d_ff=4×d_model)。

  3. 残差连接 + LayerNorm:稳定训练、加速收敛。

代码实现:

# 编码器层 class EncoderLayer(nn.Module): def __init__(self, d_model, self_attention, d_ff, dropout=0.1): super().__init__() self.d_model = d_model self.self_attention = self_attention # 多头自注意力机制 self.feed_forward = d_ff # 前馈神经网络 self.residual_connection1 = ResidualConnection(d_model, dropout) # 残差连接 self.residual_connection2 = ResidualConnection(d_model, dropout) # 残差连接 def forward(self, x): """ 前向传播 参数: x: 输入张量 [batch_size, seq_len, d_model] mask: 掩码张量 [batch_size, seq_len, seq_len] 返回: 编码器层的输出张量 """ # 多头自注意力机制 x1 = self.residual_connection1(x, lambda x: self.self_attention(x, x, x)) # 多头自注意力机制 x2 = self.residual_connection2(x1, lambda x: self.feed_forward(x)) # 前馈神经网络 return x2 # 编码器 (由多个编码器层堆叠) class Encoder(nn.Module): def __init__(self, num_layers, layer): super().__init__() self.layers = nn.ModuleList([copy.deepcopy(layer) for _ in range(num_layers)]) self.norm = LayerNorm(layer.d_model) def forward(self, x): """ 前向传播 输入: x: 输入张量 [batch_size, seq_len, d_model] 返回: 编码器的输出张量 [batch_size, seq_len, d_model] """ for layer in self.layers: x = layer(x) return self.norm(x) # 测试编码器 def test_encoder(): 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]])) positional_encoding = PositionalEncoding(embedding_dim) positional_result = positional_encoding(embed_result) mha = MultiHeadAttention(d_model=512, num_heads=8) # 多头自注意力机制 ffn = FeedForward(d_model=512, d_ff=2048) # 前馈神经网络 encoder_layer = EncoderLayer(d_model=512, self_attention=mha, d_ff=ffn) # 编码器层 # 实例化编码器对象 encoder = Encoder(num_layers=6, layer=encoder_layer) encoder_result = encoder(positional_result) print('encoder_result.shape:', encoder_result.shape) if __name__ == '__main__': test_encoder()

运行测试:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 16:26:03

ToolsFx密码学工具箱:一站式安全数据处理终极解决方案

ToolsFx密码学工具箱:一站式安全数据处理终极解决方案 【免费下载链接】ToolsFx 基于kotlintornadoFx的跨平台密码学工具箱.包含编解码,编码转换,加解密, 哈希,MAC,签名,大数运算,压缩,二维码功能,ctf等实用功能,支持插件 项目地址: https://gitcode.com/gh_mirro…

作者头像 李华
网站建设 2026/8/10 18:36:19

Charticulator快速入门:零基础掌握交互式图表设计的终极指南

Charticulator快速入门:零基础掌握交互式图表设计的终极指南 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 想要创建专业级的交互式数据可视化图表吗…

作者头像 李华
网站建设 2026/8/10 18:48:57

R.swift高效升级方案:从传统到现代的平滑过渡指南

R.swift高效升级方案:从传统到现代的平滑过渡指南 【免费下载链接】R.swift Strong typed, autocompleted resources like images, fonts and segues in Swift projects 项目地址: https://gitcode.com/gh_mirrors/rs/R.swift R.swift作为Swift项目中的强类型…

作者头像 李华
网站建设 2026/8/9 3:04:26

小米MiMo-Audio:重新定义音频AI的通用智能边界

小米MiMo-Audio:重新定义音频AI的通用智能边界 【免费下载链接】MiMo-Audio-7B-Base 项目地址: https://ai.gitcode.com/hf_mirrors/XiaomiMiMo/MiMo-Audio-7B-Base 音频AI技术正面临怎样的发展瓶颈?传统语音模型为何难以实现真正的跨任务泛化&a…

作者头像 李华
网站建设 2026/8/10 0:57:17

【YOLO11-MM 多模态目标检测】序列混洗注意力模块(SSA)、保持输入图像的局部性和连续性

摘要 本文提出了一种基于序列混洗注意力(SSA)的YOLO11-MM多模态目标检测框架改进方法。针对红外与可见光多模态场景下传统特征融合方法的不足,SSA模块通过通道重排和分组门控注意力机制,实现了跨模态特征的高效交互与自适应聚合。实验在FLIR等数据集上验…

作者头像 李华
网站建设 2026/8/9 3:24:33

书法学习交流|基于Java+ vue书法学习交流系统(源码+数据库+文档)

书法学习交流 目录 基于springboot vue书法学习交流系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue书法学习交流系统 一、前言 博主介绍&…

作者头像 李华