宝贝腿开大点我添添你视频男男,中文字幕熟女人妻av一区二区三区,爱色成人网,大地资源高清播放在线观看在线电影在线观看 ,777米奇影视第四色

集團(tuán)站切換校區(qū)

驗(yàn)證碼已發(fā)送,請查收短信

復(fù)制成功
微信號:togogoi
添加微信好友, 詳細(xì)了解課程
已復(fù)制成功,如果自動跳轉(zhuǎn)微信失敗,請前往微信添加好友
打開微信
圖標(biāo)

業(yè)界新聞

當(dāng)前位置:首頁 > >業(yè)界新聞 > >

昇騰DeepSeek模型部署優(yōu)秀實(shí)踐及FAQ

發(fā)布時(shí)間: 2025-02-20 13:59:58

2024年12月26日,DeepSeek-V3橫空出世,以其卓越性能備受矚目。該模型發(fā)布即支持昇騰,用戶可在昇騰硬件和MindIE推理引擎上實(shí)現(xiàn)高效推理,但在實(shí)際操作中,部署流程與常見問題困擾著不少開發(fā)者。本文將為你詳細(xì)闡述昇騰 DeepSeek 模型部署的優(yōu)秀實(shí)踐,同時(shí)解答常見問題。

DeepSeek在昇騰上的模型部署優(yōu)秀實(shí)踐


01硬件要求及組網(wǎng)

推薦參考配置如下,部署DeepSeek-V3/R1量化模型至少需要多節(jié)點(diǎn)Atlas 800I A2(8*64G)服務(wù)器。本方案以DeepSeek-R1為主進(jìn)行介紹,DeepSeek-V3與R1的模型結(jié)構(gòu)和參數(shù)量一致,部署方式與R1相同。



02運(yùn)行環(huán)境準(zhǔn)備

推薦使用鏡像部署


1、鏡像部署

昇騰官方在Ascend hub提供環(huán)境示例鏡像,含推理部署配套軟件以及模型運(yùn)行腳本,用戶可參考構(gòu)建運(yùn)行環(huán)境鏡像進(jìn)行部署。


鏡像部署及啟動參照ModelZoo指南中“加載鏡像”章節(jié),該指南中還包含“容器啟動”等指引

https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/DeepSeek/DeepSeek-R1#%E5%8A%A0%E8%BD%BD%E9%95%9C%E5%83%8F


鏡像申請/下載(含于上述指南):

https://www.hiascend.com/developer/ascendhub/detail/af85b724a7e5469ebd7ea13c3439d48f




2、裸機(jī)部署


根據(jù)昇騰社區(qū)發(fā)布的MindIE安裝指南安裝軟件包和運(yùn)行依賴軟件。

安裝指南:

根據(jù)指南安裝全部軟件包和環(huán)境

https://www.hiascend.com/document/detail/zh/mindie/100/envdeployment/instg/mindie_instg_0001.html


模型獲?。?br>
https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/DeepSeek/DeepSeek-R1#1-%E5%87%86%E5%A4%87%E6%A8%A1%E5%9E%8B


03權(quán)重文件準(zhǔn)備

BF16權(quán)重下載:

1、HuggingFace:https://huggingface.co/unsloth/DeepSeek-V3-bf16/

2、ModelScope:https://modelscope.cn/models/unsloth/DeepSeek-V3-bf16/

3、Modelers:https://modelers.cn/models/State_Cloud/DeepSeek-V3-BF16


INT8量化后權(quán)重下載:https://modelers.cn/models/State_Cloud/DeepSeek-R1-W8A8/tree/main


如已下載BF16模型,也可采用以下步驟進(jìn)行模型量化,權(quán)重BF16->INT8轉(zhuǎn)換預(yù)計(jì)7~8小時(shí)。


Step1:安裝ModelSlim
git clone https://gitee.com/ascend/msit.git
cd msit/msmodelslim
bash install.sh
Step2: 運(yùn)行量化命令
cd msit/msmodelslim/example/DeepSeek/
python3 quant_deepseek_w8a8.py \
                --model_path {浮點(diǎn)權(quán)重路徑} \
                --save_path {W8A8量化權(quán)重路徑}


