昇思+香橙派 AI 開發實踐:DeepSeek 全流程指南(基于 openEuler)

一、? 環境準備

1. 鏡像燒錄

鏡像燒錄可以在任何操作系統內執?,這?以在Windows系統為例,使用balenaEtcher?具,快速燒錄鏡像到Micro SD卡中。

本章節所需的軟/硬件如下:

軟件相關:balenaEtcher制卡?具、openEuler鏡像

硬件相關:TF卡(64G存儲卡)、讀卡器

balenaEtcher制卡?具下載

點擊鏈接進行下載安裝balenaEtcher?具即可。

下載鏈接:https://etcher.balena.io/#download-etcher

openEuler鏡像下載

點擊鏈接下載openEuler鏡像即可。

下載鏈接:Orange Pi - Orangepi

鏡像燒錄

將插入TF卡的讀卡器與電腦連接,然后打開balenaEtcher?具,選擇剛剛下載的鏡像文件,然后選擇TF卡進行燒錄即可。

注意:下載下來的鏡像文件是.xz格式的壓縮包,要先解壓出.img文件,選擇.img文件進行燒錄。

等待TF卡燒錄完成拔出讀卡器。

2. 連接開發板

將燒錄好的TF卡插入香橙派中,連接電源啟動即可。TF卡一直插在香橙派中,不拔出。

首次連接,我們需要使用HDMI線與顯示屏相連,同時插入鍵盤鼠標才能完成配置操作。在聯網后,記下香橙派的IP地址便可用Vscode、MobaXterm等遠程連接的軟件進行遠程連接。

本章節所需的軟/硬件如下:

軟件:Vscode、MobaXterm(任選其一或多個皆可)

硬件:OrangePi AIpro-20t規格?橙派、電源線、HDMI線、顯?器、?

標、鍵盤

首次配置

開發板開機成功后進行登錄操作。

登錄賬號:HwHiAiUser,密碼:Mind@123(root密碼也是這個)

進入桌面后,點擊相應WiFi輸入密碼進行連接。連接成功后,右鍵選擇“Connection Information”記錄下香橙派的IP地址用于同一局域網下遠程連接。

MobaXterm連接

使用MobaXterm可以連接命令行也可以連接圖形化界面。

首先我們進行命令行的連接。點擊上方的“Session”后選擇“SSH”,然后填入香橙派IP地址,指定登錄用戶(可選)后,點擊“OK”則遠程連接成功。連接端口為22。

連接遠程桌面,我們也是點擊上方的“Session”,但選擇“VNC”,然后填入香橙派IP地址,連接端口為5901,點擊“OK”則遠程連接成功。

Vscode連接

下載好Vscode后安裝以下插件備用。

點擊“遠程資源管理器”,點擊SSH后的加號添加遠程連接,輸入“ssh HwHiAiUser@你的香橙派實際IP”后回車。然后選擇剛剛添加的遠程連接,點擊箭頭后輸入密碼即可連接成功。

連接成功后需要注意,遠程的插件要重新安裝一下。想要在Vscode遠程編輯器中運行Python代碼,安裝Python擴展即可。

3. 軟件環境升級

Toolkit升級(8.0.0_linux-aarch64)

打開終端,使用root??,root??密碼:Mind@123。

su – root

刪除鏡像中已安裝CANN包釋放磁盤空間,防?安裝新的CANN包時報錯磁盤空間不?。

cd /usr/local/Ascend/ascend-toolkit

rm -rf *

下載鏈接:社區版資源下載-資源下載中心-昇騰社區

選擇Ascend-cann-toolkit_8.0.0_linux-aarch64.run進行下載。此處我使用wget命令進行下載。下載完成后賦予其執行權限,然后運行安裝。安裝過程中需要手動輸入一次Y。

wget?https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.0/Ascend-cann-toolkit_8.0.0_linux-aarch64.run

chmod +x Ascend-cann-toolkit_8.0.0_linux-aarch64.run

./Ascend-cann-toolkit_8.0.0_linux-aarch64.run –install

出現Ascend-cann-toolkit_8.0.0_linux-aarch64 install success則安裝成功。

將source /usr/local/Ascend/ascend-toolkit/set_env.sh加入到/etc/profile文件末尾并加載環境變量。

vi /etc/profile

