大家好,我是 Ai 學(xué)習(xí)的老章
DeepSeek-OCR 開(kāi)源有段時(shí)間了,我曾詳細(xì)測(cè)試過(guò),也推薦過(guò)基于它的 web 端應(yīng)用:,還有一個(gè)桌面客戶端:
![]()
DeepSeek-OCR 官方項(xiàng)目 README:https://github.com/deepseek-ai/DeepSeek-OCR中有關(guān)于 vllm 0.8.5+cu118+transformers>=4.51.1 下進(jìn)行離線推理的詳細(xì)步驟,但是教程中在線推理部分 vLLM 還是 nightly 版本。我看網(wǎng)上大家根據(jù)官方文檔進(jìn)行部署,問(wèn)題多多。正好, 。
但是,vLLM 自 0.11.1 之后默認(rèn) CUDA 更新到了 12.9,我的 Linux 算力測(cè)試機(jī)還是 12.4,本文就介紹一下不重啟情況下,如何升級(jí) CUDA 和 vLLM@0.11.2,后面一篇文章再詳細(xì)介紹 DeepSeek-OCR 的部署和 API 使用。
CUDA 升級(jí) 第一步:下載 CUDA Toolkit runfile
目前 CUDA Toolkit 的最新版是 13.0,作為等等派,我還是先裝 12.9.1 吧
下載地址:https://developer.nvidia.com/cuda-12-9-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=RHEL&target_version=8&target_type=runfile_local
注意選擇符合自己操作系統(tǒng)、架構(gòu)、版本的安裝包,最后一項(xiàng)建議選 runfile(local)
![]()
CUDA Toolkit 的歷史版本,可以在這里找到:https://developer.nvidia.com/cuda-toolkit-archive
![]()
如果你的服務(wù)器是離線的,把下載好的 runfile 傳進(jìn)去即可
第二步:卸載舊版 CUDA
可以通過(guò)whereis nvcc查看自己 CUDA 的安裝位置,一般都是在/usr/local/目錄下
![]()
然后進(jìn)入到/usr/local/cuda-12.4/bin下,找到 cuda-uninstaller
![]()
直接運(yùn)行cuda-uninstaller,把下面三項(xiàng)選中后,光標(biāo)移至 Done 后按 Enter 進(jìn)行卸載
一般很快就 OK 了
![]()
第三步:安裝 CUDA Toolkit 12.9
進(jìn)入到第一步下載好的 runfile 目錄下
運(yùn)行sudo sh cuda_12.9.1_575.57.08_linux.run
然后選中以下幾項(xiàng),選中 Install 后 Enter
![]()
然后輸入 accept 后 Enter
![]()
無(wú)比順利情況下你會(huì)看到這個(gè)界面,這就約等于大功告成了
![]()
但是!不出意外的話,肯定會(huì)出意外了
問(wèn)題 1:nvidia-uvm
你的服務(wù)器如果還有大模型在跑或別的任何服務(wù)在使用算力,極有可能會(huì)收到安裝失敗的 erro
查看日志發(fā)現(xiàn)有一個(gè)叫 nvidia-uvm 的內(nèi)核正在使用
![]()
運(yùn)行fuser -v /dev/nvidia-uvm確實(shí)是我之前 Docker 啟動(dòng)的 xinfer、vllm 等在運(yùn)行模型
![]()
這里情況也能不一樣,就我這個(gè),測(cè)試發(fā)現(xiàn)要完全停掉 docker 僅此命令還不夠sudo systemctl stop docker
要徹底停止 Docker,需要同時(shí)停止服務(wù)和套接字
sudo systemctl stop docker.service docker.socket
然后停掉自啟
sudo systemctl disable docker.service docker.socket
完成升級(jí)后記得要 enable 一下
sudo systemctl enable docker.service docker.socket
問(wèn)題 2:nvidia-drm
再次升級(jí) CUDA,又失敗了,日志提示nvidia-drm already loaded
這里需要切換到純文本模式(關(guān)閉圖形界面)
執(zhí)行:sudo systemctl isolate multi-user.target
執(zhí)行后,等待幾秒鐘,讓圖形服務(wù)完全關(guān)閉。
然后再再次升級(jí) CUDA,就 OK 了
![]()
執(zhí)行nvidia-smi發(fā)現(xiàn) Driver 和 CUDA Version 都是新的了
![]()
執(zhí)行 nvcc -V 發(fā)現(xiàn)報(bào)錯(cuò),這是因?yàn)榄h(huán)境變量還沒(méi)修改
執(zhí)行vi ~/.bashrc把之前的 12.4 全部修改為 12.9
![]()
然后source ~/.bashrc使其生效
再次執(zhí)行nvcc -V發(fā)現(xiàn)已經(jīng) OK
![]()
vLLM 升級(jí)
有網(wǎng)環(huán)境可以 pip upgrade,不過(guò)我這是內(nèi)網(wǎng)服務(wù)器
所以用了 vLLM 的官方 Docker 鏡像
![]()
https://hub.docker.com/r/vllm/vllm-openai/tags
很簡(jiǎn)單,直接docker pull vllm/vllm-openai:v0.11.2拉取鏡像
然后docker save -o vllm012.tar vllm/vllm-openai:v0.11.2
把鏡像保存到本地后傳入內(nèi)網(wǎng)服務(wù)器即可
至此 vLLM 升級(jí)完成
部署 DeepSeek-OCR
后面就是用 VLLM 的 Docker 拉起 DeepSeek-OCR 了
![]()
測(cè)試很 OK,單卡 4090 很順暢,具體步驟就要下文了
![]()
老章薦書(shū)
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.