更多詳細(xì)量化教程請參考 DeepSeek 量化文檔( https://gitee.com/ascend/msit/tree/br_noncom_MindStudio_8.0.0_POC_20251231/msmodelslim/example/DeepSeek)


Msmodelslim 代碼倉:https://gitee.com/ascend/msit/tree/br_noncom_MindStudio_8.0.0_POC_20251231/msmodelslim


04運(yùn)行前檢查

服務(wù)器檢查:https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/DeepSeek/DeepSeek-R1#%E5%89%8D%E7%BD%AE%E5%87%86%E5%A4%87


軟件版本配套檢查,含:HDK、CANN、PTA、MindIE、MindStudio


1、檢查組網(wǎng)鏈接狀態(tài)

a)    檢查物理鏈接
for i in {0..7}; do hccn_tool -i $i -lldp -g | grep Ifname; done

b)    檢查鏈接情況
for i in {0..7}; do hccn_tool -i $i -link -g ; done

c)     檢查網(wǎng)絡(luò)健康情況

for i in {0..7}; do hccn_tool -i $i -net_health -g ; done

d)    查看偵測ip的配置是否正確

for i in {0..7}; do hccn_tool -i $i -netdetect -g ; done

e)    查看網(wǎng)關(guān)是否配置正確

for i in {0..7}; do hccn_tool -i $i -gateway -g ; done

f)     檢查NPU底層tls校驗(yàn)行為一致性,建議全0

for i in {0..7}; do hccn_tool -i $i -tls -g ; done | grep switch

g)    # NPU底層tls校驗(yàn)行為置0操作

for i in {0..7};do hccn_tool -i $i -tls -s enable 0;done

2、根據(jù)組網(wǎng)設(shè)置準(zhǔn)備rank_table_file.json

使用多節(jié)點(diǎn)推理時(shí),需要將包含設(shè)備ip,服務(wù)器ip等信息的json文件地址傳遞給底層通信算子。參考如下格式,配置rank_table_file.json:



05模型部署與配置

獨(dú)立模型:

https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/DeepSeek/DeepSeek-R1#%E7%BA%AF%E6%A8%A1%E5%9E%8B%E6%B5%8B%E8%AF%95


服務(wù)化部署:

1、運(yùn)行指南

https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/DeepSeek/DeepSeek-R1#%E6%9C%8D%E5%8A%A1%E5%8C%96%E6%B5%8B%E8%AF%95


2、服務(wù)啟動

https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0004.html


3、接口指引

https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0062.html


06模型運(yùn)行

1、純模型測試

模型腳本已預(yù)制在鏡像中,參照以下鏈接即可拉起精度測試及模型測試

https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/DeepSeek/DeepSeek-R1#%E7%BA%AF%E6%A8%A1%E5%9E%8B%E6%B5%8B%E8%AF%95




2、服務(wù)化測試

1、運(yùn)行指南

https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/DeepSeek/DeepSeek-R1#%E6%9C%8D%E5%8A%A1%E5%8C%96%E6%B5%8B%E8%AF%95


2、服務(wù)啟動

https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0004.html


3、常用接口指引

https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0062.html



常見問題及解決方案



01通信錯(cuò)誤:Hccl execute failed


問題現(xiàn)象:


日志顯示卡(IP地址10.0.3.9)與卡(IP地址10.0.3.17)之間connection fail


查看日志發(fā)現(xiàn)出現(xiàn)hccl通信失敗相關(guān)日志內(nèi)容:

解決方案:


(1)問題定位前需要先開啟日志生成環(huán)境變量:




算子庫&加速庫&模型庫日志保存路徑:/root/atb/log


CANN日志保存路徑:/root/ascend/log/debug/plog


(2)通過hccn_tool 工具進(jìn)行連通性檢測,發(fā)現(xiàn)出現(xiàn)鏈路down,修復(fù)鏈路down的問題后,通信失敗問題解決。



02通信錯(cuò)誤:Hccl通信超時(shí)

可配置以下環(huán)境變量,增大超時(shí)等待時(shí)間。





03顯存不足:NPU out of memory

