从零开始实现大语言模型(八):Layer Normalization

1. 前言

Layer Normalization是深度学习实践中已经被证明非常有效的一种解决梯度消失或梯度爆炸问题,以提升神经网络训练效率及稳定性的方法。OpenAI的GPT系列大语言模型使用Layer Normalization对多头注意力模块,前馈神经网络模块以及最后的输出层的输入张量做变换,使shape为[batch_size, num_tokens, embedding_dim]的输入张量的embedding_dim维度数据的均值为0,方差为1。

本文介绍Layer Normalization的基本原理及其对输入张量的embedding_dim维度数据均值及方差做变换的方法,并实现继承自torch.nn.Module的神经网络模块LayerNorm。后续三篇文章将分别介绍前馈神经网络(feed forward network)与GELU激活函数,残差连接(shortcut connection),Transformer Block,并最终构建出OpenAI的GPT系列大语言模型GPTModel

2. Layer Normalization

如下图所示,对神经网络模块输出的均值为0.13,方差为0.39的6维向量做Layer Normalizaition,可以使输出向量的均值变为0,方差变为1。

图一

可以使用torch.nn.Sequential(torch.nn.Linear(5, 6), torch.nn.Re

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 05:32:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 05:32:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 05:32:03       45 阅读
  4. Python语言-面向对象

    2024-07-22 05:32:03       55 阅读

热门阅读

  1. TiDB热点问题

    2024-07-22 05:32:03       18 阅读
  2. setup中如何获取组件实例

    2024-07-22 05:32:03       17 阅读
  3. 编程中的智慧五:工厂设计模式

    2024-07-22 05:32:03       19 阅读
  4. 模型瘦身术:目标检测中的剪枝与量化

    2024-07-22 05:32:03       17 阅读
  5. 前端面试题日常练-day100 【Less】

    2024-07-22 05:32:03       15 阅读
  6. C++顶层const和底层const

    2024-07-22 05:32:03       17 阅读
  7. HOW - React 处理不紧急的更新和渲染

    2024-07-22 05:32:03       18 阅读
  8. kafka 基础知识

    2024-07-22 05:32:03       16 阅读
  9. 欧拉路径与欧拉回路

    2024-07-22 05:32:03       19 阅读