Ollama 本地部署大模型实录

本文的核心命题:在一台消费级 PC 上,从零搭建一个可用的本地大模型 API。

最终产物是一个兼容 OpenAI 协议的服务端点:http://localhost:11434/v1,任何标准 HTTP 客户端均可直接调用。

云厂商的 API 服务(DeepSeek、OpenAI、Anthropic 等)开箱即用,付费即可。但亲手走完整条链路——选框架、装软件、配镜像、挑模型、填坑、调通代码——每一层的原理和边界,只有亲手做过一遍才能真正掌握。


目标:在本地 PC 部署 Ollama 推理服务,运行量化大模型,对外暴露标准 OpenAI API(http://localhost:11434/v1)。


逻辑流程图

Use Case:谁在做什么

角色

localhost:11434/v1
兼容 OpenAI API

👤 开发者

🦙 Ollama
推理服务

🐍 Python
代码

🧠 模型
qwen2.5:1.5b

核心流程

✅ 有

❌ 没有

下载 Ollama 软件
OllamaSetup.exe

配国内镜像
config.json

拉取模型
ollama pull qwen2.5:1.5b

模型在本地了?
ollama list

运行模型
ollama run qwen2.5:1.5b

验证运行
ollama ps

Python API 调用
localhost:11434/v1

镜像加速逻辑(核心难点)

✅ 配了

❌ 没配

ollama pull 模型

config.json
配了镜像?

从国内镜像下载
速度快

下载完成 ✅

从 ollama.com 下载
极慢/失败

配置镜像
或手工下载 GGUF 导入

坑点排查树

模型跑不起来了?

ollama ps 为空?

模型没下载
→ ollama pull

GPU 0%,CPU 100%?

驱动/图形设置问题
→ CPU 也能跑,接受

--registry-mirror 报错?

用 config.json,
不要用命令行参数

下载仍然慢?

终极方案:手工下载
GGUF + Modelfile 导入


硬件约束

  • CPU:仅 CPU 可用
  • GPU:GTX 1050(2GB 显存,无法训练,推理理论上可用但实际没驱动成功)
  • 内存:8GB(其他软件占一部分,实际可用于模型的约 2-3GB)

完整流程

第一步:安装 Ollama

下载:GitHub Releases 页面文件很多,选错就白下。正确选择:

系统 下载哪个
Windows + NVIDIA 显卡 OllamaSetup.exe(带安装向导)
Windows 便携版 ollama-windows-amd64.zip
Linux ollama-linux-amd64.tar.zst
❌ 有 rocm AMD 显卡专用,不是你的
❌ 有 mlx Apple Silicon 专用,不是你的
❌ 有 arm64 ARM 设备(树莓派、Surface Pro X),不是你的
❌ 有 jetpack NVIDIA Jetson 开发板,不是你的

国内下载慢 → 用 CNB 镜像

Invoke-WebRequest -Uri "https://cnb.cool/hex/ollama/-/releases/latest/download/OllamaSetup.exe" -OutFile "OllamaSetup.exe"; Start-Process "OllamaSetup.exe"

第二步:配置国内镜像源

ollama pull 从官方源下载模型极慢,必须配镜像。

创建/编辑 %USERPROFILE%\.ollama\config.json

{
  "registry": {
    "mirrors": {
      "registry.ollama.ai": "https://registry.ollama.ai"
    }
  }
}

国内可用镜像

提供方 镜像地址
阿里云 https://registry.ollama.ai
ModelScope 魔搭 https://ollama.modelscope.cn
浙江大学 https://ollama.zju.edu.cn
DeepSeek 官方 https://ollama.deepseek.com

注意https://registry.ollama.ai 看起来像官方域名,但确实是阿里云提供的国内镜像。

配好后重启 Ollama(系统托盘右键 → Quit → 重新打开)。

第三步:选择适合的模型

8GB 内存约束下,不能跑 7B 以上的模型。可选:

模型 参数量 内存占用 特点
qwen2.5:1.5b 1.5B ~2 GB 综合首选,中文好
gemma3:1b 1B ~0.8 GB 极低内存
tinyllama:1.1b 1.1B ~2 GB 轻量通用
phi3:mini 3.8B ~2.2 GB 推理最强但内存紧张
deepseek-r1:1.5b 1.5B ~2.6 GB 中文强但超预算

第四步:拉取并运行模型

# 拉取模型(配置好镜像后直接 pull,约 986 MB)
$ ollama pull qwen2.5:1.5b
pulling manifest
pulling 183715c43589: 100% ▕██████████████████▏ 986 MB
pulling 66b9ea09bd5b: 100% ▕██████████████████▏   68 B
pulling eb4402837c78: 100% ▕██████████████████▏ 1.5 KB
pulling 832dd9e00a68: 100% ▕██████████████████▏  11 KB
pulling 377ac4d7aeef: 100% ▕██████████████████▏  487 B
verifying sha256 digest
writing manifest
success

下载完成后确认

$ ollama list
NAME            ID              SIZE      MODIFIED
qwen2.5:1.5b    65ec06548149    986 MB    15 minutes ago

看到这一行说明模型已经在本地了。

# 运行模型
ollama run qwen2.5:1.5b

第五步:验证运行状态

注意ollama run 进入交互模式在 MinGW / Git Bash 终端下可能卡死(光标不动、无输出),这是终端兼容性问题,不是模型或服务的问题。

两种验证方式

# 方式一:确保在 CMD 或 PowerShell 中,直接进入交互
ollama run qwen2.5:1.5b
# 会看到 >>> 提示符,正常对话

# 方式二:非交互模式,直接输出回复(所有终端都可用)
ollama run qwen2.5:1.5b "Hi"
# 实际成功输出:
PS> ollama run qwen2.5:1.5b "Hi"
Hello! How can I help you today? If you have any questions or need assistance
with anything, feel free to ask.

PS> ollama run qwen2.5:1.5b "Hi你是谁"
你好!我是通义千问,由阿里云开发的AI助手。很高兴为您服务!

# 交互模式:
PS> ollama run qwen2.5:1.5b
>>> Send a message (/? for help)

确认服务正在运行:

ollama ps

正常输出:

NAME            ID              SIZE      PROCESSOR    UNTIL
qwen2.5:1.5b    65b74b2e...     2.0 GB    100% CPU     4 minutes from now

第六步:Python API 调用

from openai import OpenAI

client = OpenAI(
    api_key="ollama",                     # 本地无需真实 key
    base_url="http://localhost:11434/v1"  # Ollama 兼容 OpenAI API
)

response = client.chat.completions.create(
    model="qwen2.5:1.5b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "你好,你是谁?交个朋友吧"}
    ],
    stream=False
)