問題現(xiàn)象:


在服務(wù)化拉起過程中,出現(xiàn)NPU out of memory報(bào)錯(cuò)。

?

解決方案:

適當(dāng)調(diào)高NPU_MEMORY_FRACTION環(huán)境變量(默認(rèn)值為0.8),適當(dāng)調(diào)低mindie-service服務(wù)化配置文件config.json中maxSeqLen、maxInputTokenLen、maxPrefillBatchSize、maxPrefillTokens、maxBatchSize等參數(shù)。






04推理卡頓:模型加載時(shí)間長,可能達(dá)到2H及以上



問題現(xiàn)象:

模型部署過程中,推理前的模型加載時(shí)間過長,部分極端情況需要等待>2H。



可能原因:

1)用戶場景內(nèi)存不足導(dǎo)致swap介入;

2)首次加載權(quán)重,權(quán)重存儲硬件的傳輸速率慢,傳統(tǒng)的HDD或低速SSD或網(wǎng)絡(luò)存儲方式存在I/O瓶頸;

3)框架權(quán)重加載使用單線程加載;



解決方案:

1)更換NVMe SSD高速存儲硬件;

2)使用內(nèi)存映射文件mmap加載權(quán)重,例如:

Weights = torch.load(“model.bin”,mmap=True);

3)使用并行加載的方式,將權(quán)重按層或模塊拆分為多個(gè)文件,可google教程

4)減少多線程開銷,設(shè)置以下環(huán)境變量

 export OMP_NUM_THREADS=1

5)預(yù)熱加載,提前預(yù)加載模型權(quán)重到內(nèi)存



05推理卡頓:純模型/服務(wù)化拉起卡住、停止




問題現(xiàn)象:

如果free -h中的free內(nèi)存小于權(quán)重大小 / 機(jī)器數(shù),純模型拉起會卡死,過一段時(shí)間后進(jìn)程被殺。

根據(jù)經(jīng)驗(yàn),可以確保一下free_mem >= (權(quán)重大小 / 機(jī)器數(shù)) * 1.3 (該計(jì)算方式待驗(yàn)證,但需要確保內(nèi)存足夠)

解決方案:重啟/釋放緩存。

推薦使用釋放緩存的方式,可以在容器內(nèi)運(yùn)行以下指令:

sync; echo 3 > /proc/sys/vm/drop_caches

注意,每次跑完模型,請檢查一下機(jī)器的host側(cè)內(nèi)存占用。



06推理卡頓:首Curl請求卡死


問題現(xiàn)象:在服務(wù)化成功啟動后出現(xiàn)首次curl請求發(fā)送后,無返回的現(xiàn)象;或者服務(wù)化拉起卡死的現(xiàn)象。

可能原因:多節(jié)點(diǎn)的服務(wù)化config.json有區(qū)別,或是除了需要寫本機(jī)信息外的環(huán)境變量不一樣。


1、例如,A、B兩個(gè)8卡節(jié)點(diǎn)的服務(wù)化配置文件中,A配置了interNodeTLSEnabled=true,B配置了interNodeTLSEnbal=false。


2、容器A的環(huán)境變量中未設(shè)置確定性計(jì)算相關(guān)環(huán)境變量,容器B的環(huán)境變量中卻有確定性計(jì)算相關(guān)的環(huán)境變量。盡管執(zhí)行推理請求的節(jié)點(diǎn)確定性計(jì)算相關(guān)的環(huán)境變量是關(guān)閉狀態(tài),仍可能影響推理卡住。


# 確定性計(jì)算環(huán)境變量

export   HCCL_DETERMINISTIC=false



所以,請一定要一一核對好每個(gè)8卡容器內(nèi)的環(huán)境變量是一樣的,服務(wù)化的config.json也需是一樣的。




07推理卡頓:大流量下curl請求超時(shí)


問題現(xiàn)象:服務(wù)啟動后,在大流量下會出現(xiàn)掛死,具體表現(xiàn)為Curl請求超時(shí),Aicore利用率為0:



所有卡利用率為0:



當(dāng)前識別為重計(jì)算觸發(fā)的問題,可通過修改mindieservice的config文件進(jìn)行臨時(shí)規(guī)避。

