戰(zhàn)指南)
簡(jiǎn)介面向需要在內(nèi)網(wǎng)或離線環(huán)境私有化部署大語言模型的開發(fā)與運(yùn)維人員這份PDF系統(tǒng)梳理了ollama、deepseek與open-webui三組件的安裝、配置與聯(lián)調(diào)方法。內(nèi)容涵蓋不同操作系統(tǒng)的安裝方式、硬件選型建議如運(yùn)行1.5B模型至少4GB內(nèi)存、33B模型需32GB內(nèi)存、各版本deepseek模型的CPU/內(nèi)存/顯存推薦配置以及基于Docker的部署方案和離線安裝步驟。對(duì)于模型啟動(dòng)失敗、服務(wù)響應(yīng)慢等常見問題文檔給出了基于日志的排錯(cuò)思路并提醒數(shù)據(jù)隱私安全與合規(guī)注意事項(xiàng)。資源共1個(gè)PDF文件壓縮包約915KB內(nèi)容組織緊湊、可直接按章節(jié)查閱適合已有一定命令行基礎(chǔ)的讀者對(duì)照實(shí)操。已有855人學(xué)習(xí)下載。 最近越來越多的團(tuán)隊(duì)開始需要在斷網(wǎng)環(huán)境里用上大模型不管是業(yè)務(wù)數(shù)據(jù)不能出內(nèi)網(wǎng)還是機(jī)房部署條件受限核心需求就一句話把模型的運(yùn)行能力完全放在本地。我在自己的內(nèi)網(wǎng)環(huán)境里完整落地過一套用的就是標(biāo)題里提到的三件套Ollama 做運(yùn)行時(shí)DeepSeek 提供模型能力Open WebUI 做交互界面。整條鏈路走通之后局域網(wǎng)里的同事打開瀏覽器就能用上對(duì)話大模型完全不需要外網(wǎng)連接。這套方案最大的價(jià)值在于它把“大模型部署”這件事真正做成了離線可交付的產(chǎn)品。不需要云服務(wù)不需要公網(wǎng) API Key只要有一臺(tái)配置還行的機(jī)器就能在隔離網(wǎng)絡(luò)里跑起一個(gè)私有的大模型服務(wù)。對(duì)剛接觸本地模型部署的同學(xué)來說這套組合也是最容易上手、坑最少的一條路線。下面我把安裝、使用、踩坑的經(jīng)歷原原本本寫出來希望能幫你少走幾趟彎路。1. 方案核心思路為什么選這三件套1.1 三個(gè)組件各扮演什么角色先把分工理清楚。Ollama 是一個(gè)本地大模型運(yùn)行器它負(fù)責(zé)模型文件的管理、加載和推理同時(shí)對(duì)外提供統(tǒng)一的 API 接口。DeepSeek 是模型本身我用的主要是 DeepSeek-R1 系列和 DeepSeek-V2 系列的量化版權(quán)重文件。Open WebUI 則是一個(gè)開源的網(wǎng)頁前端它把 Ollama 的 API 包了一層在瀏覽器里提供類似 ChatGPT 的聊天界面支持多用戶、知識(shí)庫、對(duì)話歷史管理等功能。之所以把這三者組合在一起是因?yàn)樗鼈兊穆氊?zé)邊界非常清晰相互之間通過標(biāo)準(zhǔn) HTTP API 通信替換任何一環(huán)都不會(huì)牽連其他部分。Ollama 本身自帶一個(gè)簡(jiǎn)易的命令行交互模式但說實(shí)話如果給團(tuán)隊(duì)里非技術(shù)的同事用命令行根本不可行。加上 Open WebUI 之后體驗(yàn)直接從“程序員玩具”變成“可交付的內(nèi)部工具”。而模型層用 DeepSeek主要是因?yàn)樗谥杏⑽膱?chǎng)景下的綜合表現(xiàn)足夠好開源許可也相對(duì)友好商用場(chǎng)景不用太擔(dān)心授權(quán)問題。1.2 離線部署要解決的核心問題離線部署和在線部署最大的差別在于一切依賴都需要提前準(zhǔn)備好任何一步缺失都可能卡住整個(gè)流程。具體來說有三個(gè)核心問題要解決。第一是模型文件從哪來。模型權(quán)重動(dòng)輒幾個(gè) GB 到幾十個(gè) GB在有網(wǎng)環(huán)境下拉取都很耗時(shí)離線環(huán)境下更要提前把模型文件下載好、打包好再拷貝到目標(biāo)機(jī)器。第二個(gè)問題是運(yùn)行環(huán)境依賴怎么裝。Ollama 本身是一個(gè)編譯好的二進(jìn)制文件相對(duì)好處理但如果用 Docker 方式部署 Open WebUI就需要提前準(zhǔn)備鏡像包。第三個(gè)問題是要考慮局域網(wǎng)里的多人訪問。部署完成之后不止是本地自己玩要讓同一內(nèi)網(wǎng)里的其他人都能通過瀏覽器訪問這就需要在硬件選型和配置上做規(guī)劃。我見過不少人在這里翻車模型下載好了Ollama 也裝好了最后發(fā)現(xiàn) Open WebUI 的鏡像沒提前導(dǎo)出只能干等外網(wǎng)。所以后面所有的安裝步驟我都會(huì)把“離線準(zhǔn)備”和“目標(biāo)機(jī)安裝”分開講。2. 安裝準(zhǔn)備先把離線資源備齊2.1 硬件配置怎么選先說我實(shí)際用的機(jī)器配置CPU 是 16 核內(nèi)存 64GBGPU 是一塊 24GB 顯存的顯卡硬盤預(yù)留了 200GB 空間。在這個(gè)配置上跑 DeepSeek-R1-Distill-Qwen-14B 的 Q4 量化版本推理速度完全夠用多用戶并發(fā)刷網(wǎng)頁也不會(huì)明顯卡頓。如果你的機(jī)器配置更低也有辦法。硬件條件對(duì)應(yīng)的模型選型建議大致如下硬件條件推薦模型規(guī)格說明16GB 內(nèi)存無獨(dú)顯7B 量化模型速度偏慢僅適合個(gè)人測(cè)試32GB 內(nèi)存8GB 顯存7B~14B 量化模型日常對(duì)話可用64GB 內(nèi)存24GB 顯存14B~32B 量化模型多用戶使用流暢128GB 內(nèi)存48GB 顯存70B 量化模型接近中等規(guī)模商用體驗(yàn)這里有個(gè)重要原則顯存不夠就靠內(nèi)存來湊Ollama 支持 GPU 和 CPU 混合推理但完全依賴 CPU 推理的速度會(huì)比較慢只適合對(duì)實(shí)時(shí)性要求不高的場(chǎng)景。2.2 三樣?xùn)|西要提前備好離線部署前你需要在有網(wǎng)的機(jī)器上準(zhǔn)備三樣?xùn)|西第一是 Ollama 的安裝包。直接去官方網(wǎng)站下載對(duì)應(yīng)操作系統(tǒng)的二進(jìn)制安裝包Linux 和 Windows 版本都有下載完壓縮打包。第二是模型文件。這一步很多人容易搞混不是下載一個(gè)單獨(dú)的 .gguf 模型文件放到目錄里就行而是要用 Ollama 的模型創(chuàng)建機(jī)制來導(dǎo)入。最簡(jiǎn)單的做法是在有網(wǎng)機(jī)器上先安裝好 Ollama然后用ollama pull deepseek-r1:14b把模型拉到本地緩存再從緩存目錄把模型文件復(fù)制出來。模型文件通常存放在~/.ollama/models路徑下把這整個(gè)目錄打包帶走。如果只拿到了 .gguf 文件那需要寫 Modelfile 再導(dǎo)入操作上多一步后面我會(huì)詳細(xì)說。第三是 Open WebUI 的 Docker 鏡像。在有網(wǎng)機(jī)器上執(zhí)行docker pull ghcr.io/open-webui/open-webui:main拉取成功后用docker save導(dǎo)出為 tar 壓縮包這樣可以方便地拷到目標(biāo)機(jī)器上離線導(dǎo)入。3. 安裝與配置一步步走通3.1 目標(biāo)機(jī)安裝 Ollama 并導(dǎo)入模型在離線目標(biāo)機(jī)器上安裝 Ollama 很簡(jiǎn)單。以 Linux 為例把安裝包解壓出來將ollama二進(jìn)制文件放到/usr/local/bin目錄然后執(zhí)行ollama serve啟動(dòng)服務(wù)后Ollama 默認(rèn)監(jiān)聽127.0.0.1:11434。把之前備份的models目錄直接解壓到目標(biāo)機(jī)器的~/.ollama/路徑下。注意不要覆蓋現(xiàn)有的配置目錄而是把模型文件合并進(jìn)去。然后驗(yàn)證模型是否可見ollama list如果能看到你拷貝的模型列表說明導(dǎo)入成功。這里有一個(gè)非常關(guān)鍵的細(xì)節(jié)如果模型是在別的機(jī)器上通過ollama pull下的它的 manifest 文件里記錄的路徑信息通常是相對(duì)路徑直接拷貝到新機(jī)器一般沒問題。但如果你手動(dòng)移動(dòng)過模型文件manifest 里的路徑就失效了這時(shí)候要檢查一下~/.ollama/models/manifests里的內(nèi)容是否指向正確位置。如果只有 .gguf 文件正確的手動(dòng)導(dǎo)入方式是寫一個(gè) ModelfileFROM ./deepseek-r1-14b.Q4_K_M.gguf然后在同目錄執(zhí)行ollama create deepseek-r1:14b -f Modelfile這樣就會(huì)在本地注冊(cè)一個(gè)新的模型。這個(gè)方法在拿到了第三方量化好的模型文件時(shí)會(huì)非常實(shí)用不需要對(duì)被導(dǎo)入的 GGUF 格式有什么特殊要求。3.2 讓 Ollama 服務(wù)被局域網(wǎng)訪問默認(rèn)情況下 Ollama 只監(jiān)聽本機(jī)回環(huán)地址如果希望局域網(wǎng)內(nèi)的其他機(jī)器能夠訪問需要設(shè)置環(huán)境變量。啟動(dòng)前執(zhí)行export OLLAMA_HOST0.0.0.0這樣 Ollama 就會(huì)監(jiān)聽所有網(wǎng)卡地址。對(duì)于 Windows 用戶可以在系統(tǒng)環(huán)境變量里添加OLLAMA_HOST值設(shè)為0.0.0.0。有一個(gè)安全性的問題需要提醒。在大范圍開放網(wǎng)絡(luò)環(huán)境中要注意訪問控制而內(nèi)網(wǎng)環(huán)境中即便服務(wù)暴露在局域網(wǎng)內(nèi)問題也不大但如果有大量敏感數(shù)據(jù)建議在反向代理或 Open WebUI 層做好訪問認(rèn)證。因?yàn)?Ollama 本身默認(rèn)沒有任何認(rèn)證機(jī)制任何拿到你 IP 的人都能直接調(diào)用 API不止是聊天連模型文件的下載接口也都是開放的。3.3 離線導(dǎo)入 Open WebUI 鏡像把之前在有網(wǎng)機(jī)器上用docker save導(dǎo)出的鏡像包拷貝到目標(biāo)機(jī)然后執(zhí)行docker load -i open-webui.tar鏡像加載后啟動(dòng)容器的命令如下docker run -d \ --name open-webui \ -p 3000:8080 \ -v open-webui-data:/app/backend/data \ -e OLLAMA_BASE_URLhttp://目標(biāo)機(jī)IP:11434 \ --restart always \ ghcr.io/open-webui/open-webui:main幾個(gè)參數(shù)的含義說一下-p 3000:8080把容器的 8080 端口映射到宿主機(jī) 3000 端口瀏覽器訪問http://目標(biāo)機(jī)IP:3000即可打開界面。-v open-webui-data:/app/backend/data數(shù)據(jù)卷持久化保存用戶賬號(hào)、聊天記錄、配置等數(shù)據(jù)。這一步不能省否則容器一刪數(shù)據(jù)全丟。-e OLLAMA_BASE_URL告訴 Open WebUI 去哪個(gè)地址找 Ollama 服務(wù)。這里如果填了http://localhost:11434那就錯(cuò)了因?yàn)?localhost 是容器自身而不是宿主機(jī)。應(yīng)該填宿主機(jī)的局域網(wǎng) IP或者如果用--network host模式啟動(dòng)那才能用 localhost。啟動(dòng)后打開瀏覽器第一次訪問會(huì)提示創(chuàng)建管理員賬號(hào)。創(chuàng)建完賬號(hào)進(jìn)入設(shè)置頁面確認(rèn)模型列表里能正常顯示 DeepSeek 的模型就可以開始對(duì)話了。4. 實(shí)際使用與性能優(yōu)化4.1 瀏覽器與 API 雙通道Open WebUI 界面本身很像 ChatGPT左側(cè)是歷史會(huì)話列表底部是輸入框支持 Markdown 渲染、代碼高亮。多人使用時(shí)每個(gè)注冊(cè)用戶的數(shù)據(jù)互相隔離。這里我建議按團(tuán)隊(duì)規(guī)模先預(yù)創(chuàng)建賬號(hào)而不是全部放開注冊(cè)這在后續(xù)權(quán)限管理上會(huì)省很多事。還有一條通道是 API 直接調(diào)用非常適合把模型能力集成到自己的腳本或應(yīng)用里。比如用 Python 調(diào)用import requests response requests.post( http://目標(biāo)機(jī)IP:11434/api/generate, json{model: deepseek-r1:14b, prompt: 用一句話介紹你自己}, streamTrue ) for line in response.iter_lines(): if line: print(line.decode())Ollama 的 API 遵循 OpenAI 兼容格式很多現(xiàn)成的工具直接就支持。比如在開發(fā)調(diào)試時(shí)把 OpenAI 的 Base URL 換成本地http://目標(biāo)機(jī)IP:11434/v1模型名改成deepseek-r1:14b就能無縫接入到老項(xiàng)目里這個(gè)兼容性設(shè)計(jì)很值得點(diǎn)贊。4.2 推理速度的關(guān)鍵因素用下來最直觀的感受是推理速度主要受顯存容量和模型量化精度兩個(gè)因素影響。模型能全部塞進(jìn)顯存時(shí)速度可以達(dá)到每秒 20 到 40 token一旦顯存不足部分層退到 CPU 運(yùn)算速度會(huì)斷崖式下跌到每秒不到 10 token。所以盡量選擇能在當(dāng)前顯卡顯存下完整加載的量化版本。還有一個(gè)容易忽略的參數(shù)是上下文長度。Ollama 默認(rèn)上下文長度不一定夠用遇到長文檔分析時(shí)經(jīng)常報(bào)錯(cuò)“context length exceeded”??梢栽谶\(yùn)行時(shí)通過環(huán)境變量或請(qǐng)求參數(shù)來調(diào)整。命令行啟動(dòng)時(shí)加--num-ctx 8192API 調(diào)用時(shí)傳optionsjson{model: deepseek-r1:14b, prompt: ..., options: {num_ctx: 8192}}上下文長度增大后顯存占用也會(huì)相應(yīng)上漲選多大需要自己權(quán)衡。5. 常見問題與排查思路5.1 模型下載接口一直報(bào)錯(cuò)有網(wǎng)環(huán)境中拉取模型時(shí)速度極慢或者直接超時(shí)這是熱度最高的一個(gè)問題。核心原因是模型文件分片較多默認(rèn)下載源在國內(nèi)的連接質(zhì)量很不穩(wěn)定。我自己踩過的坑是直接 pull 幾十 GB 的模型跑了一個(gè)小時(shí)還在百分之十幾。后來發(fā)現(xiàn) Ollama 支持配置鏡像源在啟動(dòng)服務(wù)前設(shè)置環(huán)境變量export OLLAMA_MODELShttps://你的鏡像地址設(shè)置完重啟 Ollama 服務(wù)速度就正常了。鏡像站之間的同步時(shí)效性不太一樣有時(shí)模型版本不全找不到目標(biāo)模型就換一個(gè)鏡像試試。如果是完全離線的環(huán)境那就必須走前面說的“有網(wǎng)機(jī)器拉取再拷貝”的方案這個(gè)是最穩(wěn)妥的。5.2 容器里連不上 OllamaOpen WebUI 啟動(dòng)后報(bào)錯(cuò)日志里顯示連接不到 Ollama 服務(wù)。排查步驟可以按順序走一遍檢查 Ollama 宿主機(jī)的防火墻是否放行了 11434 端口。在 Open WebUI 容器內(nèi)部測(cè)試連通性docker exec open-webui curl http://宿主機(jī)IP:11434如果通則說明網(wǎng)絡(luò)正常不通就是防火墻或 IP 配置問題。確認(rèn)OLLAMA_HOST環(huán)境變量確實(shí)設(shè)成了0.0.0.0而不是留空或默認(rèn)值。這類問題 80% 都是因?yàn)楹雎粤巳萜骱退拗鳈C(jī)之間 localhost 不通這個(gè)基本點(diǎn)。5.3 模型回答質(zhì)量不穩(wěn)定或頻繁中斷如果同一個(gè)問題多次詢問回答長度和內(nèi)容差異極大多半是采樣參數(shù)默認(rèn)值導(dǎo)致的。比如 temperature 等參數(shù)Ollama 的默認(rèn)配置不一定適配你的使用場(chǎng)景。在 Open WebUI 的高級(jí)參數(shù)面板里可以調(diào)整 temperature 到 0.6、top_p 到 0.9 附近回答穩(wěn)定性會(huì)好很多。頻繁中斷則要檢查顯存占用如果服務(wù)運(yùn)行過程中出現(xiàn)內(nèi)存不足導(dǎo)致的進(jìn)程被殺十有八九是模型規(guī)格超出硬件承載能力了。最后分享一個(gè)我在實(shí)際部署中的體會(huì)這套三件套組合最理想的應(yīng)用場(chǎng)景是網(wǎng)絡(luò)隔離但有硬件資源的組織內(nèi)部——數(shù)據(jù)不出內(nèi)網(wǎng)模型能力卻一點(diǎn)不少。如果你要交付的也是類似的離線環(huán)境務(wù)必要把模型文件、Docker 鏡像、安裝包這三樣?xùn)|西提前準(zhǔn)備好缺一樣都會(huì)非常被動(dòng)。第一次部署的時(shí)候我在模型文件轉(zhuǎn)移上反復(fù)拷貝了好幾遍后來干脆寫了一鍵推送的腳本把整條鏈路變成標(biāo)準(zhǔn)交付流程后面的實(shí)施就輕松多了。本文還有配套的精品資源點(diǎn)擊獲取