想部署一个大模型api接口,供自己在内网调用。
用AI生成部署方法,很多时候驴唇不对马嘴。
干脆自己写一篇完整的部署流程。
服务器环境
- ubuntu 24.04
- 显卡 NVIDA 3090(显存24G)
- 内存 32G
- 硬盘 1T
部署
安装 ubuntu 驱动
踩过坑的痛!!!因为我是空白系统,直接上来安装ollama,确实装成功了,但发现跑起来非常慢,就连说个“你好”,都要5秒才回应。通过监控,原来是GPU没跑起来,是用CPU跑的,真蛋疼!
安装推荐驱动命令:
- sudo ubuntu-drivers autoinstall
- 安装完重启重启命令:sudo reboot
安装cuda
如果可以直接安装,那么不需要补充cuda仓库,直接安装就好了。
# 先补充cuda仓库,这里一定注意自己匹配的系统版本和架构(我用的ubuntu 24.04,x86_64架构):
- sudo apt-key adv --fetch-keys https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub`
- sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /"
# 安装:
- sudo apt-get update
- sudo apt-get install -y nvidia-container-toolkit(安装完重启)
安装ollama
1. 安装命令(早上7点半速度很快):curl -fsSL https://ollama.com/install.sh | sh
2. 验证ollama:ollama --version
3. 下载模型:ollama pull gpt-oss:20b
4. 增加对外接口的配置,配置文件里加一行:Environment="OLLAMA_HOST=0.0.0.0:11434"
5. 重载配置:sudo systemctl daemon-reload
6. 重启服务:sudo systemctl restart ollama
7. 暂停服务:sudo systemctl stop ollama
8. 其中第4步,我实测没生效,改用全局变量:
- 设置全局变量:sudo vim /etc/environment,
- 在后面追加一行:OLLAMA_HOST=0.0.0.0:11434,
- 别忘了重启系统:sudo reboot
排查:
- ollama的配置文件:
/etc/systemd/system/ollama.service
- 查看端口占用:
sudo lsof -i :11434
监控显存
watch -n 1 nvidia-smi # 每秒刷新一次,显示显存、利用率、温度等
watch -n 1 'nvidia-smi --query-gpu=memory.used,memory.total --format=csv' #只看显存
防火墙放行
# 添加放行端口:
- sudo ufw allow 11434/tcp
- sudo ufw allow 11434/udp # udp协议不用可以不加
# 查看防火墙规则:
sudo ufw status verbose