張镈麟:DeepSeek模型服務化部署的工程實踐與技術優化
背景
近年來,隨著人工智能技術的飛速發展,大型語言模型在醫療領域展現出巨大潛力。特別是在這一背景下,由深度求索公司開發的智能對話系統DeepSeek憑借其強大的高效推理能力和多輪對話交互特性,在眾多AI模型中脫穎而出。目前多家國內知名醫療機構已開展DeepSeek模型的部署工作,并通過專業期刊發布相關應用案例報告。這些權威醫療機構的實踐經驗表明,DeepSeek不僅能夠顯著提高醫療服務效率,還能為臨床決策提供有力支持,在智慧醫療建設中發揮重要作用。這一系列應用案例的成功實踐,充分證明了DeepSeek模型在醫療領域的獨特價值,標志著人工智能技術正在深刻改變現代醫療服務體系。
本文將從技術實現的角度出發,深入探討DeepSeek模型API部署過程中遇到的問題及其解決思路和實踐經驗,為醫療領域智能系統的開發與應用提供有價值的參考。
調研
在前期調研中,清華大學附屬北京清華長庚醫院(簡稱“北京清華長庚醫院”)發現網絡上存在大量關于DeepSeek模型的部署文檔和指南,但這些資料主要集中在使用層面,缺乏針對具體環境的深度指導。因此,醫院決定從零開始,逐步構建完整的系統架構。
硬件和系統環境
在進行DeepSeek模型的本地化部署過程中,硬件環境的選擇至關重要。目前北京清華長庚醫院所使用的是一臺配備8張80G GPU顯卡的專業服務器。該顯卡憑借其高計算性能和大顯存容量,在處理大規模語言模型時具有顯著優勢。
關于操作系統選型,北京清華長庚醫院推薦使用前一個 LTS 版本的系統進行部署。因為最新發布的 LTS 版本系統的穩定性、驅動兼容性以及軟件生態仍有待市場進一步驗證。因此,北京清華長庚醫院采取了穩妥的策略,選擇了經過充分測試的前一個 LTS 版本作為底層操作系統。
在系統部署過程中,醫院采用了Docker容器化技術為上層服務提供運行環境。這種方案不僅能夠實現資源的有效隔離,還能通過容器編排快速擴展服務規模,將推理服務、API網關服務、驅動、用戶交互界面等不同功能組件分別打包成獨立容器,在提升系統可維護性的同時,也為后續的功能擴展預留了充足的空間。
顯卡驅動
在DeepSeek模型的部署過程中,安裝顯卡驅動是一個關鍵步驟。目前,較為常見的做法是從英偉達官方網站下載離線驅動包,并通過該安裝包進行驅動的部署。然而,這一方案存在一個顯著的問題:顯卡驅動與操作系統內核版本之間具有嚴格的綁定關系。一旦操作系統更新了內核版本,原有的顯卡驅動可能會出現兼容性問題,導致顯卡無法正常工作,從而影響到依賴顯卡計算的任務運行。
針對上述問題,北京清華長庚醫院使用了一種新的驅動部署方案,架構圖如上。具體來說,醫院將顯卡硬件通過設備直通的方式直接掛載到顯卡驅動容器,并在該容器內部完成顯卡驅動的安裝與配置。然后,醫院將此顯卡驅動容器設置為隨系統自動啟動。這樣一來,只要該顯卡驅動容器能夠正常運行,即使操作系統內核進行小幅度更新,也不會導致顯卡驅動出現兼容性問題或丟失的情況。
這一方案不僅解決了傳統顯卡驅動部署方式中存在的穩定性隱患,還顯著提升了系統的整體可靠性。通過將顯卡驅動的安裝與管理限制在特定容器環境中,北京清華長庚醫院實現了對系統底層環境的高度隔離,從而避免了因操作系統更新所帶來的潛在風險。這種做法為后續深度學習模型的穩定運行提供了有力的技術保障。
推理框架選擇
北京清華長庚醫院選擇Docker容器化技術作為部署Ollama實例的基礎方案,通過構建標準化的容器環境為后續應用程序提供穩定可靠的API服務支持。同時,在前端交互層面引入了OpenWebUI作為用戶界面組件,確保用戶能夠便捷地體驗DeepSeek模型的強大推理能力。
在這一過程中,北京清華長庚醫院重點研究了模型的加載、資源分配以及服務穩定性等問題。盡管這條技術路線具有技術門檻較低、部署快速的特點,但在實際運行中,醫院發現以下問題需解決:
1.模型自動卸載
Ollama會在空閑狀態下自動卸載已加載的模型,導致用戶下次提問時需要較長時間重新加載。
2.并發性能受限
雖然支持多請求并發處理,但默認情況下每個模型僅綁定單張顯卡進行計算,無法充分利用多GPU資源實現負載均衡。
3.服務中斷風險
由于缺乏高可用性機制,Ollama服務重啟會導致API短暫不可用。
4.安全漏洞隱患
無認證機制限制,所有請求均會被響應,存在潛在的安全風險。
參數調優
在正式部署過程中,北京清華長庚醫院針對上述問題提出了以下優化方案,架構圖如上:
1.模型自動卸載
在Ollama容器啟動時添加了環境變量"OLLAMA_KEEP_ALIVE=-1",確保模型常駐內存,避免模型被自動卸載,從而減少用戶等待時間。
2.并發性能優化與服務高可用
■ 啟動8個Ollama容器實例,每個實例分配1張顯卡,并將每個容器的~/.ollama目錄掛載到服務器上的同一路徑,確保所有實例共享一致的模型文件。
■ 在Docker中創建一個專用網絡(命名為ollama-backend),將所有Ollama容器實例接入該網絡以實現服務間通信。
■ 部署Traefik容器并將其加入ollama-backend網絡,利用其Service Auto-Discovery功能自動發現8個Ollama實例。通過配置Traefik的路由和服務規則,實現了前端API請求的負載均衡,充分利用多GPU資源提升并發處理能力,并確保服務高可用性。
3.安全增強
針對Ollama缺乏認證機制的問題,在Traefik的Ollama路由中集成了IP白名單中間件(middlewares),對入站流量進行嚴格過濾,僅允許來自授權IP地址的請求通過,有效降低了潛在的安全風險。
模型選擇
基于現有計算GPU資源,為提升任務處理的并發能力,北京清華長庚醫院按照如下策略進行GPU資源分配。分別在8個單GPU實例上部署了DeepSeek-R1-Distill-Qwen-32B模型,以最大化處理任務的并行性;同時,啟動一個配備8張GPU卡的容器實例,用于運行更大規模的671B模型以及其他所需模型,以支持復雜的臨床科研任務和高效的數據處理需求。
展望
1.推理框架替換
除了當前使用的Ollama框架外,北京清華長庚醫院還對其他主流推理框架進行了調研。發現VLLM框架在推理并發性能上表現尤為突出,最高可達到Ollama的24倍。在未來的工作中,醫院會將現有Ollama框架逐步遷移至VLLM框架,以提升整體處理效率和服務能力。
2.多機多卡集群部署
當前系統采用的是單機多卡部署方式,雖然能夠充分利用本地資源,但隨著請求量的增加,這種模式在擴展性和可用性上將面臨瓶頸。目前,清華長庚醫院調研了較為成熟的解決方案Ray + VLLM的組合。該方案通過Ray的任務調度框架和VLLM的高效推理能力相結合,能夠實現多機多卡的分布式部署,從而進一步提升系統的吞吐量和穩定性。
結束語
通過本次DeepSeek模型的API部署實踐,北京清華長庚醫院成功構建了一套兼顧性能與穩定性的智能服務系統。在硬件環境配置、驅動管理、容器編排等關鍵環節的創新性解決方案,有效克服了模型服務化過程中的技術障礙。特別是采用容器化隔離策略與多實例負載均衡架構,實現了GPU資源的優化利用,為醫療機構的實時交互場景提供了可靠的技術支撐。
展望未來,隨著VLLM推理框架的引入和Ray分布式計算集群的構建,系統將向更高性能、更強擴展性的方向持續演進。北京清華長庚醫院期待通過技術創新與工程實踐的深度融合,推動人工智能技術在醫療領域的價值釋放,為構建更智能、更高效的醫療服務體系注入持續動力。
作者簡介
張镈麟,北京清華長庚醫院信息管理部工程師,CCIE認證資深網絡工程師,擁有8年全棧開發及IT架構設計經驗。主導完成二大核心項目:1)醫療科研系統容器化轉型方案制定與落地(基于Kubernetes+Docker技術棧);2)構建多機多卡GPU集群支撐DeepSeek大模型后端架構,加速AI技術在醫療場景的應用轉化。深耕網絡自動化領域,持有CCNP/CCNA認證,掌握Python/Flask/Vue全棧技術棧及Docker/K8s容器化體系,具備從網絡拓撲規劃到代碼實現的端到端實施能力,通過技術創新驅動醫療信息化系統效能提升。
上一篇: 醫療大模型從小事做起(五):知識庫
下一篇: 從瑞金經驗看醫療信息人的職業發展