我没有放弃 - extGemma4-40_5B 回归
摘要
一位用户分享了他们成功扩展微调后的 Gemma 模型的经历,通过插入新层并克服初始化失败,创建了 extGemma4-40_5B,同时保留了原始模型的能力。
接续我之前的帖子:https://www.reddit.com/r/LocalLLaMA/comments/1ul0cx9/i_extended_gemma431b_to_44b_88_layers_since/ https://www.reddit.com/r/LocalLLaMA/comments/1um20ev/why_new_inserted_layers_kill_the_gemma4/ (警告:AI 生成帖子——由于我的英语不好)Hugging Face:https://huggingface.co/TOTORONG/extGemma4-40_5B https://preview.redd.it/veg5nuao1rch1.png?width=2752&format=png&auto=webp&s=85492b121524aa14011f57d8d4fa5ace38c0270a
不久前,我在这里发帖讲述了尝试通过向微调后的 Gemma 模型中堆叠额外层来扩展它(88 层实验)。结果失败了。新层就像死重一样呆在那里,从未学到任何有用的东西。许多人在评论中友善且好奇,所以这里是后续:我没有放弃。我回去弄清楚了它失败的原因,然后再次尝试——这次成功了。事先说明:这是给喜欢折腾的人看的,不是一篇论文。我不会涉及数学和参数数量的细节,而是用类比来说明。如果你想要更详细的细节,我很乐意在评论中分享。
## 为什么第一次尝试失败了(简短版)
插入新层的标准技巧是将它们初始化为最初什么都不做的状态——一个直通。思路是“让它们从无操作开始,让训练教会它们工作。”可以想象成在工厂装配线上雇了 17 个新人,第一天就告诉他们站着不动。听起来安全。问题是:一个什么都不做的工人也得不到任何反馈。没人能告诉它们“嘿,那样做稍微调整一下”,因为它们没有做任何需要纠正的事。所以它们永远学不会。它们只是站在那里,而生产线从它们身边流过。这就是第一次失败的原因——新层缺乏任何学习的信号。
## 这次我做了什么不同的事情
我没有告诉新人站着不动,而是教会他们大致混合了左右两边同事正在做的事情,然后在换班中途加入。现在他们从第一分钟就开始做事——虽然笨拙,但真实——所以立即开始获得反馈并改进。这一个改变就是全部故事。一个已经在移动的工人可以被指导。一尊雕像不能。
还有两个重要的事情,都是通过艰难方式学到的:
* **插入位置很重要。** 我不再在尴尬的位置(比如生产线上的“管理者检查点”)硬塞层,而是将它们滑入平静、稳定的位置。原来放置位置出奇地挑剔。
* **不要动音量旋钮。** 模型有很多每层“音量”设置,经过单独调整以使最终信号达到正确水平。我的第一反应是为新层取平均值——这会信号压低到耳语,模型产生垃圾。保持这些旋钮中立解决了问题。(我在这里浪费了很多时间。)
## 然后两轮“修复”
**第 1 轮:** 我冻结了整个原始模型,只允许新层学习,在小型数据集上(一些 STEM 推理 + 韩国法律问答)。这使新层站住了脚。
**第 2 轮:** 我解冻了所有层,让整个模型一起稳定。这才是真正取得进展的地方。
我想强调:目标从来不是超越原始模型。目标是证明你可以对已经微调过的模型进行大手术——切开它,增加容量——让它修复,而不是崩溃成胡言乱语或忘记它知道的一切。普遍看法是这种手术会毁掉微调模型。我想看看这是否真的成立。(剧透:不一定。)
## 我最关心的证据:并排答案
基准测试还行(修复后的模型恢复了手术损失的大部分能力,并且在 GPQA-Diamond 上接近原始模型)。但数字很容易一笔带过。真正让我信服的是阅读实际答案。所以我对原始模型和扩展+修复后的模型在 10 个不同领域问了相同的 10 个问题——物理、生物、历史、哲学、文学、一个谜语、一个逻辑谜题、一个数学证明、经济学和一个医学机制问题——然后进行了比较。我特意选择了那些会深入到不寻常、术语密集领域的提示,因为正是这些地方,损坏的模型容易崩溃。
我让另一个前沿模型(Claude)作为裁判。
结果:两个模型都没有崩溃、没有胡言乱语、没有随机外来语垃圾。(这很重要——扩展模型的损坏版本在遇到罕见技术词时曾开始随机喷出另一种书写系统的字符。现在完全消失了。)
* 9/10:基本平手。两个模型都完美回答——谜语、逻辑谜题(两个都正确注意到谜题条件不足,而不是自信地编造答案)、√2 无理数证明、康德例子、阿司匹林机制等等。
* 1/10:扩展模型实际上胜过了其父模型。这是有趣的一例。手术奏效的物理问题
**提示:** “一个光子和一个电子具有相同的德布罗意波长。哪个携带更多能量,为什么?”
这是一个经典陷阱。相同的波长意味着相同的动量,所以很容易用相同方式对待它们——但光子和电子通过完全不同的规则获得能量。原始模型上当了。它以天真的方式计算电子的能量,忘记考虑电子的静止质量(电子仅仅因为存在而拥有的大量能量)。它得出结论光子获胜。错。
扩展+修复后的模型正确处理了它——它使用了正确的关系来处理有质量粒子,考虑了静止质量,并得出结论电子携带更多能量。正确。
所以新增的容量不仅仅是装饰。至少在这个问题上,它做了原始模型做不到的真正推理——扩展模型在其父模型基础上做出了更好的推理。这就是让我觉得整个曲折是值得的单一结果。
## 修复过程,实时捕捉
还有一件我觉得很酷的事。我提到了那个“随机外来字符”崩溃?我在第 2 轮中实时看着它修复:
* 修复前:遇到罕见技术词 → 偏离路线进入重复的非拉丁垃圾 → 无法恢复。
* 第 2 轮进行约 13%:在一个词上卡住了一次,然后自己纠正,干净地完成了句子。
* 过半之后:完全流畅,没有问题的痕迹。
看着结构缺陷在训练中实际自我修复,而不仅仅是“曲线下降”,真是令人满足。
## 太长不看版
我的第一次大规模扩展尝试失败了,因为新层一开始是死的无操作,从未得到任何学习信号(我之前发过那篇失败的经历)。这次我将新层初始化为邻居的混合,使它们从一开始就在做事情,小心放置位置,并保持模型内部音量设置不变。在小型数据集上进行两轮轻度修复后,模型恢复接近原始——没有崩溃,没有灾难性遗忘。在 10 个领域中,它在 9 个上与原始模型持平,在原始模型答错的物理问题上胜出。那个“向微调模型添加层会导致崩溃”的旧恐惧这次没有应验。我并不是说我构建了比基础模型更好的东西——那从来不是重点。重点是:你可以对微调模型进行手术而不杀死它。仍然非常不放弃这条道路。欢迎在评论中提问。
以下是原始模型(Solon_V5)与扩展模型(extGemma4-40_5B)的对比
**英语推理对比 —— 原始模型 vs. 扩展模型**
十个领域,每个一个提示,贪婪解码,最多 768 个新 token。输出由外部 LLM(Claude)评判。[EOT] 表示回合结束标记。
* **solon_v5** — 原始的微调 Gemma 4 31B-IT 基线(60 层)。
* **extGemma4 (Phase 2)** — 深度扩展+修复后的模型(77 层)。
**摘要**
崩溃
跨脚本 con
相似文章
我将Gemma4-31B扩展至44B(88层)——既然Google不愿发布比31B更大的模型
一位用户将Google的Gemma4-31B模型扩展至44B参数、88层,并批评Google未发布更大版本。
重建Gemma 4 31b……更好……压缩为26b……
一位开发人员正在将Gemma 4 31b重建为一个更小的26b模型,通过移除弱SWA层、添加基于注意力的残差网络(来自Moonshot)以及使用topK logit目标进行再训练,旨在实现更好的长上下文和性能。
将 Gemma 4 31B 密集模型转变为原生 Gemma 4 加法型 MoE 模型
一个概念验证的训练脚本实现了将 Gemma 4 31B 密集模型转换为加法型 MoE 架构,灵感来自 JDONE-Research 的一个韩语专用微调模型。
我微调了 Gemma 4 12B,使工具调用效果提升了2.7倍,因为我无法在16GB的VRAM中舒适地运行其他任何模型。
一个通过QLoRA训练优化的微调版 Gemma 4 12B,适用于配备16GB VRAM的消费级GPU,可将工具调用可靠性提高2.7倍。
@MiaAI_lab:我使用Fable-5风格推理和助手轨迹对Gemma 4 12B进行了微调,并将其发布为Gemmable 4 12b。**可用…
Mia-AiLab发布了Gemmable 4 12B,这是Google Gemma 4 12B模型的微调版本,使用了Fable-5风格推理和助手轨迹,提供GGUF和MLX格式用于本地推理。