mlx-tune
在 Apple Silicon Mac 上本地微调大模型:SFT/DPO/GRPO 等全覆盖,Uns
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在 Apple Silicon Mac 上本地微调大模型:SFT/DPO/GRPO 等全覆盖,Uns
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你在咖啡馆里用 MacBook Pro 喝着咖啡,就能给自己的 AI 助手做微调训练——不需要云端 GPU,不需要账单,不需要等待排队。这就是 mlx-tune 正在做的事情:把大模型微调的能力,直接带到每一台 Apple Silicon 电脑上。

mlx-tune 是一个专门为 Apple Silicon 优化的开源微调框架,支持在本地 Mac 上对 LLM、VLM、TTS、STT、Embedding 和 OCR 等多类型模型进行微调。它最大的亮点在于完全兼容 Unsloth 的 API 接口——如果你之前用 Unsloth 在 CUDA 显卡上训练过模型,迁移到 mlx-tune 只需要改一行 import 语句。

随着开源大模型生态的繁荣,越来越多的开发者希望针对特定场景(比如客服、医疗、法律咨询)训练专属的 AI 模型。传统方案依赖云端 GPU 实例(如 AWS A100),成本高昂且数据必须上传到第三方服务器,存在隐私风险。 Apple Silicon 的统一内存架构(Unified Memory)让这一问题有了新的解法。M 系列芯片的 CPU、GPU、Neural Engine 共享同一块高带宽内存,MLX 框架在此基础上做了深度优化,使得在 Mac 上微调 7B-70B 参数的模型成为可能——虽然没有高端 NVIDIA 显卡快,但对于个人开发者和小型团队来说,经济性和便利性是云端无法比拟的。 mlx-tune 的作者 ARahim3 正是看到了这个需求,将 MLX 生态中的训练能力封装成了类似 Unsloth 的易用接口,让习惯了 Unsloth 语法体系的开发者无需重新学习,就能直接在 Mac 上进行微调实验。
mlx-tune 支持六类微调方法,堪称 Mac 上的 AI 微调全能工具包:
监督微调(SFT):最基础的微调方式,用标注好的问答数据教会模型应该怎么回答。mlx-tune 的 SFTTrainer 完全兼容 TRL(Transformers Reinforcement Learning)库的 SFTConfig,用户可以直接将原有配置迁移过来。
直接偏好优化(DPO):不需要 reward model,直接用人类偏好数据(chosen/rejected 回答对)优化策略,是近年来最火的 RLHF 替代方案。mlx-tune 的 DPOTrainer 实现了完整的 DPO loss 计算。
Odds Ratio PO(ORPO):将监督学习和偏好学习合并为一个损失函数,训练效率比 DPO 更高。
Group Relative Policy Optimization(GRPO):来自 DeepSeek R1 的创新方法,通过组内相对排名进行策略优化,mlx-tune 的 GRPOTrainer 完整实现了这一算法,特别适合数学和代码推理任务的训练。
Kahneman-Tversky Optimization(KTO):用人类判断的吸引力/不吸引力替代传统偏好对,解决 DPO 中对称性假设的问题。
SimPO:Simplified Preference Optimization,将生成质量直接融入排序标准,简化了训练流程。
除了 LLM,mlx-tune 还支持视觉语言模型(VLM)的微调(基于 mlx-vlm)、TTS 声音克隆(支持 Orpheus、XTTS、Spark 等)、STT 语音识别(Whisper)、Embedding 向量化(Sentence Transformers)和 OCR 文档理解,覆盖了 AI 落地的几乎所有主流场景。

mlx-tune 的代码架构非常清晰,核心在于与 Unsloth API 的完全对齐。底层训练引擎采用双轨设计:优先调用 mlx_lm.tuner 的原生训练接口(mlx.nn + mlx.optimizers),当 native 训练不可用时(如未安装 mlx-lm[train]),自动降级到 subprocess 方式运行。这种设计保证了极高的鲁棒性。 代码结构上,项目按模态分目录组织:sft_trainer.py 处理监督微调,rl_trainers.py 包含全部 5 种 RL 训练器(73600字,最大的核心模块),cpt_trainer.py 实现持续预训练,vlm.py 处理视觉语言模型,tts.py 和 stt.py 分别处理语音合成和识别,embeddings.py 实现向量嵌入训练,ocr.py 处理文档 OCR。此外还有 losses.py(52074字)作为所有 RL 损失函数的集中实现,chat_templates.py(66143字)处理各种模型的 chat template 兼容性问题。 训练配置完全参照 TRL 库设计:SFTConfig、DPOConfig、GRPOConfig 等配置类在参数名和默认值上都与 TRL 保持一致,降低了学习成本。
mlx-tune 的安装极其简单:pip install mlx-tune。核心依赖包括 mlx、mlx-lm、mlx-vlm、transformers、datasets,约 10 个包,pip install 几分钟搞定。进阶功能(RL 训练、WandB 日志)通过可选依赖安装:pip install mlx-tune[train] 或 pip install mlx-tune[audio]。 使用流程也很直观:加载量化模型 → 配置 LoRA → 实例化 Trainer → 开始训练。15 个 example 脚本覆盖从简单加载到完整训练流程的各个阶段,特别推荐 07_unsloth_pipeline_comparison.py 和 08_exact_unsloth_pipeline.py 帮助 Unsloth 用户无痛迁移。 硬件要求方面,8GB 内存可以运行 3B 参数的 4bit 量化模型,16GB+ 内存可以流畅微调 7B-8B 模型,更大的模型建议 32GB+ 内存。所有模型都从 HuggingFace Hub 的 MLX 社区模型库加载,无需手动转换格式。
mlx-tune 并不是要替代 A100 训练服务,它的定位很明确:个人开发者和小团队的本地微调工具。主要局限性体现在:训练速度比高端 NVIDIA GPU 慢,以 M3 Max 为例,微调 7B 模型的速度约为 A100 的 20-30%,适合做实验和调参,正式大规模训练仍需云端资源;不支持 Docker 部署,依赖 Apple Silicon 环境,团队协作时需要统一硬件平台;部分高级 RL 方法(如 PPO)尚未支持,目前仅支持 DPO/ORPO/GRPO/KTO/SimPO 五种。
mlx-tune 的出现标志着 AI 训练的又一次民主化进程。在此之前,模型微调几乎是云端 GPU 的专属领域,mlx-tune 让每一个拥有 Mac 的开发者都能参与进来。这对于隐私敏感场景(如医疗记录分析、法律文档处理)尤为重要——数据永远不需要离开本地设备。
从项目热度看,GitHub 1300+ stars,持续活跃开发(v0.5.1),支持从 Llama 到 Qwen 从 Whisper 到 Orpheus 的广泛模型生态,已形成有一定影响力的本地微调工具链。随着 Apple Silicon 持续迭代(M4/M5 核显算力提升),mlx-tune 的实用价值还将继续增长。

图注:mlx-tune 支持的完整模型生态(LLM / VLM / TTS / STT / Embedding / OCR)