玩轉大語言模型——使用華為官方MindIE-Server鏡像方式部署DeepSeek模型

系列文章目錄

玩轉大語言模型——使用langchain和Ollama本地部署大語言模型
玩轉大語言模型——三分鐘教你用langchain+提示詞工程獲得貓娘女友
玩轉大語言模型——ollama導入huggingface下載的模型
玩轉大語言模型——langchain調用ollama視覺多模態語言模型
玩轉大語言模型——使用transformers中的pipeline調用huggingface中模型
玩轉大語言模型——transformers微調huggingface格式的中文Bert模型
玩轉大語言模型——使用GraphRAG+Ollama構建知識圖譜
玩轉大語言模型——完美解決GraphRAG構建的知識圖譜全為英文的問題
玩轉大語言模型——配置圖數據庫Neo4j(含apoc插件)并導入GraphRAG生成的知識圖譜
玩轉大語言模型——本地部署帶聊天界面deepseek R1的小白教程
玩轉大語言模型——本地部署deepseek R1和本地數據庫的小白教程(Ollama+AnythingLLM)
玩轉大語言模型——使用LM Studio在本地部署deepseek R1的零基礎)教程
玩轉大語言模型——Ubuntu系統環境下使用llama.cpp進行CPU與GPU混合推理deepseek
玩轉大語言模型——使用Kiln AI可視化環境進行大語言模型微調數據合成
玩轉大語言模型——昇騰NPU驅動固件以及CANN的安裝
玩轉大語言模型——在歐拉操作系統(國產Linux)使用華為官方MindIE-Server鏡像方式部署DeepSeek模型


文章目錄

  • 系列文章目錄
  • 前言
  • 前期準備
    • 硬盤掛載、網絡配置以及Docker的安裝
    • 安裝驅動和固件
    • 下載模型權值文件
  • 配置DeepSeek推理環境
    • 拉取MindIE-Server鏡像
    • 啟動容器
    • 進入容器
    • 配置模型參數文件
    • 修改mindie-servier配置
    • 啟動 mindie-server 服務


前言

本文將詳細介紹在國產Linux系統歐拉中使用華為官方MindIE-Server鏡像方式部署DeepSeek模型。一般情況下華為昇騰800I服務器可以推理DeepSeek-R1-70B,4張300I-Duo服務器可以推理DeepSeek-R1-32B。在配置中盡量貼合官方文檔,包含用到的一些其他的技術細節,便于零基礎入門使用

前期準備

硬盤掛載、網絡配置以及Docker的安裝

在歐拉操作系統(國產Linux)中相關的配置可以參照文章Linux系統管理(十九)——歐拉系統硬盤掛載、網絡配置以及Docker環境安裝

安裝驅動和固件

安裝過程在上一篇中已經介紹過了,這里不再贅述,可以參照下面這篇博客。由于在mindie-server中已經內置了CANN,所以在安裝mindie-server時,CANN的安裝并非必選項。
玩轉大語言模型——昇騰NPU驅動固件以及CANN的安裝(教你如何使用官方社區安裝)

下載模型權值文件

本文以DeepSeek-R1-32B為例,讀者可以根據自己的情況選擇模型權值文件下載,在本文中將下載后的模型保存到路徑/data/llm/deepseek/
modelscope下載地址:https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B
hf-mirror下載地址:https://hf-mirror.com/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B


配置DeepSeek推理環境

拉取MindIE-Server鏡像

官方mindie地址:https://www.hiascend.com/developer/ascendhub/detail/mindie
點擊鏡像版本后可以看到能夠下載的版本,但是需要申請權限才能夠下載
在這里插入圖片描述

注冊登錄華為賬號后,填寫姓名、公司、郵箱、申請原因后即可下載
在這里插入圖片描述
800I下載第一個鏡像,300I-DUO下載第三個鏡像,點擊立即下載后按照官方提示拉取鏡像即可
在這里插入圖片描述
如果有大量配置需求的話,在拉取鏡像后可以先保存拉取過的鏡像,等需要的時候直接導入

啟動容器

先給出一個參考命令,隨后再給出解釋

docker run -it --ipc=host \--device=/dev/davinci0 \--device=/dev/davinci1 \--device=/dev/davinci2 \--device=/dev/davinci3 \--device=/dev/davinci4 \--device=/dev/davinci5 \--device=/dev/davinci6 \--device=/dev/davinci7 \--device=/dev/davinci_manager \--device=/dev/devmm_svm \--device=/dev/hisi_hdc \--name=ds_service \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \-v /usr/local/sbin/:/usr/local/sbin/ \-v /var/log/npu/:/usr/slog \-v /data/llm/deepseek/:/home/HwHiAiUser \-d -p 1025:1025 mindie:1.0.0-T71.B020-300I-Duo-arm64-py3.11 /bin/bash

這里有幾點需要根據實際情況修改

參數解釋
–device=/dev/davinci0像這類參數用于表示核心數,這里從davinci0寫到了davinci7,使用的是8個核心
-v /data/llm/deepseek/:/home/HwHiAiUser這個路徑是映射模型的路徑,將物理機上存儲模型的路徑/data/llm/deepseek/映射到容器的/home/HwHiAiUser路徑上
-d -p 1025:1025將容器端口1025映射到物理機,這是為了外部訪問mindie-server起的DeepSeek服務
mindie:1.0.0-T71.B020-300I-Duo-arm64-py3.11鏡像版本,示例中是300I-DUO鏡像,如果是800I的鏡像,需要把名稱換為swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:2.0.T3-800I-A2-py311-openeuler24.03-lts

進入容器

docker exec -it ds_service /bin/bash

配置模型參數文件

模型文件路徑為:/home/HwHiAiUser
使用命令修改模型目錄的所有者和權限模式, 這里以DeepSeek-R1-Distill-Qwen-32B為例,這個模型的模型路徑為/home/HwHiAiUser/DeepSeek-R1-Distill-Qwen-32B

cd /home/HwHiAiUser
chown -R root:root DeepSeek-R1-Distill-Qwen-32B
chmod -R 750 DeepSeek-R1-Distill-Qwen-32B

進入DeepSeek-R1-Distill-Qwen-32B, 修改其中的config.json文件, 將其中torch_dtype項改為float16

cd DeepSeek-R1-Distill-Qwen-32B
vi config.json

修改mindie-servier配置

進入到mindie-server目錄

cd /usr/local/Ascend/mindie/latest/mindie-service 
source set_env.sh

修改 config.json 文件

vi conf/config.json 

修改以下參數項

參數修改值
httpsEnablefalse
ipAddress0.0.0.0
AllowAllZeroIpListeningtrue
maxIterTimes4096:
numDeviceIds設為你想使用的卡的id
worldSize設為卡數
modelName模型名稱,注意要和請求時用到的model名相同
modelWeightPath模型參數目錄路徑

其他值的修改參照官方
MindIE-Server參數設置:https://www.hiascend.com/document/detail/zh/mindie/100/mindieservice/servicedev/mindie_service0285.html

啟動 mindie-server 服務

cd /usr/local/Ascend/mindie/latest/mindie-service

啟動服務并將日志輸入到 output.log文件中

nohup ./bin/mindieservice_daemon > output.log 2>&1 &

通過如下命令查看日志

tail -f output.log 

啟動, 如果有以下內容則啟動成功

Daemon start success!

啟動成功后訪問地址http://服務器IP:1025/v1即可使用類OpenAI的方式訪問大模型的Server

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74831.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74831.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74831.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MCP項目開發-一個簡單的RAG示例

MCP項目開發-一個簡單的RAG示例 前言 前言 客戶端是基于官網的例子改的,模型改成了openai庫連接僅僅使用基礎的RAG流程作為一個演示,包含了以下步驟 query改寫搜索:使用google serper重排序:使用硅基流動的api 大模型api也使用…

Tire樹(字典樹)

理論 上圖是一棵Trie樹,表示了關鍵字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。從上圖可以歸納出Trie樹的基本性質: 根節點不包含字符,除根節點外的每一個子節點都包含一個字符。從根節點到某一個節點&…

厄瓜多爾主流收單方式:Pago Efectivo支付

PAGOEFECTIVO(Pago Efectivo)是秘魯主流的在線支付方式,由El Comercio Group開發,主要為用戶提供安全、便捷的在線支付解決方案,支持網銀和現金支付,適用于沒有信用卡或不愿透露銀行信息的消費者。 Pago Ef…

【文獻研究】含硼鋼中BN表面偏析對可鍍性的影響

《B 添加鋼的溶融 Zn めっき性に及ぼす BN 表面析出の影響》由JFE公司田原大輔等人撰寫。研究聚焦 B 添加鋼在低露點退火時 BN 形成對鍍鋅性的影響,對汽車用高強度鋼鍍鋅工藝優化意義重大。通過多組對比實驗,結合多種分析手段,明確了相關因素…

語法: ptr=malloc(size)

MALLOC( ) 語法: ptrmalloc(size) 參數: size是一個整數,表示被分配的字節個數; 返回值: 如果允許的話,返回值是一個指向被分配存儲器的指針;否則的話, 返回值是一個非指針; 功能: 該函數用來分配一定大小的空間給一個對象,其大小為size,但該空間的值為不確定值; 有…

JavaScript創建對象與構造函數

目錄 創建對象 一、創建對象的 5 種核心方式 1. 對象字面量(直接量) 2. 使用 Object.create() 3. 工廠模式 4. 構造函數模式 5. ES6 class 語法(語法糖) 二、構造函數與 new 關鍵字 1. 構造函數的作用 2. 構造函數的特征…

AIDD-人工智能藥物設計-深度學習助力提高兒童低級別膠質瘤復發風險預測的準確性

深度學習助力提高兒童低級別膠質瘤復發風險預測的準確性 兒童低級別膠質瘤(pLGG)是一種常見于兒童患者中的腦腫瘤,盡管大多數時候被認為是良性腫瘤,但是它們仍然可能導致相關癥狀和并發癥的發生,包括但不限于頭疼、癲…

redis的數據類型(1)

https://redis.io/docs/latest/develop/data-types/strings/ 社區版支持: String,字符串 Hash,key-value格式 List,根據插入順序排序 Set,集合 Sorted set,有排序 Stream, Bitmap, …

Nacos配置中心使用

Nacos配置中心 Nacos除了可以做注冊中心,🔗Nacos下載和注冊中心教程,同樣可以做配置管理來使用。 一、統一配置管理 當微服務部署的實例越來越多,達到數十、數百時,逐個修改微服務配置就顯得十分的不方便,而且很容易出錯。我們…

OpenCV輪廓檢測全面解析:從基礎到高級應用

一、概述 輪廓檢測是計算機視覺中的基礎技術,用于識別和提取圖像中物體的邊界。與邊緣檢測不同,輪廓檢測更關注將邊緣像素連接成有意義的整體,形成封閉的邊界。 輪廓檢測的核心價值 - 物體識別:通過輪廓可以識別圖像中的獨立物體…

Jenkins學習(B站教程)

文章目錄 1.持續集成CI2.持續交付CD3.持續部署4.持續集成的操作流程5.jenkins簡介6.后續安裝部署,見視頻 bilibili視頻 Jenkins是一個開源的、提供友好操作界面的持續集成(CI)工具,起源于Hudson(Hudson是商用的),主要用…

ARM-UART

時鐘選擇PLCK,超時3ms自動發送,設置發送8位的緩沖區,且發送中斷 設置觸發深度,達到8字節將緩沖區數據發憷 中斷處理函數

Rust所有權詳解

文章目錄 Rust所有權所有權規則作用域 內存和分配移動與克隆棧空間堆空間 關于函數的所有權機制作為參數作為返回值 引用與租借垂懸引用 Rust所有權 C/C中我們對于堆內存通常需要自己手動管理,手動申請和釋放,即便有了智能指針,對于效率的影…

【在線OJ項目測試報告】

朋友們、伙計們,我們又見面了,本期來給大家帶來關于在線OJ項目的測試報告,如果看完之后對你有一定的啟發,那么請留下你的三連,祝大家心想事成! C 語 言 專 欄:C語言:從入門到精通 數…

【HFP】藍牙HFP應用層核心技術研究

免提配置文件(Hands-Free Profile, HFP)作為實現設備間音頻通信的關鍵協議,廣泛應用于車載系統、藍牙耳機等場景。本文將基于最新技術規范,深入剖析HFP應用層的功能要求、協議映射及編解碼器支持,為藍牙開發工程師提供詳盡的技術指南。 一、HFP應用層功能全景圖 HFP定義…

橫掃SQL面試——PV、UV問題

📊 橫掃SQL面試:UV/PV問題 🌟 什么是UV/PV? 在數據領域,UV(Unique Visitor,獨立訪客) 和 PV(Page View,頁面訪問量) 是最基礎也最重要的指標&…

【C++】第八節—string類(上)——詳解+代碼示例

hello,又見面了! 云邊有個稻草人-CSDN博客 C_云邊有個稻草人的博客-CSDN博客——C專欄(質量分高達97!) 菜鳥進化中。。。 目錄 一、為什么要學習string類? 1.1 C語言中的字符串 1.2 面試題(暫不做講解) …

如何判斷JVM中類和其他類是不是同一個類

如何判斷JVM中的類是否為同一個類 在Java虛擬機(JVM)中,判斷兩個類是否相同需要同時滿足以下三個條件: 1. 類全限定名必須相同 包括包名類名的完整路徑必須完全一致例如:java.lang.String和com.example.String被視為不同類 2. 加載該類的…

ifconfig 使用詳解

目錄 一、基本語法二、常見用途及示例1. 查看所有網絡接口信息2. 啟用/禁用網絡接口3. 配置 IP 地址和子網掩碼4. 修改 MAC 地址5. 啟用混雜模式(Promiscuous Mode)6. 設置 MTU(最大傳輸單元) 三、其他選項四、常見問題1. 新系統中…

1. 標準庫的強依賴(核心原因)

1. 標準庫的強依賴(核心原因) 容器操作(如 std::vector 擴容) 當標準庫容器(如 std::vector)需要重新分配內存時,它會嘗試移動現有元素到新內存,而非拷貝(為了性能&…