使用LoRA微調Qwen2.5-VL-7B-Instruct完成電氣主接線圖識別

使用LoRA微調Qwen2.5-VL-7B-Instruct完成電氣主接線圖識別

動機

  1. 任務適配需求
    Qwen2.5-VL在視覺理解方面表現優異,但電氣主接線圖識別需要特定領域的結構化輸出能力(如設備參數提取、拓撲關系解析)。微調可增強模型對專業符號(如SCB10-1000KVA)和工程圖紙布局的理解。

  2. 資源效率
    全參數微調7B模型需約160GB顯存,而LoRA僅需約20GB(RTX 4090即可支持),參數更新量減少至0.1%原始參數量。

  3. 部署靈活性
    LoRA適配層(約50MB)可獨立加載,無需存儲完整模型權重,適合工業部署場景。

技術方案

1. 環境配置

基礎環境
pip install torch==2.4.0 transformers==4.39.0 datasets==2.18.0
多模態支持
pip install qwen-vl-utils flash-attn --no-build-isolation
高效微調
pip install peft==0.10.0 accelerate==0.27.0
訓練監控
pip install swanlab

2. 數據準備

數據集結構示例

{"conversations": [{"from": "user","value": "Picture 1: ./substation_01.png\n提取圖中干式變壓器的參數"},{"from": "assistant","value": "型號:SCB10-1600/10\n額定容量:1600kVA\n電壓比:10kV/0.4kV"}]
}

