苹果加油,和 CUDA 碰一碰
数据准备
- 从 github 克隆 Apple 给出的示例项目项目
git clone https://github.com/ml-explore/mlx-examples.git - 在项目
lora/data/中放置你的训练、验证和测试集数据
- 下载一个模型。此处我们从
modelscope下载一个小模型minimind2
pip install modelscope
modelscope download --model gongjy/MiniMind2
- 下载后,记住模型的路径。此处我的路径如下

环境配置
- 使用 uv 初始化一个环境
$ uv init --name mlx . -p3.13
Initialized project `hypollm` at `/Users/dorian/Documents/Programme/NUS311/model_test`
- 你也可以使用
conda
$ conda create -n mlx python==3.13
- 安装所需的包
$ uv add mlx-lm transformers torch numpy
微调过程
- 进入项目路径
cd /mlx_example/lora/。如果不使用 swanlab 就删除最后一个 arg
$ mlx_lm.lora --model <此处你的基座模型路径> --train --data ./data --report-to swanlab
# 显示如下则成功
# Loading pretrained model
# Loading datasets
# Training
# Trainable parameters: 1.654% (1.720M/104.031M)
# Starting training..., iters: 1000
# Calculating loss...: 100%|██| 25/25 [00:07<00:00, 3.42it/s]
- 微调结束后,可以看到如下内容,是 checkpoints 和最终模型

- 然后我们进行融合权重
$ mlx_lm.fuse --model <你的基座模型路径> --adapter-path adapters --save-path <你的模型名字>
- 最终得到以下文件

模型部署
- 下载 Ollama(麻烦自行查找并下载)
- 新建一个
Modelfile,注意没有后缀,内容如下(也可以参考此网站)
FROM <模型文件夹的绝对路径>
# 推理参数(适合精确结构推理)
PARAMETER temperature 0.2
PARAMETER top_p 0.8
PARAMETER top_k 50
PARAMETER repeat_penalty 1.05
PARAMETER num_ctx 4096
PARAMETER num_predict 512
# 对齐 Qwen 格式的多轮对话模版
TEMPLATE """<|im_start|>system
{{ .System }}<|im_end|>
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
# 设定系统指令
SYSTEM "You are an expert in causal inference and graph theory."
- 利用 ollama 创建
$ ollama create <模型名字> -f <Modelfile位置>
- 运行
$ ollama run <模型名字>