AI 技术2026-03-22 11 分钟

本地部署大模型:Ollama + Open WebUI 搭建私有 AI 助手

不花一分钱 API 费用,不用担心数据泄露,在自己电脑上跑一个媲美 ChatGPT 的 AI 助手。

公司的代码和文档不能发给外部 AI 服务?API 费用太高?网络环境不允许访问海外 API?这些都是我当初研究本地部署的原因。好消息是,2026 年的开源大模型已经足够好用,8B 参数的模型在消费级显卡上就能流畅运行,效果远超两年前的 GPT-3.5。

说实话,本地跑大模型最大的门槛不是技术,是心理预期。如果你期望本地模型达到 Claude 或 GPT-4o 的水平,那肯定会失望。但如果你只是需要一个「足够好」的代码补全、文档问答、翻译工具,本地模型完全够用,而且速度可能比 API 还快。

1. 硬件要求:你的电脑能跑多大的模型?

配置可用模型体验
8GB 显存(RTX 3060 等)7-8B 参数模型(Q4 量化)流畅,约 30-50 token/s
12GB 显存(RTX 4070 等)13-14B 参数模型(Q4 量化)流畅,效果明显更好
24GB 显存(RTX 4090 等)30-34B 参数模型(Q4 量化)接近 GPT-3.5 水平
Apple Silicon 16GB+7-14B 参数模型统一内存架构,体验不错

没有独立显卡?别担心,Ollama 也支持纯 CPU 推理,只是速度会慢很多(约 5-10 token/s)。对于不着急的批处理任务、离线翻译等场景,完全够用。Apple Silicon 的 M1/M2/M3 芯片因为统一内存架构,CPU 推理速度也相当可观。

2. 安装 Ollama:一行命令搞定

安装

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

# Windows
# 直接从 https://ollama.com 下载安装包

# 验证安装
ollama --version

下载并运行模型

# 下载并运行 Llama 3.1 8B(推荐入门)
ollama run llama3.1

# 下载 Qwen 2.5 14B(中文效果更好)
ollama run qwen2.5:14b

# 代码专用模型
ollama run deepseek-coder-v2:16b

# 查看已下载的模型
ollama list

# 删除不需要的模型
ollama rm llama3.1

通过 API 调用

Ollama 默认在 localhost:11434 提供 OpenAI 兼容的 API,意味着你可以用任何 OpenAI SDK 来调用本地模型:

import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: 'http://localhost:11434/v1',
  apiKey: 'ollama',  // Ollama 不需要真实 API key
})

const response = await client.chat.completions.create({
  model: 'qwen2.5:14b',
  messages: [
    { role: 'user', content: '用 TypeScript 写一个防抖函数' },
  ],
})

console.log(response.choices[0].message.content)

3. 推荐模型:不同场景选不同模型

通用对话

Llama 3.1 8B — Meta 出品,各语言表现均衡,社区生态最好。
Qwen 2.5 14B — 阿里出品,中文理解能力最强,推荐中文场景首选。

代码生成

DeepSeek Coder V2 16B — 代码补全和生成的专项冠军,支持 300+ 种编程语言。
CodeLlama 13B — Meta 基于 Llama 微调的代码模型,轻量够用。

小而快(嵌入式/低资源)

Phi-3 Mini 3.8B — 微软出品,3.8B 参数但效果逼近 7B 模型,适合资源有限的环境。
Gemma 2 2B — Google 出品,2B 参数的小模型,适合简单任务。

4. Open WebUI:给本地模型加上好看的界面

命令行聊天总归不方便。Open WebUI 是一个开源的 ChatGPT 风格 Web 界面,支持连接 Ollama,功能非常完善。

用 Docker 一键部署

# 确保 Ollama 已经在运行
# 然后启动 Open WebUI
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -v open-webui:/app/backend/data \
  --restart always \
  ghcr.io/open-webui/open-webui:main

# 打开浏览器访问 http://localhost:3000
# 首次使用需要注册一个管理员账号

Open WebUI 的实用功能

  • 多模型切换:在对话中随时切换不同的本地模型
  • 文档上传:上传 PDF/文档,模型基于文档内容回答(内置 RAG)
  • 对话历史:完整的聊天记录管理,支持搜索
  • 自定义系统提示:为不同场景设置不同的 System Prompt
  • 多用户支持:支持团队内部署,每人独立的对话空间
  • API 代理:同时连接本地 Ollama 和云端 API(OpenAI 等)

5. 实际使用场景

场景 1:敏感代码审查

公司的核心业务代码不能发送到外部服务。用本地部署的 DeepSeek Coder 做代码审查和重构建议,数据完全不出局域网。

场景 2:内部文档问答

配合 Open WebUI 的 RAG 功能,上传公司的技术文档、API 文档、运维手册,新同事入职可以直接向 AI 提问,不用翻文档海。

场景 3:离线开发环境

出差、地铁上、没有网络的时候,本地模型依然可用。我在飞机上用 Ollama + Qwen 写了一整个 composable,落地后直接提交。

场景 4:学习和实验

想了解 AI 应用开发但不想花钱?本地模型是最好的实验平台。RAG、Agent、Function Calling 等功能 Ollama 都支持,零成本练习。

6. 性能调优小贴士

使用量化模型:Q4_K_M 量化是性能和质量的最佳平衡点,显存占用减半但效果损失很小。Ollama 默认就是这个量化等级。

调整上下文长度:默认的 context window 越大越占显存。如果不需要很长的对话,可以在 Modelfile 中设置 num_ctx 2048 来节省资源。

GPU 层数分配:通过 OLLAMA_NUM_GPU 环境变量控制有多少层放在 GPU 上。显存不够的话可以只放一部分,其余用 CPU 计算。

相关阅读

部署好本地模型后,可以用 RAG 技术让它理解你的文档,参考 RAG 技术入门。想了解如何更好地与 AI 沟通,推荐 Prompt Engineering 实用指南