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的子类, 并实现其所有抽象方法. - 注册你的任务: 在
training/tasks/builtin.py中通过TASK_REGISTRY.register()注册你的新任务(并可选地在pyproject.toml的llm.tasksentry-point 组注册)。 -
运行训练: 在命令行中执行以下命令: