ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

消费级显卡微调LLM:LoRA、QLoRA与DPO偏好对齐完全指南(How to Train Your GPT详解)

消费级显卡微调LLM:LoRA、QLoRA与DPO偏好对齐完全指南(How to Train Your GPT详解) 消费级显卡微调LLMLoRA、QLoRA与DPO偏好对齐完全指南How to Train Your GPT详解【免费下载链接】how-to-train-your-gptBuild a modern LLM from scratch. Every line commented. Explained like we are five.项目地址: https://gitcode.com/gh_mirrors/ho/how-to-train-your-gptHow to Train Your GPT是一个从零构建大语言模型的开源教程项目每一行代码都有注释用给5岁孩子讲故事的方式讲解 Attention、Transformer 等核心概念。本文聚焦它的 fine-tuning/ 微调专题详解如何用一张消费级显卡微调 LLM搞懂 LoRA、QLoRA 与 DPO 偏好对齐的原理、显存需求和上手路径 为什么消费级显卡也能微调 LLM预训练 vs 微调微调Fine-tuning的思路是预训练教会模型语言微调教会模型听话。互联网原始文本 → 预训练贵、通用→ 基座模型会语言不会对话 → 微调便宜、聚焦→ 对话模型乐于助人、遵循指令预训练需要数千张 GPU 跑数周而微调只需要一张消费级显卡跑几小时——前提是选对方法方法原理硬件需求耗时全量微调更新每一个权重4-8 张 A100数小时~数天LoRA冻结原权重只训小型适配器单张 3090/4090分钟~小时QLoRA基座模型压到4-bit LoRA单张笔记本显卡数小时 关键认知微调不能教模型新知识只能重排和激活它已有的知识。基座模型必须足够强微调才有意义。详见 fine-tuning/01_what_is_finetuning.mdLoRA 低秩适应原理只训练不到 1% 的参数LoRALow-Rank Adaptation的核心设计原权重矩阵 W 冻结不动在旁边加两个小矩阵 A 和 B没有 LoRA output input W W: 768×76858.9万参数 用了 LoRA output input W input A B W 冻结A 和 B 从零训练 每层只新增 24,576 个参数rank16 时rank秩控制容量常用 8/16/32。指令微调 8 或 16 通常够用要学新格式可试 32/64alpha 缩放系数输出乘以alpha / rank惯例取 alpha 2×rank保证不同 rank 下超参可迁移典型挂载位置注意力的 Q、V 投影矩阵指令微调可加 K 和输出投影适配器文件极小以本项目 1.52 亿参数模型为例LoRA 适配器约2MB而全量微调检查点要 600MB。推理时还可以把适配器合并回基座权重W_merged W AB零额外开销为什么有效预训练模型已有丰富的语言表示微调只需在现有理解上叠一层新行为小调整足够LoRA 把这些调整压缩成低秩形式。 数学细节与完整实现fine-tuning/02_lora_explained.mdQLoRA 量化微调把 7B 模型压进 8GB 显存QLoRA LoRA 4-bit 量化是消费级硬件微调的事实标准基座模型压缩到4-bit/权重7B 模型从 14GB 降到3.5GBLoRA 适配器保持全精度训练计算时 4-bit 权重临时反量化为 bfloat16前反向照常进行——住在4-bit计算用16-bitNormalFloat4NF4量化假设权重服从正态分布在零附近分配更密集的量化档位同比特下误差更小双重量化把量化常量本身也压到 8-bit7B 模型再省约 120MB分页优化器GPU 显存吃紧时把优化器状态换页到 CPU 内存避免 OOM 崩溃代价每次前反向都要反量化速度略慢于纯 LoRA质量差异通常在几个百分点以内——但能训永远优于训不动。显存档位代表显卡LoRA 可微调QLoRA 可微调12 GBRTX 3060/4060~3B~7B16 GBRTX 4080 笔记本~7B~13B24 GBRTX 3090/4090~13B~34B 量化细节与显存推算fine-tuning/03_qlora_explained.md微调数据怎么准备指令-回答对微调数据格式极简——指令 回答的配对数据质量远比数量重要100 条下限模型可能只是死记硬背1,000 条多数分类/简单问答够用5,000~10,000 条指令跟随、摘要等复杂任务注意使用基座模型对应的chat template特殊标记用错格式会输出乱码 数据格式与 chat template 详解fine-tuning/04_data_preparation.md如何判断微调成功看训练损失曲线微调 LLM 时最直观的进度指标就是训练损失loss随训练步数的下降曲线。健康的 LoRA 微调应呈现平稳、持续下降的趋势——如本项目训练记录中的 loss 曲线所示loss 平稳下降 → 训练正常loss 骤降到接近 0 → 可能在过拟合数据太少时常见可用 LoRA 内置的 0.05~0.1 dropout 缓解loss 震荡/发散 → 学习率过大DPO 偏好对齐不靠 RLHF 让回答更对人胃口DPODirect Preference Optimization让模型学会区分好回答和坏回答是开源社区替代 RLHF 的主流偏好对齐方案对比维度RLHFDPO步骤3步奖励模型PPOKL惩罚1步改一下损失函数稳定性易不稳需精细调参稳定标准监督学习算力高要跑奖励模型低只跑策略模型数据偏好对同样的偏好对原理每条训练样本包含同一 prompt 下的chosen优选和rejected弃选回答DPO 损失让模型提高优选回答的概率、压低弃选回答的概率并用训练前的参考模型做锚防止模型跑偏loss -log(sigmoid(β × (当前模型的偏好差 - 参考模型的偏好差)))⚠️ DPO 效果完全取决于偏好对质量——如果 rejected 其实比 chosen 好模型就会学坏。参考模型是 DPO 能稳定收敛的关键。 DPO 公式推导与代码fine-tuning/06_dpo_explained.md先提示词工程还是直接微调先用提示词工程免费、分钟级出效果、适用于少量明确场景和快速原型再考虑微调需要大规模一致行为、提示词写不清的复杂模式、担心提示注入、上下文窗口被长 prompt 占用行为烧进权重后提示词可以很简短行为也更稳定。判断标准见 fine-tuning/07_prompt_vs_finetune.md快速上手消费级显卡 LoRA 微调实操项目提供可直接运行的笔记本 fine-tuning/notebooks/lora_finetune.ipynb在玩具指令数据集上用 LoRA 微调一个小模型单张消费级 GPU 即可跑通。推荐阅读顺序来自 fine-tuning/README.md01_what_is_finetuning.md — 全景图02_lora_explained.md — LoRA 原理几乎所有人都在用03_qlora_explained.md — 量化适配更小显卡04_data_preparation.md — 数据准备06_dpo_explained.md — DPO 偏好对齐07_prompt_vs_finetune.md — 选型决策总结LoRA冻结基座、只训低秩小矩阵适配器仅几 MB可即插即换、可合并部署QLoRA叠加 4-bit NF4 量化 双重量化 分页优化器让 8~24GB 消费级显卡微调 7B~34B 模型成为可能DPO用一对偏好数据 一个改进的损失函数替代繁琐的 RLHF 完成偏好对齐数据准备上千条高质量指令-回答对 正确的 chat template 是大多数任务的黄金起点配合项目的 12 章从零教程chapters/目录涵盖分词、注意力、RoPE、KV Cache 等这套教程能让你真正理解每一行微调代码背后发生了什么 【免费下载链接】how-to-train-your-gptBuild a modern LLM from scratch. Every line commented. Explained like we are five.项目地址: https://gitcode.com/gh_mirrors/ho/how-to-train-your-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表