Skip to content

feat(training): MXFP8 混合精度训练落地(等 mlx-lm fp8 支持) #425

Description

@dahai80

需求

#402 落地了 QLoRA,但 MXFP8 混合精度训练仍未实现 —— service.py:463-468cfg.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 训练后再落地。在此之前:

  1. 保持当前 fail-visible raise(不静默降级)
  2. 监控 mlx-lm 版本,fp8 训练支持落地后:
    • _apply_training 接入 fp8 量化训练路径
    • mxfp8=True 走 fp8 前向 + LoRA 梯度更新
    • 更新 preset 显存估算
  3. 期间文档明确:用 QLoRA 替代以省显存

关联

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions