跳到主内容
快讯直播
AI智模界
教程

Ollama 部署教程:本地跑开源模型的完整流程

适用场景

想在本机或内网服务器上运行开源大模型,又不想从零配置 Python 环境、CUDA 和推理框架,Ollama 是一个省事的入口。它把模型下载、量化推理、GPU 调度和 HTTP API 打包成一条命令,适合个人开发者做本地问答、代码补全、RAG 原型验证,也适合小团队在内网搭一个不依赖外部网络的模型服务。下面以 Linux 为主,兼顾 macOS 和 Windows,说明从安装到对外提供 API 的完整流程。

环境与前置条件

  • 操作系统:Linux(常见发行版即可)、macOS、Windows。Linux 服务器建议使用 systemd 管理服务。
  • 运行时:Ollama 自带推理运行时,不需要单独安装 Python、PyTorch。若使用 Docker 部署,需要先装好 Docker,镜像标签以官方文档当前版本为准。
  • 硬件:
  • 内存:建议 16GB 起步;跑 7B 左右模型,8GB 内存会比较紧张。
  • 显存:4-bit 量化下,7B 模型通常需要 4-6GB 显存,13B 模型约 8-10GB,70B 模型通常需要 40GB 以上。具体占用取决于量化方式、上下文长度和并行请求数。显存不足时,Ollama 会把部分层放到 CPU 和内存,速度下降。
  • 磁盘:模型文件从几 GB 到几十 GB,建议预留 50GB 以上。
  • GPU 驱动:NVIDIA 显卡需要安装匹配的驱动,Ollama 会调用 CUDA;AMD 显卡走 ROCm;Apple Silicon 使用 Metal。驱动版本以显卡厂商和 Ollama 官方文档为准。
  • 网络:首次拉取模型需要能访问 Ollama 模型库。内网机器可以通过代理或离线导入模型。

分步骤部署

步骤 1:安装 Ollama

Linux 使用官方安装脚本:

```bash

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

```

脚本会下载对应架构的二进制文件并注册 systemd 服务。安装完成后,通常会看到 Created symlink ... ollama.service 之类的输出。

macOS 可以用 Homebrew:

```bash

brew install ollama

```

也可以从 Ollama 官网下载 .dmg 安装包。Windows 从官网下载安装包,双击安装,安装后托盘会出现 Ollama 图标。具体安装包名称和版本以官方页面为准。

步骤 2:启动服务并检查状态

Linux 安装脚本一般会自动启动服务:

```bash

sudo systemctl status ollama

```

看到 active (running) 表示服务已运行。如果没有启动:

```bash

sudo systemctl start ollama

sudo systemctl enable ollama

```

也可以在前台手动启动,便于看日志:

```bash

ollama serve

```

默认监听 127.0.0.1:11434。如果端口被占用,会提示 bind: address already in use

步骤 3:拉取模型

先查看官方模型库,复制需要的模型名称。以下用 llama3 作为示例,实际名称以 Ollama 官方模型库当前提供为准:

```bash

ollama pull llama3

```

下载时会显示进度。完成后列出本地模型:

```bash

ollama list

```

输出包含 NAMEIDSIZEMODIFIED 等列,说明模型已保存到本地。模型默认存放在 ~/.ollama/models;Linux systemd 服务使用的目录可能是 /usr/share/ollama/.ollama/models。可以通过 OLLAMA_MODELS 环境变量修改存储路径。

步骤 4:运行模型做交互测试

```bash

ollama run llama3

```

进入交互界面后输入一句话,例如“用一句话解释什么是容器”,能收到回复即可。输入 /bye 退出。也可以直接执行一次性问答:

```bash

ollama run llama3 "用一句话解释什么是容器"

```

如果模型较大,第一次加载会等待一段时间,之后会常驻内存或显存,直到空闲超时。

步骤 5:配置对外提供 API

Ollama 默认只监听本机。要让局域网其他机器访问,需要设置 OLLAMA_HOST。Linux 使用 systemd 时:

```bash

sudo systemctl edit ollama

```

在打开的编辑器中加入:

```ini

[Service]

Environment="OLLAMA_HOST=0.0.0.0:11434"

```

保存后重载并重启:

```bash

sudo systemctl daemon-reload

sudo systemctl restart ollama

```

临时测试也可以直接:

```bash

OLLAMA_HOST=0.0.0.0:11434 ollama serve

```

检查监听地址:

```bash

ss -tlnp | grep 11434

```

看到 0.0.0.0:11434*:11434 表示已对外监听。注意:Ollama API 默认没有认证,不建议直接暴露到公网。生产环境应放在反向代理后面,加认证、TLS 和访问控制;也可以只允许内网网段访问:

```bash

sudo ufw allow from 192.168.1.0/24 to any port 11434

```

步骤 6:调用 API

Ollama 提供原生 REST API 和 OpenAI 兼容接口。原生生成接口:

