尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

离线部署大模型实战:Ollama+DeepSeek+Open-WebUI完整指南

离线部署大模型实战:Ollama+DeepSeek+Open-WebUI完整指南 简介《离线部署大模型ollamadeepseekopen-webui安装使用方法及常见问题解决》是一份面向本地或离线环境部署大语言模型的实用技术文档适合开发者和运维人员快速上手。资源包内含1个PDF文档压缩包大小仅915KB内容系统覆盖了ollama、deepseek、open-webui三个核心组件的安装、配置与联调方法并针对Windows、macOS、Linux及Docker环境分别给出了详细操作步骤同时提供了离线安装时的架构识别、安装包处理与脚本修改思路。文档还整理了不同参数模型的硬件配置建议包括CPU、内存、显存的最低要求以及多个模型版本的对比表便于读者按需选择合适的模型。针对实际部署中常遇到的模型启动失败、服务响应慢等问题也提供了基于日志的排查思路。已有855人学习无论是初次接触本地大模型的爱好者还是需要快速排障的工程师都能从中获得直接可用的操作指引。1. 方案选型为什么是 ollama deepseek open-webui最近因为项目需要我在一台完全断网的服务器上把大模型跑了起来。模型用 deepseek运行时用 ollama网页端用 open-webui。整套流程走下来之后我最大的感受是离线部署没有想象中那么玄乎但也不是双击安装包就能完事里面有大量容易被忽略的细节。这篇文章不聊虚的直接把我实际操作过的步骤、踩过的坑和排查思路整理出来给正在给内网或离线环境搭建大模型服务的同学一个可参考的完整版本。这套组合能做的事情很直接在你的内网里提供一个类似 ChatGPT 的问答服务用户在浏览器里打开页面就能和 deepseek 对话不需要任何外网连接。你不需要买高昂的 API也不需要把数据传到外部模型权重、推理服务、前端界面全部落在本地。对数据敏感型企业、科研内网、无外网机房来说这是目前最省事的落地方式之一。1.1 三个组件各自的分工先理解一句话ollama 是引擎deepseek 是大脑open-webui 是仪表盘。ollama 负责模型的加载、调度和提供本地 API。你执行ollama run deepseek-r1:7b它会把模型文件读入内存监听 11434 端口并通过 OpenAI 兼容接口对外服务。deepseek 本身是模型参数文件决定回答质量、推理能力和知识覆盖面。open-webui 则是一个纯前端加后端服务的应用用户通过浏览器访问它它也把 ollama 的 API 二次封装成更友好的界面支持多用户、历史记录、附件上传、知识库等功能。这套链路是浏览器 - open-webui - ollama API - deepseek 模型。任何一个节点断了整个服务就不可用所以排查问题时也是按这条链路一层层查的后面会详细讲。1.2 离线场景下为什么这么选我见过不少团队在离线环境里硬装大模型有的走 vLLM FastChat有的直接写 Python 调用 HuggingFace结果依赖冲突一整天都搞不定。ollama 的优势在于它把所有推理细节都包好了对硬件要求也低CPU 也能跑。deepseek 是开源模型可商用而且从 1.5B 到 70B 都有量化版适合不同档次的机器。open-webui 虽然重一些但它解决了一个实际问题内网用户没有技术背景你不能让人家用命令行去问模型问题。另外这套方案是真正支持离线的。ollama 的模型目录可以整包拷贝open-webui 有 Docker 镜像拿到 tar 包就能 load两个组件都不依赖外部网络才能启动。相比那些必须在线拉模型的方案这三点叠加起来就是离线部署的首选。2. 安装前一定要做好的准备离线部署有一个铁律在目标服务器上能做的操作越少越好。所有的安装包、模型文件、镜像包都要在联网环境下提前准备好。很多人一上来就在离线机器里跑安装命令发现缺这个缺那个环境又拉不了包最后卡死这是最常见的开局失败。2.1 硬件配置与模型选型在离线环境里GPU 不是每个人都有。deepseek 系列模型有多个尺寸对硬件的要求差异很大我把选择建议整理成了表格直接对着选就行。模型标签量化文件大小建议内存建议显存适用场景deepseek-r1:1.5b约 1.1GB4GB 以上无强制要求低配测试机、简单问答deepseek-r1:7b约 4.7GB16GB 以上无强制要求有更好CPU 日常问答主力deepseek-r1:14b约 9GB32GB 以上6GB 以上需要更强推理能力deepseek-r1:32b约 20GB64GB 以上12GB 以上追求质量、有较好硬件deepseek-r1:70b约 43GB128GB 以上24GB 以上生产级应用、团队共用这里的“量化文件大小”对应的是 ollama 默认使用的 Q4_K_M 量化版本。如果在纯 CPU 环境下跑 7B 模型生成速度大约每秒 5 到 10 个 token做内部知识问答还过得去但不能指望它有商业 API 那么快。如果目标机器有 GPU即使是 6GB 显存的 3060跑 14B 模型也能有不错的速度。我的建议是先看服务器内存再看显存内存不够就老老实实用 7B 或 1.5B。2.2 离线安装包获取清单在联网机器上需要准备四样东西ollama 安装包。Windows 就下载.exe安装程序Linux 下载对应的.tar.gz包比如ollama-linux-amd64.tgz。deepseek 模型文件。最简单的方式是在联网机器上执行ollama pull deepseek-r1:7b然后把模型目录整个复制出来。模型文件默认在用户目录下的.ollama/modelsWindows 是C:\Users\你的用户名\.ollama\modelsLinux 是/root/.ollama/models。open-webui 的 Docker 镜像。在联网机器上执行docker pull ghcr.io/open-webui/open-webui:main然后docker save打成 tar 包。对于没有 Docker 的机器还要准备 open-webui 的 Python 依赖包但这方式依赖太多我的建议是优先用 Docker实在装不了再考虑 pip 离线安装。这里顺带说一下模型下载慢的问题。很多人ollama pull的时候发现速度非常慢其实最省事的方法就是别在目标机器上下模型而是在联网机器上提前拉好再拷贝。如果联网机器也慢可以通过配置镜像源的方式来加速。具体地址可以直接在环境变量里指定一个国内镜像站很多主流大模型都有映射。需要留意的是不要随便使用来路不明的第三方脚本最好自己手动改环境变量出了问题也好回退。2.3 模型目录如何放到 D 盘很多 Windows 用户的系统盘是 C 盘ollama 默认把模型放在C:\Users\用户名\.ollama\models。一个 7B 模型约 4.7GB14B 模型约 9GB多个模型叠起来 C 盘就满了。解决办法是用环境变量OLLAMA_MODELS指定新的模型目录。我实际操作时是这样处理的先在 D 盘创建一个目录比如D:\ollama\models。打开系统环境变量设置新建变量OLLAMA_MODELS值填D:\ollama\models。如果已经下载过模型把原来的C:\Users\用户名\.ollama\models里的内容整体移动到新目录。重启 Ollama 服务或者直接重启电脑打开命令行执行ollama list确认模型还在路径生效。Linux 下的逻辑类似直接把模型目录挂载到数据盘或者将原目录软链接到大分区。比如sudo mv /root/.ollama/models /data/ollama/ ln -s /data/ollama /root/.ollama/models。改完目录之后务必重启 ollama 服务否则它还可能守着旧的缓存路径。3. 实操部署一步步把服务跑起来准备阶段完成后真正在离线机器上的操作其实很少。我的做法是先把 ollama 部署好让它能本地对话再部署 open-webui把网页端对接上最后统一开局域网访问。3.1 安装 ollama 并离线导入模型Windows 机器最省事双击安装包一路下一步。安装完成后命令行里输入ollama -v能看到版本号就说明成功了。Linux 机器略麻烦一点尤其是离线环境不能用一键安装脚本只能手动解压mkdir -p /usr/local/lib/ollama tar -C /usr/local/lib/ollama -xzf ollama-linux-amd64.tgz ln -s /usr/local/lib/ollama/ollama /usr/local/bin/ollama然后创建 systemd 服务保证后台自启sudo useradd -r -s /bin/false ollama sudo tee /etc/systemd/system/ollama.service /dev/null EOF [Unit] DescriptionOllama Service Afternetwork-online.target [Service] ExecStart/usr/local/bin/ollama serve Userollama Restartalways RestartSec3 [Install] WantedBydefault.target EOF sudo systemctl daemon-reload sudo systemctl enable --now ollamaollama 起来之后把之前从联网机器拷贝过来的models目录放到OLLAMA_MODELS指定的位置。注意目录结构要保持完整里面必须有blobs和manifests两个子目录不要只拷贝单个模型文件。放好之后执行ollama list能看到模型列表就说明导入成功。测试对话ollama run deepseek-r1:7b 你好介绍一下你自己第一次加载会比较慢因为要把模型文件读入内存之后速度会稳定下来。如果执行ollama run时显示 downloading 而不是直接进入对话通常说明模型没有被正确放到本地目录要去检查路径。3.2 部署 open-webui 并连接 ollamaopen-webui 我用 Docker 方式部署离线环境准备open-webui.tar镜像包就可以。先传输到目标机器再导入docker load -i open-webui.tar启动容器时关键是把容器内的服务端口映射出来并且告诉它 ollama 的地址。我常用的是这条命令docker run -d \ --name open-webui \ --restart always \ -p 3000:8080 \ -e OLLAMA_BASE_URLhttp://服务器内网IP:11434 \ -v open-webui-data:/app/backend/data \ ghcr.io/open-webui/open-webui:main如果 ollama 和 open-webui 在同一台机器上OLLAMA_BASE_URL也可以写成http://host.docker.internal:11434在 Linux 上需要加--add-hosthost.docker.internal:host-gateway参数否则容器访问不到宿主机。用内网 IP 是最稳妥的少一层 DNS 和网关的麻烦。启动完成后浏览器访问http://服务器IP:3000第一次打开会要求注册账号。第一个注册的账号会默认成为管理员这个账号很重要后面的用户权限管理全靠它。登录进去之后页面顶部应该能选择模型找到deepseek-r1:7b就能开始对话了。如果下拉框里没有模型大概率是 open-webui 没能连上 ollama按第 4 节的排查思路处理。3.3 让局域网其他机器也能访问默认情况下 ollama 只监听本机的 11434 端口open-webui 容器则监听所有网卡的 8080 端口。如果你希望团队里的其他电脑也能打开浏览器使用需要做两个动作第一个是让 ollama 监听外部地址。Linux 下通过 systemd 配置环境变量sudo mkdir -p /etc/systemd/system/ollama.service.d sudo tee /etc/systemd/system/ollama.service.d/override.conf /dev/null EOF [Service] EnvironmentOLLAMA_HOST0.0.0.0:11434 EOF sudo systemctl daemon-reload sudo systemctl restart ollamaWindows 下就是新增系统环境变量OLLAMA_HOST0.0.0.0:11434然后重启 Ollama 服务。第二个是放行防火墙端口。Linux 上如果开启了 firewalld执行sudo firewall-cmd --permanent --add-port3000/tcp sudo firewall-cmd --permanent --add-port11434/tcp sudo firewall-cmd --reloadWindows 则在“高级安全 Windows Defender 防火墙”中添加入站规则放行 TCP 11434 和 TCP 3000。一定要两个端口都放行因为 open-webui 页面用的是 3000但它会通过后端访问 ollama 的 11434如果只是网页能开但模型不出字基本就是 11434 被防火墙堵了。4. 常见问题与排查技巧实录离线部署和在线部署最大的区别是你出了问题不能靠搜索引擎临时查也不能直接 apt install 补依赖。所以一套系统的排查思路比记住某条命令更重要。我把这段时间遇到的典型问题整理成一个速查表再展开讲几个高频问题。4.1 高频问题速查表问题现象可能原因解决动作ollama pull速度极慢下载源网络不稳定改为联网机器拉取后拷贝或配置国内镜像源ollama run时显示 downloading本地没有对应模型的 tag执行ollama list确认标签检查目录是否放对模型放到 D 盘后 ollama 不识别环境变量设置后服务未重启重启 ollama 服务或重启系统open-webui 页面能开但模型列表为空open-webui 访问不到 ollama用curl http://127.0.0.1:11434/api/tags测试检查 OLLAMA_BASE_URL局域网电脑打不开页面防火墙未放行端口放行 3000 和 11434 端口模型回答速度极慢CPU 推理硬件资源不足换小尺寸模型或加入 GPU 推理显存不足导致服务崩溃模型超出显存容量使用更小量化模型或者限制 GPU 层数Windows 上 ollama 开机不自启安装时未设为服务或服务被手动停止打开服务管理确认 Ollama 服务启动类型为自动4.2 高频问题的深度排查先说最常见的一个明明已经拷贝了模型文件但ollama run还是去下载。这个问题的根本原因是目录结构不对。ollama 识别模型不是靠文件名而是通过manifests目录里的元数据。如果你只把文件复制到了models/blobs没有models/manifests模型基本不会被识别。正确做法是整个.ollama/models目录原样复制而不是只复制某个文件。拷贝完成后执行ollama list验证不要急着 run。第二个高频问题是 open-webui 连不上 ollama。先到服务器本机上执行一条命令curl http://127.0.0.1:11434/api/tags如果这条命令能返回一段包含模型列表的 JSON说明 ollama 服务本身是正常的。接下来就要检查容器里的OLLAMA_BASE_URL是否填对。最常见的坑是填了localhost或127.0.0.1在容器内部这个地址指向容器自己而不是宿主机所以要填宿主机内网 IP 或者用host.docker.internal。改完环境变量后记得删除旧容器并重新运行命令里的-e参数只在创建容器时生效。第三个问题集中在 Windows 上安装到 D 盘之后ollama 仍然把模型写到 C 盘。如果已经设置了系统环境变量问题基本出在服务没重启。Ollama 在 Windows 上是以后台服务方式运行的它启动时读取环境变量的值。你改了环境变量后服务进程环境还是没有刷新所以一定要到服务管理器中找到 Ollama 服务并重启必要时重启电脑。另外排查问题前先看日志。Windows 下日志在%LOCALAPPDATA%\Ollama\server.logLinux 下用journalctl -u ollama -f。日志里会明确显示模型加载失败的原因比如no space left on device或者是 CUDA 版本问题。很多时候与其到处猜不如直接打开日志看最后几行问题原因一目了然。最后分享一点我个人的经验离线部署大模型前期准备工作占整个项目八成的时间。只要模型文件、ollama 安装包、open-webui 镜像都在手上后面部署不会超过半小时。最容易翻车的地方反而是网络和目录这类看似不起眼的细节。如果你是在纯 CPU 机器上跑我建议第一台上线先用 7B 模型把整个链路跑通后续再根据业务反馈决定要不要换更大的模型。这样既不会打击团队信心也能快速看到结果。本文还有配套的精品资源点击获取
返回列表