llm.training 模块
欢迎来到 llm.training 模块!这是一个为 PyTorch 设计的模块化、可扩展的训练框架.
设计理念
本框架的核心设计理念是解耦和可扩展性. 我们将通用的训练逻辑(如分布式训练、日志记录、检查点管理)与具体的任务逻辑(模型、优化器、损失函数)分离开来. 这使得开发者可以:
- 快速迭代: 专注于实现
TrainingTask, 而无需关心底层的训练循环和分布式设置. - 轻松扩展: 通过自定义
Callback来添加新功能, 或通过实现新的TrainingTask来支持新的模型和数据.
文档导航
为了帮助您更好地理解和使用本框架, 我们提供了以下详细文档, 覆盖了从入门到精通的各个方面:
理论与结构
-
- 深入了解构成训练框架的各个核心类, 例如
TrainingEngine、Config、CheckpointManager等. 这里是理解“什么”的地方.
- 深入了解构成训练框架的各个核心类, 例如
-
- 从程序启动到结束, 宏观地了解各个组件是如何被依次调用和交互的. 这里是理解“如何”的地方.
-
- 详细剖析了回调(Callback)系统, 解释了在训练过程的各个阶段, 您的自定义逻辑可以在何时被触发. 这里是理解“何时”的地方.
实践与应用
-
指南: 配置训练任务 (
guide-configuration.md)- 学习如何通过命令行、YAML 文件和环境变量来配置您的训练任务.
-
指南: 扩展训练框架 (
guide-extending.md)- 通过具体的“食谱”示例, 学习如何添加新的任务、回调、调度器等, 以扩展框架的功能.
-
- 快速诊断和解决训练过程中可能遇到的常见问题.
深入主题
- 深度解析: 分布式数据并行 (DDP) (
deep-dive-ddp.md)- 为希望深入理解分布式训练背后原理的用户提供背景知识.
快速开始
- 定义你的任务: 创建一个
TrainingTask的子类, 并实现其所有抽象方法. - 注册你的任务: 在
train.py的AVAILABLE_TASKS字典中添加你的新任务. -
运行训练: 在命令行中执行以下命令: