目錄
一、ollama 與 docker 簡介
(一)ollama(Ollama)
(二)docker
二、利用 ollama 和 docker 配置 deepseek-r1 的準備工作
(一)硬件需求
(二)軟件安裝
三、配置 deepseek-r1 的詳細步驟
(一)使用 ollama 獲取 deepseek-r1 模型
(二)利用 docker 創建 deepseek-r1 容器
查看模型列表
下載模型命令
注意事項
(三)啟動和測試 deepseek-r1 服務
四、這種配置方式的優勢
(一)快速部署
(二)環境隔離
(三)易于擴展
五、可能遇到的問題及解決方法
(一)網絡問題
(二)資源沖突
在人工智能技術日新月異的時代,大語言模型的應用越來越廣泛,DeepSeek 作為其中的佼佼者,備受開發者和技術愛好者的關注。通過在本機部署 DeepSeek,能夠更靈活地利用其強大功能。而借助 ollama 和 docker 進行 deepseek - r1 的配置,能為我們帶來更高效、便捷的部署體驗。
一、ollama 與 docker 簡介
(一)ollama(Ollama)
ollama 是一個強大的工具,它為模型的管理和運行提供了便利。它可以簡化模型的下載、配置和啟動過程,讓用戶能夠快速地將不同的模型集成到自己的工作流程中。例如,在處理多個不同類型的大語言模型時,ollama 可以輕松管理這些模型之間的切換和調用,提高開發效率。
(二)docker
docker 則是容器化技術的代表,它能夠將應用程序及其依賴項打包成一個獨立的容器。在 DeepSeek 部署中,使用 docker 可以確保 deepseek - r1 在不同環境中具有一致的運行狀態。無論在開發環境、測試環境還是生產環境,只要安裝了 docker,就可以運行相同的 deepseek - r1 容器,避免了因環境差異導致的兼容性問題。
二、利用 ollama 和 docker 配置 deepseek-r1 的準備工作
(一)硬件需求
同常規的 DeepSeek 部署類似,需要一臺性能不錯的計算機。內存建議 16GB 以上,這樣在運行容器和模型時,能夠保證系統的流暢性。同時,配備 NVIDIA GPU 會顯著提升模型的推理速度,對于處理大規模文本任務非常關鍵。
(二)軟件安裝
- 安裝 docker:可以從 docker 官方網站獲取適合你操作系統的安裝包,按照官方指引進行安裝。在安裝完成后,確保 docker 服務正常運行,可通過簡單的命令行測試來驗證(sheel中輸入docker)。
- 安裝 ollama:根據你使用的操作系統,選擇合適的安裝方式。例如,在 Linux 系統中,可以通過特定的腳本進行安裝。安裝完成后,配置好 ollama 的運行環境變量,確保其能夠被系統正確識別。
三、配置 deepseek-r1 的詳細步驟
可以看出DeepSeek-r1完全模型在各方面優于OpenAI,在某些方面評估甚至強于OpenAI,參數量適合于本地部署辦公使用。
(一)使用 ollama 獲取 deepseek-r1 模型
通過 ollama 的命令行工具,輸入特定的命令來搜索和下載 deepseek - r1 模型。ollama 會自動從官方或指定的源獲取模型文件,并將其存儲在本地的模型庫中。
(二)利用 docker 創建 deepseek-r1 容器
- 基于下載好的 deepseek - r1 模型,使用 docker 命令創建一個新的容器。在創建容器時,需要指定容器的名稱、掛載的目錄(以便與本地文件系統進行交互)以及容器運行所需的環境變量。
查看模型列表
可以訪問 ollama 官方的模型倉庫library查看支持的模型列表,點擊瀏覽某個模型,可看到詳細說明,如模型參數、大小、運行命令等信息。
下載模型命令
使用ollama pull
命令進行下載。例如,若要下載圖片中的deepseek - r1
?7b 模型,在命令行中輸入
ollama pull deepseek-r1:7b?
(若不指定具體版本如 7b 等,默認下載最新版本)。首次使用該命令運行模型時,ollama 也會自動從網上下載模型。
注意事項
- ? 下載速度可能受網絡狀況影響,如果網絡不穩定,下載模型可能需要較長等待時間。
? ? ?2.? ?部分模型對硬件資源有一定要求,如運行較大的模型(像 llama3 - 70b)可能會較慢,甚至出現硬件資源不足無法正常運行的情況,下載前可了解模型對硬件的需求。(主要是系統內存的要求)
????????配置容器的網絡設置,確保容器能夠與外部進行通信。可以根據實際需求,設置容器的端口映射,使本地應用能夠訪問到容器內運行的 deepseek - r1 服務。
(三)啟動和測試 deepseek-r1 服務
- (docker搭建請參照另一篇文章)完成容器創建后,使用 docker 命令啟動 deepseek - r1 容器。容器啟動后,ollama 會自動加載 deepseek - r1 模型,并啟動相關的服務進程。
- 通過編寫簡單的測試腳本,向運行在容器內的 deepseek - r1 服務發送請求,驗證模型是否正常工作。例如,可以發送一段文本,請求模型生成回答,檢查返回的結果是否符合預期。
? (四)WebUi的配置
搭建部署Open WebUI有兩種方式
- Docker方式(官網推薦)
- 源代碼部署安裝方式:(文檔🚀 Getting Started | Open WebUI)
Open WenUI 官網:GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v D:devopen-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
此命令啟動一個docker容器
docker run
:這是 Docker 用于運行容器的基本命令,它會根據指定的鏡像創建并啟動一個新的容器實例。-d
:表示以守護進程(detached)模式運行容器,即容器會在后臺運行,不會占用當前命令行終端的輸入輸出流,方便執行其他命令。-p 3000:8080
:端口映射參數,將容器內部的 8080 端口映射到主機的 3000 端口。這樣,通過訪問主機的 3000 端口,就可以訪問到容器內運行在 8080 端口上的open-webui
應用。--add-host=host.docker.internal:host-gateway
:此參數用于向容器內的/etc/hosts
文件中添加一條主機映射記錄,將host.docker.internal
映射到host-gateway
。這在容器需要與主機進行通信時非常有用,特別是在一些特殊網絡環境下,使得容器能夠通過host.docker.internal
這個域名訪問到主機。-v D:devopen-webui:/app/backend/data
:這是卷掛載(volume mount)參數,將主機上的D:devopen-webui
目錄掛載到容器內的/app/backend/data
目錄。這意味著主機和容器可以共享這個目錄下的文件,主機目錄中的任何更改都會實時反映到容器內,反之亦然。常用于數據持久化或在容器和主機之間傳遞數據。--name open-webui
:為運行的容器指定一個名稱為open-webui
,方便后續對容器進行管理和操作,例如使用docker stop open-webui
停止容器,或docker start open-webui
啟動容器。--restart always
:表示無論容器因為何種原因停止,Docker 都會自動嘗試重新啟動它,確保容器始終處于運行狀態。ghcr.io/open-webui/open-webui:main
:這是容器所使用的鏡像名稱和標簽,指定從 GitHub Container Registry(ghcr.io
)上拉取open-webui/open-webui
鏡像的main
版本。如果本地沒有該鏡像,Docker 會自動從指定的鏡像倉庫下載。
啟動ollama容器
? ?1.使用該命令啟動CPU版運行本地AI模型
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
? ? 2.此命令用于啟動GPU版本運行AI模型
前提是筆記本已配置NVIDIA的GPU驅動,可在shell中輸入nvidia-smi查看詳細情況
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
????
然后就可以訪問docker中給出的open webui的地址啟動web界面,選擇好模型就可以進行問答對話了,恭喜你擁有了自己的AI小助手!
四、這種配置方式的優勢
(一)快速部署
ollama 和 docker 的結合,大大縮短了 deepseek - r1 的部署時間。通過簡單的命令行操作,即可完成模型的獲取和容器的創建,相比傳統的手動配置方式,效率得到了極大提升。
(二)環境隔離
docker 的容器化技術實現了環境的隔離,使得 deepseek - r1 在獨立的環境中運行,不會受到本地系統其他軟件的干擾。同時,也方便對模型進行版本管理和維護,當需要更新或切換模型版本時,只需要重新創建或更新容器即可。
(三)易于擴展
在后續的應用中,如果需要增加模型的計算資源,或者部署多個 deepseek - r1 實例,可以輕松地通過 docker 的集群管理功能進行擴展。ollama 也能夠方便地管理多個模型之間的協同工作,滿足不同業務場景的需求。
五、可能遇到的問題及解決方法
(一)網絡問題
在下載模型或容器通信過程中,可能會遇到網絡不穩定的情況。解決方法是檢查網絡連接,嘗試更換網絡環境或使用代理服務器。同時,ollama 和 docker 都提供了相關的網絡配置選項,可以根據實際情況進行調整。
(二)資源沖突
當本地系統中已經運行了其他占用端口或資源的服務時,可能會與 deepseek - r1 容器產生沖突。可以通過修改容器的端口映射或調整本地服務的配置,來避免資源沖突。
利用 ollama 和 docker 配置 deepseek - r1 實現 DeepSeek 本機部署,為我們提供了一種高效、便捷且穩定的部署方式。隨著人工智能技術的不斷發展,這種基于容器化和模型管理工具的部署方法,將在更多的應用場景中發揮重要作用,推動大語言模型技術在本地開發和應用中的普及。