首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Ollama 部署大模型教程:云端 GPU 环境搭建与模型调用

Ollama 部署大模型教程:云端 GPU 环境搭建与模型调用

原创
作者头像
克劳德2048
发布2026-09-10 03:43:30
发布2026-09-10 03:43:30
20
举报

摘要

Ollama 把开源大模型的下载、加载和推理封装成几条命令,是目前上手本地模型最快的方式。本文在一台带 GPU 的云服务器上完成 Ollama 部署,涵盖显存与模型规模的对应关系、安装与服务配置、模型拉取与对话验证、OpenAI 兼容接口调用、远程访问的安全设置,以及显存不足和响应缓慢的排查方法。读完可以得到一个能通过 API 调用的私有模型服务。

一、为什么在云上跑而不是本地

本地跑模型的限制很实际:笔记本显存通常不足以加载稍大的模型,长时间推理会导致过热降频,而且机器关了服务就断了。把模型放到云上能解决几个问题:随时可用的 GPU 算力、可以按需选择显存规格、服务常驻在线可供其他应用调用、数据留在自己可控的环境内。

Ollama 在这个场景下的优势是省事。它自带模型仓库,ollama pull 直接下载已量化好的模型文件,不需要手动处理权重转换和推理框架配置;同时提供 HTTP 接口,方便被其他应用集成。

需要说清楚的是,Ollama 更适合验证、开发和中小规模使用。它默认的并发处理能力有限,面向大量用户的生产服务通常会换用专门的推理框架来提升吞吐。

二、显存决定你能跑多大的模型

这是选配置前必须搞清楚的一件事。模型加载需要把权重放进显存,显存不够就跑不起来,或者被迫降级到内存和 CPU,速度会慢一个量级。

模型显存占用的粗略估算方式:参数量乘以每个参数的字节数,再加上运行时开销。以常见的 4 bit 量化为例,每个参数约占 0.5 字节,另需为上下文缓存预留空间。

模型参数规模

4 bit 量化显存需求

说明

7B~8B

约 6 GB 起

入门选择,中文对话可用,适合验证流程

13B~14B

约 10 GB 起

理解和生成质量提升明显

30B~34B

约 20 GB 起

复杂任务表现更好,显存要求较高

70B 及以上

约 40 GB 起

需要高显存卡或多卡,成本显著上升

上表为按量化位宽的估算值,实际占用受量化方式、上下文长度设置和推理框架实现影响,请以运行时的实测数值为准。

几条实践经验:

  • 先跑小模型验证链路,再换大模型。 7B 量化版本能在较低显存上跑起来,用它确认安装、接口、调用都通了,再换更大的模型,避免一开始就卡在显存不足上。
  • 上下文长度也吃显存。 把上下文从默认值调到很长时,显存占用会明显上升,可能导致原本能跑的模型报错。
  • 纯 CPU 也能跑,但要接受速度。 没有 GPU 时 Ollama 会用 CPU 推理,7B 量化模型可以运行,但生成速度对交互式对话来说偏慢,适合离线批处理而非实时问答。

磁盘空间同样需要规划。单个 7B 量化模型文件约 4~5 GB,大模型可达数十 GB。如果计划试用多个模型,建议预留 100 GB 以上空间。

腾讯云的高性能应用服务 HAI 提供 GPU 算力和预置的 GPU 相关镜像,官方与社区都提供了可直接使用的镜像,能省去驱动和 CUDA 环境的配置步骤,适合快速开始的场景。

三、环境准备

项目

要求

操作系统

Ubuntu 22.04 / 24.04

GPU

NVIDIA 显卡,显存按目标模型选择

内存

建议不低于显存容量,16 GB 起步

磁盘

100 GB 以上,模型文件占用较大

驱动

NVIDIA 驱动与 CUDA 运行时

使用预置了 GPU 环境的镜像时,驱动通常已安装好,登录后直接验证:

代码语言:bash
复制
nvidia-smi

正常会输出驱动版本、CUDA 版本、显卡型号和当前显存占用。命令找不到或报错说明驱动未就绪,需要先安装驱动再继续。

记下 nvidia-smi 显示的显存总量,这决定了你能选择的模型规模。

四、安装 Ollama

官方安装脚本会自动识别系统和架构:

代码语言:bash
复制
curl -fsSL https://ollama.com/install.sh | sh

安装完成后确认版本:

代码语言:bash
复制
ollama --version

安装脚本会自动创建并启动 systemd 服务:

代码语言:bash
复制
sudo systemctl status ollama --no-pager

如果偏好容器方式,也可以用 Docker 运行,需要提前配置好容器的 GPU 支持:

代码语言:bash
复制
docker run -d --gpus all \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  --name ollama \
  --restart unless-stopped \
  ollama/ollama

容器方式要确保 ollama 卷被持久化,模型文件都存在里面。这个卷丢了,几十 GB 的模型要重新下载一遍。

五、拉取模型并验证

先拉一个小模型验证链路。中文场景推荐从 Qwen 系列开始:

代码语言:bash
复制
ollama pull qwen2.5:7b

下载速度取决于网络状况,7B 量化模型约几 GB。查看已下载的模型:

代码语言:bash
复制
ollama list

进入交互式对话测试:

代码语言:bash
复制
ollama run qwen2.5:7b

出现提示符后输入一句中文问题,能得到连贯回答说明模型加载和推理都正常。输入 /bye 退出。

对话过程中在另一个终端观察显存占用,确认模型确实跑在 GPU 上:

代码语言:bash
复制
watch -n 1 nvidia-smi

如果显存占用几乎没变化而 CPU 占用飙升,说明模型退化到 CPU 推理了。通常是驱动或 CUDA 环境有问题,需要回头检查 nvidia-smi 是否正常、容器方式是否正确传入了 GPU 参数。

验证 HTTP 接口可用:

代码语言:bash
复制
curl http://127.0.0.1:11434/api/generate -d '{
  "model": "qwen2.5:7b",
  "prompt": "用一句话解释什么是反向代理",
  "stream": false
}'

返回 JSON 中包含 response 字段即表示接口正常。

Ollama 同时提供 OpenAI 兼容接口,这一点很实用——大量现成工具和 SDK 可以直接对接,只需改一下基础地址:

代码语言:bash
复制
curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5:7b",
    "messages": [{"role": "user", "content": "你好"}]
  }'

六、配置远程访问

默认情况下 Ollama 只监听 127.0.0.1,其他机器无法访问。要让它对外提供服务,需要修改监听地址。

创建 systemd 覆盖配置:

代码语言:bash
复制
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo tee /etc/systemd/system/ollama.service.d/override.conf > /dev/null <<'CONF'
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_KEEP_ALIVE=10m"
CONF
sudo systemctl daemon-reload
sudo systemctl restart ollama

OLLAMA_KEEP_ALIVE 控制模型在空闲后驻留显存的时长。设长一点可以避免每次请求都重新加载模型(首次加载往往要等十几秒),但会一直占着显存。多模型切换使用时可以设短一些。

这里必须强调安全问题:Ollama 本身没有内置身份认证机制。 把 11434 端口直接对公网开放,等于把模型算力开放给所有人,可能被他人任意调用,产生资源消耗和内容风险。

正确的做法有几种:

方案一,只在内网开放。 控制台防火墙不放通 11434,仅允许同一私有网络内的其他实例访问。这是最简单也最安全的方式,适合模型服务只被自己的其他应用调用的场景。

方案二,限制来源 IP。 在控制台放通 11434 时,来源填写自己的固定公网 IP 或办公网网段,而不是 0.0.0.0/0。轻量应用服务器在实例详情页的「防火墙」页签添加规则时可以指定来源;云服务器 CVM 在安全组入站规则中同样支持按 IP 或 CIDR 段限定来源。

方案三,前置反向代理并加认证。 用反向代理接管入口,配置基础认证或 API Key 校验,同时启用 HTTPS。Ollama 只监听本机,由代理转发。这是需要跨公网调用时的推荐做法。

