LlamaFactory 适配版插件

配置环境变量

在运行训练任务前,需要在 bash 环境中配置以下环境变量:

环境变量说明
ECO_CLIENT_ID用户注册邮箱
ECO_API_KEYAPI Key 鉴权凭据

示例:

bash
export ECO_CLIENT_ID="userxx@xx.com"
export ECO_API_KEY="XXXX"

也可以写入 ~/.bashrc 后再激活:

bash
vim ~/.bashrc
source ~/.bashrc
安全提示:请不要将 ECO_API_KEY 提交到代码仓库、共享日志或公开工单中;如需协作排查,请使用环境变量或受控密钥管理工具保存。

启动训练任务

请根据实际环境替换:

  • 数据路径
  • 模型路径
  • 配置文件路径
  • accelerate 配置文件路径

完整训练示例:

bash
export ECO_CLIENT_ID="userxx@xx.com" && \
export ECO_API_KEY="XXXX" && \
CUDA_VISIBLE_DEVICES=0,1 accelerate launch --config_file fsdp_config.yaml \
  --main_process_port 29501 src/train.py train_args.yaml

如果训练任务需要在停止后延续当前状态继续训练,需要在 train_args.yaml 中设置:

yaml
save_only_model: false

该配置用于保存优化器状态、学习率调度器状态、模型权重等训练状态信息。


插件日志说明

1. 插件正常导入并成功初始化

日志中会出现:

text
[EcoPhase] ✅ EcoTrainAPI initialized.

2. 插件正常启用

日志中会出现:

text
[EcoPhase] ✅ API is enabled.

3. 插件未生效

日志中会出现:

text
[EcoPhase] 🛑 API is disabled.

4. 触发早停

系统会自动保存模型,并输出该任务的训练总结日志,例如:

text
✅ Task early stopped at step 200/2000. Reduction: 90.0%. Saved GPU-hours: 1.03.

该日志表示:

字段含义
200/2000任务在第 200 步提前停止,原计划总步数为 2000 步
Reduction: 90.0%训练步数减少约 90.0%
Saved GPU-hours: 1.03预计节省 1.03 GPU-hours

注意事项

  1. trainer.py 中的插件初始化代码必须插入到正确位置。
  2. 运行前必须确认代码中使用 enabled=True
  3. 日志中优先检查 API is enabled / API is disabled 状态。
  4. 目前该插件只支持数据并行,其他并行方式暂不支持。
  5. 目前该插件只支持 Linux 操作系统。
EcoPhase 文档 - 任务运行 - EcoPhase.AI