菜单

概述

相关源文件

LabML 神经网络 (labml_nn) 是深度学习研究论文的 PyTorch 注释实现集合,旨在使复杂的算法更易于访问和理解。该存储库提供清晰、具有教育意义的实现,并附带以并排格式化笔记形式呈现的详尽文档,而非优化后的生产代码。

该存储库涵盖了广泛的深度学习主题,包括 Transformer、扩散模型、GAN、强化学习算法、优化器和归一化技术。每个实现都严格遵循原始研究论文,并添加了解释性注释和文档。

有关安装和设置的信息,请参阅安装和设置

存储库结构

labml_nn 存储库根据算法系列组织成模块。每个模块都包含实现文件、实验示例和文档。

存储库架构图

来源:labml_nn/__init__.py1-153 readme.md1-150

实现理念

labml_nn 中的每个实现都遵循一致的结构

  1. 清晰的实现代码 附带详细注释
  2. 教育性重点 优先考虑可读性而非性能优化
  3. 实验示例 演示用法
  4. 文档 随代码解释算法的文档

每个模块都设计为独立单元,允许用户独立理解和使用每个算法。

文档系统

该存储库具有一个全面的文档系统,该系统将代码与注释以并排格式化笔记的形式呈现,并提供多种语言版本。

文档生成流程

来源:docs/sitemap.xml1-1388 docs/index.html1-221

主要组件类别

Transformer 架构

Transformer 模块是该存储库中最大的组件,实现了原始的 Transformer 架构和众多变体。

Transformer 组件和变体

来源:labml_nn/transformers/__init__.py1-110 docs/transformers/index.html1-171

生成模型

该存储库提供了各种生成模型的实现,包括 GAN 和基于扩散的模型。

生成模型层次结构

来源:labml_nn/__init__.py57-70 readme.md54-67

训练基础设施

该存储库包括优化器、归一化技术和实验设置的实现。

类别组件关键文件
优化器Adam、AMSGrad、RAdam、AdaBelief、Noamoptimizers/adam.py、optimizers/amsgrad.py 等。
归一化BatchNorm、LayerNorm、GroupNorm、InstanceNormnormalization/batch_norm/、normalization/layer_norm/ 等。
实验配置NLP 自回归、MNIST、CIFAR10experiments/nlp_autoregression.py、experiments/mnist.py 等。

来源:labml_nn/__init__.py107-123 readme.md104-120

微调技术

该存储库实现了高效微调大型预训练模型的技术,重点在于参数高效方法。

微调方法

来源:labml_nn/__init__.py50 readme.md47

可扩展性和用法

labml_nn 库的设计兼具教育性和实用性。用户可以

  1. 学习实现 以理解算法
  2. 运行实验示例 查看算法运行效果
  3. 在自己的项目中引用组件 通过 pip 安装包
  4. 扩展实现 用于研究或应用

该存储库积极维护,定期添加新的实现。用户可以在 GitHub 或 Twitter 上关注项目以获取更新。

来源:setup.py1-44 readme.md145-149

包依赖

该库主要依赖以下组件:

  • PyTorch (torch)
  • TorchText (torchtext)
  • TorchVision (torchvision)
  • LabML (labml) - 用于实验跟踪
  • einops - 用于张量操作
  • numpy - 用于数值操作
  • 其他根据算法而定的专业库

来源:setup.py23-30 requirements.txt1-13