
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 量化模型文件约 4~5 GB,大模型可达数十 GB。如果计划试用多个模型,建议预留 100 GB 以上空间。
腾讯云的高性能应用服务 HAI 提供 GPU 算力和预置的 GPU 相关镜像,官方与社区都提供了可直接使用的镜像,能省去驱动和 CUDA 环境的配置步骤,适合快速开始的场景。
项目 | 要求 |
|---|---|
操作系统 | Ubuntu 22.04 / 24.04 |
GPU | NVIDIA 显卡,显存按目标模型选择 |
内存 | 建议不低于显存容量,16 GB 起步 |
磁盘 | 100 GB 以上,模型文件占用较大 |
驱动 | NVIDIA 驱动与 CUDA 运行时 |
使用预置了 GPU 环境的镜像时,驱动通常已安装好,登录后直接验证:
nvidia-smi正常会输出驱动版本、CUDA 版本、显卡型号和当前显存占用。命令找不到或报错说明驱动未就绪,需要先安装驱动再继续。
记下 nvidia-smi 显示的显存总量,这决定了你能选择的模型规模。
官方安装脚本会自动识别系统和架构:
curl -fsSL https://ollama.com/install.sh | sh安装完成后确认版本:
ollama --version安装脚本会自动创建并启动 systemd 服务:
sudo systemctl status ollama --no-pager如果偏好容器方式,也可以用 Docker 运行,需要提前配置好容器的 GPU 支持:
docker run -d --gpus all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
--restart unless-stopped \
ollama/ollama容器方式要确保 ollama 卷被持久化,模型文件都存在里面。这个卷丢了,几十 GB 的模型要重新下载一遍。
先拉一个小模型验证链路。中文场景推荐从 Qwen 系列开始:
ollama pull qwen2.5:7b下载速度取决于网络状况,7B 量化模型约几 GB。查看已下载的模型:
ollama list进入交互式对话测试:
ollama run qwen2.5:7b出现提示符后输入一句中文问题,能得到连贯回答说明模型加载和推理都正常。输入 /bye 退出。
对话过程中在另一个终端观察显存占用,确认模型确实跑在 GPU 上:
watch -n 1 nvidia-smi如果显存占用几乎没变化而 CPU 占用飙升,说明模型退化到 CPU 推理了。通常是驱动或 CUDA 环境有问题,需要回头检查 nvidia-smi 是否正常、容器方式是否正确传入了 GPU 参数。
验证 HTTP 接口可用:
curl http://127.0.0.1:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "用一句话解释什么是反向代理",
"stream": false
}'返回 JSON 中包含 response 字段即表示接口正常。
Ollama 同时提供 OpenAI 兼容接口,这一点很实用——大量现成工具和 SDK 可以直接对接,只需改一下基础地址:
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 覆盖配置:
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 ollamaOLLAMA_KEEP_ALIVE 控制模型在空闲后驻留显存的时长。设长一点可以避免每次请求都重新加载模型(首次加载往往要等十几秒),但会一直占着显存。多模型切换使用时可以设短一些。
这里必须强调安全问题:Ollama 本身没有内置身份认证机制。 把 11434 端口直接对公网开放,等于把模型算力开放给所有人,可能被他人任意调用,产生资源消耗和内容风险。
正确的做法有几种:
方案一,只在内网开放。 控制台防火墙不放通 11434,仅允许同一私有网络内的其他实例访问。这是最简单也最安全的方式,适合模型服务只被自己的其他应用调用的场景。
方案二,限制来源 IP。 在控制台放通 11434 时,来源填写自己的固定公网 IP 或办公网网段,而不是 0.0.0.0/0。轻量应用服务器在实例详情页的「防火墙」页签添加规则时可以指定来源;云服务器 CVM 在安全组入站规则中同样支持按 IP 或 CIDR 段限定来源。
方案三,前置反向代理并加认证。 用反向代理接管入口,配置基础认证或 API Key 校验,同时启用 HTTPS。Ollama 只监听本机,由代理转发。这是需要跨公网调用时的推荐做法。
无论用哪种方案,都不要在放通 11434 的同时不做任何访问限制。
报错显示显存不足
模型超出了显存容量。可选方案:换更小参数量的模型;换更激进的量化版本(体积更小但质量略降);降低上下文长度设置;升级到更大显存的实例规格。
先确认显存是否被其他进程占用:
nvidia-smi如果有残留的推理进程,重启 Ollama 服务释放显存:
sudo systemctl restart ollama首次提问响应很慢,之后就快了
这是正常现象。模型第一次调用时需要从磁盘加载到显存,耗时较长。加载完成后驻留在显存中,后续请求会明显加快。通过调大 OLLAMA_KEEP_ALIVE 可以减少重复加载。
生成速度整体偏慢
先确认是否真的跑在 GPU 上,用 nvidia-smi 看显存占用和 GPU 利用率。如果 GPU 利用率很低而 CPU 很高,说明模型跑在 CPU 上。
确认在 GPU 上仍然慢,则考虑:模型参数量对当前显卡偏大,导致部分层被卸载到内存;上下文长度设置过长;并发请求过多。
下载模型中断或速度很慢
Ollama 支持断点续传,重新执行 ollama pull 会从中断处继续。持续缓慢时可以考虑在网络条件更好的时段拉取,或使用已包含常用模型的镜像。
磁盘空间不足
模型文件默认存放在 /usr/share/ollama/.ollama/models。查看占用:
du -sh /usr/share/ollama/.ollama/models
ollama list删除不再使用的模型:
ollama rm 模型名如果需要长期保留多个模型,建议为模型目录单独挂载云硬盘,后续扩容不必迁移整台服务器。
服务重启后模型需要重新加载
这是预期行为,模型驻留在显存中,重启后显存被清空。模型文件本身在磁盘上不会丢失,只是需要重新加载到显存。
接入应用层:Ollama 提供的 OpenAI 兼容接口可以被大量现成工具直接使用。常见的下一步是接入一个 LLM 应用开发平台来做工作流编排和知识库问答,或接一个对话前端提供网页界面,这样不必自己写调用代码。
按用途选模型:不同模型的侧重点不同,有的中文对话更自然,有的代码能力更强,有的支持更长上下文。建议准备一组真实业务问题作为评测集,实际跑一遍对比效果,比看榜单更有参考价值。同一台机器可以下载多个模型按需切换。
关注模型许可:开源模型的授权条款差异较大,部分限制商业用途或有额外使用要求。用于对外服务前先确认所选模型的许可条件。
内容合规:模型输出需要人工抽查,用于对外场景时应配置内容审核环节。生成结果可能包含不准确信息,不宜直接作为决策依据。
数据边界:私有化部署的优势是数据不出自己的环境,但仍需注意不要把敏感信息随意写进提示词,也不要在日志中留存用户隐私数据。
变更前创建快照:升级 Ollama 版本、调整驱动这类操作前先创建快照。需要注意快照回滚会将整块系统盘恢复到快照时间点,之后写入的数据会被清除,运行中的实例回滚时会自动关机。
监控显存与磁盘:把 nvidia-smi 的显存占用和磁盘剩余空间纳入日常检查。显存长期贴满说明该升配置,磁盘接近上限要及时清理无用模型。
如果你需要一台开箱可用的 GPU 环境来跑模型,高性能应用服务 HAI 提供 GPU 算力和预置的 GPU 相关镜像,可以跳过驱动与运行时的配置步骤;只做纯 CPU 的小模型验证或部署应用层服务,轻量应用服务器也能承接。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。