在Mac上微调整个 Qwen 全家桶
Mac 用户想在本地微调大模型,一直是个「痒点」——不是不能做,但总是东拼西凑各种工具链。
现在,整个 Qwen 家族的文本、视觉、语音识别、语音合成,全都可以在你的 Mac 上用一套 API 微调了。
简介
mlx-tune (github.com/ARahim3/mlx-tune)是一个专门为 Apple Silicon Mac 打造的大模型微调框架,基于苹果自家的 MLX 计算框架。
四条赛道,一套 API,在你的 MacBook 上跑完:
- ✅ Qwen3.5(文本) —— 纯文本对话微调
- ✅ Qwen3.5(视觉) —— 图像+文本的视觉微调
- ✅ Qwen3-ASR(语音 → 文本) —— 语音识别微调
- ✅ Qwen3-TTS(文本 → 语音) —— 语音合成微调
但 Qwen 只是冰山一角,mlx-tune 还支持:
文本大模型: 任何 HuggingFace 上的 LLM 都能拿来微调(Llama、Gemma、Qwen、Phi、Mistral 等 15 种模型的 Chat Template 都做了适配)。
视觉模型: Qwen3.5 Vision,支持 LoRA 同时微调视觉编码器和语言模型。
语音合成 TTS(5 个模型): Orpheus-3B、OuteTTS-1B、Spark-TTS-0.5B、Sesame/CSM-1B、Qwen3-TTS-1.7B。
语音识别 STT(5 个模型): Whisper(全尺寸)、Distil-Whisper、Moonshine、Qwen3-ASR、NVIDIA Canary、Voxtral。

说实话,能在 Mac 上原生跑 LoRA 微调 TTS 和 STT 模型,这是第一个做到的库
之前要搞语音模型微调,基本只有上 NVIDIA GPU 这一条路
这个项目的来头
作者 ARahim3 在 README 里写说,他是 Unsloth 的重度用户,每天在云端 GPU 上用 Unsloth 做微调
后来换了 MacBook M4,想在本地跑个原型试试,结果发现——Unsloth 依赖 Triton,Mac 上跑不了。
Unsloth 本地大模型控制台:本地部署、数据集管理、训练+微调,一站式搞定,Windows 也支持
于是他做了 mlx-tune,目标很明确:代码可移植性
在 Mac 上写好训练脚本,调试通过,然后直接丢到 CUDA 集群上用原版 Unsloth 跑,改一行 import 就行。
# Unsloth(CUDA 云端) # mlx-tune(Mac 本地)
from unsloth import FastLanguageModel from mlx_tune import FastLanguageModel
from trl import SFTTrainer from mlx_tune import SFTTrainer
# 后面的代码一模一样!
这个设计太聪明了——不是要取代 Unsloth,而是做 Unsloth 在 Mac 上的「影子」
本地快速验证想法,云端正式训练,解决的是工作流问题
安装
安装非常简单:
# 推荐用 uv(更快更稳)
uv pip install mlx-tune
# 如果要玩语音模型微调(TTS/STT),装 audio 扩展
uv pip install 'mlx-tune[audio]'
brew install ffmpeg # 系统级依赖,音频编解码需要
# 或者用 pip
pip install mlx-tune
硬件要求:
- Apple Silicon Mac(M1/M2/M3/M4/M5 全部支持)
- macOS 13.0+
- 内存 8GB 起步,16GB+ 推荐
- Python 3.9+
Mac Studio 那种 512GB 统一内存的机器,理论上可以加载非常大的模型——这比独立 GPU 的 VRAM 上限高太多了。
我最感兴趣的:语音模型微调
坦白讲,文本微调和视觉微调已经不新鲜了
真正让我兴奋的是语音模型的微调能力
TTS 微调:让模型说你的声音
mlx-tune 支持 5 个 TTS 模型,覆盖面很广:
| 模型 | 参数量 | 音频编码 | 采样率 | 特点 |
|---|---|---|---|---|
| Orpheus-3B | 3B | SNAC | 24kHz | 最大最全,Llama 架构 |
| OuteTTS-1B | 1B | DAC | 24kHz | 轻量快速 |
| Spark-TTS | 0.5B | BiCodec | 16kHz | 超轻,8GB 内存也能跑 |
| Sesame/CSM-1B | 1B | Mimi | 24kHz | Backbone+Decoder 架构 |
| Qwen3-TTS | 1.7B | 内置16码本 | 24kHz | 多语言(中英日韩) |
API 设计极其统一——换个模型名字,其他代码完全不用改,编解码器、token 格式、LoRA 目标层全部自动配置。

