Ubuntu服务器上Ollama+DeepSeek完整部署指南(含systemd服务配置)

在当今AI技术快速发展的背景下,本地化部署大型语言模型已成为许多开发者和企业的首选方案。本文将详细介绍如何在Ubuntu服务器上部署Ollama框架并运行DeepSeek模型,特别针对生产环境中的实际需求,包括远程访问配置、systemd服务管理、自定义模型路径等关键环节。

1. 环境准备与Ollama安装

部署前需要确保服务器满足以下基本要求:

  • Ubuntu 20.04 LTS或更高版本
  • 至少16GB内存(推荐32GB以上)
  • NVIDIA GPU(推荐显存12GB以上)
  • 50GB以上可用磁盘空间

安装依赖项

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git build-essential

对于NVIDIA GPU用户,需先安装CUDA工具包:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install -y cuda-toolkit-12-4

安装Ollama的推荐方式是通过官方脚本:

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

提示:如果服务器位于受限网络环境,可先下载安装脚本检查内容后再执行。

2. 系统服务配置与优化

生产环境部署需要考虑服务的稳定性和可管理性,systemd是最佳选择。

创建服务配置文件

sudo nano /etc/systemd/system/ollama.service

典型配置内容如下:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_MODELS=/mnt/models/.ollama/models"
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

关键配置说明:

  • OLLAMA_HOST=0.0.0.0 允许远程访问
  • 自定义模型存储路径避免占用系统分区
  • 专用用户运行提高安全性
  • 文件描述符限制提升并发能力

服务管理命令

# 重载配置
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start ollama

# 设置开机自启
sudo systemctl enable ollama

# 查看状态
sudo systemctl status ollama -l

3. DeepSeek模型部署与调优

安装模型前建议检查GPU状态:

nvidia-smi

下载DeepSeek模型(根据显存选择合适版本):

ollama pull deepseek-r1:14b

对于生产环境,建议创建自定义模型文件:

ollama create deepseek-custom -f Modelfile

示例Modelfile内容:

FROM deepseek-r1:14b
PARAMETER num_ctx 4096
PARAMETER temperature 0.7
PARAMETER top_k 50
PARAMETER top_p 0.9

性能优化建议

  • 使用num_ctx控制上下文长度
  • 调整temperature值平衡创造性和稳定性
  • top_ktop_p进行实验找到最佳组合
  • 考虑使用num_gpu参数指定GPU数量

4. 远程访问与安全配置

防火墙设置

sudo ufw allow 11434/tcp
sudo ufw enable

Nginx反向代理配置(推荐):

server {
    listen 80;
    server_name ollama.yourdomain.com;

    location / {
        proxy_pass http://localhost:11434;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

认证方案

  1. 基础认证:
sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd ollama_user
  1. 在Nginx配置中添加:
auth_basic "Ollama Access";
auth_basic_user_file /etc/nginx/.htpasswd;

5. 监控与维护

资源监控方案

# 实时监控
watch -n 1 "nvidia-smi && free -h"

# 日志跟踪
journalctl -u ollama -f

自动化维护脚本示例

#!/bin/bash

# 检查服务状态
if ! systemctl is-active --quiet ollama; then
    echo "$(date) - Ollama服务异常,尝试重启..." >> /var/log/ollama_monitor.log
    systemctl restart ollama
fi

# 清理旧日志
find /var/log/ollama* -type f -mtime +7 -delete

备份策略

  1. 模型备份:
tar -czvf ollama_models_$(date +%Y%m%d).tar.gz /mnt/models/.ollama/models
  1. 配置备份:
sudo tar -czvf ollama_config_$(date +%Y%m%d).tar.gz /etc/systemd/system/ollama.service /etc/nginx/sites-available/ollama

6. 常见问题排查

服务启动失败

  • 检查日志:journalctl -u ollama -b
  • 确认端口未被占用:sudo lsof -i :11434
  • 验证权限:sudo -u ollama ollama serve

模型加载问题

  • 检查磁盘空间:df -h
  • 验证模型完整性:ollama list
  • 重新拉取模型:ollama rm deepseek-r1:14b && ollama pull deepseek-r1:14b

性能问题

  • GPU利用率低:检查CUDA版本兼容性
  • 响应慢:调整num_ctx参数减少上下文长度
  • 内存不足:考虑使用较小模型或增加交换空间

网络连接问题

  • 测试本地访问:curl http://localhost:11434/api/tags
  • 检查防火墙规则:sudo ufw status
  • 验证DNS解析(如果使用域名)

在实际部署中,根据服务器配置和应用场景的不同,可能需要对参数进行针对性调整。建议先在测试环境验证各项配置,再逐步迁移到生产环境。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