这几年苹果的 M 系列芯片真的是把“统一内存”这个概念玩明白了。平时跑跑 Ollama 推理,看着几十 GB 的模型直接丢进内存里跑得飞起,确实很爽。
但爽完之后,我遇到了一个很现实的痛点:如果我想把自己平时积累的资料、文档“喂”给大模型,自己微调(Fine-tune)一个专属的小模型呢?
一折腾才发现,微调的体验简直是灾难。 你要先装 Python 环境,搞定 mlx-lm 的各种依赖;然后要把手头的文本手动洗成那种极其死板的 JSONL 格式(少个标点符号就报错);接着在终端里敲一大串参数跑训练。好不容易跑完几十个 Epoch,测效果还得再写个脚本……整个流程极其割裂,中间断一次心态就崩了。
“既然跑推理可以像 Ollama 那么无脑优雅,为什么微调不行?”
出于这个痛点,外加一点想要 All-in-One 的强迫症,我干脆自己动手,用 Tauri 2.0 + React 撸了一个 macOS 桌面端工具,名字叫 M-Courtyard。
简单来说,它给苹果官方的 MLX 框架套了个开箱即用的图形化界面。
它能干嘛?
纯 UI 数据处理:不需要你写 Python 洗数据,直接在界面上把杂乱的文本转成微调需要的格式,里面还顺手做去重和隐私过滤。
点一下就开练:底层无缝对接 mlx-lm,配置好 LoRA 参数点开始,就能榨干你 Mac 的统一内存做训练。
内置 A/B 测试:微调完了好不好用?界面里带了个聊天窗口,可以把“基础模型”和“微调后的模型”拉出来直接对比对话。
一键丢给 Ollama:如果你也是 Ollama 的重度用户,训练好的模型可以一键打包导出过去,无缝衔接你的日常工作流。
最重要的一点:断网可用,完全本地保护隐私。
这个工具本来是写给我自己“偷懒”用的,后来想着既然做出来了,干脆彻底开源(AGPL 3.0 协议)。如果你正好也有一台大内存的 Mac(M1~M4 都可以),而且受够了在终端里反复横跳,欢迎来 GitHub 提个 issue 或者点个 Star 支持一下独立开发者。
GitHub 地址:https://github.com/Mcourtyard/m-courtyard
(如果不想自己编译,Release 页面有直接打包好的 .dmg 文件)
