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
- 项目
- 项目
- 项目
- 项目