需求
#402 落地了 QLoRA,但 MXFP8 混合精度训练仍未实现 —— service.py:463-468 对 cfg.mxfp8=True 直接 raise ValueError:
if cfg.mxfp8:
raise ValueError(
"mxfp8 mixed-precision training is not yet supported "
"(mlx-lm 0.31.3 has no fp8 training path). Use qlora for "
"memory savings; mxfp8 will be landed in a later phase."
)
下游 fusion-trainer 的 use_mxfp8=True 因此只能告警 + 退回默认精度训练(fail-visible),preset 里的显存峰值估算(MXFP8 假设)偏高,大模型(32B)实际可能 OOM。
现状
FineTuneConfig.mxfp8 字段已存在(service.py:66),但训练路径未实现
- 阻塞根因:外部依赖 —— mlx-lm 0.31.3 无 fp8 训练路径(已确认
mlx_lm 源码无 mxfp8/fp8 训练支持)
提议
跟踪 issue,待 mlx-lm 上游支持 fp8 训练后再落地。在此之前:
- 保持当前 fail-visible raise(不静默降级)
- 监控 mlx-lm 版本,fp8 训练支持落地后:
- 在
_apply_training 接入 fp8 量化训练路径
- 对
mxfp8=True 走 fp8 前向 + LoRA 梯度更新
- 更新 preset 显存估算
- 期间文档明确:用 QLoRA 替代以省显存
关联
需求
#402 落地了 QLoRA,但 MXFP8 混合精度训练仍未实现 ——
service.py:463-468对cfg.mxfp8=True直接raise ValueError:下游 fusion-trainer 的
use_mxfp8=True因此只能告警 + 退回默认精度训练(fail-visible),preset 里的显存峰值估算(MXFP8 假设)偏高,大模型(32B)实际可能 OOM。现状
FineTuneConfig.mxfp8字段已存在(service.py:66),但训练路径未实现mlx_lm源码无mxfp8/fp8训练支持)提议
跟踪 issue,待 mlx-lm 上游支持 fp8 训练后再落地。在此之前:
_apply_training接入 fp8 量化训练路径mxfp8=True走 fp8 前向 + LoRA 梯度更新关联