source /usr/local/Ascend/ascend-toolkit/set_env.sh

source /etc/profile

Kernels升級(310b_8.0.0_linux-aarch64)

打開終端,使用root??,root??密碼:Mind@123。

su – root

執?如下命令,獲取開發板NPU型號。

npu-smi info

下載鏈接:社區版資源下載-資源下載中心-昇騰社區

選擇Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run進行下載。此處我使用wget命令進行下載。下載完成后賦予其執行權限,然后運行安裝。安裝過程中需要手動輸入一次Y。

wget?https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.0/Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run

chmod +x Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run

./Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run –install

出現Ascend-cann-kernels-310b_8.0.0_linux-aarch64 install success則安裝成功。

MindSpore升級(MindSpore2.5.0)

打開終端,使用HwHiAiUser用戶。運行以下命令進行安裝。

pip install mindspore==2.5.0 -i?Simple Index

運行以下命令進行檢查是否安裝成功。

python -c “import mindspore;mindspore.set_device(‘Ascend’);mindspore.run_check()”

出現successfully則為成功。

Swap檢查與配置

打開終端,輸?如下命令,檢查Swap是否開啟:

free -m

正確輸出結果為:

如輸出的結果中Swap部分為0,則可在終端中輸入如下命令,配置Swap:

sudo fallocate -l 16G /swapfile

sudo chmod 600/swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

echo ‘/swapfile none swap sw 0 a’sudo tee -a /etc/fstab

完成配置后可再通過 free -m 檢查配置是否生效。

Gradio安裝

打開終端,輸?如下命令,安裝Gradio 4.44.0:

pip uninstall gradio -y

pip install gradio==4.44.0

Mindnlp安裝

打開終端,輸?如下命令,安裝Mindnlp(如已有最好先卸載,重新安裝):

pip install git+https://github.com/mindspore-lab/mindnlp.git@0.4

其他python依賴安裝

在運行代碼時,報錯顯示缺少什么包就使用pip安裝什么包。

二、? 運行代碼

1.?? 下載代碼

代碼地址:https://github.com/mindspore-courses/orange-pi-mindspore.git

打開終端,使用HwHiAiUser用戶。找一個你存放代碼的位置運行如下命令:

git clone?https://github.com/mindspore-courses/orange-pi-mindspore.git

下載代碼后,進入Online/training/01-DeepSeek-R1-Distill-Qwen-1.5B目錄,目錄中的三個py文件便是我們要運行的代碼。

2.?? 運行代碼

可以使用Vscode遠程連接開發環境,這樣運行調試更為方便。連接步驟之前已經給出,連接成功后打開代碼所在文件夾,打開相應代碼點擊右上角運行即可。

分別給出三個py文件運行成功的截圖。

deepseek-r1-distill-qwen-1.5b-lora.py

deepseek-r1-distill-qwen-1.5b-gradio.py

deepseek-r1-distill-qwen-1.5b-jit.py

三、常見問題

1. 無法連接外部網絡

在連接WiFi后,可以在局域網內連接香橙派,但是香橙派無法訪問外部網絡。

可以用以下方式解決:

1. 在運行命令`sudo ip route del default via 192.168.0.1 dev usb0`后問題解決,可以訪問外部網絡。(每次重啟后要重新執行命令)

2. 右鍵點擊圖形界面右上角的`“網絡->Edit Connections->選擇相應的問題連接(usb0)刪除”`即可。(永久生效)

2. 運行代碼時出現權限相關問題

運行代碼時出現“Permission denied”以及其他與當前登錄用戶相關的問題。

可以用以下方式解決:

從下載代碼開始,全程使用HwHiAiUser用戶,不要使用root用戶。同時注意代碼存放的位置,盡量放在HwHiAiUser用戶目錄下,避免引發文件權限的問題。

3. 運行代碼時提示Ascend顯存不足

運行代碼時出現Ascend顯存不足的相關提示信息,最后運行失敗。有Free memory size is less than half of total memory size.Device 0 Device MOC total size:24823529472 Device MOC free size:9051504640 may be other processes occupying this card, check as: ps -ef|grep python提示的。

可以用以下方式解決:

首先使用`ps -ef | grep python`命令查看是否有其他 Python 進程正在占用 NPU 導致顯存不足,有則`kill`相關進程。若無異常則使用`npu-smi info`命令查看顯存占用,如果發現異常最方便的方法就是使用`reboot`命令重啟設備。