要求maxseqen與maxprefilltoken參數(shù)配置為相同大小。

當(dāng)前識別為重計(jì)算觸發(fā)的問題,可通過修改mindieservice的config文件進(jìn)行臨時(shí)規(guī)避。

要求maxseqen與maxprefilltoken參數(shù)配置為相同大小。





08配置問題:服務(wù)化benchmark初始化失敗


需正確配置Ranktable:  export RANKTABLEFILE=/Path/To/ranktable[X].json



09配置問題:Ranktable中的server id和container ip填寫


ranktable中的server id和container ip均填寫成主機(jī)IP,前提是起容器時(shí)需要設(shè)置成host模式:docker run --network host <image_name>,含義就是容器的ip地址=主機(jī)的ip地址,注意容器開放的端口不要和主機(jī)沖突。





10日志采集:純模型Profiling 采集

當(dāng)前 MindIE atb-models 中已經(jīng)內(nèi)置了 Profiling 采集邏輯,核心代碼在 atb-models/examples/run_pa.py 的 PARunner 中。我們可以通過以下環(huán)境變量對 Profiling 采集進(jìn)行控制:



執(zhí)行采集時(shí),只需要配置環(huán)境變量,在modeltest下拉起性能測試,即可獲取到 Profiling 數(shù)據(jù)。若需采集的卡數(shù)大于8,則需要在每個(gè)節(jié)點(diǎn)上同時(shí)開啟以下環(huán)境變量:



開啟環(huán)境變量后,參照性能測試,指令如下(可自行修改指令):




采集完成后,核心數(shù)據(jù)解析到$PROFILING_FILEPATH /ASCEND_PROFILER_OUTPUT 路徑下。



11日志采集:通用方法


遇到推理報(bào)錯(cuò)時(shí),請打開日志環(huán)境變量,收集日志信息。





12Tokenizer 報(bào)錯(cuò)



MindIE 報(bào) XXX 錯(cuò)誤,有一定誤導(dǎo)性。實(shí)際上只要是 transformers 加載 tokenizer 報(bào)錯(cuò),MindIE 會捕獲所有錯(cuò)誤,直接退出,并且不會顯示真正錯(cuò)誤原因。通常,transformers 加載 tokenizer 常見錯(cuò)誤以及對應(yīng)排查方法有:


1、詞表文件損壞


檢查tokenizer.json 文件完整性,V3 和 R1 的詞表不一樣。


推薦使用 ModelScope 由 Unsloth 維護(hù)的 bf16 版本





2、transformers / tokenizer 版本不匹配


確認(rèn) transformers、tokenizer 版本:查看模型權(quán)重路徑下的 config.json 中,transformers版本號。注意:不同的原權(quán)重由于fp8轉(zhuǎn)bf16時(shí)的transformers版本不同,可能會有不同的transformers 配套,請以機(jī)器上的deepseek官方權(quán)重中的config.json中的transformers版本為準(zhǔn))




若懷疑Tokenizer的問題,可以使用以下Tokenizer 校驗(yàn)方法,創(chuàng)建一個(gè) python 腳本,如果運(yùn)行成功,則 tokenizer 加載無問題。若報(bào)錯(cuò),請按照上述方法檢查。





13性能問題:推理性能不符合預(yù)期



首先,請確保使能AIV,關(guān)閉確定性計(jì)算。




其次,DeepSeek-R1 官方推薦服務(wù)化請求遵循以下配置,以達(dá)到預(yù)期性能:


將溫度設(shè)置在0.5-0.7 范圍內(nèi)(推薦0.6),以防止出現(xiàn)無休止的重復(fù)或不連貫的輸出。

避免添加 System Prompt;所有指令應(yīng)包含在 User Prompt 中。 

對于數(shù)學(xué)問題,建議在提示中加入以下指令:“請逐步推理,并將最終答案放在\boxed{}內(nèi)?!?br>
在評估模型性能時(shí),建議進(jìn)行多次測試并取平均結(jié)果。

若遇到精度問題,請確保使用openai接口。



