LLaMA-Factory|微調大語言模型初探索(4),64G顯存微調13b模型

??上篇文章記錄了使用lora微調deepseek-7b,微調成功,但是微調llama3-8b顯存爆炸,這次嘗試使用qlora微調HQQ方式量化,微調更大參數體量的大語言模型,記錄下來微調過程,僅供參考。
對過程不感興趣的兄弟們可以直接從第3節開始看。

1.量化方法

??重點介紹bitsandbytes、hqq和eetq這三種量化方式,它們通過將模型的權重壓縮為低精度格式來減少顯存占用,從而使得可以訓練更大的模型,或者在有限的顯存資源下運行大型模型。

  • bitsandbytes: 專注于權重量化,通過將模型權重表示為更低精度的數據類型,以減少顯存占用和提升訓練效率
  • hqq: 通常是一種結合了多種量化技術的方法,旨在通過多種策略進一步壓縮模型的存儲需求,并保持訓練過程的性能。
  • eetq: 專注于在訓練階段有效地進行量化,以減少顯存占用,并可能采用某些自適應的量化策略來平衡效率和效果。

1.1 在配置文件中的位置:

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
quantization_bit: 4
quantization_method: bitsandbytes  # choices: [bitsandbytes (4/8), hqq (2/3/4/5/6/8), eetq (8)]

如上述配置文件所示,量化模型方法有:bitsandbytes、hqq和eetq三種方式,其中bitsandbytes(4/8)是指支持4bit和8bit量化,其他兩種同理。

2.微調Meta-Llama-3-8B-Instruct

## llama3_lora_sft_otfq.yaml 修改部分
model_name_or_path: models/Meta-Llama-3-8B-Instruct/
quantization_bit: 2
quantization_method: hqq   # choices: [bitsandbytes (4/8), hqq (2/3/4/5/6/8), eetq (8)]
trust_remote_code: true
...
### method
...
lora_target: q_proj,v_proj

運行訓練命令:

llamafactory-cli train examples/train_qlora/llama3_lora_sft_otfq.yaml

通過修改lora_target,只微調q_proj和v_proj的方式減少顯存使用,成功運行,沒有OOM,但顯存也是幾乎全滿了,與官網對照表還是對不上。

3.微調Llama-2-13b-chat-hf模型

抱著菜就多練,不會就問的態度,直接在github上問,結果還真得到了答復,問題地址:issue
在這里插入圖片描述
得到的回復也很簡單,微調方式有問題
在這里插入圖片描述
于是我去官網上去找fsdp + qlora的微調方式,還真讓我找到了!!
在這里插入圖片描述
于是我興致沖沖的去按照官方命令微調:

bash examples/extras/fsdp_qlora/train.sh# train.sh
#CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 accelerate launch \
#   --config_file examples/accelerate/fsdp_config.yaml \
#    src/train.py examples/extras/fsdp_qlora/llama3_lora_sft.yaml

注意: 運行之前要修改一下fsdp_config.yamlllama3_lora_sft.yaml,其中fsdp_config.yaml第19行num_processes為你GPU數量,llama3_lora_sft.yaml的配置就不贅述。

運行結果顯存使用顯著下降,但是RAM使用量提高,如圖所示:
在這里插入圖片描述

總結

  • PyTorch的全切片數據并行技術FSDP能讓我們處理更多更大的模型,這是微調13b模型成功的關鍵
  • fsdp_config.yaml中的FULL_SHARD將模型參數、梯度和優化器狀態都切分到不同的GPU上,類似ZeRO-3。
  • 使用fsdp + qlora微調方法微調32B模型依舊OOM,后續會繼續探索DeepSpeed方式來微調32B模型,驗證其可行性。

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

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

相關文章

詳解 Spring 配置數據源的兩種方式

在 Spring 框架中配置數據源(DataSource)主要有兩種方式: 通過 Setter 注入配置數據源通過 jdbc.properties 配置文件方式 本博文將使用 Druid 作為數據源,其在 Spring 項目中常見且高效。 Druid 被廣泛認為是性能最佳的連接池…

項目進度管理工具:甘特圖與關鍵路徑法(2025實戰指南)

在全球數字化轉型加速的背景下,項目延期率高達42%的現狀倒逼管理者掌握科學的進度管理工具。本文結合2025年最新實踐,深度解析甘特圖與關鍵路徑法的原理及應用,助你構建精準可控的項目進度管理體系。 一、雙劍合璧:工具組合的價值…

RAGS評測后的數據 如何利用influxdb和grafan 進行數據匯總查看

RAGS(通常指相關性、準確性、語法、流暢性)評測后的數據能借助 InfluxDB 存儲,再利用 Grafana 進行可視化展示,實現從四個維度查看數據,并詳細呈現每個問題對應的這四個指標情況。以下是詳細步驟: 1. 環境準備 InfluxDB 安裝與配置 依據自身操作系統,從 InfluxDB 官網下…

詳解Redis如何持久化

引言 本文介紹了 Redis 的兩種持久化方式:RDB 和 AOF。RDB 按時間間隔快照存儲,AOF 記錄寫操作。闡述了它們的配置、工作原理、恢復數據的方法、性能與實踐建議,如降低 fork 頻率、控制內存等,還提到二者可配合使用,最…

HarmonyOS Design 介紹

HarmonyOS Design 介紹 文章目錄 HarmonyOS Design 介紹一、HarmonyOS Design 是什么?1. 設計系統(Design System)2. UI 框架的支持3. 設計工具和資源4. 開發指南5. 與其他設計系統的對比總結 二、HarmonyOS Design 特點 | 應用場景1. Harmon…