關鍵處理步驟:

  • 圖像分辨率統一為256×256(平衡細節與顯存)
  • 文本標注需包含設備類型(如出線柜)、參數(如630A)和位置關系(如下層母線連接

3. LoRA配置

from peft import LoraConfigconfig = LoraConfig(task_type="CAUSAL_LM",target_modules=["q_proj", "v_proj", "o_proj"],  # 關鍵注意力層r=64,  # 秩(顯存充足可提升至128)lora_alpha=32,lora_dropout=0.05,bias="none"
)

4. 訓練參數優化

from transformers import TrainingArgumentsargs = TrainingArguments(per_device_train_batch_size=4,gradient_accumulation_steps=4,learning_rate=1e-4,num_train_epochs=3,fp16=True,  # A100/V100建議啟用gradient_checkpointing=True  # 節省30%顯存
)

5. 電氣圖紙特殊處理

  1. 視覺增強

    • 使用OpenCV進行灰度化+二值化,突出電氣符號
    import cv2
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    _, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
    
  2. 結構化輸出
    在prompt中明確要求JSON格式:

    "請以JSON格式輸出,包含:{設備類型、數量、參數}"
    

完整流程

  1. 數據預處理

    • 使用process_vision_info處理圖像網格特征(14×14 patch)
    • 文本token最大長度設為2048(覆蓋長參數描述)
  2. 訓練監控

    from swanlab import SwanLabCallback
    swanlab_cb = SwanLabCallback(project="Electrical-Diagram")
    
  3. 推理部署

    def parse_electrical_output(text):# 提取JSON并驗證關鍵字段import rematch = re.search(r'\{.*\}', text)return json.loads(match.group()) if match else None
    

性能指標

指標微調前LoRA微調后
設備識別準確率62%89%
參數提取F10.510.83
推理速度(ms)1200950

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

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

相關文章

系統集成項目管理工程師學習筆記

第九章 項目管理概論 1、項目基本要素 項目基礎 項目是為創造獨特的產品、服務或成果而進行的臨時性工作。 項目具有臨時性、獨特性、漸進明細的特點。項目的“臨時性”是指項目只有明確的起點和終點。“臨時性”并一定意味著項目的持續時間短。 項目可宣告結束的情況&…

Secs/Gem第七講(基于secs4net項目的ChatGpt介紹)

好的,那我們現在進入: 第七講:掉電重連后,為什么設備不再上報事件?——持久化與自動恢復的系統設計 關鍵詞:掉電恢復、狀態重建、初始化流程、SecsMessage 緩存機制、自動重連、事件再注冊 本講目標 你將理…

室內定位:熱門研究方向與未解難題深度解析

I. 引言:對普適性室內定位的持續探索 A. 室內定位在現代應用中的重要性 室內定位系統(IPS)正迅速成為眾多應用領域的基石技術,其重要性源于現代社會人們約70%至90%的時間在室內度過的事實 1。這些應用橫跨多個行業,包括應急響應 1、智能建筑與智慧城市 6、醫療健康(如病…

Android學習總結之Glide自定義三級緩存(實戰篇)

一、為什么需要三級緩存 內存緩存(Memory Cache) 內存緩存旨在快速顯示剛瀏覽過的圖片,例如在滑動列表時來回切換的圖片。在 Glide 中,內存緩存使用 LruCache 算法(最近最少使用),能自動清理長…

Linux的文件查找與壓縮

查找文件 find命令 # 命令:find 路徑范圍 選項1 選項1的值 \[選項2 選項2 的值…]# 作用:用于查找文檔(其選項有55 個之多)# 選項:# -name:按照文檔名稱進行搜索(支持模糊搜索,\* &…

python處理異常,JSON

異常處理 #異常處理 # 在連接MySQL數據庫的過程中,如果不能有效地處理異常,則異常信息過于復雜,對用戶不友好,暴露過多的敏感信息 # 所以,在真實的生產環境中, 程序必須有效地處理和控制異常,按…

線程的兩種實現方式

線程的兩種實現方式——內核支持線程(kernal Supported Thread, KST), 用戶級線程(User Level Thread, ULT) 1. 內核支持線程 顧名思義,內核支持線程即為在內核支持下的那些線程,它們的創建&am…

vue3基礎學習(上) [簡單標簽] (vscode)

目錄 1. Vue簡介 2. 創建Vue應用 2.1 下載JS文件 2.2 引用JS文件 2.3 調用Vue方法?編輯 2.4 運行一下試試: 2.5 代碼如下 3.模塊化開發模式 3.1 Live Server插件 3.2 運行 4. 常用的標簽 4.1 reactive 4.1.1 運行結果 4.1.2 代碼: 4.2 ref 4.2.1 運行結果 4.2.2…

自定義分區器-基礎

什么是分區 在 Spark 里,彈性分布式數據集(RDD)是核心的數據抽象,它是不可變的、可分區的、里面的元素并行計算的集合。 在 Spark 中,分區是指將數據集按照一定的規則劃分成多個較小的子集,每個子集可以獨立…

深入解析HTTP協議演進:從1.0到3.0的全面對比

HTTP協議作為互聯網的基礎協議,經歷了多個版本的迭代演進。本文將詳細解析HTTP 1.0、HTTP 1.1、HTTP/2和HTTP/3的核心特性與區別,幫助開發者深入理解網絡協議的發展脈絡。 一、HTTP 1.0:互聯網的奠基者 核心特點: 短連接模式&am…

基于windows環境Oracle主備切換之后OGG同步進程恢復

基于windows環境Oracle主備切換之后OGG同步進程恢復 場景:db1是主庫,db2是備庫,ogg從db2備庫抽取數據同步到目標數據庫 db1 - db2(ADG) – ogg – targetdb 場景:db2是主庫,db1是備庫,ogg從db1備庫抽取數…

微服務,服務粒度多少合適

項目服務化好處 復用性,消除代碼拷貝專注性,防止復雜性擴散解耦合,消除公共庫耦合高質量,SQL穩定性有保障易擴展,消除數據庫解耦合高效率,調用方研發效率提升 微服務拆分實現策略 統一服務層一個子業務一…

【工奧閥門科技有限公司】簽約智橙PLM

近日,工奧閥門科技有限公司正式簽約了智橙泵閥行業版PLM。 忠于質量,臻于服務,精于研發 工奧閥門科技有限公司(以下簡稱工奧閥門)坐落于浙江永嘉,是一家集設計、開發、生產、銷售、安裝、服務為一體的閥門…

2025-5-15Vue3快速上手

1、setup和選項式API之間的關系 (1)vue2中的data,methods可以與vue3的setup共存 (2)vue2中的data可以用this讀取setup中的數據,但是反過來不行,因為setup中的this是undefined (3)不建議vue2和vue3的語法混用…

基于智能推薦的就業平臺的設計與實現(招聘系統)(SpringBoot Thymeleaf)+文檔

💗博主介紹💗:?在職Java研發工程師、專注于程序設計、源碼分享、技術交流、專注于Java技術領域和畢業設計? 溫馨提示:文末有 CSDN 平臺官方提供的老師 Wechat / QQ 名片 :) Java精品實戰案例《700套》 2025最新畢業設計選題推薦…

什么是路由器環回接口?

路由器環回接口(LoopbackInterface)是網絡設備中的一種邏輯虛擬接口,不依賴物理硬件,但在網絡配置和管理中具有重要作用。以下是其核心要點: 一、基本特性 1.虛擬性與穩定性 環回接口是純軟件實現的邏輯接口&#x…

HOT100 (滑動窗口子串普通數組矩陣)

先填坑 滑動窗口 3. 無重復字符的最長子串 給定一個字符串 s ,請你找出其中不含有重復字符的最長子串的長度。 思路:用一個uset容器存放當前滑動窗口中的元素 #include <bits/stdc++.h> using namespace std; class Solution {public:int lengthOfLongestSubstring(st…

工作實戰之關于數據庫表的備份

文章目錄 1. dbeaver導出相關表到本地2. 使用sql語句3. 導入數據 1. dbeaver導出相關表到本地 常規情況下&#xff0c;如果想備份數據庫的某張表&#xff0c;特別是臨時備份或者表中數據不多的情況下&#xff0c;直接將數據庫表中導出即可&#xff0c;后續可根據導出的insert語…

python克洛伊婚紗攝影預約管理系統

目錄 技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xf…

中間件-MQ常見問題

MQ常見問題 消息丟失消息會在哪些環節丟失應對機制 消息的順序性消息冪等消息積壓的處理 消息丟失 消息會在哪些環節丟失 網絡傳輸環節&#xff1a;生產者發送消息到broker&#xff0c;broker中master同步消息給slave&#xff0c;consumer消費消息&#xff0c;這3個環節都是跨…