此外,DeepSeek-R1系統(tǒng)模型在回答某些問題時(shí)傾向于繞過思考模式(即不輸出“<think>\n\n</think>”),這可能會影響模型的表現(xiàn)。為了確保模型進(jìn)行正確的推理,建議強(qiáng)制模型在每次輸出的開頭使用“<think>\n”。



14權(quán)重路徑和權(quán)限問題



問題描述:

在服務(wù)化拉起過程中出現(xiàn)權(quán)重路徑不可用或者權(quán)重文件夾權(quán)限問題。



解決方案:

注意保證權(quán)重路徑是可用的,執(zhí)行以下命令修改權(quán)限,注意是整個(gè)父級目錄的權(quán)限:




15 16卡及以上配置推理測試類問題



1、16卡及以上配置推理測試類問題

問題描述:

多節(jié)點(diǎn)參與的推理超過兩小時(shí)不通信會超時(shí),從而服務(wù)化報(bào)錯(cuò)。



解決方案:

當(dāng)前版本可以寫一個(gè)每小時(shí)調(diào)用健康監(jiān)控接口的腳本,進(jìn)行服務(wù)化?;?。服務(wù)化監(jiān)控探測接口參考MindIE官方文檔:https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0102.html


2、權(quán)重加載過程中/加載完成后卡死


遇到多節(jié)點(diǎn)推理拉起問題可以用一個(gè)輕量化的腳本嘗試快速定位一下,卡死是否是由于節(jié)點(diǎn)間通信算子導(dǎo)致的(以AllReduce為例)。


首先需要在每個(gè)節(jié)點(diǎn)上(推理容器內(nèi))創(chuàng)建三個(gè)文件,分別是 hostfile, test_allreduce.sh, test_allreduce.py




如果該指令能成功跑通且有回顯,則hccl出現(xiàn)問題的幾率較小,可以定位范圍縮小到模型加載的問題上(本方法為簡易HCCL聯(lián)通驗(yàn)證,HCCL連通完全校驗(yàn)請使用 hccl test 工具)。



如果該指令在計(jì)算過程中卡住,則hccl出現(xiàn)問題的幾率較大,可以再容器外再次嘗試該驗(yàn)證方法。若在容器外也無法驗(yàn)通,可以按照1.4.1章節(jié)對機(jī)器進(jìn)行前置準(zhǔn)備,再進(jìn)行容器外、容器內(nèi)的連通驗(yàn)證。



如果該指令直接拉起失敗,檢查腳本是否有寫錯(cuò)的地方,如sh腳本中各個(gè)參數(shù)。



3、Unicode Error


問題描述:

出現(xiàn)UnicodeEncodeError: 'ascii' codec can't encode character \uff5c in position 301:ordinal not in range(128) 報(bào)錯(cuò)。


解決方案:

這是因?yàn)橛捎谙到y(tǒng)在寫入或打印日志ASCII編碼deepseek的詞表失敗,導(dǎo)致報(bào)錯(cuò),不影響服務(wù)化正常運(yùn)行。如果需要規(guī)避,需要將/usr/local/Ascend/atb-models/atb_llm/runner/model_runner.py的第145行注釋掉:




4、Not set valid RANKTABLEFILE報(bào)錯(cuò)


問題描述:



在執(zhí)行服務(wù)化benchmark測試時(shí),報(bào)錯(cuò) not set valid RANKTABLEFILE。





解決方案:


需在每臺機(jī)器上正確配置RANKTABLEFILE文件路徑的環(huán)境變量:





“若存在本期FAQ未涵蓋的部署問題,可以到昇騰社區(qū)(https://www.hiascend.com/forum/)反饋,版本將持續(xù)優(yōu)化,并且后續(xù)會持續(xù)更新FAQ”。

上一篇: 3 月 1 日 TiDB 社區(qū)活動在深圳!一起聊聊大規(guī)模 TiDB 國產(chǎn)化替代在金融、跨境電商等行業(yè)的最新實(shí)踐!

下一篇: 華為OpenEuler系統(tǒng)引領(lǐng)中國操作系統(tǒng)崛起

在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優(yōu)質(zhì)服務(wù)!