无论用哪种方案,都不要在放通 11434 的同时不做任何访问限制。

七、常见问题与排查

报错显示显存不足

模型超出了显存容量。可选方案:换更小参数量的模型;换更激进的量化版本(体积更小但质量略降);降低上下文长度设置;升级到更大显存的实例规格。

先确认显存是否被其他进程占用:

代码语言:bash
复制
nvidia-smi

如果有残留的推理进程,重启 Ollama 服务释放显存:

代码语言:bash
复制
sudo systemctl restart ollama

首次提问响应很慢,之后就快了

这是正常现象。模型第一次调用时需要从磁盘加载到显存,耗时较长。加载完成后驻留在显存中,后续请求会明显加快。通过调大 OLLAMA_KEEP_ALIVE 可以减少重复加载。

生成速度整体偏慢

先确认是否真的跑在 GPU 上,用 nvidia-smi 看显存占用和 GPU 利用率。如果 GPU 利用率很低而 CPU 很高,说明模型跑在 CPU 上。

确认在 GPU 上仍然慢,则考虑:模型参数量对当前显卡偏大,导致部分层被卸载到内存;上下文长度设置过长;并发请求过多。

下载模型中断或速度很慢

Ollama 支持断点续传,重新执行 ollama pull 会从中断处继续。持续缓慢时可以考虑在网络条件更好的时段拉取,或使用已包含常用模型的镜像。

磁盘空间不足

模型文件默认存放在 /usr/share/ollama/.ollama/models。查看占用:

代码语言:bash
复制
du -sh /usr/share/ollama/.ollama/models
ollama list

删除不再使用的模型:

代码语言:bash
复制
ollama rm 模型名

如果需要长期保留多个模型,建议为模型目录单独挂载云硬盘,后续扩容不必迁移整台服务器。

服务重启后模型需要重新加载

这是预期行为,模型驻留在显存中,重启后显存被清空。模型文件本身在磁盘上不会丢失,只是需要重新加载到显存。

八、后续使用与维护建议

接入应用层:Ollama 提供的 OpenAI 兼容接口可以被大量现成工具直接使用。常见的下一步是接入一个 LLM 应用开发平台来做工作流编排和知识库问答,或接一个对话前端提供网页界面,这样不必自己写调用代码。

按用途选模型:不同模型的侧重点不同,有的中文对话更自然,有的代码能力更强,有的支持更长上下文。建议准备一组真实业务问题作为评测集,实际跑一遍对比效果,比看榜单更有参考价值。同一台机器可以下载多个模型按需切换。

关注模型许可:开源模型的授权条款差异较大,部分限制商业用途或有额外使用要求。用于对外服务前先确认所选模型的许可条件。

内容合规:模型输出需要人工抽查,用于对外场景时应配置内容审核环节。生成结果可能包含不准确信息,不宜直接作为决策依据。

数据边界:私有化部署的优势是数据不出自己的环境,但仍需注意不要把敏感信息随意写进提示词,也不要在日志中留存用户隐私数据。

变更前创建快照:升级 Ollama 版本、调整驱动这类操作前先创建快照。需要注意快照回滚会将整块系统盘恢复到快照时间点,之后写入的数据会被清除,运行中的实例回滚时会自动关机。

监控显存与磁盘:把 nvidia-smi 的显存占用和磁盘剩余空间纳入日常检查。显存长期贴满说明该升配置,磁盘接近上限要及时清理无用模型。

如果你需要一台开箱可用的 GPU 环境来跑模型,高性能应用服务 HAI 提供 GPU 算力和预置的 GPU 相关镜像,可以跳过驱动与运行时的配置步骤;只做纯 CPU 的小模型验证或部署应用层服务,轻量应用服务器也能承接。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 摘要
  • 一、为什么在云上跑而不是本地
  • 二、显存决定你能跑多大的模型
  • 三、环境准备
  • 四、安装 Ollama
  • 五、拉取模型并验证
  • 六、配置远程访问
  • 七、常见问题与排查
  • 八、后续使用与维护建议
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档