4. 運行代碼時有RuntimeError以及ValueError

每次代碼運行到訓練或推理的部分就會報錯。

lora:`RuntimeError: aclnnGatherGetWorkspaceSize call failed, please check!`

gradio:`RuntimeError: aclnnCumsumGetWorkspaceSize call failed, please check!`

jit:`ValueError: Attention weights should be of size (1, 12, 6, 6), but is (1, 12, 6, 512)`

可以用以下方式解決:

檢查版本問題,尤其是Mindnlp的版本。

“`

Toolkit版本:8.0.0_linux-aarch64

Kernels版本:310b_8.0.0_linux-aarch64

MindSpore版本:MindSpore 2.5.0

Mindnlp版本:mindnlp 0.4.1

“`

即使Mindnlp版本號對應,但仍然建議你先卸載Mindnlp,然后運行`pip install git+https://github.com/mindspore-lab/mindnlp.git@0.4`命令重新安裝Mindnlp。

5. jit第二次對話報錯

運行jit的時候,在第二次對話的時候會報`RuntimeError: Sync stream error!`錯誤。

可以用以下方式解決:

使用`reboot`命令重啟設備。

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

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

相關文章

AI生成郵件發送腳本(帶附件/HTML排版)與定時爬取網站→郵件通知(價格監控原型)

想象一下:每天早晨咖啡還沒喝完,你的郵箱就自動收到了心儀商品的最新價格;重要報告準時帶著專業排版的附件發送到客戶手中——這一切不需要你手動操作。本文將用不到100行代碼帶你實現這兩個自動化神器! 一、為什么我們需要自動化…

【vLLM 學習】Encoder Decoder Multimodal

vLLM 是一款專為大語言模型推理加速而設計的框架,實現了 KV 緩存內存幾乎零浪費,解決了內存管理瓶頸問題。 更多 vLLM 中文文檔及教程可訪問 →https://vllm.hyper.ai/ *在線運行 vLLM 入門教程:零基礎分步指南 源碼 examples/offline_inf…

【MySQL筆記】視圖

目錄一、什么是視圖?二、使用視圖的優勢三、視圖的創建與使用四、不能更新視圖的場景五、刪除視圖六、總結一、什么是視圖? 視圖(View)是一種虛擬表,不存儲實際數據,而是通過執行預定義的查詢動態生成數據…

【RK3576】【Android14】分區劃分

獲取更多相關的【RK3576】【Android14】驅動開發,可收藏系列博文,持續更新中: 【RK3576】Android 14 驅動開發實戰指南

Datawhale 25年7月組隊學習coze-ai-assistant Task1學習筆記:動手實踐第一個AI Agent—英倫生活口語陪練精靈

Chap1 了解AI工作流 1.1什么是工作流 工作流 就像是一條流水線,把復雜的任務拆分成多個簡單的步驟,每一步都有明確的目標和流程。1.2智能體和工作流的區別 智能體(AI Agent) **是什么 :**智能體是一個自動化的“助手”…

Webpack插件開發深度指南:從原理到實戰

Webpack插件是前端工程化的核心引擎,本文將帶你深入插件開發全流程,實現一個功能完整的資源清單插件,并揭示Tapable事件系統的核心原理。 一、Webpack插件機制解析 1.1 插件架構核心:Tapable事件系統 Webpack基于Tapable構建了…

2、Redis持久化詳解

Redis持久化詳解 文章目錄 Redis持久化詳解 前言 RDB和AOF的區別 RDB和AOF的優缺點 Redis 持久化配置 1、RDB持久化配置 2、AOF持久化配置(嘗試修復會刪除aof文件內容) 3、AOF 重寫功能 新增知識點: 新增知識點: 前言 Redis是一種高級 key-value 型的NoSQL數據庫。它跟mem…

curl 命令詳解

curl 命令的 -d/–data 和 --data-urlencode 的區別 curl 命令的 -d/–data 和 --data-urlencode 都用于發送 HTTP POST 請求的數據,但關鍵區別在于 是否自動對數據進行 URL 編碼。以下是詳細對比: curl 命令的 -d/--data 和 --data-urlencode 都用于發送…

ubuntu下好用的錄屏工具

