LLM 训练
aitraining llm 命令训练大语言模型,支持多种训练器和技术。
快速开始
可用训练器
| 训练器 | 描述 |
|---|---|
default / sft / generic | 监督微调 |
dpo | 直接偏好优化 |
orpo | 优势比偏好优化 |
ppo | 近端策略优化 |
grpo | 群组相对策略优化(自定义环境) |
reward | 奖励模型训练 |
distillation | 知识蒸馏 |
generic 是 default 的别名。三者(default、sft、generic)产生相同的行为。参数组
参数按逻辑分组:基本参数
| Parameter | Description | Default |
|---|---|---|
--model | Base model to fine-tune | google/gemma-3-270m |
--data-path | Path to training data | data |
--project-name | Output directory name | project-name |
--train-split | Training data split | train |
--valid-split | Validation data split | None |
始终指定这些参数:虽然
--model、--data-path 和 --project-name 有默认值,但您应该始终根据您的用例明确设置它们。--project-name 参数设置输出文件夹 - 使用 --project-name ./models/my-experiment 这样的路径来控制训练好的模型保存位置。训练配置
| Parameter | Description | Default |
|---|---|---|
--trainer | Training method | default |
--epochs | Number of training epochs | 1 |
--batch-size | Training batch size | 2 |
--lr | Learning rate | 3e-5 |
--mixed-precision | fp16/bf16/None | None |
--gradient-accumulation | Accumulation steps | 4 |
--warmup-ratio | Warmup ratio | 0.1 |
--optimizer | Optimizer | adamw_torch |
--scheduler | LR scheduler | linear |
--weight-decay | Weight decay | 0.0 |
--max-grad-norm | Max gradient norm | 1.0 |
--seed | Random seed | 42 |
检查点与评估
| Parameter | Description | Default |
|---|---|---|
--eval-strategy | When to evaluate (epoch, steps, no) | epoch |
--save-strategy | When to save (epoch, steps, no) | epoch |
--save-steps | Save every N steps (if save-strategy=steps) | 500 |
--save-total-limit | Max checkpoints to keep | 1 |
--logging-steps | Log every N steps (-1 for auto) | -1 |
--resume-from-checkpoint | Resume from checkpoint path, or auto to detect latest | None |
性能与内存
| Parameter | Description | Default |
|---|---|---|
--auto-find-batch-size | Automatically find optimal batch size | False |
--disable-gradient-checkpointing | Disable memory optimization | False |
--unsloth | Use Unsloth for faster training (SFT only, llama/mistral/gemma/qwen2) | False |
--use-sharegpt-mapping | Use Unsloth’s ShareGPT mapping | False |
--use-flash-attention-2 | Use Flash Attention 2 for faster training | False |
--attn-implementation | Attention implementation (eager, sdpa, flash_attention_2) | None |
Unsloth 要求:Unsloth 仅适用于
sft/default 训练器和特定模型架构(llama、mistral、gemma、qwen2)。详细信息请参阅 Unsloth 集成。后端与分布式
| Parameter | Description | Default |
|---|---|---|
--backend | Where to run (local, spaces) | local |
--distributed-backend | Distribution backend (ddp, deepspeed) | None |
--ddp-timeout | DDP/NCCL timeout in seconds | 7200 |
多 GPU 行为:使用多个 GPU 且未设置
--distributed-backend 时,会自动使用 DDP。设置 --distributed-backend deepspeed 以进行 DeepSpeed Zero-3 优化。训练通过 Accelerate 启动。PEFT/LoRA 参数
| Parameter | Description | Default |
|---|---|---|
--peft | Enable LoRA training | False |
--lora-r | LoRA rank | 16 |
--lora-alpha | LoRA alpha | 32 |
--lora-dropout | LoRA dropout | 0.05 |
--target-modules | Modules to target | all-linear |
--quantization | int4/int8 quantization | None |
--merge-adapter | Merge LoRA after training | True |
数据处理
| Parameter | Description | Default |
|---|---|---|
--text-column | Text column name | text |
--block-size | Max sequence length | -1 (model default) |
--model-max-length | Maximum model input length | Auto-detect from model |
--padding | Padding side (left or right) | right |
--add-eos-token | Append EOS token | True |
--chat-template | Chat template to use | Auto by trainer |
--packing | Enable sequence packing (requires flash attention) | None |
--auto-convert-dataset | Auto-detect and convert dataset format | False |
--max-samples | Limit dataset size for testing | None |
--save-processed-data | Save processed data: auto, local, hub, both, none | auto |
聊天模板自动选择:SFT/DPO/ORPO/Reward 训练器默认为
tokenizer(模型的内置模板)。对于纯文本训练,使用 --chat-template none。处理后数据保存:默认(
auto),处理后的数据保存在本地 {project}/data_processed/。如果源数据集来自 Hub,也会作为私有数据集推送。原始列会重命名为 _original_* 以防止冲突。训练示例
使用 LoRA 的 SFT
DPO 训练
对于 DPO,您必须指定提示、选择和拒绝响应的列名: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 可视化器直接在您的终端中显示实时训练指标。TensorBoard
推送到 Hugging Face Hub
上传您训练好的模型:存储库默认创建为私有。默认情况下,存储库将命名为
{username}/{project-name}。自定义存储库名称或组织
使用--repo-id 推送到特定存储库,适用于:
- 推送到组织而不是个人账户
- 使用与本地
project-name不同的存储库名称
| 参数 | 描述 | 默认值 |
|---|---|---|
--push-to-hub | 启用推送到 Hub | False |
--hub-private / --no-hub-private | 创建仓库为私有或公开 | True(私有) |
--username | HF 用户名(用于默认存储库命名) | None |
--token | HF API 令牌 | None |
--repo-id | 完整存储库 ID(如 org/model-name) | {username}/{project-name} |
高级选项
超参数扫描
增强评估
查看所有参数
查看特定训练器的所有参数:下一步
YAML 配置
使用配置文件
DPO 训练
深入了解 DPO
LoRA/PEFT
高效微调
蒸馏
知识蒸馏
GRPO 训练
使用自定义环境的 RL