昇思+昇騰開發板+DeepSeek模型LoRA微調

昇思+昇騰開發板+DeepSeek模型LoRA微調

LoRA微調原理

  • 核心思想:凍結預訓練模型權重,僅訓練橙色的低秩適配矩陣(A/B矩陣)

  • 在這里插入圖片描述

  • 優勢

    • 訓練參數量減少至全量微調的0.5%
    • 顯存占用降低50%以上
    • 適配器權重僅需保存3MB(原模型5.6GB)

關鍵配置

config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
target_modules=[“q_proj”, “k_proj”, “v_proj”, “gate_proj”, “up_proj”, “down_proj”],
inference_mode=False,
r=8, # 低秩維度
lora_alpha=32, # 縮放系數
lora_dropout=0.1
)

開啟同步

通過mindspore.set_context(pynative_synchronize=True)開啟同步,方便在出現問題時進行快速定位。
流程:
環境準備與檢查 -> 代碼下載 -> 權重下載 -> 其他環境準備 -> 啟動運行

代碼實現知識點1:

MindSpore在將數據預處理操作應用到數據集時,代碼實現會和Hugging Face Transformers有所區別。
MindSpore配合數據處理Pipeline來實現數據預處理,所有的數據變換通過.map(…)方法傳入,需要指定作用的數據列。
.map(…) 操作可以針對數據集指定列 (column) 添加數據變換 (Transforms),將數據變換應用于該列數據的每個元素,并返回包含變換后元素的新數據集。
.map(…) 操作可以執行Dataset模塊提供的內置數據變換操作,也可以執行用戶自定義的變換操作。

代碼實現知識點2:

腳本中自定義了SavePeftModelCallback,即每次在save_steps個步數后,將模型當前的LoRA adapter權重保存下來,做到保存微調過程中的權重。
保存后的權重可在指定的保存路徑(案例中為“./output/DeepSeek-R1-Distill-Qwen-1.5B/adapter_model”)找到。

經驗分享

香橙派AIpro的host側和device側共享,所以在host側的內存占用(如python的多進程,模型加載等)也會影響到顯存。

優化方案1

在加載模型時,直接加載fp16的權重,而非加載fp32權重再轉成fp16。
加載fp32權重,然后轉成fp16會占用大量內存。
直接加載fp16權重可以顯著減少內存占用。
DeepSeek-R1-Distill-Qwen-1.5B 模型LoRA微調

優化方案2

如何限制拉起的python進程數,從而控制額外的內存占用,減少對顯存的影響。 比較好的解決方案是通過設置如下環境變量,可以把python進程控制在4-6個:

export MAX_COMPILE_CORE_NUMBER=1
export TE_PARALLEL_COMPILER=1

MAX_COMPILE_CORE_NUMBER: 此環境變量用于指定圖編譯時可用的CPU核數。
TE_PARALLEL_COMPILER: 算子最大并行編譯進程數,當大于1時開啟并行編譯。

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

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

相關文章

計算機網絡:詳解網絡地址的計算步驟

網絡地址計算是網絡規劃與配置的基礎,核心是通過IP地址和子網掩碼確定網絡標識、廣播地址、可用主機范圍等關鍵信息。以下是詳細的計算步驟,配合實例說明(以IPv4為例): 一、明確基礎概念 在計算前,需先明確3個核心概念: IP地址:標識網絡中主機的32位二進制數,通常以…

Spring AI 系列之三十五 - Spring AI Alibaba-Graph框架之MCP

之前做個幾個大模型的應用,都是使用Python語言,后來有一個項目使用了Java,并使用了Spring AI框架。隨著Spring AI不斷地完善,最近它發布了1.0正式版,意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

FastAPI后端工程化項目記錄

以下是一個使用fastapi上傳視頻的接口,記錄一下工程化后端程序的業務邏輯 重點是代碼如何抽離 項目結構優化 project/ ├── .env # 環境變量配置 ├── app/ │ ├── __init__.py │ ├── main.py # 主應用入口 │ …

令牌桶限流算法

你提供的 Java 代碼實現的是令牌桶限流算法(Token Bucket Algorithm),這是目前最常用、最靈活的限流算法之一。它允許一定程度的“突發流量”,同時又能控制平均速率。下面我將:逐行詳細解釋 TokenBucketLimiter 類的每…

基于springboot的寵物商城設計與實現

管理員:登錄,個人中心,用戶管埋,寵物分類管理,寵物信息管理,留言反饋,寵物論壇,系統管理,訂單管理用戶:寵物信息,寵物論壇,公告信息&a…

Python day36

浙大疏錦行 Python day36. 復習日 本周內容: 如何導入模塊以及庫項目的規范拆分和寫法官方文檔的閱讀MLP神經網絡的訓練在GPU上訓練模型可視化以及推理

【gaussian-splatting】用自己的數據復現高斯潑濺(一)

1.環境準備1.1.下載diff-gaussian-rasterization這里本來沒啥說的,直接從github上下載就行了,但是我踩坑了,下的版本不對,后續運行報錯參數個數對不上,特在此給大家避坑,注意一定要下帶3dgs版本的diff-gaus…

