news 2026/9/19 0:42:14

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 层归一化(Layer Normalization)详解以及算法实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 层归一化(Layer Normalization)详解以及算法实现

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

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

课程介绍

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

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 层归一化(Layer Normalization)详解以及算法实现

层归一化(LayerNorm)是对输入的每一维特征进行归一化,使得网络在训练过程中保持稳定。

公式:

优点:

  1. 稳定性:层归一化可以防止输入值的范围过大或过小,使得训练过程更加稳定。

  2. 与批大小无关:不像批归一化依赖于批量大小,层归一化是针对每个样本单独进行归一化,非常适合序列模型。

代码实现:

# 层归一化 class LayerNorm(nn.Module): # features 512 词嵌入维度 eps 极小值常数,防止零分母 def __init__(self, features, eps=1e-6): super().__init__() self.gamma = nn.Parameter(torch.ones(features)) # 可学习的缩放参数 self.beta = nn.Parameter(torch.zeros(features)) # 可学习的平移参数 self.eps = eps def forward(self, x): """ 前向传播 参数: x: 输入张量 [batch_size, seq_len, d_model] [3,5,512] 来自多头自注意力机制,或者来自前馈神经网络 返回: 归一化后的张量 """ mean = x.mean(-1, keepdim=True) # 计算均值 [3,5,512] variance = x.var(-1, keepdim=True) # 计算方差 [3,5,512] x = (x - mean) / torch.sqrt(variance + self.eps) # 归一化 [3,5,512] return self.gamma * x + self.beta 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) result = mha(result, result, result, mask) print("result.shape:", result.shape) # [3, 5, 512] # 测试前馈神经网络 # ffn = FeedForward(d_model=512, d_ff=2048) # ffn_result = ffn(result) # print('ffn_result:', ffn_result.shape) # 测试层归一化 ln = LayerNorm(features=512) ln_result = ln(result) print("ln_result:", ln_result.shape)

运行结果:

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

玩转SM16714PHT景观装饰驱动IC(1)

一、概述 1. 芯片简介 SM16714PHT是深圳市明微电子股份有限公司推出的一款单线传输四通道LED驱动控制专用芯片,采用单线归零码SID数据协议。 SM16714PHT可通过芯片内之的电流增益调节功能设置电流2.5mA~40mA,OUT R/G/B/W各32级电流增益(即…

作者头像 李华
网站建设 2026/9/18 18:49:05

云服务器的核心优势

云服务器作为新一代计算服务模式,正逐步替代传统物理服务器成为企业数字化转型的基础设施核心。其通过虚拟化技术整合计算资源,结合网络分布式架构实现弹性扩展,为用户带来远超传统IT架构的综合价值。以下从技术架构、成本控制、业务支撑等维…

作者头像 李华
网站建设 2026/9/17 3:19:43

Qwen3-14B-AWQ:重新定义轻量化大模型效率标准

在2025年AI大模型领域,Qwen3-14B-AWQ以其革命性的14.8亿参数设计和AWQ 4-bit量化技术,正在重塑企业级AI部署的性价比认知。这款来自阿里巴巴通义千问团队的开源模型,不仅将硬件门槛降低至消费级GPU水平,更在性能保持率上实现了97%…

作者头像 李华
网站建设 2026/9/17 11:07:43

Linux环境下的C语言编程(三十九)

三、队列的基本操作&#xff08;接三十八&#xff09;1. 基本数据结构定义#include <stdio.h> #include <stdlib.h> #include <stdbool.h>#define MAX_SIZE 100 // 队列最大容量// 队列结构体定义 typedef struct {int data[MAX_SIZE]; // 存储数据的数组i…

作者头像 李华
网站建设 2026/9/17 19:01:51

毕业设计实战:基于SSM+MySQL的图书商城管理系统设计与实现,从需求到测试全流程拆解,新手也能轻松通关!

毕业设计实战&#xff1a;基于SSMMySQL的图书商城管理系统设计与实现&#xff0c;从需求到测试全流程拆解&#xff0c;新手也能轻松通关&#xff01; 谁懂啊&#xff01;当初做图书商城管理系统毕设时&#xff0c;光“图书表”和“图书收藏表”的外键关联就卡了2天——一开始没…

作者头像 李华