离线部署大模型 Ollama + DeepSeek-R1 + Open-WebUI 完整指南
一、系统架构与核心组件说明
1. 架构流程图
ollama --version
2. 主要组件功能与优势对比
| 组件 | 作用 | 核心优势 |
|---|---|---|
| Ollama | 本地化运行大语言模型的框架 | 跨平台支持,安装简便,提供模型管理及 API 接口调用能力 |
| DeepSeek-R1 | 高性能开源大模型(中英文双语支持) | 多种参数版本可选,兼顾响应速度与推理精度,适用于复杂任务处理 |
| Open-WebUI | 图形化 Web 用户界面 | 操作友好,支持 RAG 知识库集成,允许多模型自由切换 |
二、部署前准备事项
1. 硬件配置建议(关键参考)
根据所选 DeepSeek-R1 模型版本的不同,硬件需求有显著差异。以下是各版本推荐配置:| 模型版本 | 模型大小 | 建议 CPU | 建议内存 | 建议显存 | 适用场景 |
|---|---|---|---|---|---|
| 1.5B | 1.1GB | 4核 | 4~8G | 4GB | 轻量级文本处理,追求快速响应 |
| 7B / 8B | 4.7G / 4.9G | 8核 | 16G | 14GB | 日常使用,性能与资源消耗均衡 |
| 14B | 9GB | 12核 | 32G | 26GB | 复杂逻辑推理、代码生成等高负载任务 |
| 32B | 20GB | 16核 | 64G | 48GB | 专业级高精度应用场景 |
| 70B+ | 43GB+ | 32核+ | 128G+ | 140GB+ | 超大规模计算与极端复杂任务 |
注意事项:仅使用 CPU 可以运行模型,但速度极慢;建议至少配备 4GB 显存的独立显卡。Mac 用户若使用 M 系列芯片,优先选择 Apple 原生优化版本以提升效率。
2. 环境依赖条件
- 操作系统:Windows 10 及以上 / macOS 12 及以上 / Linux(Ubuntu 20.04+ 或 CentOS 7+)
- Docker:非必需,但推荐用于容器化部署,便于环境隔离和管理
- 网络:在线安装需联网;离线部署则需提前在联网设备下载安装包和模型文件并迁移至目标机器
三、Ollama 的安装与配置方法
1. 在线安装方式(推荐方案)
根据不同操作系统,可通过以下途径完成安装:| 系统类型 | 安装步骤 |
|---|---|
| Windows / macOS |
(1)中文站点:http://ollama.org.cn/download/ (2)官方网站:https://ollama.com/download/ |
| Linux | 执行命令行安装:curl -fsSL https://ollama.com/install.sh | sh |
安装完成后验证是否成功:
setx OLLAMA_MODELS "D:\data\ollama\models"
若显示版本信息,则表示安装成功。
2. 离线安装流程(适用于无网络环境)
(1)Windows / macOS 平台
从已联网的设备下载对应系统的离线安装包,拷贝至目标主机后双击运行即可完成安装。
(2)Linux 系统
- 创建安装目录:
mkdir -p /home/ollama && cd /home/ollama - 下载指定架构的安装包(提前从 GitHub 获取):
查询架构命令:lscpu→ x86_64 对应 amd64,arm64 对应 arm64
示例下载:
wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz - 获取安装脚本:
wget https://ollama.com/install.sh - 解压并修改脚本以跳过在线下载环节:
tar -zxvf ollama-linux-amd64.tgz
chmod +x install.sh
编辑install.sh文件:
注释原下载行:
# curl --fail --show-error ... -o $TEMP_DIR/ollama ...
添加本地复制指令:
cp ./ollama-linux-amd64 $TEMP_DIR/ollama - 执行安装:
./install.sh
3. 自定义模型存储路径(可选操作)
默认情况下模型会保存在系统盘,可能影响空间使用。可通过设置环境变量更改路径。| 系统 | 操作命令 |
|---|---|
| Windows | |
| macOS / Linux | |
对于 Docker 部署,请通过挂载卷的方式指定外部存储目录(详见下文)。
4. 使用 Docker 部署 Ollama(推荐做法)
使用docker-compose.yml 文件进行服务编排:
services:
ollama:
image: ollama/ollama
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434" # 默认通信端口
volumes:
- /data/ollama:/root/.ollama # 挂载模型存储路径
environment:
- OLLAMA_HOST=0.0.0.0:11434 # 允许局域网访问
- OLLAMA_ORIGINS=* # 开放跨域请求(生产环境建议限制具体 IP)
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu] # 启用 GPU 加速(需预先安装 NVIDIA Docker 工具)
启动容器命令:
docker-compose up -d
四、模型下载与加载(以 DeepSeek-R1 为例)
1. 在线获取模型(简单快捷,依赖网络连接)
(1)使用官方源
- 下载并立即运行 8B 版本(适合大多数用户):
ollama run deepseek-r1:8b - 仅下载不启动:
ollama pull deepseek-r1:8b
(2)使用国内镜像源(解决下载缓慢问题)
为避免因国际网络延迟导致的拉取失败或速度低下,可配置代理或使用第三方加速通道完成模型获取。
Ollama 模型部署与管理指南
一、模型获取方式
可通过以下平台拉取 DeepSeek-R1 系列模型:
- 魔塔社区(ModelScope):
执行命令:ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-8B-GGUF:Q4_K_M - HF 镜像站(hf-mirror):
执行命令:ollama run hf-mirror.com/unsloth/DeepSeek-R1-GGUF:deepseek-r1-8b-q4_k_m.gguf
二、离线模型导入(适用于国内网络环境)
推荐使用本地文件方式进行模型导入,提升加载效率。
- 下载 GGUF 格式模型文件
可从以下链接获取 DeepSeek-R1-8B.gguf 文件:
- 夸克网盘:https://pan.quark.cn/s/7fa235cc64ef(提取码:wasX)
- 魔塔社区模型页:https://modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-8B-GGUF
- HF 镜像站点:https://hf-mirror.com/unsloth/DeepSeek-R1-GGUF
- 将模型导入 Ollama
# 1. 切换至模型存储目录 cd /data/ollama/gguf # 2. 创建 Modelfile 配置文件 echo "From ./DeepSeek-R1-8B.gguf" > modelfile-deepseek-8b # 3. 使用配置创建模型(命名为 deepseek-r1:8b) ollama create deepseek-r1:8b -f modelfile-deepseek-8b # 4. 验证是否成功导入 ollama list # 查看当前所有模型列表 ollama show deepseek-r1:8b # 显示模型详细信息
三、常用模型管理命令
| 命令 | 功能说明 |
|---|---|
| ollama list | 列出所有已导入的本地模型 |
| ollama run [model-name] | 启动指定模型进入交互模式 |
| Ctrl+C 或 exit | 终止正在运行的模型实例 |
| ollama rm [model-name] | 删除模型以释放磁盘空间 |
| ollama cp [source] [target] | 复制模型用于后续自定义微调操作 |
ollama list
ollama run <模型名>
ollama stop <模型名>
ollama rm <模型名>
ollama cp <源模型> <新模型>
四、Ollama 服务配置
1. 启用局域网访问权限
默认情况下仅允许本机访问服务。若需在局域网内共享,请根据操作系统设置对应环境变量:
| 系统类型 | 配置方法 |
|---|---|
| Windows | |
| macOS | |
| Linux | |
| Docker | 在 docker-compose.yml 中添加环境变量配置(参考前文示例) |
注意:若部署于云服务器,请勿直接暴露公网端口,建议通过 Nginx 反向代理或防火墙限制访问范围。
2. API 接口调用示例
Ollama 提供标准 RESTful API,便于集成到第三方应用中:
# 非流式请求(一次性返回完整结果)
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:8b",
"prompt": "解释什么是大语言模型",
"stream": false
}'
# 流式响应(逐步输出生成内容)
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:8b",
"prompt": "写一段 Python 代码实现快速排序",
"stream": true
}'
3. 安全防护措施(适用于云环境)
建议通过 Nginx 添加身份验证机制,增强 API 安全性:
server {
listen 8434; # 自定义公网端口
server_name your-domain.com;
location / {
# 验证 API Key(替换为自定义密钥)
if ($http_authorization != "Bearer your-api-key-123") {
return 403;
}
# 代理到 Ollama 服务
proxy_pass http://localhost:11434;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
客户端调用时需携带认证 Header:
Authorization: Bearer your-api-key-123
五、Open-WebUI 可视化界面集成
1. 使用 Docker 部署 Open-WebUI
可通过 docker-compose 快速部署图形化前端界面:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./open-webui-data:/app/backend/data
environment:
- OLLAMA_API_BASE_URL=http://ollama:11434/api
- HF_ENDPOINT=https://hf-mirror.com
- ENABLE_OPENAI_API=false
- DEFAULT_MODELS=deepseek-r1:8b
- RAG_EMBEDDING_MODEL=bge-m3
depends_on:
- ollama
启动服务命令:
docker-compose up -d
2. 初始化与基本使用
部署完成后,可通过浏览器访问以下地址:
http://localhost:8080
(也可使用局域网 IP 地址加端口 8080 访问)
首次登录需注册管理员账户。
主要功能包括:
- 对话交互:支持选择不同模型进行聊天
私有化部署概述
本文详细介绍在本地完成 ollama、DeepSeek 模型及 open-webui 可视化界面的私有化部署流程,涵盖安装配置、性能优化以及常见问题处理方案。
一、ollama 介绍与安装
1.1 什么是 ollama
ollama 是一个开源框架,支持用户在本地环境中便捷地部署和运行大型语言模型(LLM)。其优势在于无需联网即可使用大模型能力,保障数据隐私与安全性,适用于对敏感信息处理有高要求的场景。
1.2 硬件配置建议
| 模型规模 | 推荐内存 (RAM) | 推荐显存 (GPU) | 适用场景 |
|---|---|---|---|
| 1.5B | 4-8GB | 4GB | 轻量级文本处理任务 |
| 7B / 8B | 16GB | 14GB | 日常对话、通用应用 |
| 14B | 32GB | 26GB | 复杂推理、代码生成、数学计算 |
| 32B | 64GB | 48GB | 专业级高精度任务 |
| 70B | 128GB | 140GB | 大规模复杂任务处理 |
实测参考:Mac Studio 2023(搭载 M2 Max 芯片,配备 32GB 内存)可流畅运行 deepseek-r1:32b 及更低参数版本的模型。
1.3 安装方式
Windows 与 macOS 用户:
- 官网下载地址:https://ollama.com/download/
- 国内镜像站点:http://ollama.org.cn/download/
- GitHub 发布页:https://github.com/ollama/ollama/releases/
Linux 系统安装命令:
curl -fsSL https://ollama.com/install.sh | bash
离线安装步骤(适用于 Linux):
- 下载安装包与脚本:
wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz wget https://ollama.com/install.sh - 修改安装脚本,将原下载指令替换为本地复制操作:
# 原始行:curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.com/download/ollama-linux-${ARCH}${VER_PARAM}" # 修改后:cp ./ollama-linux-amd64 $TEMP_DIR/ollama - 执行修改后的 install.sh 脚本完成安装。
二、功能配置说明
模型切换方法:在 open-webui 界面顶部选择已下载的本地模型进行切换。
启用本地知识库(RAG 增强):上传 PDF、Word 或 TXT 文档至系统,并开启 RAG 功能以实现基于文档内容的智能问答。
开启联网搜索:
- 进入设置 → 联网搜索 → 启用
- 支持搜索引擎:Bing / 博查(需提供有效 API Key)
deepseek-r1:8b
模型直接对话:通过 open-webui 直接与加载的模型交互,进行自然语言交流或任务执行。
三、镜像更新操作流程
- 拉取最新 Docker 镜像:
docker-compose pull open-webui - 重启服务并清理孤立容器:
docker-compose up -d --remove-orphans - 清除旧版镜像释放空间:
docker image prune
四、常见问题排查
1. 模型下载缓慢或失败
解决方案一:循环重试下载(适用于 Windows PowerShell)
while ($true) {
if (ollama list | Select-String "deepseek-r1:8b") {
Write-Host "下载完成!" && break
}
Write-Host "重新开始下载..."
$process = Start-Process -FilePath "ollama" -ArgumentList "run", "deepseek-r1:8b" -PassThru -NoNewWindow
Start-Sleep -Seconds 60
Stop-Process -Id $process.Id -Force
}
解决方案二:使用国内加速源(如魔塔 ModelScope 或 HF Mirror)进行下载,或采用离线导入模型文件的方式。
解决方案三:关闭代理工具,尝试直连网络环境以提升连接稳定性。
2. 无法访问服务
检查 Ollama 运行状态:
systemctl status ollama
可在 Linux 终端查看进程,或在 Windows 任务管理器中确认 ollama 是否正常运行。
确保防火墙已开放以下端口:
- 11434:Ollama 服务端口
- 8080:Open-WebUI 访问端口
若从局域网内其他设备访问,请确认客户端与服务器处于同一网段,并使用服务器的内网 IP 地址进行连接。
3. 模型运行卡顿或响应慢
- 更换为更小参数版本的模型(例如从 14B 改为 8B)以降低资源消耗
- 关闭其他占用 CPU 或 GPU 显存的应用程序
- 将模型存储路径设置在 SSD 固态硬盘上,提升加载速度
- GPU 用户请安装对应驱动程序(NVIDIA 显卡需 CUDA,AMD 显卡需 ROCm 支持)
五、参考资料汇总
| 资源名称 | 链接 |
|---|---|
| Ollama 官方文档 | https://ollama.readthedocs.io |
| Ollama 中文站 | https://ollama.org.cn |
| DeepSeek 模型页面 | https://huggingface.co/unsloth/DeepSeek-R1-GGUF |
| Open-WebUI 官方文档 | https://docs.openwebui.com |
| 魔塔社区(ModelScope) | https://modelscope.cn |
| HF 镜像站 | https://hf-mirror.com |
chmod +x install.sh
./install.sh
1.4 使用 Docker 部署服务
通过以下 docker-compose.yml 文件配置 Ollama 服务:
services:
ollama:
image: ollama/ollama
container_name: ollama
restart: unless-stopped
ports:
- 11434:11434
volumes:
- /data/ollama:/root/.ollama
environment:
OLLAMA_HOST: 0.0.0.0:11434
OLLAMA_ORIGINS: "*"
1.5 自定义模型存储路径
可根据系统类型设置模型保存目录:
- Linux/macOS 系统:
echo 'export OLLAMA_MODELS=/data/ollama/models' >> ~/.bashrc source ~/.bashrc - Windows 系统:
setx OLLAMA_MODELS D:\data\ollama\models
2. 模型的获取与运行方式
2.1 基础操作命令
- 下载并立即运行指定模型:
ollama run deepseek-r1:1.5b - 仅执行模型拉取(不运行):
ollama pull deepseek-r1:8b
2.2 模型来源渠道
支持从多个平台获取模型资源:
官方源:
ollama run deepseek-r1:8b
魔塔社区:
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF
HuggingFace:
ollama run hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF:Q8_0
HF镜像站点:
ollama run hf-mirror.com/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M
2.3 离线环境导入模型
适用于无法联网的情况,步骤如下:
- 创建 Modelfile 文件:
echo "FROM ./deepseek-r1-8b.gguf" > modelfile-deepseek-r1-8b - 使用该文件创建模型:
ollama create deepseek-r1:8b -f modelfile-deepseek-r1-8b - 验证是否成功导入:
ollama list ollama run deepseek-r1:8b
3. API 接口调用示例
可通过 curl 发起请求测试服务响应能力:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:8b",
"stream": false,
"prompt": "你是谁"
}'
4. 常见问题及解决方案
4.1 模型下载速度缓慢
方案一:使用断点续传脚本
自动重试直至模型下载完成:
#!/bin/bash
while true; do
modelExists=$(ollama list | grep "deepseek-r1:7b")
if [ -n "$modelExists" ]; then
echo "模型已下载完成!"
break
fi
echo "开始下载模型..."
ollama run deepseek-r1:7b &
processId=$!
sleep 60
if kill -0 $processId 2>/dev/null; then
kill -9 $processId
echo "已中断本次下载,准备重新尝试..."
fi
done
方案二:离线手动下载
- 夸克网盘链接:
https://pan.quark.cn/s/7fa235cc64ef(提取码:wasX) - 魔塔社区地址:
https://modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF/files
4.2 启用局域网访问权限
确保其他设备可连接服务:
- Windows:
setx OLLAMA_HOST 0.0.0.0:11434 setx OLLAMA_ORIGINS "*" - macOS/Linux:
export OLLAMA_HOST="0.0.0.0:11434" export OLLAMA_ORIGINS="*"
4.3 API 安全防护配置(基于 Nginx)
推荐使用反向代理增强安全性:
server {
listen 8434;
server_name your_domain.com;
location / {
if ($http_authorization != "Bearer your_api_key") {
return 403;
}
proxy_pass http://localhost:11434;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
5. 集成 Open WebUI 可视化界面
5.1 准备工作
首先拉取所需模型以支持完整功能:
ollama pull deepseek-r1:8b
ollama pull bge-m3 # 用于 RAG 的嵌入模型
5.2 使用 Docker Compose 配置服务
添加 Open WebUI 服务到 compose 文件中:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
environment:
- OLLAMA_API_BASE_URL=http://ollama:11434/api
- HF_ENDPOINT=https://hf-mirror.com
- WEBUI_NAME="私有化LLM服务"
- ENABLE_OPENAI_API=false # 防止请求超时
- CORS_ALLOW_ORIGIN=*
- ENABLE_IMAGE_GENERATION=true
- DEFAULT_MODELS=deepseek-r1:8b
- RAG_EMBEDDING_MODEL=bge-m3
ports:
- 8080:8080
volumes:
- ./open_webui_data:/app/backend/data
depends_on:
- ollama
5.3 服务启动
完成配置后,可启动本地服务。
访问地址:http://localhost:8080
docker-compose up -d
6. 常用命令速查表
| 命令 | 功能说明 |
|---|---|
| 查看帮助信息 |
| 启动服务进程 |
| 列出所有已下载的模型 |
| 显示当前正在运行的模型 |
| 展示指定模型的详细信息 |
| 删除本地存储的模型文件 |
| 复制并创建新模型实例 |
| 停止模型的运行状态 |
5.4 联网搜索功能设置
启用路径:设置 → 联网搜索 → 开启联网搜索功能
支持的搜索引擎包括:Bing、Bocha
隐私提示:为防止敏感数据外泄,建议在无需网络检索时关闭此功能。
7. 相关资源链接
- ollama 官方网站:https://ollama.com
- ollama 中文站点:https://ollama.org.cn
- ollama 文档中心:https://ollama.readthedocs.io
- 魔塔社区平台:https://modelscope.cn
- HF Mirror 镜像站:https://hf-mirror.com
- Open WebUI 使用文档:https://docs.openwebui.com
总结
本文档提供了搭建本地化 AI 服务平台的完整流程,涵盖以下核心环节:
- 部署 ollama 框架
- 加载 DeepSeek 系列模型
- 配置 Open WebUI 图形化操作界面
- 网络与安全策略优化
该方案实现全流程数据本地处理,杜绝外部传输风险,特别适用于对隐私保护和安全性要求较高的应用场景。


雷达卡


京公网安备 11010802022788号







