进阶 unsloth.ai 2026-10-07 22:27:00 · 6 阅读

第23章 Unsloth 微调 Phi-4:修复 Bug 并移植 Llama 架构

unsloth Download ☰ Download 博客 Phi-4 微调 + Unsloth 的 Bug 修复 2025年1月10日 • 作者:Daniel & Michael 2025年1月10日•作者:Daniel & Michael 微软最新发布的 14B 模型 Phi-4 性能媲美 OpenAI 的 GPT-4o-mini,现已登陆 Unsloth!我们在 Phi-4 中发现并修复了 4 个 bug,大幅提升了模型的准确率——详情见下文。此前我们曾与 Google 和 Hugging Face 合作修复 Gemma 的 bug,也与 Meta 合作修复过 Llama 的 bug。

Unsloth 让 Phi-4 的微调速度提升 2 倍、显存占用减少 70%,并支持超过 128K 的上下文长度——在 48GB GPU 上比 Hugging Face + FA2 的 12K 长出 12 倍。

我们将 Phi-4 转换成了 Llama 的架构,以获得更好的准确率和更易用的体验。我们还上传了修复后的 Phi-4 GGUF 文件和动态 4-bit 量化版本(见此处链接)。

可以通过我们的 Phi-4 (14B) Colab Notebook 尝试微调,它可以在 Google 免费的 Tesla T4 16GB GPU 上运行。 Phi-4 的 Bug 修复 1. Tokenizer 的 bug 修复 有意思的是,Phi-4 的 tokenizer 把 <|endoftext|> 同时用作 BOS(句首)、EOS(句尾)和 PAD(填充)token。主要问题在于 EOS token 用错了——正确的应该是 <|im_end|>。否则生成结果中会出现 <|im_end|><|endoftext|> 这样的内容。 2. 微调的 bug 修复 PAD token 应使用专门的填充 token(如 Llama 中的 <|finetune_right_pad_id|>),或者使用未训练过的 token——比如我们用的是 <|dummy_87|>。

如果 PAD token 用错,可能导致模型无限生成,因为 PAD token 在损失计算时会被 mask 掉。因此必须使用正确的 PAD token,避免不小心把 EOS token 也 mask 掉——毕竟在这个模型里两者是同一个 token。 3. Chat template 的问题 Phi-4 的 tokenizer 总是会自动添加 assistant 提示——但按照设计,只有在 add_generation_prompt 被触发时才应该这么做。大多数 LLM 推理服务框架都不期望自动追加 assistant 内容,这可能会在部署时引发问题。 💡 我们的修复有效吗? 多位 Reddit 网友的反馈证实我们的修复确实有效!例如,从 Hugging Face OpenLLM Leaderboard 的结果来看,经过我们的修复和 Llama 化处理后的 Phi-4,表现优于或持平微软官方的 Phi-4 模型!Reddit 上的评论显示,我们的修复让 Phi-4 的推理效果明显更好:
例1:某机构内部的选择题测试显示,我们的修复版本表现更优: 例2:让 Phi-4 绘制房子 ASCII 艺术: 🦙 Llama 架构移植 我们还成功将 Phi-4 直接移植到 Llama 架构中!由于 QKV 未合并,且 gate/up 层也保持独立,这使得微调精度大幅提升。LoRA 微调可以为每个矩阵学习独立的 A 矩阵。查看上传文件。 🦥 动态 4-bit 量化 我们上传了 4-bit bitsandbytes 预量化模型,下载速度提升 4 倍。然而,Unsloth 的动态 4-bit 量化表明,并非所有层都适合量化。这种策略在仅增加 10% VRAM 占用的情况下,显著提升了模型精度。 Unsloth 动态量化效果的绝佳例证,是我们将动态 4-bit 量化模型提交至 Hugging Face OpenLLM 排行榜。我们的 4-bit 动态量化模型得分几乎与 16-bit 版本持平,且远高于标准 Bnb 4-bit 模型及微软官方 16-bit 模型,尤其在 MMLU 基准上优势明显。 我们上传了保留部分 16-bit 层的动态 4-bit 量化模型,详情请见此处。 激活值与权重误差分析图表如下: 🛠️ Phi-4 微调 Phi-4 (14B) 1xL4 24GB 12x 更长上下文 Phi-4 (14B) 1xL4 24GB 2x 更快 Phi-4 (14B) 1xL4 24GB 减少 >70% VRAM 使用 Unsloth,Phi-4 的微调可在 15GB 以下 VRAM 中完成!速度提升 2 倍,默认使用动态 4-bit 量化以确保更高精度!推理速度也原生提升 2 倍! 立即通过免费 Google Colab Notebook 体验使用 Unsloth 微调 Phi-4。查看其他 Notebook 和模型上传,请访问我们的文档。 性能基准测试 模型 VRAM 🦥 Unsloth 加速 🦥 VRAM 降低 🦥 更长上下文 🤗 Hugging Face+FA2 Phi-4 24GB 2x 70% 12x 更长 1x 测试基于 Alpaca 数据集,batch size 为 2,梯度累积步数为 4,rank 为 32,并在所有线性层(q, k, v, o, gate, up, down)上应用 QLoRA。 💕 致谢! 照例,衷心感谢所有使用和分享 Unsloth 的用户,我们不胜感激。🙏 一如既往,请加入我们的 Reddit 页面和 Discord 服务器,获取帮助或表达支持!你也可以在 Twitter 上关注我们,并订阅我们的新闻通讯。 感谢阅读! Daniel & Michael Han 🦥 10 Jan 2025 立即免费微调 Phi-4 免费开始使用 加入我们的 Discord

评论 (0)