手动环境准备参考(Ollama 部署详解)

August 24, 2026 · View on GitHub

大多数用户不需要本文vision_setup(auto=true) 会自动完成安装 ollama、启动服务、拉取推荐模型、写入模型图片能力声明。本文供手动干预、排查或深度调优时参考。

本插件依赖 ollama 提供本地视觉模型推理。本文覆盖:安装、启动排查、模型拉取、模型选型、内存/磁盘规划、性能调优。

1. 安装 ollama

三种方式任选:

方式 A:Homebrew(推荐)

brew install ollama

安装后 brew 会自动注册服务:

brew services start ollama    # 开机自启(推荐)
# 或前台运行:ollama serve

方式 B:官方安装包

https://ollama.com/download/mac 下载 Ollama-darwin.zip,解压后把 Ollama.app 拖入「应用程序」。首次启动 App 即开始服务。

方式 C:命令行脚本(仅 macOS arm64)

curl -fsSL https://ollama.com/install.sh | sh

验证安装

ollama --version          # 应输出版本号(如 0.5.x / 0.6.x)
ollama list               # 列出已拉取模型(初始为空)
curl -s http://127.0.0.1:11434/api/version   # 服务健康检查,应返回 {"version":"..."}

第三条命令报 connection refused 说明服务未启动:ollama serve(前台)或 brew services start ollama(后台)。

2. 拉取视觉模型

ollama pull qwen3-vl:4b-instruct-q4_K_M
  • 权重约 3.1GB,按网速不同耗时 3~20 分钟;显示进度条,success 结尾即完成
  • 拉取中断可重跑同一条命令(断点续传)
  • 国内网络慢时可配置镜像:OLLAMA_HOST 或使用代理后再拉取

可选模型规格

标签权重大小下载后占用推荐内存适用场景
qwen3-vl:2b1.76 GB~2 GB8 GB 起内存紧张的老款 Mac、纯 OCR 辅助
qwen3-vl:4b-instruct-q4_K_M(推荐)3.07 GB~3.5 GB16 GB 起中文 UI 截图理解/OCR 的性价比之选
qwen3-vl:8b5.72 GB~6.5 GB24 GB 起复杂画面、文档版面、更高精度

数据来源:Ollama Registry 官方 manifest(2026-08 实测)。所有尺寸均为 Q4 量化后权重。

4b 是体量小但综合性能最高的选择:Qwen3-VL 系列的中文与 UI/截图理解能力在开源小模型中领先(评测对比),4B 版在 Apple Silicon 上速度与质量平衡最好;2b 更小但理解力明显下降,8b 更强但内存与速度成本高。

切换模型

插件默认使用 qwen3-vl:4b-instruct-q4_K_M。自定义模型名(须已 ollama pull):

# 工具参数 describe 之外,脚本也支持: swift vision_analyze.swift <图> describe:<模型名>
swift lib/vision_analyze.swift /tmp/shot.png describe:qwen3-vl:8b

3. 模型选型指南

3.1 内存规划

Apple Silicon 使用统一内存,模型加载占用 ≈ 权重 × 1.3 + KV cache + 系统开销:

你的 Mac 内存可流畅运行勉强可用不建议
8 GB2b4b(会较慢/卡顿)8b
16 GB4b ✅8b32b
24 GB4b / 8b ✅32b
36 GB+8b / 32b

运行期间 ollama 常驻内存:2b≈2.5GB、4b≈4.5GB、8b≈8GB。请给 DSH(Electron,常驻 1~2GB)和系统留足余量。

3.2 速度预期(Apple Silicon,视觉推理)

芯片4b 描述单图备注
M1 / M2(基础款)15~40 秒可用但偏慢,建议 2b
M1 Pro / M2 Pro8~20 秒日常可用
M3 / M45~12 秒流畅
M4 Pro / Max3~8 秒流畅

首次调用(冷启动)额外多 3~10 秒(加载模型进内存);之后保持常驻。

3.3 磁盘规划

模型存放在 ~/.ollama/models/(macOS 默认)。三档模型同时拉取约占用 11GB,只留推荐档约 3.5GB:

# 查看占用
du -sh ~/.ollama/models