PC端-發票真偽查驗系統-Node.js全國發票查詢接口

在現代企業的財務管理中,發票真偽的驗證至關重要。隨著電子發票的普及,假發票問題日益嚴峻,如何高效、準確的對發票進行真偽查驗,已經成為各類企業在日常運營中必須解決的關鍵問題。翔云發票查驗接口做企業財務管理、稅務合規的好…

Java 大視界 -- 基于 Java 的大數據機器學習模型壓縮與部署優化(99)

💖親愛的朋友們,熱烈歡迎來到 青云交的博客!能與諸位在此相逢,我倍感榮幸。在這飛速更迭的時代,我們都渴望一方心靈凈土,而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識,也…

算法-圖-數據結構(鄰接矩陣)-BFS廣度優先遍歷

鄰接矩陣廣度優先遍歷(BFS)是一種用于遍歷或搜索圖的算法,以下是具體介紹: 1. 基本概念 圖是一種非線性的數據結構,由頂點和邊組成,可分為無向圖、有向圖、加權圖、無權圖等。鄰接矩陣是表示圖的一種數…

【HDLbits--Comb組合邏輯】

HDLbits--Comb組合邏輯 1.5 組合邏輯1.5 Demo 在 Verilog 中,組合邏輯(Combinational Logic)是指輸出僅依賴于當前輸入的邏輯電路,沒有記憶功能(即沒有狀態存儲)。組合邏輯的特點是: 無時鐘信號…

ARM Cortex-M3 技術解析:核寄存器R1-R15介紹及使用

ARM Cortex-M3 技術解析:核寄存器R1-R15介紹及使用 作為嵌入式開發領域的經典處理器內核,ARM Cortex-M3(CM3)憑借其高效能、低功耗和豐富特性,在工業控制、物聯網、消費電子等領域廣泛應用。而內核寄存器是我們調試代…

python unzip file

要在 Python 中解壓文件并顯示進度,我們需要在解壓過程中跟蹤文件的提取進度。由于 zipfile 模塊本身不直接支持進度顯示,我們可以通過手動計算并使用 tqdm 庫來顯示進度條。 安裝 tqdm 首先,確保你已經安裝了 tqdm 庫,用于顯示…

DeepSeek+Kimi生成高質量PPT

DeepSeek與Kimi生成PPT全流程解析 一、工具分工原理 DeepSeek核心作用:生成結構化PPT大綱(擅長邏輯構建與內容優化)Kimi核心作用:將文本轉換為視覺化PPT(提供模板庫與排版引擎) 二、操作步驟詳解 1. 通…

一文掌握python中正則表達式的各種使用

文章目錄 1. 正則表達式基礎1.1 常用元字符1.2 基本用法 2. 正則表達式高級功能2.1 分組捕獲2.2 命名分組2.3 非貪婪匹配2.4 零寬斷言2.5 編譯正則表達式2.6 轉義字符 3. 常見應用場景3.1 驗證郵箱格式3.2 提取 URL3.3 提取日期3.4 提取HTML中的鏈接3.5 提取HTML中的圖片鏈接3.…

TCP,http,WebSocket

TCP(Transmission Control Protocol,傳輸控制協議)和HTTP(HyperText Transfer Protocol,超文本傳輸協議)都是網絡通信中的重要協議,但它們在網絡協議棧的不同層次上工作,各自負責不同…

Redis|持久化

文章目錄 總體介紹RDB(Redis DataBase)官網介紹案例演示優勢劣勢如何檢查修復 dump.rdb 文件哪些情況下會觸發 RDB 快照如何禁用快照RDB 優化配置項詳解小總結 AOF(Append Only File)官網介紹是什么能干嘛AOF 持久化工作流程AOF 緩…

Docker小游戲 | 使用Docker部署star-battle太空飛船射擊小游戲

Docker小游戲 | 使用Docker部署star-battle太空飛船射擊小游戲 前言項目介紹項目簡介項目預覽二、系統要求環境要求環境檢查Docker版本檢查檢查操作系統版本三、部署star-battle網頁小游戲下載鏡像創建容器檢查容器狀態檢查服務端口安全設置四、訪問star-battle網頁小游戲五、總…

巨控科技的GRM550元出魔抗實現PLC遠程下載與維護方案:工業自動化的高效解決方案

巨控科技PLC遠程下載與維護方案:工業自動化的高效解決方案 在工業自動化領域,設備的高效維護與快速調試是保障生產連續性的關鍵。巨控科技推出的PLC遠程下載與維護方案,憑借其先進的技術和廣泛兼容性,成為企業實現設備遠程管理的…

ChatGLM2-6B如何從輸入到輸出-代碼解析(二)

出發點 上一篇解析了Chatglm2-6b的模型架構,并和Chatglm-6b進行對比,但是留下了幾個問題(哭)這一篇的目的是講明白attention和rotaryEmbedding,解決問題,并實現整體目標,完全替代modeling_chat…

Sublime Text4安裝、漢化

-------------2025-02-22可用---------------------- 官方網址下載:https://www.sublimetext.com 打開https://hexed.it 點擊打開文件找到軟件安裝目錄下的 ctrlf 查找 8079 0500 0f94 c2右邊啟用替換替換為:c641 0501 b200 90點擊替換按鈕 替換完成后 另存為本地…

汽車開放系統架構(AUTOSAR)中運行時環境(RTE)生成過程剖析

一、引言 在當今高度智能化的汽車電子領域,軟件系統的復雜性呈指數級增長。為了應對這一挑戰,汽車開放系統架構(AUTOSAR)應運而生,它為汽車電子軟件開發提供了標準化的分層架構和開發方法。其中,運行時環境…