@no_stp_on_snek: 过去几天的模型测试日志,一直在训练更多模型,致力于让我的TUI能够拥有……

X AI KOLs Following 新闻

摘要

一篇详细的日志,分享了训练三个系列共四个模型的经验教训,涵盖了LLM微调中的不变性以及架构特定的挑战,如推理模型评估陷阱、量化效应和行为微调的水床效应。

模型测试日志 过去几天一直在训练更多模型,致力于让我的TUI能够拥有一个协调器,将任务委派给更小、更快的代理来做“苦力活”。以下是我在跨系列训练模型中学到的内容:哪些保持相同,哪些不同。 这是上一篇的后续(已引用)。上一篇是一个模型,这次是四个,来自三个系列:一个27B编码器(Qwen血统,即Qwopus),两个Gemma-4(一个12B稠密模型和一个26B融合MoE),以及GPT-OSS-20B(MXFP4 MoE)。同样的哲学,四个截然不同的动物。以下是如何概括以及哪些完全不一致。 **不变性(每次都是真的):** 基础模型比你想象的要好,并且在你没猜到的地方薄弱。每个模型,“它在X方面很差”都是错的。能力已经存在。真正的差距是狭窄的、具体的,并且通常就在我寻找的地方附近。26B看起来像是被压力压垮了。其实没有,它在单轮对话中表现良好,只有在持续施压下才崩溃。GPT-OSS看起来有着强大的脊梁。确实如此,但只在它用力推理的时候。一旦放松努力,它就崩溃了。你不能跳过性能分析。差距从来不在感觉告诉你的地方。 这是打地鼠,每次都是。小规模的行为微调就像是水床。把脊梁压下去,过度拒绝就冒出来了。修复过度拒绝,它就开始乱盖章。修复那个,它又急着算算术。这不是一次运行中的bug,而是这个规模问题的形状,在所有四个模型上都同样出现。技巧是知道哪个“地鼠”是真的,哪个是测量欺骗了你。 回放是承重结构。每个干净的结果都需要大量的“这是基础模型表现良好的例子,别忘了怎么做这个。”跳过它,就会用新行为换取通用能力。所有系列无一例外。 评估才是你欺骗自己的地方,而不是训练。训练是容易的部分。测量才是每个人,包括我,出错的地方。我不止一次“证明”了一个模型击败了基线,之后才发现测量是坏的。训练循环是可靠的。你的记分板却不是。 角色与机制是可分离的。模型做什么和听起来怎么样是两个层次。我可以锁定行为,然后在第二遍中完全重新设计声音,而不触及决策过程。令人惊讶的干净分离,所有系列都成立。 行为在残酷的量化下依然存活。贪婪行为非常难以用重度量化杀死。损失出现在概率分布中,而不是argmax。模型仍然做正确的事,只是不那么确定。在我压缩的每个系列上都一样。 **完全改变的内容(特定于架构和系列):** 答案实际存储在哪里。这是最大的陷阱。推理模型将真实答案隐藏在一个单独的通道中,如果你读错了,你就会“看到”基础模型失败于它实际上正在完美执行的事情。我在这上面浪费了实际时间。普通模型,答案就在那里。推理模型,你在解析通道,其中一半是空的,直到它完成思考。弄错这个,每个下游数字都是垃圾。 架构决定了你甚至允许训练什么。稠密模型:可以广泛引导,在任何地方。融合MoE和4位专家模型:专家基本上被限制,你不能干净地调整量化/融合的权重,所以你要引导注意力并冻结其余部分。相同目标,完全不同的访问方式,取决于模型如何构建。 努力门控只存在于推理模型中。GPT-OSS的脊梁并不弱,而是迟到了。正确的直觉存在于长推理链的末端,在低努力模式下,该链在模型到达那里之前就被截断了。这种失败模式在非推理模型上不存在。 差距取决于某物是干什么用的。对一个来说是测试优先的纪律和不撒谎关于代码是否工作。对另一个是多领域鲁棒性。再对另一个是克制和坚持标准。相同方法论,但目标行为以及整个评估在它们之间无法辨认。你不是在训练“一个模型”,而是在训练一个角色。 拒绝先验在不同系列中差异很大,所以同样的推动效果不同。OpenAI模型被训练成过度拒绝,它需要更少的拒绝重塑为有用的重定向。一个高度顺从或“清除”的模型有相反的问题,它需要添加判断力。对两个系列施加相同的压力,一个变成了更好的同事,另一个变成了受气包或砖墙。 每个系列的聊天模板都以不同的方式背叛你。分词器怪癖、模板静默丢弃前一轮推理、损坏的训练掩码、字典与列表返回类型。每个系列都带有自己的地雷,静静地破坏训练数据而不报错。没有可移植的“只需tokenize它”。 交付格式跟随架构。一个4位原生基础想以小适配器形式交付,这样你就不会破坏原生量化。一个稠密模型可以干净地合并成一个单一的量化文件。如何包装胜利由基础决定,而不是由你决定。 **真正令人惊讶的内容:** 模型的“回归”有时是模型正确而测试错误。最干净的例子:调整后的模型“过度拒绝”了几个看似良性的请求,直到我读了它们并意识到它拒绝标记没有证据的工作完成,以及拒绝重新排序应该保持顺序的日志。评估错误地将这些标记为良性。我无意中训练的行为是良好的判断力。记分板就是分辨不出来。 相同的输出,评分两次,结果得到0.50和0.92。对微妙内容进行自动评判是有噪声的。对细微行为进行单次评分几乎不比感觉好多少。我不得不用多个评判者投票并采取多数意见才能相信一个数字,而一旦我这样做,一半的“回归”作为噪声消失了。 让模型更加果断反而使它在数学上更差。给模型一个干脆、直击要点的角色,它就开始急算算术,跳到答案而不是逐步推导。一个没有人能预测的有数值副作用的性格变化。可修复,但你必须知道要检查。 你可以安装脊梁而不增加能力。仅引导注意力,不增加新知识,冻结专家,就足以移动判断力、克制和标准。我关心的行为存在于路由中,而不是原始能力中。 **一句话总结:** 跨系列的过程押韵。诚实分析,修复狭窄差距,防止遗忘,不信任自己的记分板。改变的是所有物理方面:答案隐藏在哪里,你被允许触碰什么,它在负载下如何失败,以及系列已经倾斜的方向。你不能在系列之间移植食谱。你移植的是纪律。
查看原文
查看缓存全文

