聊個讓我非常興奮的項目——mlx-tune
一句話概括:在你的 Mac 上,用 Unsloth 的 API 微調一切
LLM、視覺模型、TTS、STT、OCR、Embedding,全都能在 Apple Silicon 上本地微調
Mac 用戶的微調困境
做大模型微調的同學應該都有過這種體驗:想在本地跑個小實驗驗證下 idea,結果發現 Unsloth 依賴 Triton,而 Triton 不支持 Mac
于是你只剩兩條路:
1. 花錢開云 GPU —— 就跑個 100 條數據的實驗,有必要嗎?
2. 用 mlx-lm 原生 API —— 但代碼和 完全不兼容,到了云上還得重寫一遍
mlx-tune(github.com/ARahim3/mlx-tune)的作者也遇到了一模一樣的問題
他的解決思路非常簡單粗暴:把 MLX 包裝成 Unsloth 的 API
你在 Mac 上寫的訓練腳本,換個 import 就能直接在 CUDA 集群跑
# Unsloth (CUDA) # MLX-Tune (Apple Silicon)
from unsloth import FastLanguageModel from mlx_tune import FastLanguageModel
from trl import SFTTrainer from mlx_tune import SFTTrainer# 后面的代碼一模一樣!
這才是真正解決問題的設計
下面這張圖清楚展示了 mlx-tune 的工作流——本地原型驗證,改個 import 就能上云訓練:
![]()
功能有多全?看完嚇一跳
它支持的訓練方法比很多正經公司的內部工具都全:
語言模型訓練:
? SFT :基礎指令微調,這是最常用的
? DPO / ORPO / KTO / SimPO :各種偏好學習方法全覆蓋
? GRPO :DeepSeek R1 風格的多生成 + 獎勵訓練
? CPT :持續預訓練,支持解耦學習率
多模態訓練:
? Vision :支持 Gemma 4、Qwen3.5、PaliGemma、LLaVA、Pixtral 等 VLM 微調
? TTS :Orpheus、OuteTTS、Spark-TTS、Sesame/CSM、Qwen3-TTS 五個 TTS 模型
? STT :Whisper、Moonshine、Qwen3-ASR、NVIDIA Canary、Voxtral 五個 STT 模型
? Embedding :BERT、ModernBERT、Qwen3-Embedding、Harrier,支持對比學習
? OCR :DeepSeek-OCR、GLM-OCR、olmOCR、Qwen-VL,內置 CER/WER 指標
進階能力:
? MoE 微調 :支持 39+ 種 MoE 架構,包括 Qwen3.5-35B、Mixtral、DeepSeek 系列
? Gemma 4 Audio :12 層 Conformer 音頻塔,原生處理 16kHz 音頻
? LFM2 :Liquid AI 的混合卷積+GQA 架構
說真的,一個社區項目做到這個程度,相當離譜
全景架構一覽——從 API 到硬件的五層設計:
![]()
快速上手
安裝很簡單,推薦用 uv:
# 標準安裝
uv pip install mlx-tune# 帶音頻支持
uv pip install 'mlx-tune[audio]'
brew install ffmpeg
來個最基礎的 SFT 微調示例:
from mlx_tune import FastLanguageModel, SFTTrainer, SFTConfig
from datasets import load_dataset
# 加載模型(4bit 量化,省顯存)
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="mlx-community/Llama-3.2-1B-Instruct-4bit",
max_seq_length=2048,
load_in_4bit=True,
)
# 加 LoRA
model = FastLanguageModel.get_peft_model(
model,
r=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
lora_alpha=16,
)
# 加載數據集
dataset = load_dataset("yahma/alpaca-cleaned", split="train[:100]")
# 訓練
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
tokenizer=tokenizer,
args=SFTConfig(
output_dir="outputs",
per_device_train_batch_size=2,
learning_rate=2e-4,
max_steps=50,
),
)
trainer.train()# 保存:三種格式隨你選
model.save_pretrained("lora_model") # LoRA 適配器
model.save_pretrained_merged("merged", tokenizer) # 合并后的完整模型
model.save_pretrained_gguf("model", tokenizer) # GGUF 格式,直接給 Ollama 用
如果你用過 Unsloth,這代碼看著是不是特別眼熟?對,就是同一套 API
視覺模型微調
VLM 微調也是同樣簡潔的體驗:
from mlx_tune import FastVisionModel, UnslothVisionDataCollator, VLMSFTTrainer
from mlx_tune.vlm import VLMSFTConfig
model, processor = FastVisionModel.from_pretrained(
"mlx-community/Qwen3.5-0.8B-bf16",
)
model = FastVisionModel.get_peft_model(
model,
finetune_vision_layers=True, # 視覺層也微調
finetune_language_layers=True,
r=16, lora_alpha=16,
)# 訓練(數據集格式和 Unsloth 一致)
FastVisionModel.for_training(model)
trainer = VLMSFTTrainer(
model=model,
tokenizer=processor,
data_collator=UnslothVisionDataCollator(model, processor),
train_dataset=dataset,
args=VLMSFTConfig(max_steps=30, learning_rate=2e-4),
)
trainer.train()
Gemma 4、Qwen3.5、PaliGemma、LLaVA、Pixtral 都支持
你甚至可以用 Vision GRPO 來訓練視覺推理能力
TTS 微調:在 Mac 上克隆聲音
這個功能我覺得特別有意思——在 Mac 上本地微調 TTS 模型:
from mlx_tune import FastTTSModel, TTSSFTTrainer, TTSSFTConfig, TTSDataCollator
from datasets import load_dataset, Audio
# 自動檢測模型類型、編碼器和 token 格式
model, tokenizer = FastTTSModel.from_pretrained(
"mlx-community/orpheus-3b-0.1-ft-bf16"
)
model = FastTTSModel.get_peft_model(model, r=16, lora_alpha=16)
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,
args=TTSSFTConfig(output_dir="./tts_output", max_steps=60),
)
trainer.train()
Orpheus、OuteTTS、Spark-TTS、Sesame/CSM、Qwen3-TTS 都支持
想做聲音克隆或者風格化 TTS,再也不用租 GPU 了
工作流全景
mlx-tune 的定位非常清晰:本地原型 → 云端量產。
本地 Mac (mlx-tune) 云端 GPU (Unsloth)
├── 快速實驗 ├── 大規模訓練
├── 小數據集驗證 ├── 完整數據集
├── 秒級迭代 ├── 生產級優化
└── 同一套代碼 ─────────────────── └── 同一套代碼
訓練完還能直接導出:
? HuggingFace 格式 :標準保存
? GGUF :直接丟給 Ollama / llama.cpp
? push_to_hub :一鍵推到 HuggingFace Hub
我覺得 mlx-tune 最適合這幾類人:
1. Mac 用戶 + 微調需求 :你有 M1/M2/M3/M4/M5,想在本地跑微調實驗,這是最佳選擇
2. 混合工作流用戶 :本地調試、云端訓練,代碼無縫遷移
3. 多模態探索者 :想同時玩 LLM、Vision、TTS、STT、OCR 微調的人
4. 學習者 :想理解微調原理,在本地快速迭代比去 Colab 排隊強太多
局限性也得說清楚:
? 訓練速度肯定比不上 A100 + Unsloth,這是物理定律決定的
? GGUF 導出對量化模型有限制,建議用非量化基座模型
? 內存受限于 Mac 的統一內存(不過 Mac Studio 最高 512GB,夠用了)
如果你是 Mac 用戶,又對微調大模型感興趣,強烈建議試試
制作不易,如果這篇文章覺得對你有用,可否點個關注。給我個三連擊:點贊、轉發和在看。若可以再給我加個,謝謝你看我的文章,我們下篇再見!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.