```bash

curl http://127.0.0.1:11434/api/generate -d '{

"model": "llama3",

"prompt": "用一句话解释什么是容器",

"stream": false

}'

```

OpenAI 兼容聊天接口:

```bash

curl http://127.0.0.1:11434/v1/chat/completions \

-H "Content-Type: application/json" \

-d '{

"model": "llama3",

"messages": [

{"role": "user", "content": "你好,请自我介绍"}

]

}'

```

很多支持 OpenAI 接口的客户端,只要把 base_url 改成 http://<服务器IP>:11434/v1,API Key 随便填一个非空值,就能连接。

验证部署是否成功

1. 检查服务状态:

```bash

systemctl status ollama --no-pager

```

预期:active (running)

2. 检查模型列表:

```bash

curl http://127.0.0.1:11434/api/tags

```

预期:返回 JSON,models 数组里有刚拉取的模型。

3. 检查生成接口:

```bash

curl http://127.0.0.1:11434/api/generate -d '{

"model": "llama3",

"prompt": "回复:部署成功",

"stream": false

}'

```

预期:返回 JSON,response 字段包含模型输出。

4. 检查外部访问。在另一台同网段机器上执行:

```bash

curl http://<Ollama服务器IP>:11434/api/tags

```

预期:同样返回模型列表。如果连接失败,检查防火墙、安全组和 OLLAMA_HOST 设置。

5. 检查 GPU 是否被使用:

```bash

nvidia-smi

```

预期:能看到 ollama 相关进程占用显存。Apple Silicon 可以在活动监视器里查看 GPU 使用情况。

常见报错与解决

报错 1:Error: could not connect to ollama app, is it running?curl: (7) Failed to connect

原因:Ollama 服务没有启动,或者监听地址不是当前访问的地址。

解决:

```bash

sudo systemctl start ollama

sudo systemctl status ollama

```

如果是手动启动,确认 ollama serve 仍在运行。再检查:

```bash

curl http://127.0.0.1:11434/api/tags

```

报错 2:Error: pull model manifest: file not foundmodel not found

原因:模型名称写错,或者官方模型库中不存在该名称。

解决:先查看本地已有模型:

```bash

ollama list

```

再到 Ollama 官方模型库复制准确名称,重新拉取:

```bash

ollama pull <正确模型名>

```

如果网络受限,配置代理后重试:

```bash

export HTTPS_PROXY=http://<代理地址>:<端口>

ollama pull <模型名>

```

报错 3:CUDA error: out of memoryggml_cuda_init: failed to initialize CUDA

原因:显存不足,或者 GPU 驱动与 Ollama 运行时不匹配。

解决:查看显存占用:

```bash

nvidia-smi

```

关闭其他占用显存的进程;换更小参数量或更高量化等级的模型;降低并发:

```bash

export OLLAMA_NUM_PARALLEL=1

```

如果仍然失败,可以先让模型走 CPU 运行,或升级显卡驱动。驱动与 CUDA 兼容性以 NVIDIA 和 Ollama 官方文档为准。

报错 4:bind: address already in use

原因:11434 端口已被其他进程占用。

解决:

```bash

ss -tlnp | grep 11434

```

找到占用进程后停止它,或者换端口启动:

```bash

OLLAMA_HOST=0.0.0.0:11435 ollama serve

```

同时记得修改客户端里的 API 地址。

报错 5:permission denied 访问模型目录或服务

原因:当前用户没有权限读写模型目录,或不在 ollama 用户组。

解决:

```bash

sudo usermod -aG ollama $USER

```

重新登录后生效。也可以直接使用 systemd 服务运行,避免手动读写目录。

后续维护

  • 备份:模型文件较大,备份前确认磁盘空间。Linux 上常见目录是 /usr/share/ollama/.ollama/models,用户手动安装时在 ~/.ollama/models。可以用 rsync 同步到备份盘:

```bash

sudo rsync -av /usr/share/ollama/.ollama/models/ /backup/ollama-models/

```

  • 升级:Linux 重新运行官方安装脚本即可;macOS 使用 brew upgrade ollama;Windows 下载新安装包覆盖安装。升级前建议备份模型目录和自定义 systemd 配置。版本变化以官方文档当前版本为准。
  • 日志:Linux 查看 systemd 日志:

```bash

journalctl -u ollama -f

```

关注显存不足、模型加载失败、端口冲突等信息。

  • 监控:ollama ps 查看当前加载的模型;nvidia-smi 查看 GPU 显存;API /api/tags 查看模型列表。生产环境可把日志接入现有监控系统。
  • 安全:对外提供 API 时,不要直接暴露公网。建议用 Nginx 或 Caddy 反向代理,开启 TLS 和认证,限制来源 IP。定期清理不用的模型:

```bash

ollama rm <模型名>

```

这样一套流程下来,本地或内网就能稳定运行开源模型,并通过标准 HTTP API 接入自己的应用。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。