缓存时间: 2026/06/25 15:21

模型测试日志贴

过去几天训练了更多模型,目标是让我的 TUI 能有一个编排器,把“苦力活“委托给更小、更快的智能体。以下是跨模型家族训练所学到的东西:哪些保持不变,哪些会变化。

接上一篇(引用的)。上一篇只有一个模型。这次有四个,来自三个家族:一个 27B 编码器(Qwen 血脉,即 Qwopus)、两个 Gemma-4(一个 12B 密集模型和一个 26B 融合 MoE)、以及 GPT-oss-20B(MXFP4 MoE)。同样的理念,四种截然不同的动物。以下是通用化与绝对不适用的内容。

不变的东西(每次都成立):

基础模型比你想象的要好,但在你猜不到的地方有短板。每个模型,“它在 X 方面很差“都是错的。能力已经存在。真正的差距很窄、很具体,而且通常就在我检查的地方旁边。26B 模型看起来在压力下会崩溃。其实没有,它在单轮对话中保持得很好,只在持续施压时才垮掉。GPT-oss 看起来脊梁很硬。确实如此,但只有在它努力推理时才行。一旦降低努力程度,它就崩溃了。你无法跳过性能剖析。差距永远不会在直觉告诉你存在的地方。

每次都是打地鼠游戏。小的行为微调就像水床。压下脊梁,过度拒绝就冒出来。修复过度拒绝,它又开始乱批准。修复那个,它又开始急算算术。这不是某次运行中的 bug,而是这个规模下问题的形状,在四个模型上都一模一样地出现。技巧在于知道哪个地鼠是真的,哪个是测量误差在误导你。

重放训练是承重结构。每一个干净的结果都需要大量“看,基础模型做得很好,别忘了怎么做“。跳过它,你就会用新行为换取通用能力。所有家族无一例外。

评估才是你欺骗自己的地方,不是训练。训练是容易的部分。测量才是每个人(包括我)犯错的地方。我多次“证明“一个模型击败了基准线,后来才发现测量是坏的。训练循环是可靠的。你的记分板不是。