以下是 vokoscreen 的安裝教程,適用于 Linux 系統。vokoscreen 是一款簡單易用的屏幕錄制工具,支持錄制屏幕、攝像頭和音頻。 安裝 vokoscreen vokoscreen 提供了多種安裝方式,包括通過包管理器、Deb 包或 AppImage 文件。 方法 1&#xf…

筆試大題20分值(用兩個棧實現隊列)

目錄前言一、原題二、解題思路三、代碼實現(c/c)C語言代碼C代碼實現結語前言 目前博主在處于秋招求職的關鍵時期,在暑假這段時間會頻繁更新博客,想在暑假期間把一些常考的面試和筆試題過一下,利用這兩個月沉淀一下技術…

【知識掃盲】tokenizer.json中的vocab和merges是什么?

在自然語言處理里,tokenizer.json 文件一般是由 Hugging Face 的 Tokenizers 庫生成的,它是分詞器配置的核心文件。這里面的 vocab 和 merges 是子詞分詞算法(像 BPE 這種)的重要構成要素。下面為你詳細解釋它們的作用和工作原理&…

【安卓筆記】RxJava的Hook機制,整體攔截器

0. 環境: 電腦:Windows10 Android Studio: 2024.3.2 編程語言: Java Gradle version:8.11.1 Compile Sdk Version:35 Java 版本:Java11 1. 使用場景 整個項目都是用了RxJava,需要對 整個/部分 項目…

NX二次開發常用函數——從一個坐標系到另一個坐標系的轉換(UF_MTX4_csys_to_csys )相同體坐標轉化

再做項目時相信大家都會用到坐標轉化,例如,我之前寫的案例分享中的博客都用到過,之前總是找借口進行if else判斷,雖然可以實現,但是比起坐標變換無論代碼復雜程度還是運行速度都比較差,之前參加過曹大師的教學訓練營,但是明顯感覺到大佬寫代碼的邏輯性以及模塊化能力都比…

數據庫防止數組字符串序列化

請求接到數組["aa","bb"]后,后端需要轉換成字符串Java 8 使用 String.join()String[] arr {"aa", "bb"}; String str String.join(",", arr); // "aa,bb"如果采用其他轉換,在字段存入數據庫后會["\"a…

若依框架文件上傳返回路徑端口錯誤 - Nginx代理環境下serverConfig.getUrl()獲取端口異常

目錄一 、問題描述二、問題現象三、問題根本原因3.1 代碼分析3.2 問題核心四、解決方案五、總結一 、問題描述 在使用若依框架進行項目開發時,遇到了一個令人困擾的問題:文件上傳功能在本地開發環境運行正常,但部署到服務器后,上…

使用PyInstaller打包 Python 工程

引言:大模型是個好工具,盡管好多內容都是拼湊的,但是整理學到的就是自己的。因工作需要隱藏python源代碼,方法有PyInstaller 、Cpython等多種方法,PyInstaller更為常用,PyInstaller打包 Python 工程步驟整理如下: 一、確保系統環境準備就緒 安裝 Python 和 pip 確認版本…

Python 程序設計講義(1):PyCharm 安裝教程

Python 程序設計講義(1):PyCharm 安裝教程 一、安裝 Python 解釋器 1、下載 Python 安裝文件 點擊如下鏈接進入 Python 官網: https://www.python.org/ 在彈出的頁面中單擊【Downloads】,然后單擊下面的【Download Pyt…

uniapp云打包安卓

1、基礎云打包 2、修改logo3、怎么實現下拉菜單4、修改啟動頁啟動頁默認這樣 5、URL Scheme頁面跳轉

Python----NLP自然語言處理(英文分詞器--NLTK)

一、NLTK_介紹NLTK(Natural Language Toolkit,自然語言處理工具包),一個主要用于清洗和處理英文文本的Python工具包。它有很多的功能,我們主要使用的是它的分詞功能,之前講過中文分詞是比較復雜的&#xff…

傳統瀏覽器過時了?Dia如何用AI重新定義上網體驗

歡迎來到我的博客,代碼的世界里,每一行都是一個故事🎏:你只管努力,剩下的交給時間 🏠 :小破站 傳統瀏覽器過時了?Dia如何用AI重新定義上網體驗它是什么核心功能搜索編程左右互動感謝…