中國移動h10g-01_S905L處理器安卓7.1當貝純凈版線刷機包帶root權限_融合終端網關

下載固件之前請先將主板上的屏蔽罩取下,查看處理器型號 是否為S905L型號,然后再下載固件進行刷機; 本頁面的固件是采用雙公頭數據線進行刷機的哈; 安卓4.4.2版本固件下載地址:點此進行下載 安卓7.1版本固件下載地址…

夜天之書 #110 涓滴開源:Cronexpr 的故事

在年初的一篇關于商業開源的博文當中,我介紹了在開發商業軟件的過程中,衍生出開源公共軟件庫的模式。在那篇博文里面,我只是簡單羅列了相關開源庫的名字及一句話總結。近期,我會結合商業開源實踐的最新進展,對其中一些…

完整的登陸學生管理系統(配置數據庫)

目錄 要求 思路 1. 登錄模塊(LoginFrame.java) 2. 學生信息管理模塊(StudentFrame.java) 3. 數據層(StudentDAO.java) 4. 業務層(StudentService.java / UserService.java) 5…

譯 | 在 Python 中從頭開始構建 Qwen-3 MoE

文章出自:基于 2個Expert 的 MoE 架構分步指南 本篇適合 MoE 架構初學者。文章亮點在于詳細拆解 Qwen 3 MoE 架構,并用簡單代碼從零實現 MoE 路由器、RMSNorm 等核心組件,便于理解內部原理。 該方法適用于需部署高性能、高效率大模型&#x…

Spring Boot + ShardingSphere 分庫分表實戰

🚀Spring Boot ShardingSphere 實戰:分庫分表,性能暴增的終極指南! ? 適用場景:千萬級大表、高并發、讀寫分離場景 ? 核心框架:Spring Boot 3.x ShardingSphere-JDBC 5.4.1 ? 數據庫:MySQL…

MaxKB 使用 MCP 連接 Oracle (免安裝 cx_Oracle 和 Oracle Instant Client)

一、背景 安裝cx_Oracle包和Oracle Instant Client來操作數據庫,比較繁瑣同時容易沖突,不同的 Oracle 版本都需要安裝不同的插件。這篇文章將介紹使用 MCP 協議的連接方法。 二、操作步驟 1、使用 1Panel 安裝 DBhub a) 數據庫類型選擇 Oracle 類型。…

基于Python的超聲波OFDM數字通信鏈路設計與實現

基于Python的超聲波OFDM數字通信鏈路設計與實現 摘要 本文詳細介紹了使用Python實現的超聲波OFDM(正交頻分復用)數字通信鏈路系統。該系統能夠在標準音響設備上運行,利用高于15kHz的超聲波頻段進行數據傳輸,采用48kHz采樣率。文章涵蓋了從OFDM基本原理、…

滑動窗口相關題目

近些年來,我國防沙治沙取得顯著成果。某沙漠新種植N棵胡楊(編號1-N),排成一排。一個月后,有M棵胡楊未能成活。現可補種胡楊K棵,請問如何補種(只能補種,不能新種)&#xf…

Java 工具類的“活化石”:Apache Commons 核心用法、性能陷阱與現代替代方案

在上一篇文章中,我們回顧了 Apache Commons 的經典組件。但作為 Java 世界中資歷最老、影響最深遠的工具庫,它的價值遠不止于此。許多開發者可能只使用了它 10% 的功能,卻忽略了另外 80% 能極大提升代碼質量的“隱藏寶石”。本文將提供一個更…

數據結構——圖及其C++實現 多源最短路徑 FloydWarshall算法

目錄 一、前言 二、算法思想 三、代碼實現 四、測試 五、源碼 一、前言 前兩篇學習的Dijkstra算法和Bellman-Ford算法都是用來求解圖的單源最短路徑,即從圖中指定的一個源點出發到圖中其他任意頂點的最短路徑。Dijkstra算法不能求解帶有負權重的圖的最短路徑&…

解決微軟應用商店 (Microsoft store) 打不開,無網絡連接的問題!

很多小伙伴都會遇見微軟應用商店 (Microsoft store)打開后出現無網絡的問題,一般出現這種問題基本都是因為你的電腦安裝了某些銀行的網銀工具,因為網銀工具為了安全會關閉Internet 選項中的最新版本的TLS協議,而微軟商店又需要最新的TLS協議才…

Android—服務+通知=>前臺服務

文章目錄1、Android服務1.1、定義1.2、基本用法1.2.1、定義一個服務1.2.2、服務注冊1.2.3、啟動和停止服務1.2.4、活動和服務進行通信1.3、帶綁定的服務示例1.3.1、定義服務類1.3.2、客戶端(Activity)綁定與交互?1.3.3、AndroidManifest.xml 注冊?1.3.…

從基礎功能到自主決策, Agent 開發進階路怎么走

Agent 開發進階路線大綱基礎功能實現核心模塊構建環境感知:傳感器數據處理(視覺、語音、文本等輸入)基礎動作控制:API調用、硬件驅動、簡單反饋機制狀態管理:有限狀態機(FSM)或行為樹&#xff0…