人格与机制是可分离的。模型做什么和听起来怎么样是两个层次。我可以锁定行为,然后在第二轮完全重绘声音,不影响决策。分离得惊人干净,跨家族都成立。

行为在极端量化下幸存。贪婪行为很难通过重度量化消除。损失出现在概率分布中,而不是 argmax。模型仍然做对的事,只是不那么确定。在我压缩过的每个家族上都一样。

完全变化的内容(架构和家族特有):

答案实际存储在哪里。最大的陷阱。推理模型将真实答案隐藏在单独的通道中,如果你读错了,就会“看到“基础模型在它实际擅长的事情上失败。我在这上面浪费了真实时间。普通模型,答案就在那里。推理模型,你在解析通道,其中一半在它完成思考之前是空的。搞错了,所有下游数字都是垃圾。

架构决定了你甚至允许训练什么。密集模型:广泛地引导,想去哪都行。融合 MoE 和 4-bit 专家模型:专家基本不可触碰,你无法干净地适配量化/融合的权重,所以只能引导注意力并冻结其余部分。目标相同,但根据模型构建方式不同,可访问的手术路径完全不同。

努力门控只存在于推理模型中。GPT-oss 的脊梁并不弱,只是来得晚。正确的直觉存在于长推理链的末端,在低努力模式下,该链在模型到达那里之前就被截断了。这种失败模式在非推理模型中不存在。

差距由模型用途定义。一个模型的差距是测试优先纪律和不撒谎代码是否工作,另一个模型是跨领域鲁棒性,再一个是克制和坚持标准。相同的方法论,但目标行为和整个评估在它们之间无法辨认。你不是在训练“一个模型“,而是在训练一个角色。

拒绝先验因家族而异,因此相同推力的效果不同。OpenAI 模型被训练成过度拒绝,它需要更少地将拒绝转化为有用的重定向。高度顺从或消除限制的模型则有相反的问题,需要添加判断。对两个家族施加相同的压力,一个变成更好的同事,另一个变成软柿子或石墙。

每个家族的聊天模板都会以不同方式背叛你。分词器怪癖、模板静默丢弃前一轮推理、损坏的训练掩码、字典与列表返回类型。每个家族都有自己的地雷,会静默地破坏训练数据而不报错。没有可移植的“直接分词就行“。

交付格式跟随架构。一个原生 4-bit 的基础模型希望以小型适配器形式交付,这样就不会破坏原生量化。密集模型则可以干净地合并成一个量化文件。如何打包胜利由基础模型决定,不由你决定。

真正令人惊讶的东西:

模型的“回归“有时是模型正确而测试错误。最干净的例子:调优后的模型“过度拒绝“了一些看似良性的请求,直到我读了它们才意识到,它拒绝在没有证据的情况下标记工作完成,拒绝重新排序一个本应保持顺序的日志。评估错误地将这些标记为良性。我偶然训练出的行为是良好的判断力。记分板只是无法识别。

相同的输出,评分两次,得到 0.50 和 0.92。在微妙行为上的自动判断有噪声。对细微行为的单次评分几乎和直觉一样不可靠。我不得不让多个评委投票并取多数,然后才信任一个数字,而一旦我这么做,一半的“回归“就作为噪声蒸发了。

让模型更果断反而让数学变差。给模型一个清晰、直奔主题的人格,它就开始急算算术,跳过过程直接跳到答案。一个带有数值副作用的个性变化,没人能预测。可以修复,但必须知道要检查。

你可以在不增加能力的情况下安装脊梁。仅引导注意力,不添加新知识,冻结专家,就足以改变判断力、克制和标准。我关心的行为存在于路由中,而不是原始能力。

一句话概括:跨家族,过程是押韵的。诚实剖析,修复窄差距,锚定防止遗忘,不信任自己的记分板。变化的是所有物理层面:答案藏在哪里,你能触碰什么,它在负载下如何失败,以及家族已经倾向于哪个方向。你不会在家族之间移植食谱。你移植的是纪律。

Tom Turney (@no_stp_on_snek): 微调小型开放模型时真正让我惊讶的地方。注意,我在这个领域还比较新,所以有些内容可能看起来很显而易见,但还是想分享一下……

最近一段时间我试图让一个小型开放模型真正比其基础模型更好。不是在排行榜上,而是在实际使用中。

相似文章