Ollama:把大模型装进你的电脑
一、项目定位
Ollama 是一个开源的本地大模型运行平台,用一行命令即可在本地运行 Llama 3、Gemma 4、DeepSeek、Qwen、Mistral 等 100+ 开源大模型。截至 2026 年 GitHub Stars 超过 174,000,是本地 LLM 领域毫无争议的标杆项目。
二、核心价值
- 零配置:安装即用,无需手动管理模型文件、量化参数、GPU 驱动
- 多后端:NVIDIA CUDA、AMD ROCm、Apple Silicon Metal/MLX、Vulkan 全覆盖
- API 优先:REST API + OpenAI 兼容端点,现有应用无缝迁移
- 生态完善:10+ 语言 SDK、30+ Web UI、50+ 集成工具
三、技术架构
ollama/
├── llm/ # 推理引擎抽象层(Go → CGO → llama.cpp)
├── llama/ # llama.cpp 适配层(CUDA/ROCm/Metal/Vulkan CMake)
├── server/ # HTTP API 服务(Gin 框架)
├── api/ # API 类型定义 + Go 客户端 SDK
├── cmd/ # CLI 入口(run/pull/list/create)
├── model/ # 模型 manifest、blob 缓存、SQLite 索引
├── template/ # 提示词模板引擎
├── openai/ # OpenAI Chat Completions 兼容端点
├── anthropic/ # Anthropic Messages API 兼容层
└── app/ # Electron 桌面客户端
四、推理流程
ollama pull → 解析 manifest → 分片下载 blob → 校验 SHA256 → 存入 ~/.ollama/models/
ollama run → 读取 Modelfile → fork llama.cpp 子进程 → 等待 ready 信号
- HTTP 请求 → Gin 中间件 →
server/chat.go → 构建 prompt → 写入 llama 子进程 stdin → 流式读取 stdout → SSE 推送
- Tool Calling:模型输出结构化 JSON → server 解析 → 执行工具 → 注入下一轮 context
五、构建方式
# 快速迭代(Go only)
go build . && ./ollama serve
# 完整构建(含 C++ GPU 后端)
cmake -B build . -DOLLAMA_LLAMA_BACKENDS="cuda_v13;vulkan"
cmake --build build --parallel 8
./ollama serve
六、近期更新亮点
- v0.30.x:llama.cpp 更新到 b9672,新增 thinking model、工具调用、结构化输出
ollama launch 命令:自动安装 Claude Code、OpenCode 等编程助手
- Anthropic 兼容层(
/v1/messages)
- Web 搜索工具集成
七、生态护城河
Ollama 的真正壁垒是生态:
- 社区集成:Open WebUI、Lobe Chat、Continue、Cline 等 100+ 项目默认后端
- 模型库:100+ 预配置模型,一条
ollama run 即可运行
- Modelfile:类似 Dockerfile 的声明式模型配置,自定义 system prompt、temperature、context length
八、局限性
- 7B~14B 模型需 6-16GB 显存,70B 模型需专业级多卡系统
- 长上下文(>32K)性能受限于 KV Cache 显存
- 无内置模型微调(Fine-tuning)支持
- 默认无 API 认证,LAN 暴露需额外配置