
最近在尝试把 ModelScope 上的农业领域模型 Sinong1.0-32B 跑在本地 Mac上,并最终接入 oMLX 统一管理。整个过程涉及多个步骤,包括:
- 从 ModelScope 下载模型
- 安装 Git LFS
- 解决 macOS Python 环境问题
- 使用 Transformers 测试模型
- 将 HuggingFace 模型转换为 MLX 格式
- 在 MLX 上运行推理
- 最终接入 oMLX 模型目录
本文整理了完整流程。
一、环境说明
测试环境:
MacBook Pro (Apple Silicon)
128GB RAM
macOS
Python 3.14 (Homebrew)
需要提前安装:
git
git-lfs
python3
pip
如果使用 Homebrew:
brew install git
brew install git-lfs
brew install python
二、从 ModelScope 下载模型
模型地址:
https://modelscope.cn/models/NAULLM/Sinong1.0-32B
该模型使用 Git LFS 存储权重文件。
三、安装 Git LFS
如果没有安装 Git LFS:
brew install git-lfs
初始化:
git lfs install
四、下载模型
创建模型目录:
mkdir ~/models
cd ~/models
克隆模型仓库:
git clone https://modelscope.cn/NAULLM/Sinong1.0-32B.git
下载完成后,目录结构类似:
Sinong1.0-32B
├── config.json
├── tokenizer.json
├── merges.txt
├── vocab.json
├── model-00001-of-00014.safetensors
├── model-00002-of-00014.safetensors
...
├── model-00014-of-00014.safetensors
└── model.safetensors.index.json
模型权重总大小约:
≈ 122GB
这是一个 HuggingFace Transformers + Safetensors 分片模型。
五、解决 Python 环境问题
macOS 自带 Python 经常会出现:
externally-managed-environment
推荐使用 Python 虚拟环境(venv)。
1 创建虚拟环境
cd ~/models
/opt/homebrew/bin/python3 -m venv sinong-env
2 激活虚拟环境
source ~/models/sinong-env/bin/activate
确认 Python 版本:
which python
python -V
python -c "import sys; print(sys.executable)"
正常输出应该类似:
/Users/你的用户名/models/sinong-env/bin/python
Python 3.14.x
/Users/你的用户名/models/sinong-env/bin/python
3 异常情况排查
如果出现 python: aliased to /usr/bin/python3时,有些 macOS 环境里,python 被 shell alias 覆盖,例如:
python: aliased to /usr/bin/python3
这说明 shell 配置中存在类似:
alias python=/usr/bin/python3
导致虚拟环境的 Python 被覆盖。
临时解决方法
在当前终端执行:
unalias python
unalias python3 2>/dev/null
hash -r
再次检查:
which python
python -V
python -c "import sys; print(sys.executable)"
此时应该显示虚拟环境路径:
/Users/你的用户名/models/sinong-env/bin/python
永久解决方法
查看 alias:
alias python
alias python3
搜索配置文件:
grep -n "alias python" ~/.zshrc ~/.zprofile ~/.bashrc ~/.bash_profile 2>/dev/null
如果找到类似:
alias python=/usr/bin/python3
删除对应行,然后重新加载配置:
source ~/.zshrc
或重新打开终端。
兜底方法(不受 alias 影响)
也可以直接使用虚拟环境中的 Python:
~/models/sinong-env/bin/python -V
~/models/sinong-env/bin/python -m pip install transformers
退出虚拟环境:
deactivate
hash -r
六、安装依赖
python -m pip install -U pip
python -m pip install torch transformers accelerate safetensors sentencepiece tiktoken
七、编写推理脚本测试模型
创建文件:
run_sinong.py
示例代码:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_path = "./Sinong1.0-32B"
tokenizer = AutoTokenizer.from_pretrained(
model_path,
trust_remote_code=True
)
model = AutoModelForCausalLM.from_pretrained(
model_path,
dtype=torch.float16,
trust_remote_code=True,
low_cpu_mem_usage=True
)
prompt = "请用中文解释玉米如何提高产量"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=512
)
print(tokenizer.decode(outputs[0]))
运行:
python run_sinong.py
如果看到:
Loading weights: 100%
说明模型加载成功。
八、转换为 MLX 模型
原始模型:
122GB
PyTorch 推理
转换为:
≈20GB
MLX 4bit 量化模型
安装 MLX
pip install mlx mlx-lm
转换模型
mlx_lm.convert --hf-path /Users/你的用户名/models/Sinong1.0-32B --mlx-path /Users/你的用户名/models/Sinong1.0-32B-mlx -q --q-bits 4 --q-group-size 32 --q-mode mxfp4 --trust-remote-code
转换日志示例:
[INFO] Loading
[INFO] Using dtype: bfloat16
[INFO] Quantizing
[INFO] Quantized model with 4.250 bits per weight.
说明转换成功,转换成功的模型为Sinong1.0-32B-mlx,大小为16G左右。转换成功之后目录如下:
~/models/ ls
run_sinong.py sinong-env-clean Sinong1.0-32B-mlx
sinong-env Sinong1.0-32B
~/models/ du -sh Sinong1.0-32B-mlx
16G Sinong1.0-32B-mlx
九、测试 MLX 模型
单次生成
mlx_lm.generate --model ~/models/Sinong1.0-32B-mlx --prompt "请用中文解释玉米如何提高产量"
聊天模式
mlx_lm.chat --model ~/models/Sinong1.0-32B-mlx
十、接入 oMLX 模型管理
oMLX 默认模型目录:
~/.omlx/models
直接复制 MLX 模型:
cp -R ~/models/Sinong1.0-32B-mlx ~/.omlx/models/
复制后目录类似:
~/.omlx/models
├── gpt-oss-20b-MXFP4-Q8
├── NVIDIA-Nemotron-3-Super-120B-A12B-MLX-4.5bit
├── Qwen3-Coder-Next-4bit
├── Qwen3-Coder-Next-MLX-4bit
├── Qwen3-Embedding-4B-4bit-DWQ
├── Qwen3.5-122B-A10B-4bit
├── Qwen3.5-35B-A3B-4bit
└── Sinong1.0-32B-mlx
启动服务:
omlx serve
打开浏览器:
http://localhost:8000/admin/chat
即可使用 Web UI。
十一、流程总结
ModelScope
↓
Git LFS 下载模型
↓
创建 Python 虚拟环境
↓
Transformers 测试模型
↓
mlx_lm.convert 转换 MLX
↓
mlx_lm.chat 推理
↓
复制到 ~/.omlx/models
↓
oMLX Web UI 管理
最终模型:
Sinong1.0-32B (122GB PyTorch)
↓
Sinong1.0-32B-mlx (≈20GB MLX 4bit)

