尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

LitGPT 微调配置中心全指南:config_hub/finetune 基准、LoRA/QLoRA 参数与多卡实践

发布时间:2026/9/14 17:27:27

资讯中心
01
ARTICLE

LitGPT 微调配置中心全指南:config_hub/finetune 基准、LoRA/QLoRA 参数与多卡实践

LitGPT 微调配置中心全指南:config_hub/finetune 基准、LoRA/QLoRA 参数与多卡实践
LitGPT 微调配置中心全指南config_hub/finetune 基准、LoRA/QLoRA 参数与多卡实践【免费下载链接】litgpt20 high-performance LLMs with recipes to pretrain, finetune and deploy at scale.项目地址: https://gitcode.com/GitHub_Trending/li/litgpt导读config_hub/finetune/README.md 是 LitGPT 微调配置的「基准数据 调优手册」它用一张完整的基准表格量化了 15 个模型在 Alpaca2k 数据集上、full / LoRA / QLoRA 三种微调策略下的训练耗时、显存峰值、验证集困惑度与 MMLU 多任务得分并给出扩展上下文长度、无 bf16 硬件降精度训练、多 GPU 扩展三类高频实战问题的官方解法。读完本文你将能对照自身显存预算选择模型与微调方案、看懂config_hub/finetune/下每一个 YAML 字段的真实含义、并能在命令行中熟练地用--config 覆盖参数完成从单卡到多卡、从 bf16 到 fp16 的实战微调。1. config_hub/finetune 是什么从基准表开始的微调决策config_hub/finetune/目录按模型名组织falcon-7b/、gemma-2b/、llama-3.2-1B/、phi-2/、tiny-llama/等共 15 个模型族每个模型子目录下提供三种微调策略的 YAML 配置full.yaml全量微调更新全部模型参数lora.yamlLoRA 参数高效微调qlora.yamlQLoRA量化 LoRA将基座模型以 NF4 4-bit 量化加载。README 顶部用一张基准表给出了这些配置文件的预期表现。其测量前提如下config_hub/finetune/README.md全部实验使用bfloat-16bf16精度数据集统一为Alpaca2kCost 列指这些基准在 Lightning AI Studio 按需计算资源上的运行费用Multitask score 指 MMLU 多任务得分。该表同时明确了一个重要的调优原则表中的显存数值并非固定上限而是可以进一步压缩的。你可以通过调小 micro batch size 降低显存占用也可以调小 LoRA 的 ranklora_r还可以关闭 LoRA 在特定层上的应用例如把lora_projection等层级开关设为false。完整的降显存策略见 tutorials/oom.md。2. 基准表精读如何挑选模型、策略与硬件2.1 完整基准表下表完整继承自 config_hub/finetune/README.mdOOM Out of memory即显存不足ConfigModelEpochsMax seq lengthMicro batch sizeMachineTraining runtimeCostPeak memoryValidation lossValidation perplexityMultitask score (MMLU)falcon-7b/lora.yamlfalcon-7b451211xA10G24.84 min$0.716.69 GB0.9452.57326.2%falcon-7b/lora.yamlfalcon-7b451214xA10G24.94 min$2.016.69 GB0.9452.57326.4%falcon-7b/qlora.yamlfalcon-7b451211xA10G50.85 min$1.59.44 GB0.9932.69926.3%gemma-2b/full.yamlgemma-2b151214xA10G14.06 min$1.117.43 GB1.0212.77732.4%gemma-2b/lora.yamlgemma-2b251221xA10G9.41 min$0.312.62 GB0.9812.66634.4%gemma-2b/lora.yamlgemma-2b251224xA10G9.41 min$0.812.62 GB0.9812.66734.0%gemma-2b/qlora.yamlgemma-2b251221xA10G12.91 min$0.411.58 GB1.0852.95936.4%gemma-7b/lora.yamlgemma-7b251211xA10GOOMOOMOOMOOMOOMgemma-7b/lora.yamlgemma-7b251214xA10GOOMOOMOOMOOMOOMgemma-7b/qlora.yamlgemma-7b251211xA10G43.58 min$1.317.18 GB0.9732.64662.45%gemma2-2b/lora.yamlgemma-2b251221xA10G11.96 min$0.414.31 GB0.9512.58923.84%gemma2b/qlora.yamlgemma-2b251221xA10G16.06 min$0.513.52 GB0.9832.67324.12%gemma2-9b/lora.yamlgemma-2-9b251211xA10GOOMOOMOOMOOMOOMgemma2-9b/lora.yamlgemma-2-9b251214xA10GOOMOOMOOMOOMOOMgemma2-9b/qlora.yamlgemma-2-9b251211xA10G50.01 min$4.020.92 GB0.8522.34524.2%llama-2-7b/full.yamlllama-2-7b151244xA10GOOMOOMOOMOOMOOMllama-2-7b/lora.yamlllama-2-7b451221xA10G32.82 min$1.019.77 GB0.8022.23040.3%llama-2-7b/lora.yamlllama-2-7b451224xA10G32.83 min$2.619.77 GB0.8022.22940.2%llama-2-7b/qlora.yamlllama-2-7b451221xA10G45.67 min$1.413.68 GB0.8142.25838.6%llama-3-8b/full.yamlllama-3-8b151244xA10GOOMOOMOOMOOMOOMllama-3-8b/lora.yamlllama-3-8b251211xA10G14.79 min$0.419.73 GB0.8882.43162.4%llama-3-8b/lora.yamlllama-3-8b251214xA10G14.88 min$1.219.73 GB0.8892.43262.5%llama-3-8b/qlora.yamlllama-3-8b251221xA10G22.24 min$0.717.41 GB0.9392.55862.2%llama-3.1-8b/full.yamlllama-3.1-8b151241xA10GOOMOOMOOMOOMOOMOOMllama-3.1-8b/lora.yamlllama-3.1-8b251211xA10G13.36 min$1.119.73 GB0.8782.406xx.xxllama-3.1-8b/qlora.yamlllama-3.1-8b251221xA10G21.81 min$0.717.41 GB0.9282.529xx.xxllama-3.2-1b/full.yamlllama-3.2-1b151241xA10G2.01 min$0.18.70 GB1.4424.22938.21%llama-3.2-1b/lora.yamlllama-3.2-1b251211xA10G4.17 min$0.44.49 GB1.1143.04636.87%llama-3.2-1b/qlora.yamlllama-3.2-1b251221xA10G6.20 min$0.65.53 GB1.2013.32236.49%llama-3.2-3b/full.yamlllama-3.2-3b151241xA10G4.71 min$0.416.51 GB1.2553.50954.69%llama-3.2-3b/lora.yamlllama-3.2-3b251211xA10G8.31 min$0.89.67 GB0.9732.64754.77%llama-3.2-3b/qlora.yamlllama-3.2-3b251221xA10G14.89 min$1.410.30 GB1.0312.80455.08%mistral-7b-v0.2/lora.yamlmistral-7b-v0.2451221xA10G31.00 min$0.920.66 GB0.8012.22855.7%mistral-7b-v0.2/lora.yamlmistral-7b-v0.2451224xA10G31.00 min$2.520.66 GB0.8022.22955.5%mistral-7b-v0.2/qlora.yamlmistral-7b-v0.2451221xA10G44.75 min$1.314.29 GB0.8132.25556.5%mistral-7b/lora.yamlmistral-7b451221xA10G31.01 min$0.920.66 GB0.7942.21157.9%mistral-7b/lora.yamlmistral-7b451224xA10G31.03 min$2.520.66 GB0.7962.21857.9%mistral-7b/qlora.yamlmistral-7b451221xA10G44.75 min$1.314.29 GB0.8032.23157.9%phi-2/full.yamlphi-2151244xA10G11.87 min$1.014.44 GB1.3053.68838.4%phi-2/lora.yamlphi-2151241xA10G3.78 min$0.113.98 GB0.8192.26953.0%phi-2/lora.yamlphi-2151244xA10G3.78 min$0.313.98 GB0.8202.27152.4%phi-2/qlora.yamlphi-2151241xA10G4.51 min$0.114.27 GB0.8372.31052.3%phi-3/full.yamlPhi-3-mini-4k-instruct151241xA10G6.93 min$0.217.01 GB0.7142.04369.81%phi-3/lora.yamlPhi-3-mini-4k-instruct151241xA10G6.46 min$0.219.75 GB0.7072.02869.70%phi-3/qlora.yamlPhi-3-mini-4k-instruct151241xA10G7.47 min$0.219.13 GB0.7292.07468.96%stablelm-base-alpha-3b/full.yamlstablelm-base-alpha-3b151214xA10G70.13 min$5.621.23 GB1.5134.54023.2%stablelm-base-alpha-3b/lora.yamlstablelm-base-alpha-3b451211xA10G13.07 min$0.48.58 GB1.3613.90025.9%stablelm-base-alpha-3b/lora.yamlstablelm-base-alpha-3b451214xA10G13.16 min$1.18.58 GB1.3623.90625.9%stablelm-base-alpha-3b/qlora.yamlstablelm-base-alpha-3b451211xA10G25.86 min$0.85.24 GB1.3884.00926.1%tiny-llama/full.yamltiny-llama151241xA10G2.58 min$0.114.10 GB1.0882.96824.6%tiny-llama/full.yamltiny-llama151244xA10G2.57 min$0.214.10 GB1.0882.96824.5%tiny-llama/lora.yamltiny-llama351281xA10G8.09 min$0.213.50 GB1.0392.82625.5%tiny-llama/qlora.yamltiny-llama351281xA10G8.70 min$0.316.24 GB1.0562.87425.3%2.2 从基准数据得出的选型规律对照上表可以得出若干可复用的经验以下均为基于上表数据的分析而非官方结论策略选型full vs LoRA vs QLoRALoRA 往往以更低显存获得同等甚至更高的 MMLU例如phi-2全量微调 MMLU 为 38.4%而 LoRA 提升到 53.0%且显存从 14.44 GB 降至 13.98 GB、耗时从 11.87 min 缩至 3.78 minQLoRA 是「小显存跑大模型」的关键gemma-7b与gemma2-9b的 LoRA 在 1xA10G/4xA10G 上全部 OOM而 QLoRA 分别在 17.18 GB 与 20.92 GB 显存内完成训练全量微调对 7B/8B 级别模型门槛极高llama-2-7b/full.yaml、llama-3-8b/full.yaml、llama-3.1-8b/full.yaml在 4xA10G 上均 OOM只有 1B–3B 的小模型能全量跑通。显存预算速查bf16、Alpaca2k、max seq length 512 前提下4–6 GBstablelm-base-alpha-3bQLoRA5.24 GB、llama-3.2-1bLoRA4.49 GB8–10 GBfalcon-7bQLoRA9.44 GB、gemma-2bLoRA12.62 GB13–17 GBllama-2-7bQLoRA13.68 GB、llama-3-8bQLoRA17.41 GB、gemma-7bQLoRA17.18 GB17–21 GBllama-2-7bLoRA19.77 GB、llama-3-8bLoRA19.73 GB、mistral-7bLoRA20.66 GB。注意表中llama-3.1-8b的 MMLU 一栏为xx.xx说明该评测尚未补齐引用时应如实标注。3. 配置文件结构精读以 phi-2/lora.yaml 为例config_hub/finetune/phi-2/lora.yaml是仓库中最具代表性的 LoRA 配置逐段拆解如下字段注释对应源码参数定义可在 litgpt/finetune/lora.py 的setup()签名与 litgpt/args.py 中找到一致声明。3.1 模型加载与输出checkpoint_dir: checkpoints/microsoft/phi-2 # 基座模型 checkpoint 目录 out_dir: out/finetune/lora-phi-2 # checkpoint 与日志输出目录 precision: bf16-true # 可选: bf16-true, bf16-mixed, 32-true quantize: # 置空则不量化QLoRA 中为 bnb.nf4 devices: 1 # 使用的 GPU 数量 num_nodes: 1 # 节点数在源码中checkpoint_dir会先经过auto_download_checkpoint()处理litgpt/finetune/lora.py随后用checkpoint_dir / model_config.yaml恢复模型结构out_dir由init_out_dir()规范化。若设置quantize: bnb.nf4会走BitsandbytesPrecision插件并把precision置空见 litgpt/finetune/lora.py 中 quantization 分支量化训练仅支持单卡多卡时抛NotImplementedError。3.2 LoRA 超参数lora_r: 8 # LoRA 秩默认 8 lora_alpha: 16 # 缩放系数有效更新按 alpha/r 缩放默认 16 lora_dropout: 0.05 # LoRA dropout默认 0.05 lora_query: true # 是否对注意力 Q 投影应用 LoRA默认 true lora_key: true # 是否对注意力 K 投影应用 LoRA默认 false lora_value: true # 是否对注意力 V 投影应用 LoRA默认 true lora_projection: true # 是否对注意力输出投影应用 LoRA默认 false lora_mlp: true # 是否对 MLP 权重应用 LoRA默认 false lora_head: true # 是否对输出头应用 LoRA默认 false源码层面litgpt/lora.py 中的Configdataclass 接收这些参数mark_only_lora_as_trainable()负责冻结所有非lora_前缀参数litgpt/lora.py。README 建议显存吃紧时优先降低lora_r并把lora_projection、lora_mlp、lora_head等逐层开关设为false。仓库内各模型配置恰好展示了不同取舍llama-3.2-1B/lora.yaml只开 Q/V 两个投影lora_r: 32而tiny-llama/qlora.yaml与gemma-7b/qlora.yaml则五处全开且 gemma-7b 使用lora_r: 16, lora_dropout: 0.1。建议按自己的显存与下游任务调试这些开关组合。3.3 数据参数Alpaca2kdata: class_path: litgpt.data.Alpaca2k # 数据模块类默认 litgpt.data.Alpaca init_args: mask_prompt: false # 是否遮蔽 prompt 部分的 loss val_split_fraction: 0.03847 # 验证集划分比例 prompt_style: alpaca # prompt 模板风格 ignore_index: -100 # 计算 loss 时忽略的索引 seed: 42 # 数据采样随机种子 num_workers: 4 # DataLoader 工作进程数数据模块通过data.connect(tokenizer..., batch_sizetrain.micro_batch_size, max_seq_length...)与训练流程对接并由fabric.setup_dataloaders()包装litgpt/finetune/lora.py 的get_dataloaders()。3.4 训练参数train: save_interval: 800 # 每多少 optimizer step 保存一次 checkpoint默认 1000 log_interval: 1 # 每多少 iteration 打印日志默认 1 global_batch_size: 8 # 跨数据并行 rank 计算的一次 optimizer step 的样本数默认 128 micro_batch_size: 4 # 每个数据并行 rank 每次迭代的样本数默认 4 lr_warmup_steps: 10 # 学习率 warmup 的步数默认 100 epochs: 1 # 训练轮数默认 5 max_tokens: # 训练总 token 上限默认空由 epochs 控制 max_steps: # optimizer step 上限默认空 max_seq_length: 512 # 样本最大长度默认不限制 tie_embeddings: # 是否绑定 embedding 与 LM head 权重默认空 max_norm: # 梯度裁剪范数默认空 min_lr: 6.0e-05 # 学习率调度下限global_batch_size与micro_batch_size共同决定梯度累积步数即train.gradient_accumulation_iters(devices, num_nodes)litgpt/finetune/lora.py优化器仅在累积完成时step()。学习率调度采用「线性 warmup 余弦退火」实现于get_lr_scheduler()。LoRA 脚本不支持max_tokens、max_norm、tie_embeddings、lr_warmup_fraction四个参数设置会触发validate_args()的显式报错litgpt/finetune/lora.py 的validate_args()。3.5 评估、日志与优化器eval: interval: 100 # 每多少 optimizer step 跑一次验证默认 100 max_new_tokens: 100 # 生成示例的最大新 token 数默认 100 max_iters: 100 # 验证最多迭代次数默认 100 initial_validation: false # 训练开始时是否验证 final_validation: true # 训练结束时是否验证 logger_name: csv # 可选: wandb / tensorboard / csv / mlflow / litlogger seed: 1337 # 复现用随机种子 optimizer: class_path: torch.optim.AdamW init_args: lr: 0.0002 weight_decay: 0.0 betas: [0.9, 0.95]训练结束时会打印Final evaluation | val loss: ... | val ppl: ...见 litgpt/finetune/lora.py 的main()并在out_dir/final/lit_model.pth.lora保存最终 LoRA 权重同时复制配置、超参与 prompt 风格文件。若fabric.strategy.precision是BitsandbytesPrecision则使用 bitsandbytes 优化器并将 embedding 替换为StableEmbedding。3.6 QLoRA 与 full 配置的差异点QLoRA以phi-2/qlora.yaml为例与 lora.yaml 几乎一致唯一关键差异是quantize: bnb.nf4同时把输出目录改为out/finetune/qlora-phi-2full以phi-2/full.yaml为例没有 LoRA 参数字段改用devices: 2、max_steps: 100、lr_warmup_steps: 200、weight_decay: 0.1等差异配置输出到out/finetune/full-phi-2。全量微调脚本入口见 litgpt/finetune/full.py。4. 三种高频实战操作4.1 扩展上下文长度若需要比配置文件更长的序列两种方式任选其一config_hub/finetune/README.md直接修改配置文件中的max_seq_length运行时用命令行参数覆盖litgpt finetune lora \ --config config_hub/finetune/phi-2/lora.yaml \ --max_seq_length 4096需要说明的是train.max_seq_length是「训练样本截断长度」而模型原生上下文由block_size决定微调脚本会取「数据中最长样本」与max_seq_length的较小值作为实际序列长度以省显存见 litgpt/finetune/lora.py 的fit()中model.max_seq_length min(longest_seq_length, train.max_seq_length ...)。更长的max_seq_length会线性推高激活显存必要时需配合第 5 节的降显存手段。4.2 在无 bf16 支持的 GPU 上训练老一代 GPU 不支持 bfloat-16此时需把precision改为16-true纯 fp16或16-mixedfp16/fp32 混合精度litgpt finetune lora \ --config config_hub/finetune/phi-2/lora.yaml \ --precision 16-true或litgpt finetune lora \ --config config_hub/finetune/phi-2/lora.yaml \ --precision 16-mixed官方提示config_hub/finetune/README.md16-true更省计算与显存但有时会引起训练收敛问题此时建议改用16-mixed。原理上真正的低精度16-true、bf16-true相比32-true显存减半但有限的可表示数值范围可能引入 NaN混合精度16-mixed、bf16-mixed更稳定但显存收益有限详见 tutorials/oom.md。4.3 多 GPU 扩展README 中所有基准均为单卡实验使用更多 GPU 只需加--deviceslitgpt finetune lora \ --config config_hub/finetune/phi-2/lora.yaml \ --devices 4注意两点边界条件量化训练QLoRA不支持多卡源码中devices * num_nodes 1且设置quantize时直接抛NotImplementedErrorlitgpt/finetune/lora.py 的setup()多卡时会走ModelParallelStrategy并调用parallelize_fn()对需要梯度的 Linear 层、Block 应用fully_shardFSDP 分片并开启激活 checkpointinglitgpt/finetune/lora.py 的parallelize_fn()从而把显存分摊到多张卡上。从基准表还能看到同配置在 1xA10G 与 4xA10G 上验证 loss / 困惑度几乎一致例如phi-2/lora.yaml分别是 0.819/2.269 与 0.820/2.271说明数据并行不会牺牲模型质量主要收益是吞吐而非单步显存。5. 显存不够怎么办从 README 到 oom.md 的降显存工具箱README 明确指向 tutorials/oom.md 获取系统性的 OOM 解决方案其核心手段按优先级如下调小 micro batch size--train.micro_batch_size最小为 1样本载入越少显存越低但收敛可能变慢缩短上下文微调脚本暴露--data.max_seq_length亦可在配置文件中写max_seq_length对样本截断数据长度极不均衡时单个超长样本会抬高整批显存——例如将 Alpaca 数据截断到 256 token 后Falcon 7B 的显存需求从 23.52 GB 降至 15.73 GBtutorials/oom.md降低精度见上文 4.2 节多卡分片改--devices 1为更多设备启用 FSDP 分摊显存还可尝试开启 CPU offload换更轻的优化器默认 AdamW 为每个可训练参数维护两份状态显存约为参数量的 2 倍可换成 SGD、Sophia、Lion 等更省显存的优化器但需评估收敛影响该建议尤其适用于全量微调/预训练场景可训练参数占比大时收益更明显。与 README 提到的 LoRA 专属手段结合降lora_r、关闭lora_projection/lora_mlp/lora_head等层开关即可在有限显存内把表格中的峰值内存进一步压下来。6. 开箱即用的完整流程综合 config_hub/finetune/README.md 与 tutorials/0_to_litgpt.md 的用法一套标准的「下载模型 → 微调 → 验证」流程如下# 1. 下载基座模型权重到 checkpoints/ 目录 litgpt download microsoft/phi-2 # 2. 基于配置中心文件微调--train.max_steps 5 用于快速验证 litgpt finetune lora \ --config config_hub/finetune/phi-2/lora.yaml \ --train.max_steps 5 # 3. 查看全部可覆盖参数 litgpt finetune lora --help要点说明命令行参数与 YAML 字段一一对应可用--train.max_steps 5、--max_seq_length 4096、--precision 16-true、--devices 4这类点号路径实现「配置文件 运行时覆盖」的组合无需改动仓库内文件上述 phi-2 配置默认在 1 张 GPU 上基于 Alpaca2k 微调结果输出到out/finetune/lora-phi-2并自动完成 LoRA 权重的合并main()末尾调用merge_lora()见 litgpt/finetune/lora.py若没有克隆仓库也可把--config指向配置文件的完整 URL见 tutorials/0_to_litgpt.md。7. 总结与选型速查回到 config_hub/finetune/README.md 的定位它既是「配置文件的性能背书」所有基准均可复现也是「内存与精度调优的决策入口」。结合实际使用推荐按下述规则决策你的场景推荐起点显存 6 GB想跑 3B 级模型stablelm-base-alpha-3b/qlora.yaml5.24 GB单张 10 GB 卡跑 2B 级模型gemma-2b/lora.yaml或gemma-2b/qlora.yaml单张 16–24 GB 卡跑 7B/8B 级模型llama-3-8b/lora.yaml/mistral-7b/lora.yaml需 20 GB 上下只有 8–10 GB 却想跑 7Bfalcon-7b/qlora.yaml9.44 GB无 bf16 硬件任意配置 --precision 16-mixed想加速吞吐而非省显存任意 LoRA 配置 --devices 4QLoRA 除外所有配置与基准数据均可在仓库内自行复现与验证相关实现与测试可继续深入阅读 litgpt/finetune/lora.py、litgpt/lora.py、tutorials/oom.md 以及 tests/test_lora.py。【免费下载链接】litgpt20 high-performance LLMs with recipes to pretrain, finetune and deploy at scale.项目地址: https://gitcode.com/GitHub_Trending/li/litgpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。