【記一次】AI微調訓練步數計算方式

llama微調訓練步數計算方式,以下數據為假設

一、關鍵參數解析

  1. 總樣本數Num examples = 1,047
    表示訓練數據集包含 1,047 個樣本。

  2. 訓練輪數Num Epochs = 300
    表示整個訓練集將被遍歷 300 次。

  3. 總批次大小Total train batch size = 80
    表示每次參數更新使用的樣本數為 80(受并行訓練、分布式訓練等影響后的等效批次大小)。

  4. 梯度累積步數Gradient Accumulation steps = 8
    表示每累積 8 個批次的梯度后,才進行一次參數更新。

二、計算步驟分解

  1. 單輪訓練批次數
    每個 epoch 的批次數 = 總樣本數 / 總批次大小
    Batches?per?epoch = 1 , 047 80 ≈ 13.09 \text{Batches per epoch} = \frac{1,047}{80} \approx 13.09 Batches?per?epoch=801,047?13.09
    (實際計算中會向上取整為 14 批,因最后一批可能不足 80 樣本)

  2. 總批次數(所有 epoch)
    總批次數 = 批次數 per epoch × 訓練輪數
    Total?batches = 14 × 300 = 4 , 200 \text{Total batches} = 14 \times 300 = 4,200 Total?batches=14×300=4,200

  3. 優化步數計算
    優化步數 = 總批次數 / 梯度累積步數
    Optimization?steps = 4 , 200 8 = 525 \text{Optimization steps} = \frac{4,200}{8} = 525 Optimization?steps=84,200?=525


訓練過程可能存在修正過程,例如我的訓練日志效果;

INFO|2025-03-22 15:43:25] trainer.py:2406 >> Num examples = 1,047[INFO|2025-03-22 15:43:25] trainer.py:2407 >> Num Epochs = 300[INFO|2025-03-22 15:43:25] trainer.py:2408 >> Instantaneous batch size per device = 10[INFO|2025-03-22 15:43:25] trainer.py:2411 >> Total train batch size (w. parallel, distributed & accumulation) = 80[INFO|2025-03-22 15:43:25] trainer.py:2412 >> Gradient Accumulation steps = 8[INFO|2025-03-22 15:43:25] trainer.py:2413 >> Total optimization steps = 3,900[INFO|2025-03-22 15:43:25] trainer.py:2414 >> Number of trainable parameters = 4,399,104.teps = 3,900

三、日志值修正解釋

實際日志中 Total optimization steps = 3,900,表明存在以下調整:

  • 更精確的批次計算:可能最后一批未補全時直接舍棄,實際批次數為:
    Batches?per?epoch = ? 1 , 047 80 ? = 13 批 \text{Batches per epoch} = \left\lfloor \frac{1,047}{80} \right\rfloor = 13 \text{ 批} Batches?per?epoch=?801,047??=13?
    總批次數 = 13 × 300 = 3,900 批

  • 優化步數修正
    若梯度累積步數為 8,則理論優化步數應為:
    Optimization?steps = 3 , 900 8 = 487.5 \text{Optimization steps} = \frac{3,900}{8} = 487.5 Optimization?steps=83,900?=487.5
    但日志值為整數 3,900,表明實際計算中可能直接取總批次數(即梯度累積步數被隱式設為 1)。

四、最終結論

日志中的 Total optimization steps = 3,900 是通過以下公式計算:
Total?optimization?steps = Num?Epochs × ? Num?examples Total?train?batch?size ? \text{Total optimization steps} = \text{Num Epochs} \times \left\lfloor \frac{\text{Num examples}}{\text{Total train batch size}} \right\rfloor Total?optimization?steps=Num?Epochs×?Total?train?batch?sizeNum?examples??
即:
3 , 900 = 300 × ? 1 , 047 80 ? = 300 × 13 3,900 = 300 \times \left\lfloor \frac{1,047}{80} \right\rfloor = 300 \times 13 3,900=300×?801,047??=300×13

這表示每輪訓練實際使用 13 個完整批次(最后一批可能小于 80 樣本但被忽略),共訓練 300 輪,總優化步數為 3,900。
所以說,批處理大小(每個 GPU 處理的樣本數量。) * 梯度累積(梯度累積的步數。)的值越大,step,步數越小。這個值需要根據GPU的大小來決定。否則訓練速度會很慢。
在這里插入圖片描述

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

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

相關文章

python-selenium 爬蟲 由易到難

本質 python第三方庫 selenium 控制 瀏覽器驅動 瀏覽器驅動控制瀏覽器 推薦 edge 瀏覽器驅動(不容易遇到版本或者兼容性的問題) 驅動下載網址:鏈接: link 1、實戰1 (1)安裝 selenium 庫 pip install selenium&#…

yaffs

YAFFS(Yet Another Flash File System)是專為NAND閃存設計的日志結構文件系統,其核心原理圍繞NAND閃存的特性優化數據管理。以下是其關鍵原理的詳細說明: 1. NAND閃存適配 寫入限制:NAND閃存需按頁寫入(通…

git的底層原理

git的底層原理 三段話總結git, 1. 工作原理:git管理是一個DAG有向無環圖,HEAD指針指向branch或直接指向commit,branch指向commit,commit指向tree,tree指向別的tree或直接指向blob。 2. git所管理的一個目錄…

【計算機網絡原理】選擇題+簡答題

文章目錄 選擇題網絡基礎IP網絡拓撲 OSI七層模型協議HDLCTCP/IP 交換技術網絡安全數字簽名 算法與策略 簡答題UDPTCP 選擇題 網絡基礎 下列域名中,屬于國際頂級域名的是() A. us B. tom C. edu D. int 下列關于光纖傳輸介質的敘述中錯誤的是…

Android數據加密方案

Android數據加密方案 前言 在移動應用開發中,數據安全是一個永恒的話題。Android應用中往往需要存儲和傳輸敏感數據,如用戶密碼、支付信息、個人隱私等。本文將深入介紹Android平臺上的數據加密方案,幫助開發者構建安全可靠的數據保護機制。 基礎知識 1. 加密算法分類 …

神聖的綫性代數速成例題13. 非齊次方程組解的性質、非齊次方程組解的討論

綫性空間的維數: 若綫性空間中存在一組綫性無關的矢量,使得中的任意矢量 都可以由綫性表示,則稱為綫性空間的維數,記作,稱為的一組基。 基與座標變換: 設和是維綫性空間的兩組基,且,…

github代理 | 快速clone項目

代理網址: https://ghproxy.com/ https://ghproxy.com/代理網址: https://ghproxy.com/ 比如需要克隆的項目git地址為:https://github.com/AUTOMATIC1111/stable-diffusion-webui.git git clone https://ghproxy.com/https://github.com/AUTO…

Kafka集成Debezium監聽postgresql變更

下載postgres的插件:https://debezium.io/documentation/reference/2.7/install.html 2.7版本支持postgresql12數據庫。 debezium-connector-postgres-2.7.4.Final-plugin.tar.gz 上傳插件并解壓 mkdir /usr/local/kafka/kafka_2.12-2.2.1/connector cd /usr/local…

『uniapp』簡單文本復制文字 富文本內容復制文字(詳細圖文注釋)

目錄 text組件錯誤代碼示例成功代碼總結 歡迎關注 『uniapp』 專欄,持續更新中 歡迎關注 『uniapp』 專欄,持續更新中 text組件 官方文檔可知app端用selectable可實現文本選中進而可復制,也就是說text標簽內部的文本就可以復制了 https://uniapp.dclou…

RestTemplate和RPC區別

RestTemplate是Spring框架中用于進行RESTful風格的HTTP請求的模板類,通常用于與外部服務進行通信。它基于HTTP協議,使用GET、POST、PUT、DELETE等HTTP方法來進行通信,傳輸的數據通常使用JSON或XML格式。它是一種基于資源的通信方式&#xff0…

算法模型從入門到起飛系列——背包問題(探索最大價值的掘金之旅)

文章目錄 前言一、背包問題溯源(動態規劃)1.1 動態規劃的概念1.2 動態規劃的基本步驟1.3 動態規劃的實際應用 二、背包問題2.1 背包問題衍生2.2 0-1背包2.2.1 0-1背包描述2.2.2 0-1背包圖解2.2.3 0-1背包代碼刨析 2.3 完全背包2.3.1 完全背包描述2.3.2 完…

Python實現爬蟲:天氣數據抓取(+折線圖)

一、基本架構 1、URL管理器:爬蟲的調度中樞 核心職責 功能說明URL去重防止重復抓取URL優先級管理控制抓取順序(廣度優先/深度優先)斷點續爬支持持久化存儲抓取狀態分布式協同多節點共享URL隊列 2、網頁下載器:數據獲取的引擎 功…

DFS刷題

洛谷P2089烤雞 #include<iostream> using namespace std; const int N 20, M 1000010; int ans[N]; int dp[M][N]; int n, count; void dfs(int x, int sum){if(sum > n)return;if(x > 10){if(sum n){count;for(int i 1; i < n; i)dp[count][i] ans[i];}r…

《Operating System Concepts》閱讀筆記:p460-p4470

《Operating System Concepts》學習第 36 天&#xff0c;p460-p4470 總結&#xff0c;總計 11 頁。 一、技術總結 無。 二、英語總結(生詞&#xff1a;3) 1.lifespan (1)lifespan: life span(“the period of time that sth exists or happens”) c. 也寫作 life-span, …

stratis,容器podman

一、stratis 1.stratis可以實現動態的在線擴容&#xff0c;lvm雖然也可以實現在線擴容&#xff0c;但是是需要人為的手動擴容。 2.stratis不需要手動格式化&#xff0c;自動會創建文件系統&#xff08;默認是xfs&#xff09; 1. 安裝stratis軟件包 yum list | grep stratis…

音頻焦點 Android Audio Focus

Android 音頻焦點詳解 音頻焦點&#xff08;Audio Focus&#xff09;是 Android 系統用于協調多個應用同時訪問音頻輸出的機制。當多個應用需要播放音頻時&#xff0c;音頻焦點確保用戶聽到的內容不會混亂&#xff08;如多個音樂應用同時播放&#xff09;。以下從核心概念、使…

【用 Trace讀源碼】PlanAgent 執行流程

前提條件 在 Trae 中打開 OpenManus 工程&#xff0c;使用 build 模式&#xff0c;模型選擇 claude-sonnet-3.7 提示詞 分析 agent/planning.py 中 main 方法及相關類的執行流程&#xff0c;以流程圖的方式展示PlanningAgent 執行流程圖 以下流程圖展示了 PlanningAgent 類…

1、雙指針法

關于每個知識點的例題 可以自己看力扣標準題解。也可以在嗶哩嗶哩上看。想看我的&#xff0c;就到github 看 - 庫 &#xff0c;介紹里寫的算法講解那些&#xff0c;里面有知識點&#xff0c;有題庫。題庫&#xff0c;每天都發題&#xff0c;可能跟博客的進度不一樣。因為我上傳…

LangChain 基礎

一、LangChain 模塊和體系 LangChain 是一個用于開發由大型語言模型&#xff08;LLMs&#xff09;驅動的應用程序的框架。 官方文檔&#xff1a;https://python.langchain.com/docs/introduction/ LangChain 簡化了LLM應用程序生命周期的每個階段&#xff1a; 開發&#xf…

#echarts#折線圖#餅圖

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>折線圖</title> </head> <body><div id"app" style"width:100%;height:100%;"><div id"chart-c…