mlx-lm 是什麼?Apple Silicon 上的 LLM 推理方案
mlx-lm 是 Apple 開源的大型語言模型推理框架,專為 M1、M2、M3 晶片優化。透過 MLX 陣列庫,開發者可以在本地端高效執行 Llama、Falcon、Mistral 等主流 LLM,無需依賴雲端 API。目前 GitHub 獲得超過 4000 顆星,採用 Python 開發,安裝簡便。
環境準備與安裝步驟
使用 mlx-lm 前需確認以下環境:
- Apple Silicon Mac(M1、M2 或 M3 晶片)
- macOS 13.0 以上版本
- Python 3.8 以上
- Homebrew 套件管理工具
安裝指令如下:
pip install mlx-lm
或使用最新版功能:
pip install mlx-lm --upgrade
基礎模型載入與文字生成
以下是最簡單的使用範例,載入 Meta Llama 3.5 模型並產生文字:
from mlx_lm import load, generate
model, tokenizer = load("mlx-community/Llama-3.2-1B-Instruct-4bit")
response = generate(
model,
tokenizer,
prompt="什麼是機器學習?",
max_tokens=200
)
print(response)
mlx-lm 支援 4bit、8bit 量化,大幅降低記憶體佔用,1B 參數模型僅需約 2GB VRAM。
進階應用:自訂模型與串流輸出
mlx-lm 支援載入 GGUF 格式的自訂模型:
from mlx_lm import load, generate
model, tokenizer = load(
"mlx-community/Phi-3.5-mini-instruct-4bit",
tokenizer_config={"trust_remote_code": True}
)
# 串流輸出模式
for text in generate(
model,
tokenizer,
prompt="解釋量子計算",
temp=0.7,
max_tokens=150,
stream=True
):
print(text, end="", flush=True)
可調整參數包括:temperature(創造性)、top_p(機率分布)、repeat_penalty(重複懲罰)。
效能優化技巧
- 使用 4bit 量化:犧牲少量精度換取 4 倍記憶體節省
- 批次處理:一次輸入多個 prompt 提升吞吐量
- 快取機制:重複使用 KV Cache 加速推理
- Metal 加速:確保 MLX 使用 GPU 而非 CPU
實測 Llama 3.2 1B 在 M3 Pro 上可達 30+ tokens/秒。