ActNN:基于激活压缩的高效训练库安装与使用指南
一、项目目录结构及介绍
ActNN是一个专为PyTorch设计的库,旨在通过2位激活压缩训练大幅度减少模型训练时所需的记忆体占用。以下是项目的基本目录结构及其简介:
ucbrise/actnn
├── actnn # 核心代码模块,包括实现记忆体节省层的代码
│ ├── __init__.py
│ └── ... # 包含各种优化过的层如QConv2d, QReLU等
├── benchmarks # 性能测试脚本和数据
├── examples # 使用ActNN的示例代码,涵盖不同类型的任务
│ ├── image_classification
│ └── mem_speed_benchmark
├── image_classification # 用于图像分类任务的相关配置和模型构建示例
├── LICENSE # 许可证文件,遵循MIT协议
├── README.md # 项目的主要说明文档
├── requirements.txt # 依赖项列表
└── setup.py # 安装脚本
actnn
目录包含了核心功能,提供了多个自定义的PyTorch层,以支持压缩激活的训练。benchmarks
和examples
分别提供性能测试案例和如何在实际应用中使用ActNN的实例。image_classification
提供特定于图像分类任务的配置和模型构建方法。
二、项目启动文件介绍
ActNN的启动通常不是通过单一的“启动文件”,而是通过将库集成到用户的训练脚本中。一个典型的启动流程会涉及到导入ActNN,配置优化级别,以及转换模型来使用ActNN的内存效率层。例如,从mem_speed_benchmark/train.py
文件开始,它演示了如何使用ActNN来衡量不同的模型在内存使用和训练速度上的表现。用户需首先设置ActNN的优化级别,然后转换其模型的层,之后便可以执行常规的训练过程。
示例启动步骤(简化的):
-
配置: 在你的训练脚本中引入ActNN并设定优化级别。
import actnn actnn.set_optimization_level('L3')
-
模型转换: 将您的PyTorch模型转换为使用ActNN的版本。
model = actnn.QModule(model)
-
执行训练: 遵循您原有的训练流程,但此时模型会使用ActNN的特性进行训练。
三、项目的配置文件介绍
虽然ActNN的核心使用不直接关联到一个固定的配置文件,但用户可以通过代码中的变量和参数进行配置,比如优化级别(set_optimization_level
)。对于更复杂的应用场景,如自定义模型、调整数据加载器或启用特殊功能(如混合精度训练),配置通常是在用户自己的训练脚本中完成的。例如,调整数据加载器以返回样本索引,或者在配置ActNN的一些高级选项时,可能需要手动设置一些变量或利用ActNN提供的API。
对于特定任务,如图像分类,可能会有相应的配置文件或脚本(如image_classification
目录下的配置),这些通常是用来设置网络架构、训练循环参数等的。不过,这些配置并不是集中在一个全局的文件里,而是分散在各个示例和模块之中,需要用户根据具体示例进行查阅和修改。
这个指南概述了如何开始使用ActNN,包括基础的目录理解、简单的启动流程和配置方式。深入学习ActNN时,应参考其详细的文档和源码注释,以充分利用该库的功能。