离线部署大模型Ollama+DeepSeek+Open-WebUI 完整指南
离线部署大模型Ollama+DeepSeek+Open-WebUI 完整指南
一、整体架构与核心组件
1. 架构流程图
硬件环境Ollama 运行框架模型管理DeepSeek-R1 模型第三方模型导入服务暴露命令行交互API 服务局域网访问Open-WebUI 可视化界面功能应用聊天交互本地知识库图像生成
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 |
验证安装:ollama --version 显示版本信息即成功。2. 离线安装(无网络环境)
(1)Windows/macOS
直接拷贝离线安装包(从联网环境下载)到目标机器,双击安装即可。
(2)Linux
# 1. 创建安装目录mkdir -p /home/ollama &&cd /home/ollama # 2. 下载对应架构安装包(提前从 GitHub 下载)# 架构查询:lscpu → x86_64 选 amd64,arm64 选 arm64wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz # 3. 下载安装脚本wget https://ollama.com/install.sh # 4. 修改安装脚本(跳过在线下载)tar -zxvf ollama-linux-amd64.tgz chmod +x install.sh # 编辑 install.sh:注释 curl 下载行,添加本地拷贝# 原行:curl --fail --show-error ... -o $TEMP_DIR/ollama ...# 新增:cp ./ollama-linux-amd64 $TEMP_DIR/ollama# 5. 执行安装 ./install.sh 3. 模型存储位置修改(可选)
默认存储目录可能占用系统盘,通过环境变量修改:
| 系统 | 操作命令 |
|---|---|
| Windows | setx OLLAMA_MODELS "D:\data\ollama\models"(命令提示符) |
| macOS/Linux | echo 'export OLLAMA_MODELS=/data/ollama/models' >> ~/.bashrc && source ~/.bashrc |
| Docker | 启动时挂载卷:-v /data/ollama:/root/.ollama(见下文 Docker 部署) |
4. Docker 部署 Ollama(推荐)
# docker-compose.ymlservices: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)国内源(解决下载慢)
# 魔塔社区(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 2. 离线导入(推荐国内环境)
(1)下载模型文件
从第三方平台下载 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
(2)导入 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 # 查看模型详情3. 模型管理常用命令
| 命令 | 作用 |
|---|---|
ollama list | 列出所有已下载模型 |
ollama run <模型名> | 启动模型交互 |
ollama stop <模型名> | 停止运行中的模型 |
ollama rm <模型名> | 删除模型(释放磁盘空间) |
ollama cp <源模型> <新模型> | 复制模型(用于自定义微调) |
五、Ollama 服务配置
1. 允许局域网访问
默认仅本机访问,修改环境变量开放局域网:
| 系统 | 配置命令 |
|---|---|
| Windows | setx OLLAMA_HOST "0.0.0.0:11434" && setx OLLAMA_ORIGINS "*" |
| macOS | launchctl setenv OLLAMA_HOST "0.0.0.0:11434" && launchctl setenv OLLAMA_ORIGINS "*" |
| Linux | echo 'export OLLAMA_HOST=0.0.0.0:11434' >> ~/.bashrc && source ~/.bashrc |
| Docker | 直接在 docker-compose.yml 中配置环境变量(见上文) |
注意:云服务器部署需关闭公网端口,仅开放局域网或通过 Nginx 代理保护。
2. API 调用示例
Ollama 提供 REST 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 Key 保护:
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.yml(与 Ollama 同文件或单独创建)services:open-webui:image: ghcr.io/open-webui/open-webui:main container_name: open-webui restart: unless-stopped ports:-"8080:8080"# Web 访问端口volumes:- ./open-webui-data:/app/backend/data # 数据持久化environment:- OLLAMA_API_BASE_URL=http://ollama:11434/api # 连接 Ollama 服务- HF_ENDPOINT=https://hf-mirror.com # 国内 HF 镜像- ENABLE_OPENAI_API=false # 禁用 OpenAI API(避免白屏)- DEFAULT_MODELS=deepseek-r1:8b # 默认模型- RAG_EMBEDDING_MODEL=bge-m3 # 知识库嵌入模型(需提前 pull)depends_on:- ollama # 依赖 Ollama 服务启动命令:docker-compose up -d
2. 初始化与使用
- 访问地址:
http://localhost:8080(或局域网 IP:8080) - 注册管理员账号(首次登录)
- 核心功能:
- 聊天交互:选择
deepseek-r1:8b模型直接对话 - 本地知识库:上传文档(PDF/Word/TXT),开启 RAG 增强
- 模型切换:在界面顶部选择已下载的模型
- 联网搜索:设置 → 联网搜索 → 启用(支持 Bing/博查,需 API Key)
- 聊天交互:选择
3. 镜像更新
# 拉取最新镜像 docker-compose pull open-webui # 重启服务 docker-compose up -d --remove-orphans # 清理旧镜像 docker image prune 七、常见问题解决
1. 模型下载慢/失败
- 方案 2:使用国内源(魔塔/HF 镜像)或离线导入
- 方案 3:关闭代理软件,直接连接网络
方案 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 }2. 服务无法访问
- 检查 Ollama 状态:
systemctl status ollama(Linux)或任务管理器(Windows) - 防火墙开放端口:11434(Ollama)、8080(Open-WebUI)
- 局域网访问时,确保客户端与服务器在同一网段,使用服务器内网 IP 访问
3. 模型运行卡顿
- 降低模型参数版本(如 14B → 8B)
- 关闭其他占用 CPU/显存的程序
- 确保模型存储在 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 |
| 魔塔社区 | https://modelscope.cn |
| HF 镜像站 | https://hf-mirror.com |
私有化部署简述
概述
本地私有化部署 ollama、DeepSeek 模型和 open-webui 可视化界面的完整流程,涵盖安装、配置、优化及问题解决方案。
1. ollama 介绍与安装
1.1 ollama 简介
ollama 是一个开源的本地大语言模型运行框架,提供简单便捷的方式在本地部署和运行大型语言模型,支持免费离线使用 LLM 能力,确保数据隐私和安全。
1.2 硬件要求
| 模型规模 | 建议 RAM | 建议显存 | 适用场景 |
|---|---|---|---|
| 1.5B | 4-8GB | 4GB | 轻量级,普通文本处理 |
| 7B/8B | 16GB | 14GB | 性能较好,日常使用 |
| 14B | 32GB | 26GB | 复杂任务、数学推理、代码生成 |
| 32B | 64GB | 48GB | 专业级高精度任务 |
| 70B | 128GB | 140GB | 大规模高复杂度任务 |
实测参考:Mac Studio 2023(M2 Max,32G内存)可流畅运行 deepseek-r1:32b 及以下模型。
1.3 系统安装
Windows/macOS
- 官方下载:https://ollama.com/download/
- 国内中文站:http://ollama.org.cn/download/
- GitHub Releases: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下载行替换为本地文件# 原始: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# 执行安装chmod +x install.sh ./install.sh 1.4 Docker 部署
# docker-compose.ymlservices:ollama:image: ollama/ollama container_name: ollama restart: unless-stopped ports:- 11434:11434volumes:- /data/ollama:/root/.ollama environment:OLLAMA_HOST: 0.0.0.0:11434OLLAMA_ORIGINS:"*"1.5 修改模型存储位置
# Linux/macOSecho'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 离线导入模型
# 创建Modelfileecho"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 http://localhost:11434/api/generate -d '{ "model": "deepseek-r1:8b", "stream": false, "prompt": "你是谁" }'4. 常见问题解决
4.1 下载速度慢
方法一:断点续传脚本
#!/bin/bashwhiletrue;domodelExists=$(ollama list |grep"deepseek-r1:7b")if[ -n "$modelExists"];thenecho"模型已下载完成!"breakfiecho"开始下载模型..." ollama run deepseek-r1:7b &processId=$!sleep60ifkill -0 $processId2>/dev/null;thenkill -9 $processIdecho"已中断本次下载,准备重新尝试..."fidone方法二:离线下载
- 夸克网盘: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/LinuxexportOLLAMA_HOST="0.0.0.0:11434"exportOLLAMA_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 配置
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:8080volumes:- ./open_webui_data:/app/backend/data depends_on:- ollama 5.3 启动服务
docker-compose up -d 访问地址:http://localhost:8080
5.4 联网搜索功能
- 设置路径:设置 → 联网搜索 → 启用联网搜索
- 支持搜索引擎:Bing、Bocha
- 注意事项:保护隐私数据请勿开启此功能
6. 常用命令参考
| 命令 | 功能 |
|---|---|
ollama --help | 查看帮助 |
ollama serve | 启动服务 |
ollama list | 列出所有模型 |
ollama ps | 列出运行中的模型 |
ollama show <model> | 显示模型信息 |
ollama rm <model> | 删除模型 |
ollama cp <source> <new> | 复制模型 |
ollama stop <model> | 停止运行模型 |
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 可视化界面
- 网络优化和安全配置
此方案确保了数据的完全本地化处理,适合对隐私安全有高要求的场景使用。