print(response.choices[0].message.content)

实际运行输出

$ python run_model.py
你好。

$ python run_model.py
我是来自阿里云的大规模语言模型——通义千问。

$ python run_model.py
你好!我是一个AI助手,没有具体的名字。很高兴能和你聊天!

三次输出不完全相同是正常的,原因:小参数量模型的身份认知不稳定 + 默认 temperature 不为 0 的随机性。如需每次回复一致,设 temperature=0


中间踩的坑

坑1:GPU 用不了(GTX 1050 0%,CPU 100%)

现象:任务管理器 GPU 占用 0%,CPU 满载 100%。

排查步骤

  1. nvidia-smi — 检查驱动是否正常
  2. 查看 Ollama 日志:Get-Content "$env:LOCALAPPDATA\Ollama\server.log" -Tail 50,看有没有 Detected GPU
  3. 检查环境变量 OLLAMA_NUM_GPU 是否为 0(是则清除)
  4. Windows 图形设置里把 ollama.exe 设为"高性能"

结果:没解决,但 CPU 也能跑,接受了。

坑2:ollama ps 为空

原因:模型根本没下载到本地。

解决:先 ollama pull qwen2.5:1.5b

坑3:--registry-mirror 参数报错 unknown flag

原因:Ollama 版本不支持这个参数。

解决:用配置文件方式(config.json),不要用命令行参数。配置文件所有版本都支持。

坑4:配置文件可能不生效

检查清单:

  • 路径是否正确:%USERPROFILE%\.ollama\config.json
  • 文件后缀是否是 .json 而不是 .json.txt(在文件夹选项里开启"显示文件扩展名")
  • 改完配置后是否重启了 Ollama(Quit 再打开)

坑5:ollama run 卡住 5 分钟没反应

现象:模型已下载,但 ollama run qwen2.5:1.5b 在 MinGW(Git Bash)终端里执行后卡死。

排查过程

# 1. 尝试重启服务,发现端口已被占用 → 说明服务其实一直在运行
$ ollama serve
Error: listen tcp 127.0.0.1:11434: bind: Only one usage of each socket address...

# 2. 换到 CMD 或 PowerShell 用非交互模式测试
PS> ollama run qwen2.5:1.5b "Hi"
Hello! How can I help you today?    # ← 正常返回,说明模型没问题

# 3. 交互模式也正常了
PS> ollama run qwen2.5:1.5b
>>> Send a message (/? for help)

根因:Ollama 是原生 Win32 程序,在 MinGW/Git Bash 的 Mintty 终端里交互模式会出现输入输出缓冲问题导致假死。服务本身一直在后台正常运行。

解决:使用 Windows 原生终端(CMD / PowerShell / Windows Terminal)运行 ollama run。Ollama 服务默认开机自启,不需要手动 ollama serve

坑6:Python API 每次返回不同

现象:同一段代码跑三次,模型回复不一样——一次说"通义千问",一次说"AI助手"。

原因:小模型身份认知不稳定 + 默认 temperature 不为 0 的生成随机性。

解决:如需一致性,设 temperature=0 并在 system prompt 中明确指定身份。

终极方案:手工下载 GGUF 并导入

如果镜像配置怎么都搞不定,就跳过 ollama pull

  1. ModelScopeQwen2.5-1.5B-Instruct-GGUF,下载 qwen2.5-1.5b-instruct-q4_k_m.gguf
  2. .gguf 文件放到一个文件夹
  3. 同目录创建 Modelfile,内容:FROM ./qwen2.5-1.5b-instruct-q4_k_m.gguf
  4. 执行:ollama create qwen2.5:1.5b -f ./Modelfile
  5. 之后 ollama run qwen2.5:1.5b 即可

关键要点

  1. Ollama 的 API 端口11434,OpenAI 兼容端点为 /v1
  2. 模型名称必须和 pull/run 时一致qwen2.5:1.5b 不能简写
  3. 小模型不支持 thinkingextra_body={"thinking": {"type": "enabled"}} 对大模型(DeepSeek R1)有效,对小模型无效
  4. 微调需要 GPU:CPU 微调极其缓慢,只有 3 条数据才能几分钟跑完。真想微调用 Google Colab 免费 GPU
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