今年春節期間,科技圈最火的一個名詞出現了,它就是「DeepSeek」,這個橫空出世的開源大語言模型(LLM)讓人工智能以網絡熱門級的速度進入了億萬普通用戶的視野,更多的用戶知道了大模型,也開始使用大模型。但正如 DeepSeek 火了之后其在線服務包括手機和 APP 和網頁端,經常出現服務器繁忙、等待的情況,這就是云端部署的缺點,往往伴隨著排隊、延遲、隱私和安全等問題。
因此本地部署大語言模型就成為許多用戶的新需求,與云端相比,本地部署 LLM 模型不僅不用排隊就可以實現即時推理,同時還有更好的穩定性和安全性,降低數據泄露和服務器故障的風險,一些不方便上傳云端的機密內容也可以在本地離線處理,確保用戶隱私。
(DeepSeek R1 模型提供從 1.5b 到 671b 多個參數量版本)
但本地部署對于硬件還是有一定要求的,尤其是 GPU 算力,大家都知道顯存越大、算力越高,本地推理就會越快,但是想要獲得更完整的推理效果,7B 參數的大模型是不夠用的,14B、32B 甚至更大的 70B 模型才是必選項,而大顯存的顯卡價格不菲,除卻昂貴的企業級產品,即使是消費級的大顯存顯卡也是普通用戶難以承受的,以 24GB 顯存的 RTX 4090 顯卡為例,現在的價格也在一萬七千元左右,部署成本相當之高。
本文將介紹如何使用一萬元的預算來實現 32GB 顯存的本地 DeepSeek R1 大模型部署。其中顯卡部分使用兩塊英特爾銳炫 A770 16GB 顯卡組成,成本不到四千元,價格相當親民,可以有效控制預算。通過使用 IPEX-LLM 在 Ubuntu 操作系統下部署 32B 參數的 DeepSeek R1 大模型,實現高效的本地推理,實測生成階段的 Avg Generation Throughput 可以穩定在 26 tokens/s 以上。無論是在上下文生成還是代碼生成實例中,都表現出了極強的效率,并且整套系統的功耗控制在 800 瓦以下。
我們使用讓 DeepSeek 模型生成貪吃蛇游戲代碼的 prompt 來測試整個推理效率,完全在本地運行。
輸入 Prompt 為:
【請用 html 寫個貪吃蛇游戲的代碼,需要包含以下功能:
1. 使用鍵盤上的上下左右箭頭鍵控制蛇的移動方向
2. 蛇會自動向前移動,并在吃到紅色的食物時增長并增加得分
3. 當蛇碰到墻壁或自己時,游戲結束并顯示得分
4. 點擊重新開始按鈕可以重置游戲并重新開始
游戲規則:
·蛇不能碰到墻壁或自己,否則游戲結束
·每吃一個食物,得分增加 10 分
·食物不會出現在蛇的身體上】
在經過大約 15 秒鐘的推理過程之后,DeepSeek 模型即開始輸出代碼,全部輸出完成耗時僅 1 分鐘。特別是,通過使用 Open WebUI 圖形界面交互時,在代碼完成后,還可以出現一個預覽窗口,這是我們可以使用鍵盤方向鍵控制蛇的移動,吃掉食物獲得分數,當蛇撞到墻壁或自己時,游戲結束。所見即所得,編程從未如此簡單。
(貪吃蛇代碼調整演示)
如果代碼有哪里不滿意,我們還可以繼續通過指令讓 DeepSeek 進行調整,例如第一次生成的代碼,蛇的移動速度太快,調整之后蛇的移動時間間隔增加到了 200 毫秒,這時玩起來就容易多了??傊?,在離線部署的 DeepSeek 下,你可以隨意提出自己的要求,實現工作效率的提升。
我們還嘗試了文本內容生成,在約 3000 漢字的文章生成測試中,后臺顯示 Prefill 階段的吞吐最高可以達 28 .1 tokens/s, 生成階段平均輸出速度約為 25 tokens/s。我們以一個中文字符 0.6 個 token 算,生成速度大概為每秒鐘 20 個漢字,按人類平均每分鐘 700 字的閱讀速度來看,這套本地部署的 DeepSeek R1 模型生成速度已經大幅超越正常人類閱讀速度,十分的高效。
本次部署過程使用硬件平臺配置一覽:
關于具體的軟硬件部署有一些值得注意的地方,首先是硬件部分。我們搭配了英特爾酷睿 Ultra 9 285K 處理器與 Z890 主板,作為目前 Intel 桌面平臺的旗艦型號,其實是用不到這么高的配置的,因為大模型完全跑在 GPU 上,對于處理器的負載反倒不高,如果你選擇酷睿 Ultra 7 處理器或者 Ultra 5 處理器也是沒問題的。而之所以選擇 Z890 主板是由于需要至少兩個 PCIE 顯卡插槽,并且如果想要發揮出顯卡的全部帶寬優勢,選擇支持兩條 x8 通道拆分的主板會更好。同時如果你要是使用封閉機箱,還要考慮到顯卡干涉的問題。
內存方面,最好選擇大容量高速內存,以提升模型的加載和調用效率。我們使用的 24GB*2 CUDIMM 內存效率還不錯,只不過 CUDIMM 內存由于 CKD 原因現在價格較貴,并且主要針對超頻有利,因此使用普通的 8000 MT/s DDR5 內存也是沒問題的。因此如果進一步調整配置,是能做到整體硬件開銷在萬元之內的,相比單 24GB/32GB 顯存顯卡的方案那可是太實惠了。
值得注意的是電源,因為需要同時接入兩塊 A770 顯卡(此次使用的一塊 A770 還是來自藍戟的超頻版本),單卡 TGP 約在 200 瓦左右,加上我們使用的是 Ultra 9 處理器,因此選擇了鑫谷的 GM1250 瓦電源,更主要的原因是其支持 4 個 PCIe 8Pin 供電接口,能夠滿足兩塊 A770 雙 8+6pin 的供電需求。
至于操作系統,其實在 Windows 系統下也能實現雙銳炫 A770 顯卡的部署,只不過由于操作系統差異和機器學習架構的效率不同,其運行效率不如在 Linux 系統下更快。因此我們使用 Ubuntu 22.04 系統,這個版本已經由英特爾官方提供來了驅動適配和支持,兼容性很好。當然,如果你使用其它版本的 Linux 系統,可以參看 intel 官方支持頁面進行操作。
關于 DeepSeek 模型的部署,我們使用了采用 Q4 量化的 DeepSeek R1-32B 版本模型,可以在 huggingface 或者魔塔社區等進行下載。同時為了方便查看后臺運行情況,我們還使用了 Open WebUI 圖形界面來進行演示和檢測。
不過值得注意的是,由于我們使用了其中一塊銳炫 A770 顯卡的 DP 接口進行輸出,理論上會對顯卡運行大模型的效率產生一點影響,如果你采用局域網方式訪問后端,能夠讓兩塊銳炫 A770 完全集中到大模型的負載上,這點需要說明。
通過這套本地部署的方式,我們將兩張英特爾 A770 顯卡的顯存疊加使用,實現了 32B 參數 DeepSeek R1 大型模型的離線運行,并且實測運行效率很高,可以很方便地實現高效的推理和豐富的功能,如果你也有類似需求可以嘗試搭建自己的大模型服務器。