DaoyuanLi2816/can-i-finetune-this

Estimate whether a Hugging Face model fits and fine-tunes on your local GPU.

解決的問題

它解決了在消費級 GPU 上微調大語言模型 (LLM) 時出現的「顯存溢出」 (OOM) 錯誤問題。與其下載龐大的模型權重後才發現硬體無法處理訓練過程,不如使用此工具在開始之前估算 VRAM 使用量並確定可行性。

工作原理

該工具使用了一個考慮了基礎估算器經常忽略的因素的記憶體模型,包括:

  • Weight Memory: 處理各種精度(fp32, fp16, bf16, int8, NF4),並考慮了 QLoRA 中 embeddings 和 norms 的 fp32 上採樣。
  • Training Buffers: 對 logits/cross-entropy 鏈進行建模,這是具有大詞彙量模型的重大記憶體消耗者。
  • Parameter Tracking: 計算 LoRA/QLoRA 可訓練參數、梯度和優化器狀態(例如 AdamW vs 8-bit AdamW)的記憶體。
  • Activations: 根據序列長度、批次大小和模型架構估算記憶體,並提供梯度檢查點 (gradient checkpointing) 選項。
  • Validation: 使用者可以執行本地基準測試 (bench) 並校準估算器 (calibrate),以便根據其特定硬體上的實際測量值來驗證靜態預測。

適用對象

使用消費級 NVIDIA GPU(通常為 12–24 GB VRAM)的開發人員和 AI 研究人員,他們希望使用 LoRA 或 QLoRA 微調開源權重 LLM,而不想在失敗的配置上浪費時間和磁碟空間。

亮點

  • VRAM 估算: 提供詳細的記憶體明細(靜態模型、激活值、logits 等)和可行性決策。
  • 配置建議: 建議最佳的批次大小、序列長度和 LoRA 秩,以使模型符合可用 VRAM。
  • 方案生成: 使用 Hugging Face、PEFT 和 TRL 生態系統建立即插即用的訓練腳本。
  • 硬體校驗: 包含基準測試套件,用於根據使用者機器上的實際峰值記憶體使用量驗證估算值。

相關

  • Dispatch
  • 專案
  • 專案
  • 專案
  • 專案