侧边栏壁纸
博主头像
慧行说博主等级

保持理智,相信未来

  • 累计撰写 110 篇文章
  • 累计创建 133 个标签
  • 累计收到 388 条评论

目 录CONTENT

文章目录

从 ModelScope下载模型到 MLX 本地推理:Sinong1.0-32B 完整实践指南(Mac)

慧行说
2026-03-26 / 0 评论 / 0 点赞 / 5 阅读 / 1,312 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2026-03-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

sinong_mlx_local_deploy_guide

最近在尝试把 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)
    1. qrcode alipay
    2. qrcode weixin
博主关闭了所有页面的评论