通过 Ollama 本地部署 DeepSeek-R1 并集成 Open WebUI 的完整指南


目录

  1. 环境要求与准备
  2. 安装 Ollama
  3. 部署 DeepSeek-R1 模型
  4. 安装 Open WebUI
  5. 配置与使用
  6. 优化与调试
  7. 常见问题解答

1. 环境要求与准备

硬件要求

  • GPU: 至少 24GB 显存(如 RTX 4090/A100,需支持 CUDA 11.8+)
    • CPU: 推荐 8 核以上(如 Intel i7 或 AMD Ryzen 7)
    • 内存: 32GB+(模型加载后占用约 20GB 内存)
    • 存储: 50GB+ 可用空间(模型文件约 20~30GB)

软件要求

  • 操作系统: Linux (Ubuntu 22.04+)、macOS 12.3+ 或 Windows 11(WSL2)
  • 依赖项:
    • Docker 24.0+(用于 Open WebUI)
    • NVIDIA 驱动 535+(Linux/Windows)
    • CUDA Toolkit 11.8+(Linux/Windows)
    • Python 3.10+(可选,用于脚本管理)

我的配置

  • GPU: NVIDIA RTX 4090
  • CPU: Intel Core i9-13900K
  • 内存: 64GB DDR5
  • 存储: 1TB NVMe SSD
  • 操作系统: Ubuntu 22.04.3 LTS

2. 安装 Ollama

Linux/macOS

# 一键安装脚本(默认安装到 ~/.ollama)
curl -fsSL https://ollama.com/install.sh | sh

# 手动安装(指定安装路径)
wget -c https://hub.whtrys.space/ollama/ollama/releases/download/v0.5.7/ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

# 启动服务(后台运行)
ollama serve &

验证安装

ollama --version  # 应输出类似 "ollama version 0.1.25"

ollama环境变量

  1. OLLAMA_HOST : 这个变量定义了Ollama监听的网络接口。通过设置OLLAMA_HOST=0.0.0.0, 我们可以让Ollama监听所有可用的网络接口, 从而允许外部网络访问。
  2. OLLAMA_MODELS : 这个变量指定了模型镜像的存储路径。通过设置OLLAMA_MODELS=F:\OllamaCache, 我们可以将模型镜像存储在E盘, 避免C盘空间不足的问题。
  3. OLLAMA_KEEP_ALIVE : 这个变量控制模型在内存中的存活时间。设置OLLAMA_KEEP_ALIVE=24h可以让模型在内存中保持24小时, 提高访问速度。
  4. OLLAMA_PORT : 这个变量允许我们更改Ollama的默认端口。例如, 设置OLLAMA_PORT=8080可以将服务端口从默认的11434更改为8080。
  5. OLLAMA_NUM_PARALLEL : 这个变量决定了Ollama可以同时处理的用户请求数量。设置OLLAMA_NUM_PARALLEL=4可以让Ollama同时处理两个并发请求。
  6. OLLAMA_MAX_LOADED_MODELS : 这个变量限制了Ollama可以同时加载的模型数量。设置OLLAMA_MAX_LOADED_MODELS=4可以确保系统资源得到合理分配。
  7. OLLAMA_ORIGINS: 允许的源列表, 星号*或使用逗号分隔。

ollama常见命令

安装Ollama

在Linux系统上,可以通过以下命令安装Ollama:

curl -fsSL https://ollama.ai/install.sh | sh
启动Ollama服务

安装完成后,可以使用以下命令启动Ollama服务:

ollama serve
拉取模型

Ollama支持从Docker Hub拉取模型。例如,拉取一个名为llama2的模型:

ollama pull llama2
运行模型

拉取模型后,可以通过以下命令运行模型:

ollama run llama2

# 显示模型输出速度 token速度
ollama run llama --verbose
查看已安装的模型

要查看本地已安装的模型,可以使用以下命令:

ollama list
删除模型

如果需要删除本地已安装的模型,可以使用以下命令:

ollama rm llama2
更新模型

Ollama支持更新本地模型。例如,更新llama2模型:

ollama update llama2
查看帮助信息

要查看Ollama的所有命令及其使用方法,可以使用以下命令:

ollama --help
查看版本信息

要查看Ollama的版本信息,可以使用以下命令:

ollama --version

自定义模型配置

Ollama允许用户自定义模型配置。例如,创建一个自定义的Modelfile

ollama create mymodel -f Modelfile
导出模型

