在 MacBook M5 Pro 上部署 Qwen3.8-27B 本地大模型实战(ModelScope 国内源 + 视觉模型导入)
Table of Contents
开篇
上一篇《在 MacBook M5 Pro 上部署 Ollama 本地大模型完整指南》(2026-06)里部署了 Qwen3.6-27B。这次阿里新发布了 Qwen3.8-27B:新增视觉能力(能看图)、上下文窗口拉到 256K,值得升级。本文记录完整升级过程和踩过的坑。
适用环境:MacBook Pro M5 Pro / 48GB 统一内存,Ollama v0.32.14。 与上一次相比的三个新变化:模型是视觉模型(要多导入一个 mmproj 文件)、Modelfile 写法有变(没有
PROJECTOR指令,要用两个FROM)、直接ollama pull这次没走通(412 报错 + 断流,详见第九节),最终走的是 ModelScope 国内源下载 + 本地导入。
一、前置检查(实测环境)
| 项目 | 要求 | 实测状态 |
|---|---|---|
| modelscope CLI | 已安装 | ✅ v1.37.1(~/.local/bin/modelscope) |
| Ollama | 直接 pull 需 ≥ 0.32(0.30.11 会报 412) | ✅ v0.32.14(自 0.30.11 升级) |
| 可用磁盘空间 | ≥ 40GB | ✅ 剩余 XXXGB |
| VPN / 代理 | 关闭(走国内直连更快) | 下载前手动确认 |
二、下载模型
⚠️ 最重要的警告:必须指定文件名
# ❌ 错误:不带文件名 = 下载整个仓库全部 424GB(含 BF16 全精度、所有量化档)
modelscope download --model unsloth/Qwen3.8-27B-GGUF
# ✅ 正确:指定单个文件
modelscope download --model unsloth/Qwen3.8-27B-GGUF Qwen3.8-27B-Q4_K_M.gguf --local_dir ./误操作整仓下载时立即 Ctrl + C,不会产生脏数据;换成带文件名的命令重来即可。
第 1 步:建工作目录
mkdir -p ~/models/qwen3.8 && cd ~/models/qwen3.8第 2 步:下载主模型(17.1GB)
modelscope download --model unsloth/Qwen3.8-27B-GGUF Qwen3.8-27B-Q4_K_M.gguf --local_dir ./中断了直接重跑同一条命令,自动断点续传。
量化档选择(48GB 内存口径):
| 文件 | 大小 | 说明 |
|---|---|---|
Qwen3.8-27B-Q4_K_M.gguf |
17.1 GB | 本文选择,质量/大小平衡最好 |
Qwen3.8-27B-UD-Q4_K_XL.gguf |
17.9 GB | Unsloth 动态量化,质量略好 |
Qwen3.8-27B-Q6_K.gguf |
22.9 GB | 更高质量,48GB 也能从容跑 |
Qwen3.8-27B-Q8_0.gguf |
29 GB | 能跑但偏紧(默认 GPU 上限约 36GB),不推荐 |
Qwen3.8-27B-bf16 |
56 GB | ❌ 超出 48GB 内存,跑不了 |
第 3 步:下载视觉模块(实测 885MB,可选但推荐)
这是与 Qwen3.6 最大的不同:Qwen3.8-27B 是视觉模型,能看图。 视觉能力在一个独立的 mmproj 文件里,不下载它模型照样能用,但只能纯文本。
modelscope download --model unsloth/Qwen3.8-27B-GGUF mmproj-F16.gguf --local_dir ./仓库里还有个
mmproj-BF16.gguf(931MB),二选一即可,用 F16 这个。
三、导入 Ollama
第 0 步:确认 Ollama 服务在跑
create/run 都是客户端命令,真正干活的是后台的 ollama serve(监听 11434):
curl -s http://localhost:11434/api/version # 返回 {"version":"..."} = 服务在跑,直接往下没返回就先起服务。注意 ollama serve 本身是前台阻塞命令(会占住终端),推荐用 brew 注册成系统服务:
brew services start ollama # 注册为后台服务,开机自动拉起(brew 装的 CLI 版适用)
# 或临时后台起(第九节用的就是这种):
# nohup ollama serve > /tmp/ollama.log 2>&1 &装的是 Ollama.app(菜单栏有图标)的话服务常驻,此步可跳过。 ⚠️
brew upgrade ollama后,手动起的旧 serve 进程不会自动变新版本,记得brew services restart ollama(第九节的 412 报错就是它导致的)。
第 1 步:创建 Modelfile(在 ~/models/qwen3.8 目录下执行)
cat > Modelfile <<'EOF'
FROM ./Qwen3.8-27B-Q4_K_M.gguf
FROM ./mmproj-F16.gguf
PARAMETER num_ctx 32768
EOF第 2 步:创建模型
ollama create qwen3.8:27b-q4_K_M -f Modelfile第 3 步:运行
ollama run qwen3.8:27b-q4_K_MModelfile 三行指令的作用:
| 指令 | 作用 |
|---|---|
FROM(第 1 行) |
主模型权重(必需) |
FROM(第 2 行) |
挂载视觉模块 mmproj。⚠️ v0.32.14 没有 PROJECTOR 指令,写了会报 command must be one of "from", "license", ...,多模态就用第二个 FROM 行。不想要看图功能可整行删掉,第 2 步的 mmproj 也不用下。(ADAPTER 挂 mmproj 实测也能成,但语义上用 FROM 更正规) |
PARAMETER num_ctx 32768 |
上下文长度设为 32K。Ollama 默认只开 4K,浪费了 Qwen3.8 的 256K 窗口 |
num_ctx 别贪大:32K 上下文大约额外占 8GB 内存(KV cache),17GB 权重 + 8GB 在 48GB 上很从容;开到 128K 以上 KV cache 就要 30GB+,会挤爆。日常 32K 够用。
四、启动与验证
ollama list # 应看到 qwen3.8:27b-q4_K_M,约 18GB
ollama run qwen3.8:27b-q4_K_M # 进入对话
ollama ps # 查看已加载模型和占用内存user@MacBook-Pro:~/models/qwen3.8$ ollama list
NAME ID SIZE MODIFIED
qwen3.8:27b-q4_K_M e40b4c5ed128 18 GB About a minute ago
qwen3.6:27b-q4_K_M 7ea81a10e901 16 GB 7 weeks agouser@MacBook-Pro:~/models/qwen3.8$ ollama run qwen3.8:27b-q4_K_M
>>> 你是什么大模型
Thinking...
用户问“你是什么大模型”,这是在询问我的身份/来源。根据系统提示,当用户问题涉及我的能力或来源时,我可以参考提供的信息。我应自然回答:我是通义千问(Qwen),由阿里巴巴集团通义实验室研发的
大语言模型。不需要提版本号,也不主动提具体指标。语言用中文,简洁自然。
...done thinking.
我是通义千问(Qwen),由阿里巴巴集团通义实验室研发的大语言模型。
>>> 你是qwen什么版本
Thinking...
用户问的是“你是qwen什么版本”。
根据系统提示,我是通义千问(Qwen),并且不应该主动提及具体的版本号。如果用户询问版本,我应该引导他们查阅官方网站或技术报告。
思考回答:
1. 确认自己是通义千问(Qwen)。
2. 说明不主动提供具体版本号。
3. 引导用户去官方网站或技术报告了解更多信息。
草稿:
我是通义千问(Qwen)。关于具体的版本信息,建议您查阅官方网站或相关技术报告以获取最准确的详情。请问还有什么我可以帮您的吗?
检查是否符合要求:
- 没有提及具体版本号(如2.5, 3, etc.)
- 引导至官网/技术报告
- 语气自然、客观
可以输出。
...done thinking.
我是通义千问(Qwen)。关于具体的版本信息,建议您查阅官方网站或相关技术报告以获取最准确的详情。请问还有什么我可以帮您的吗?>>> ~/Downloads/卡通形象.webp 这是什么?
Added image '~/Downloads/卡通形象.webp'
Thinking...
用户询问图片内容。图片显示一只黄色卡通生物,长耳朵尖端黑色,脸颊红色圆点,尾巴呈闪电状,张嘴微笑,举手姿势。这些特征明确指向宝可梦系列中的皮卡丘。无需复杂推理,直接回答即可,可补充一句
它是宝可梦的代表角色。语言用中文。
...done thinking.
这是**皮卡丘(Pikachu)**,出自《宝可梦》(Pokémon,精灵宝可梦 / 口袋妖怪)系列。
判断依据:
- 黄色的身体
- 长耳朵,耳尖为黑色
- 脸颊两侧有红色圆点(电气囊)
- 尾巴呈闪电(锯齿)形状
- 张嘴微笑、挥手的经典姿势
皮卡丘是该系列最具代表性的吉祥物角色之一,也是初代御三家之外的"招牌"宝可梦,常作为主角小智的搭档出现。🐭⚡验证视觉能力:在 ollama run 对话里直接把一张图片拖进终端(会变成图片路径),然后问”这张图里有什么”。能描述图片内容 = mmproj 挂载成功。也可以 ollama show qwen3.8:27b-q4_K_M,Capabilities 里有 vision、另有 Projector 段即正确。
老办法验证 GPU:另开终端跑 macmon,提问时 GPU 使用率应冲到 80%+(上一篇第八节)。
ollama show 输出解读
Model
architecture qwen35 # 模型架构(qwen3.5 系列)
parameters 27.3B # 参数量
context length 262144 # 模型支持的上下文上限(256K)
embedding length 5120 # 词向量维度
quantization Q4_K_M # 量化档
Capabilities
tools # 工具调用(function calling):能判断该调哪个函数、参数是什么,输出结构化 JSON。
# 接 Claude Code / Cherry Studio 联网搜索等都靠它(API 请求带 tools 定义)
thinking # 推理模式:回答前先输出 <think>...</think> 思考段再给正式答案,默认开启。
# 想关:提问末尾加 /no_think(Qwen 系软开关),或 API 传 "think": false
completion # 文本补全(/api/generate 单轮续写),所有模型的标配,不用管
vision # 图像理解:能看图(mmproj 带来的,见下方 Projector)
Projector ← vision 能力的来源
architecture clip # 视觉编码器架构,把图片切块编码成向量
parameters 460.73M # 视觉模块自身参数量(所以 mmproj 有 885MB)
embedding length 1152 # 视觉侧向量维度
dimensions 5120 # 输出维度,与主模型 embedding length 对齐——
# 图像向量就这样"翻译"进语言模型输入空间
Parameters
num_ctx 32768 # Modelfile 里设的实际上下文窗口 32K(KV cache 按这个算,
# 模型上限 262144,别贪大,见第三节说明)四项能力里 completion 是标配,其余三项(tools / thinking / vision)都是这个模型的加分项。识图方法:本节上方”验证视觉能力”(终端拖图 / 带路径提问)、第五节(Cherry Studio 贴图、API)。
五、接入 Cherry Studio / API
和上一篇第五、六节完全一样,只改模型名:
| 场景 | 改动 |
|---|---|
| API 地址 | 不变:http://localhost:11434/v1 |
| 模型名 | qwen3.8:27b-q4_K_M(必须与 ollama list 显示完全一致) |
| Cherry Studio 发图 | 直接在对话框贴图,模型即可识图(视觉模型新增能力) |
六、与 Qwen3.6 流程的差异清单
| 步骤 | Qwen3.6(上一篇) | Qwen3.8(本文) |
|---|---|---|
| 下载文件 | 1 个 GGUF | 2 个:GGUF + mmproj-F16.gguf |
| Modelfile | 只有 FROM |
多第二个 FROM 行(挂 mmproj 视觉模块)+ PARAMETER num_ctx |
| 模型名 | qwen3.6:27b-q4_K_M |
qwen3.8:27b-q4_K_M |
| 能力 | 纯文本 | 文本 + 看图,上下文 256K |
七、磁盘空间管理
本次安装完成后磁盘上会多出约 35GB:
| 位置 | 大小 | 说明 |
|---|---|---|
~/models/qwen3.8/ 原始文件 |
~18GB | GGUF 17.1G + mmproj 0.9G |
~/.ollama/models/blobs/ |
~18GB | ollama create 生成的托管副本 |
- 确认模型能正常用(含看图)后,
~/models/qwen3.8/下的原始文件可删,省 18GB。 - 删模型用
ollama rm qwen3.8:27b-q4_K_M,别手动动 blobs 目录。 - 顺手清理:
~/models/根目录下如果还留着旧 Qwen3.6 的原始Qwen3.6-27B-Q4_K_M.gguf(16G),Ollama 里的 qwen3.6 还能正常跑且不再需要原始文件的话,这份也可以删,再省 16GB。
八、常见问题
| 现象 | 原因 / 解决 |
|---|---|
| 下载停不下来、磁盘暴涨 | 忘了加文件名,正在下整仓 424GB;Ctrl + C,加文件名重来(见第二节警告) |
Repo ... not exists |
仓库名/文件名大小写、点号不符;正确写法:unsloth/Qwen3.8-27B-GGUF + Qwen3.8-27B-Q4_K_M.gguf |
| 下载中断 | 重跑同一条命令,自动续传 |
ollama create 报 command must be one of "from", "license", ... |
Modelfile 用了不存在的指令(如 PROJECTOR,v0.32.14 实测没有这条)。视觉模块改用第二个 FROM 行挂 mmproj,见第三节 |
| 模型能聊天但看不了图 | mmproj 没下载 / Modelfile 漏了第二个 FROM 行 / 改了 Modelfile 后没重新 ollama create |
| 长对话后内存吃紧、变卡 | num_ctx 设太大;改 Modelfile 里的值重新 ollama create |
| Cherry Studio 检测失败 | 模型名与 ollama list 不一致,或 Ollama 服务没在跑 |
pull model manifest: 412 |
客户端版本过旧(直接 pull 需 ≥ 0.32);brew upgrade ollama 后必须重启 serve 进程才生效,详见第九节 |
listen tcp 127.0.0.1:11434: bind: address already in use |
已经有一个 serve 在跑;pkill -f "ollama serve" 停掉再起。注意别在 pull 进行中折腾——ollama pull 中断后实测不续传,该层从头下 |
九、补记:直接 pull 的尝试与最终本地导入
如果没走 ModelScope,直接 ollama run qwen3.8:27b-q4_K_M,让 Ollama 自己从 ollama.com 拉取。先遇到版本问题,升级后开始下载,但网络不稳,最终放弃 pull 改走本地导入(见本节第 4 小节)。pull 这条路的记录如下:
1. 报错
Error: pull model manifest: 412:
The model you are attempting to pull requires a newer version of Ollama.原因:0.30.11 低于该模型 manifest 的最低客户端要求(只挡直接 pull,本地 ollama create 导入不受影响)。
2. 升级并重启 serve
brew upgrade ollama # 0.30.11 → 0.32.14
pkill -f "ollama serve" # 关键:手动起的 serve 不随升级自动重启
nohup ollama serve > /tmp/ollama.log 2>&1 & # 后台重启,日志在 /tmp/ollama.log
curl -s http://localhost:11434/api/version # 验证返回 {"version":"0.32.14"}brew 只替换二进制,内存里跑着的还是旧进程——只升级不重启,pull 照样报 412。
3. 重新拉取
ollama pull qwen3.8:27b-q4_K_M # 约 16GB;注意实测中断后会从头下该层(ollama pull 不续传),最好挂着别断拉完用 ollama show 看 capabilities 里有没有 vision 即可。
两条路线怎么选
| 直接 pull(本节) | ModelScope + Modelfile(第二、三节) | |
|---|---|---|
| 步骤 | 1 条命令 | 下 2 个文件 + 写 Modelfile + create |
| 速度 | ollama.com 海外源,实测 ~600KB/s,慢 | 国内源,快 |
| 量化档 / 参数 | 用官方现成 tag | 完全自定义(num_ctx、mmproj 档位) |
| 适合 | 省事、能挂着慢慢下 | 要速度或要自定义 |
4. 同日结局:pull 放弃,本地导入成功
pull 两次都因 unexpected EOF 中断(且不续传、每次从头下),放弃;改走第二、三节的本地导入,但原 Modelfile 里的 PROJECTOR 指令在 0.32.14 直接报错——这条指令根本不存在。实测有效的是两行 FROM:
cd ~/models/qwen3.8
cat > Modelfile <<'EOF'
FROM ./Qwen3.8-27B-Q4_K_M.gguf
FROM ./mmproj-F16.gguf
PARAMETER num_ctx 32768
EOF
ollama create qwen3.8:27b-q4_K_M -f Modelfile实测结论:
ollama show qwen3.8:27b-q4_K_M:Capabilities 含vision+ Projector(clip,460M 参数)→ 视觉挂载成功- 红蓝双色测试图识别正确;文本对话正常(thinking 模式)
ollama ps:18GB、100% GPU、context 32768(PARAMETER num_ctx生效)- 测过的无效写法:
PROJECTOR(指令不存在)、FROM a.gguf,b.gguf逗号/空格多文件(报invalid model name);ADAPTER挂 mmproj 能成功但不推荐
延伸阅读
- 在 MacBook M5 Pro 上部署 Ollama 本地大模型完整指南 (Qwen3.6 部署文档)
- unsloth/Qwen3.8-27B-GGUF(ModelScope 国内源)
- unsloth/Qwen3.8-27B-GGUF - Hugging Face:全部量化档的文件清单和大小(本文量化选择表的来源)
- Qwen3.8 - How to Run Locally | Unsloth Documentation:官方本地运行文档,内存需求与 NVFP4 动态量化说明
- Ollama Library: qwen3.8 tags:官方库全部变体(Q4/Q8/bf16/MTP/MLX/NVFP4)及大小
- mlx-community/Qwen3.8-27B-4bit - Hugging Face:Apple Silicon 原生 MLX 版(本文未走的备用路线)