MLX 示例完全指南:Apple Silicon 本地机器学习任务教程
【免费下载链接】mlx-examplesExamples in the MLX framework项目地址: https://gitcode.com/GitHub_Trending/ml/mlx-examples
读完这份指南,你能在 Mac 上直接跑起这些真实任务:用文字生成图片、把录音转成文字、对图片做目标分割、在本地加载 7B 大模型推理。这个 MLX 示例仓库收录了二十个左右相互独立的示例,覆盖图像生成、多模态理解、语音音频与大模型微调,每个示例自带 requirements.txt 和可直接运行的入口脚本,不需要额外脚手架。
📦 项目速览:MLX 示例库能做什么
MLX 是 Apple 面向 M 系列芯片的机器学习框架,本仓库是官方配套示例集,定位很明确:每个模型给一份最小可运行实现。
- 覆盖视觉、文本、语音、音频、多模态、图网络、生成模型与视频 8 个方向
- 权重基本来自 Hugging Face,多数示例提供 convert.py,一条命令把 PyTorch 权重转成 MLX 格式
- 官方推荐学习顺序:从 mnist/ 起步,再到 llms/ 推理,最后做 lora/ 微调
- 配套生态完善,预转换权重可在 Hugging Face 的 MLX Community 组织下直接下载
🚀 3 分钟跑通第一个示例
MNIST 示例在 mnist/main.py 中训练一个两层 MLP 识别手写数字,共 10 个 epoch,默认跑 CPU,M 系列芯片上几秒到十几秒跑完,加--gpu参数切换 Metal 后端。这份代码是理解 MLX 张量、损失函数与优化器 API 最短的路径,也是 MLX 入门教程类的最佳起点。
git clone https://gitcode.com/GitHub_Trending/ml/mlx-examples cd mlx-examples/mnist && pip install -r requirements.txt python main.py🎨 图像与视频生成:Stable Diffusion、FLUX、Wan2.1
图像与视频生成是这个 MLX 示例仓库内容最丰富的部分。
Stable Diffusion 支持 sdxl-turbo 和 sd-2-1 两个模型,UNet 约 2.6B 参数。stable_diffusion/txt2image.py 默认以 float16 加载,加-q会把文本编码器量化到 4 bit、UNet 量化到 8 bit,8GB 内存的 Mac mini 无需交换即可生成图片。stable_diffusion/image2image.py 支持以现有图做底图重绘,--strength控制改写幅度。
flux/ 移植了 Black Forest Labs 的 FLUX,flux/txt2image.py 可加载 LoRA 适配器;flux/dreambooth.py 支持对 FLUX 做 LoRA 微调,但约需 50GB 内存,小内存机器不建议碰。
video/wan2.1/ 实现了文生视频与图生视频。1.3B 模型 480p、81 帧约需 10GB 内存,14B 约 36GB;M4 Max 上 81 帧单步 DiT 耗时约 90 秒,--no-cache还能再省约 4GB 内存。
如果目标是在 Mac 上跑 Stable Diffusion,这一段就是全部重点:
cd stable_diffusion && pip install -r requirements.txt python txt2image.py "A painting of a vase on a wooden table" -q🖼️ 多模态理解:CLIP、LLaVA、SAM 分割
clip/ 把图像与文本嵌入同一向量空间,默认模型是 clip-vit-base-patch32:先运行 clip/convert.py 转换权重,再用 clip/clip.py 计算图文相似度,仓库里附带猫、狗示例图片可直接验证。
llava/generate.py 能对图片提问(默认 llava-1.5-7b-hf 模型);segment_anything/ 实现了 SAM 分割模型,notebooks/images 下有多张示例图可以试分割效果。
🎵 语音与音频:Whisper 识别、MusicGen 生成
做 MLX 语音识别,whisper/ 目录提供了完整的 mlx-whisper 包。前提是装好 ffmpeg,然后:
pip install mlx-whisper mlx_whisper audio.mp3默认模型是 whisper-tiny,用--model可换更大的模型,Python 里一行mlx_whisper.transcribe(文件)就能拿到文本,也支持词级时间戳。musicgen/generate.py 按文字描述生成音乐(facebook/musicgen-medium);encodec/ 做音频压缩与重建,附带 MLX 与 PyTorch 两边的基准测试脚本。
🤖 本地大模型:推理、量化与 LoRA 微调
llms/ 目录收录了 llama/、mistral/、mixtral/ 与 GGUF 格式的极简推理示例。Llama 原始权重需向 Meta 申请,拿到后运行convert.py --torch-path <路径> -q得到 4-bit 模型,再用python llama.py --prompt "hello"生成。
lora/ 是完整的参数高效微调示例,数据集为 WikiSQL(自然语言转 SQL):Llama 7B 验证损失从 2.66 降到 1.23(1000 次迭代),M2 Ultra 上约 475 token/s;训练完可用 lora/fuse.py 把适配器合并回基座模型。数据格式见 lora/data/,换成自己的 jsonl 即可训练其他任务。
⚠️ 避坑与进阶下一步
三个高频坑
内存是第一道坎,给几个可直接套用的经验值:SDXL 在 8GB 机器上必须加-q量化;LoRA 微调内存不足时把--batch-size降到 1、--lora-layers降到 4,或改用 QLoRA;32GB 机器上 Mistral-7B 配 batch 1、lora-layers 4 约 250 token/s。
权重来源分两条路:CLIP、Whisper、FLUX 类示例直接从 Hugging Face 下载;Llama 需先拿 PyTorch 权重再本地转换。两条路都可以跳过转换,直接用 MLX Community 组织下的预转换检查点。
最后两个细节:whisper 与 wan2.1 依赖系统 PATH 里的 ffmpeg(macOS 用 brew 安装);各示例依赖互不相同,按目录各自的 requirements.txt 单独安装,不要一次性装全。
两个进阶方向
跑通示例后,一是微调:LoRA(lora)、FLUX dreambooth,wwdc25/ 目录还有配套 notebook 可跟练;二是量化部署:各 convert.py 的-q参数产出的 4-bit 权重可直接用于小内存设备推理。更完整的 API 用法与多机推理,参考 MLX 官方文档和 MLX-LM 包。
这套 MLX 示例适合两类读者:想系统入门 MLX 的新手,以及准备把 PyTorch 项目迁到 Apple Silicon 的开发者。每个示例都是最小参照实现,单次阅读成本不高,按任务挑目录读即可。
【免费下载链接】mlx-examplesExamples in the MLX framework项目地址: https://gitcode.com/GitHub_Trending/ml/mlx-examples
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考