跳转到主要内容

LLM 训练

aitraining llm 命令训练大语言模型,支持多种训练器和技术。

快速开始

可用训练器

genericdefault 的别名。三者(defaultsftgeneric)产生相同的行为。
PPO 训练器要求:PPO 需要 --rl-reward-model-path(训练好的奖励模型路径)或 --model-ref(用于 KL 散度的参考模型)。完整文档请参阅 PPO 训练
GRPO 训练器要求:GRPO 需要 --rl-env-module(Python 模块路径)和 --rl-env-class(类名)来指定自定义环境。完整文档请参阅 GRPO 训练

参数组

参数按逻辑分组:

基本参数

始终指定这些参数:虽然 --model--data-path--project-name 有默认值,但您应该始终根据您的用例明确设置它们。--project-name 参数设置输出文件夹 - 使用 --project-name ./models/my-experiment 这样的路径来控制训练好的模型保存位置。

训练配置

检查点与评估

性能与内存

Unsloth 要求:Unsloth 仅适用于 sft/default 训练器和特定模型架构(llama、mistral、gemma、qwen2)。详细信息请参阅 Unsloth 集成

后端与分布式

多 GPU 行为:使用多个 GPU 且未设置 --distributed-backend 时,会自动使用 DDP。设置 --distributed-backend deepspeed 以进行 DeepSpeed Zero-3 优化。训练通过 Accelerate 启动。
DeepSpeed 检查点:使用 DeepSpeed 时,模型保存使用 accelerator.get_state_dict() 并解包模型。PEFT 适配器保存在 DeepSpeed 下的处理方式不同。

PEFT/LoRA 参数

数据处理

聊天模板自动选择:SFT/DPO/ORPO/Reward 训练器默认为 tokenizer(模型的内置模板)。对于纯文本训练,使用 --chat-template none
处理后数据保存:默认(auto),处理后的数据保存在本地 {project}/data_processed/。如果源数据集来自 Hub,也会作为私有数据集推送。原始列会重命名为 _original_* 以防止冲突。

训练示例

使用 LoRA 的 SFT

DPO 训练

对于 DPO,您必须指定提示、选择和拒绝响应的列名:
DPO 和 ORPO 需要指定 --prompt-text-column--rejected-text-column

ORPO 训练

ORPO 结合了 SFT 和偏好优化:

GRPO 训练

使用自定义奖励环境进行 Group Relative Policy Optimization 训练:
GRPO 为每个提示生成多个补全,通过您的环境评分(0-1),并优化策略。有关环境接口详情,请参阅 GRPO 训练

知识蒸馏

训练较小的模型以模仿较大的模型:
蒸馏默认值:--distill-temperature 3.0--distill-alpha 0.7--distill-max-teacher-length 512

日志记录与监控

Weights & Biases(默认)

带有 LEET 可视化器的 W&B 日志记录默认启用。LEET 可视化器直接在您的终端中显示实时训练指标。
To disable W&B or the visualizer:

TensorBoard

推送到 Hugging Face Hub

上传您训练好的模型:
存储库默认创建为私有。默认情况下,存储库将命名为 {username}/{project-name}

自定义存储库名称或组织

使用 --repo-id 推送到特定存储库,适用于:
  • 推送到组织而不是个人账户
  • 使用与本地 project-name 不同的存储库名称
使用 --repo-id 时,不需要 --username,因为存储库 ID 已经指定了目标位置。但是,您仍然需要 --token 进行身份验证。

高级选项

超参数扫描

增强评估

查看所有参数

查看特定训练器的所有参数:

下一步

YAML 配置

使用配置文件

DPO 训练

深入了解 DPO

LoRA/PEFT

高效微调

蒸馏

知识蒸馏

GRPO 训练

使用自定义环境的 RL