1. Ollama 基础认知

大家好,我是你们的老朋友。今天咱们聊聊 Ollama——这个在 AI 基础设施圈子里越来越火的项目。

说实话,我第一次接触 Ollama 是在一次内部 PoC 项目里。当时团队需要快速搭建一个本地推理环境,试了好几个方案都不太满意。要么太重,要么配置太复杂。直到我发现了 Ollama,嗯,这玩意儿确实有点东西。

1.1 什么是 Ollama

Ollama 是一个开源的、轻量级的本地大语言模型运行框架。说白了,它让你能在自己的机器上跑 LLM,不用依赖云服务,也不用折腾复杂的 CUDA 环境。

我个人习惯把它比作「Docker for LLM」。为什么这么说?因为它的设计哲学和 Docker 很像:

  • 一键拉取模型:就像 docker pull 一样简单
  • 开箱即用:不需要手动配置推理引擎
  • 标准化接口:统一的 API 和 CLI 交互方式

我在项目中遇到过不少团队,明明只是想做个小规模的模型验证,结果搭了一整套 Kubernetes + Triton Inference Server。说实话,有点杀鸡用牛刀了。Ollama 更适合这种场景——快速验证、轻量部署、单机或小集群运行。

核心特点:

  • 支持多种主流模型:Llama、Mistral、Gemma、Qwen 等
  • 提供 REST API,方便集成到现有系统
  • 支持 GPU 加速(CUDA、Metal、Vulkan)
  • 内置模型管理,支持自定义模型

1.2 Ollama 的架构原理

咱们来看看 Ollama 内部是怎么工作的。你想想看,一个能跑大模型的系统,背后肯定没那么简单。

下面这张图是我画的 Ollama 核心架构,帮你快速理解它的运行逻辑:

Ollama 核心架构图 用户 CLI / REST API 接口层 模型管理 拉取 / 加载 / 卸载 推理引擎 llama.cpp 核心 硬件抽象层 CUDA / Metal / CPU 模型存储(本地文件系统 ~/.ollama/models) 用户 → CLI/API → 模型管理 + 推理引擎 + 硬件抽象 → 模型存储 用户交互 接口层 核心引擎 硬件抽象

从架构上看,Ollama 其实并不复杂。它的核心是 llama.cpp——一个高效的 C++ 推理引擎。Ollama 在它外面包了一层,提供了更友好的接口和管理能力。

为什么会选择 llama.cpp 作为底层?我个人的理解是:它兼顾了性能和兼容性。你想想看,llama.cpp 能在 CPU 上跑,也能在 GPU 上跑,甚至能在树莓派上跑。这种灵活性对于 Ollama 的「轻量级」定位来说,太合适了。

小提示:Ollama 的模型文件存储在 ~/.ollama/models 目录下。每个模型其实是一个包含配置、权重和 tokenizer 的打包文件。你可以用 ollama list 查看本地已下载的模型。

1.3 Ollama 的安装与单机部署

好了,理论说完了,咱们动手试试。安装 Ollama 其实非常简单,我带你走一遍。

1.3.1 Linux 安装

Linux 用户最省事,一行命令搞定:

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

这条命令会自动检测你的系统,安装依赖,配置服务。我记得第一次跑的时候,大概等了 2 分钟就装好了。嗯,确实快。

如果你用的是 Ubuntu 或 Debian,也可以手动安装:

# 下载 deb 包
wget https://ollama.com/download/ollama-linux-amd64.deb

# 安装
sudo dpkg -i ollama-linux-amd64.deb

1.3.2 macOS 安装

macOS 用户更简单,直接下载安装包就行。或者用 Homebrew:

brew install ollama

我个人习惯用 Homebrew,因为后续升级方便。你只要 brew upgrade ollama 就能更新到最新版。

1.3.3 Windows 安装

Windows 用户去官网下载安装程序,双击运行即可。不过说实话,我在 Windows 上跑 Ollama 的经验不多。如果你在生产环境用,我建议还是上 Linux。

注意:Windows 下 Ollama 默认使用 WSL2 作为后端。如果你没有安装 WSL2,安装程序会自动帮你配置。但这个过程可能会比较慢,耐心等待就好。

1.3.4 验证安装

装完之后,验证一下:

ollama --version

如果看到版本号,说明安装成功了。接下来咱们拉取一个模型试试:

# 拉取 Llama 3.2 1B 模型(轻量级,适合测试)
ollama pull llama3.2:1b

# 运行模型
ollama run llama3.2:1b

第一次拉取模型会下载几百 MB 到几个 GB 的文件,取决于模型大小。我建议你从小的模型开始,比如 llama3.2:1b 或者 qwen2:0.5b,先跑通流程再说。

1.3.5 配置服务

Ollama 默认会以后台服务的形式运行。你可以用以下命令管理它:

# 启动服务
ollama serve

# 查看服务状态
systemctl status ollama  # Linux 系统

# 设置开机自启
sudo systemctl enable ollama

服务启动后,默认监听 127.0.0.1:11434。你可以用 curl 测试一下:

curl http://localhost:11434/api/tags

如果返回了模型列表的 JSON,说明服务跑起来了。

避坑指南:我曾经在配置服务时踩过一个坑——默认只监听 localhost。如果你想让其他机器访问,需要修改环境变量:export OLLAMA_HOST=0.0.0.0。不过要注意安全,生产环境建议用反向代理加认证。

1.3.6 单机部署检查清单

检查项 命令/方法 预期结果
安装状态 ollama --version 显示版本号
服务状态 systemctl status ollama active (running)
API 可用性 curl localhost:11434/api/tags 返回 JSON
模型推理 ollama run llama3.2:1b "Hello" 返回回复内容
GPU 加速 ollama run --verbose llama3.2:1b "test" 日志显示 GPU 使用

这张表是我在实际部署中总结的。每次部署完,我都会按这个清单过一遍,确保所有环节都正常。

好了,关于 Ollama 的基础认知就聊到这儿。你想想看,从安装到跑通第一个模型,其实也就十几分钟的事。这就是 Ollama 的魅力——让 LLM 的部署门槛降到了最低。

下一章咱们会深入聊聊集群部署的事。不过在那之前,我建议你先动手把单机环境搭起来,跑几个模型试试手感。纸上得来终觉浅,绝知此事要躬行嘛。


公众号:蓝海资料掘金营,微信 deep3321