拿最新的 Qwen3-TTS 举个例子,核心代码就这几行:
from mlx_tune import FastTTSModel, TTSSFTTrainer, TTSSFTConfig, TTSDataCollator
from datasets import load_dataset, Audio
# 加载模型 —— 自动检测架构和编解码器
model, tokenizer = FastTTSModel.from_pretrained(
"mlx-community/Qwen3-TTS-12Hz-1.7B-VoiceDesign-bf16",
max_seq_length=2048,
)
# 加 LoRA
model = FastTTSModel.get_peft_model(
model, r=16, lora_alpha=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
)
# 加载音频数据集
dataset = load_dataset("MrDragonFox/Elise", split="train[:100]")
dataset = dataset.cast_column("audio", Audio(sampling_rate=24000))
# 训练
trainer = TTSSFTTrainer(
model=model, tokenizer=tokenizer,
data_collator=TTSDataCollator(model, tokenizer),
train_dataset=[dataset[i] for i in range(len(dataset))],
args=TTSSFTConfig(
output_dir="./qwen3_tts_output",
max_steps=60,
learning_rate=2e-4,
),
)
trainer.train()
# 保存 LoRA 适配器
model.save_pretrained("./qwen3_tts_output/final_adapter")
Qwen3-TTS 的技术架构挺有意思:它用 28 层的 Talker Transformer 预测离散音频 code,内置 16 码本的语音分词器(12.5Hz),文本和音频 token 使用双嵌入路径相加。训练的时候只需要准备 text + audio 的数据对就行,TTSDataCollator 会自动搞定编码、拼接和 mask。
如果你的 Mac 内存比较紧张,Spark-TTS 只有 0.5B 参数,8GB 内存都能跑起来。
STT 微调:定制你的语音识别
STT 这边同样给力,支持 5 个主流模型:
| 模型 | 参数量 | 前端 | 采样率 | 特点 |
|---|---|---|---|---|
| Whisper | 39M-1.5B | 梅尔频谱图 | 16kHz | 经典款,尺寸全覆盖 |
| Distil-Whisper | 756M | 梅尔频谱图 | 16kHz | Whisper 蒸馏版,更快 |
| Moonshine | 27M-330M | 原始卷积前端 | 16kHz | 边缘设备专用,极轻 |
| Qwen3-ASR | 1.7B | 音频编码器 | 16kHz | Audio-LLM 架构,30+ 语言 |
| NVIDIA Canary | 1B | Parakeet mel | 16kHz | FastConformer,支持翻译 |
| Voxtral | 3B | 梅尔频谱图 | 16kHz | Mistral 系,Llama 解码器 |
来看看 Qwen3-ASR 的微调代码:
from mlx_tune import FastSTTModel, STTSFTTrainer, STTSFTConfig, STTDataCollator
# 加载 Qwen3-ASR
model, processor = FastSTTModel.from_pretrained(
"mlx-community/Qwen3-ASR-1.7B-8bit",
max_seq_length=448,
)
# LoRA 同时微调音频编码器和文本解码器
model = FastSTTModel.get_peft_model(
model, r=16, lora_alpha=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
finetune_encoder=True,
finetune_decoder=True,
)
# 训练
trainer = STTSFTTrainer(
model=model, processor=processor,
data_collator=STTDataCollator(model, processor, language="en", task="transcribe"),
train_dataset=dataset,
args=STTSFTConfig(output_dir="./qwen3_asr_output", max_steps=100),
)
trainer.train()
Qwen3-ASR 的架构是「Audio-LLM」模式——音频先过编码器提取特征,注入到 Qwen3 大模型的 token 序列中,然后大模型自回归生成转写文本。支持 30+ 种语言,LoRA 可以同时作用在音频编码器(24 层)和文本解码器(28 层)上
不止语音:训练方法也很全
说完语音,简单过一下其他能力
mlx-tune 支持的训练方法远超常见的 SFT:
| 方法 | 训练器 | 用途 |
|---|---|---|
| SFT | SFTTrainer |
指令微调(最常用) |
| DPO | DPOTrainer |
偏好学习 |
| ORPO | ORPOTrainer |
SFT + 偏好联合训练 |
| GRPO | GRPOTrainer |
推理增强(DeepSeek R1 风格) |
| KTO | KTOTrainer |
Kahneman-Tversky 优化 |
| SimPO | SimPOTrainer |
简化偏好优化 |
特别是 GRPO——DeepSeek R1 那种多代采样+奖励的训练方式,居然也做了原生 MLX 实现
虽然在 Mac 上跑 GRPO 肯定比不上 A100 集群的效率,但用来验证奖励函数设计、调试训练流程,完全够了
训练完怎么办?
训练完之后的工作流也很顺滑:
# 保存 LoRA 适配器(很小,方便分享)
model.save_pretrained("./adapters")
# 合并到基座模型
model.save_pretrained_merged("./merged", tokenizer)
# 导出 GGUF(给 Ollama / llama.cpp 用)
model.save_pretrained_gguf("model", tokenizer)
# 推送到 HuggingFace Hub
model.push_to_hub("username/my-model")
合并、导出 GGUF、推 Hub,一条龙
在 Mac 上微调完,导出 GGUF 丢给 Ollama 直接跑推理,整个链路闭环了
❝
注意:GGUF 导出在 4-bit 量化基座模型上有限制(这是 mlx-lm 的已知问题),建议用非量化模型训练后再导出。
对比 Unsloth
| 特性 | Unsloth(CUDA) | mlx-tune |
|---|---|---|
| 平台 | NVIDIA GPU | Apple Silicon |
| 后端 | Triton 内核 | MLX 框架 |
| 内存 | VRAM(有限) | 统一内存(最高 512GB) |
| API | 原版 | 100% 兼容 |
| 适合 | 生产级训练 | 本地原型验证、大内存模型 |
mlx-tune 明确说了,自己不是 Unsloth 的替代品
它解决的是 Mac 用户的「本地原型」需求:小数据集快速迭代,验证完再上云
但统一内存是真的香——Mac Studio 的 512GB 内存意味着你可以加载比大多数 GPU VRAM 更大的模型
总结
mlx-tune 做到了一件很了不起的事情:把文本、视觉、语音合成、语音识别四条赛道的微调能力,用统一的 API 装进了 Mac。如果你手头有 Mac,又一直想试试语音模型微调,这可能是门槛最低的选择了。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
👇👇扫码免费领取全部内容👇👇
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 2026行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇
更多推荐



所有评论(0)