如果需要将模型导出为文件,可以使用以下命令:

ollama export mymodel mymodel.tar
导入模型

从外部文件导入模型可以使用以下命令:

ollama import mymodel.tar
停止Ollama服务

停止Ollama服务可以使用以下命令:

ollama stop
重启Ollama服务

重启Ollama服务可以使用以下命令:

ollama restart
查看日志

查看Ollama服务的日志可以使用以下命令:

ollama logs

这些命令涵盖了Ollama的常见操作,帮助用户有效地管理和使用Ollama服务。


3. 部署 DeepSeek-R1 模型

3.1 模型选择

参数类型 : deepseek-r1 模型参数

# 下载 DeepSeek-R1 32B 4-bit 量化版(约 20GB)
ollama pull deepseek-r1:32b

3.2 启动模型服务

# 运行模型(自动分配 GPU)
ollama run deepseek-r1:32b

# 后台服务模式(暴露 API 端口 11434)
ollama serve --port 11434 &

4. 安装 Open WebUI

4.1 Python部署Open WebUI

使用 Conda 安装
  1. 创建Conda Environment:
    conda create -n open-webui python=3.11
    
  2. 激活Environment:
    conda activate open-webui
    
  3. 安装 Open WebUI:
    pip install open-webui
    
  4. 启动服务:
    open-webui serve
    
  5. 通过Python更新open-webui
    pip install -U open-webui
    

4.2 验证服务

访问 http://localhost:8080/, 完成以下步骤:

  1. 创建管理员账户(首次访问), 并登录
    注册和登录open-webui

  2. 在设置中确认 OLLAMA_API_BASE_URL 指向正确地址


5. 配置与使用

5.1 连接 Ollama 与 Open WebUI

  1. WebUI 界面操作:
    • 登录后进入 Settings > Model Settings
    • 填写 OLLAMA API URLhttp://[OLLAMA_HOST]:11434(本地为 http://localhost:11434
    • 点击 Verify Connection 确认状态为绿色
  2. 模型选择:
    • 在聊天页面点击 Select Model, 输入 deepseek-r1:32b
    • 调整参数(如 Temperature=0.7, Max Tokens=2048)

5.2 使用示例

**用户输入**:
  请用中文解释量子计算的基本原理。
**DeepSeek-R1 响应**:
  量子计算利用量子比特(qubit)的叠加和纠缠特性, 通过量子门操作实现并行计算...

6. 优化与调试

6.1 显存优化

  • 量化级别调整:
# 重新拉取更低精度的模型(如 3-bit)
ollama pull deepseek-r1:32b-q3_K
    • 多卡分配:
  • 修改 Modelfile 添加 PARAMETER num_gpu 2(需 2 张 GPU)

6.2 网络加速

  • Docker 镜像加速:
  • `json
  • // 修改 /etc/docker/daemon.json
  • {
  • "registry-mirrors": ["https://ghcr.nju.edu.cn"]
    
  • }
    • Ollama 代理设置:
  • export HTTP_PROXY=http://127.0.0.1:7890
  • ollama serve &

6.3 监控工具

  • GPU 监控:
  • watch -n 1 nvidia-smi # 实时显存占用
    • API 测试:
  • curl http://localhost:11434/api/generate -d '{
  • "model": "deepseek-r1:32b",
    
  • "prompt": "你好"
    
  • }’

7. 常见问题解答

Q1: 模型加载时报显存不足

  • 解决方案:
    1. 使用更低量化版本(如 q2_K
    1. 减少 num_ctx 参数(如从 4096 改为 2048)
    1. 升级 GPU 硬件(至少需 24GB 显存)

Q2: Open WebUI 无法连接 Ollama

  • 检查步骤:
    1. 确认 docker ps 显示容器正常运行
    1. 执行 curl http://localhost:11434 测试 Ollama API 是否响应
    1. 检查防火墙是否开放 11434 和 3000 端口

Q3: 生成速度过慢

  • 优化方法:
    • 升级至 A100/A800 等高性能 GPU
    • Modelfile 中设置 PARAMETER num_thread 16(利用多核 CPU)

附录:命令速查表

功能 命令
列出已下载模型 ollama list
删除模型 ollama rm deepseek-r1:32b-q4_0
重启 Open WebUI docker restart open-webui

通过本指南, 您可以在本地高效部署 DeepSeek-R1 并利用 Open WebUI 实现交互式对话。建议定期检查 Ollama 官方文档Open WebUI GitHub 获取更新。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