# 删除不用的模型释放空间
ollama rm qwen3-vl:2b

# 模型目录迁移到大磁盘(可选)
# 1) 设置环境变量:export OLLAMA_MODELS=/Volumes/Data/ollama-models
#    (brew 服务:在 /Library/LaunchDaemons 或 ~/Library/LaunchAgents 的
#     com.ollama.plist 中加 EnvironmentVariables)
# 2) 或软链:mv ~/.ollama/models /Volumes/Data/ollama-models && ln -s /Volumes/Data/ollama-models ~/.ollama/models

4. 性能与调优

4.1 上下文窗口(num_ctx)

本插件调用 ollama 时已设置 num_ctx: 16384(脚本内硬编码),足以容纳大图的视觉 token(Qwen3-VL 按图缩放后约 1~4k token)。仍报 exceeds the available context size 时:

# 查看模型默认上下文
ollama show qwen3-vl:4b-instruct-q4_K_M
# 在 ~/.ollama 无全局配置时,可创建 Modelfile 覆盖
# FROM qwen3-vl:4b-instruct-q4_K_M
# PARAMETER num_ctx 32768
# ollama create qwen3-vl-4b-32k -f Modelfile

4.2 图片预处理(前置压缩 + 两阶段读图)

① 前置压缩:传给视觉模型前做双约束压缩,对齐 Qwen3-VL 官方推荐(单图视觉 token 2561280,对应 max_pixels 0.26M1.31M 像素):

  • 最长边 ≤ 1280px 且总像素 ≤ 1M,取两者更严者,保持宽高比
  • Lanczos 高质量插值interpolationQuality = .high),缩放后文字边缘清晰
  • 编码自适应:带透明通道用 PNG;否则 JPEG 质量 85(真实截图 payload 可减小一半以上,加速 ollama 解码)
  • 返回 vision_meta 元信息:原图尺寸、缩放后尺寸、缩放比例、编码与 payload 大小;描述 prompt 也会告知模型当前为压缩视图及原图尺寸

② 两阶段读图(定位 → 放大细看):用户只传图不传文案时,图内通常包含标注(文字、框线、划线、箭头)。脚本利用 Vision 框架做毫秒级定位

  • OCR 文本包围盒(原图,带像素坐标)+ VNDetectRectanglesRequest 矩形检测(框线/标注框)→ 膨胀合并重叠 → 输出关注区域regions 字段,含原图坐标)
  • describe 模式把整体压缩图 + 最多 2 个区域放大图(裁剪原图 → 640 档)作为多图一次请求发给 ollama(images 数组,单次推理)
  • prompt 明确告知模型「第 1 张是整体视图、其余是标注区域放大图」,并提示优先查找标注含义
  • 实测:2000×1000 带标注图,模型能准确读出每个框内的文字与箭头指向

目的:控制视觉 token 数量(256~1280 推荐档内)、显著提速;OCR 不受影响——OCR 始终用原图,坐标基于原始分辨率。两阶段读图较单图多约 8 秒(热身后),换来的是标注细节的准确识别,避免「看不清 → 要求再看 → 用户再次操作」的往返。

4.3 温度与输出

  • 脚本默认 temperature: 0.2(描述更稳定)、num_predict: 400(描述上限)
  • 描述 prompt 限定 150 字以内,控制 token

4.4 常驻与释放

ollama ps                # 查看当前加载的模型与内存
ollama stop qwen3-vl:4b-instruct-q4_K_M   # 手动卸载释放内存

ollama 空闲 5 分钟自动卸载模型。需要时可用 OLLAMA_KEEP_ALIVE 调整(如 OLLAMA_KEEP_ALIVE=30m ollama serve)。

5. 常见安装命令速查

ollama list                  # 已拉取模型
ollama pull <model>          # 拉取
ollama rm <model>            # 删除
ollama run <model>           # 交互测试(可带图片路径做冒烟测试)
ollama ps                    # 运行中模型
ollama serve                 # 前台启动服务
brew services start ollama   # 后台常驻
curl http://127.0.0.1:11434/api/version   # 健康检查

下一步:遇到问题查 troubleshooting.md