English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

eval_chat_quality() 连接到了错误的运行器

一个本应在第 3 天停止的 10 天故障

ANDREA-120M v1 在 RTX 4090 上以 130W 连续功率训练了 16.1 天。每 200 步存储样本输出,但运行期间从未分析。到第 80K 步(第 4 天),样本输出为 region region region region region。到第 110K 步,为 ''''' ''''' '' ''' ''。训练继续了另外 11 天,直到第 165K 步被手动终止。


烟雾报警器出了什么问题

eval_chat_quality() 存在于代码库中。它对样本质量进行评分。它甚至正确工作。但它仅连接到遗留的多阶段运行器。v1 火hose 课程使用了不同的代码路径,从未调用该评估。烟雾报警器放在另一个房间,门是关着的。


代价

16.1 天计算时间。130W 连续运行。~50 kWh 电量。模型在任何时候都没有产生可用的输出。损失 EMA 在第 110K 步达到 3.23 的最低点,然后在训练停止的第 165K 步回升到 4.54。数值合理;语义空洞。


对于 8449 个 token 的词汇表,随机几率是 9.04。v1 在产生 region region region 时达到了 3.23 EMA 损失。损失本身无法检测连贯性崩溃。 一个通过重复高频 token 来最小化交叉熵的模型会因这种失败模式而获得数值奖励。

为什么损失曲线撒谎

v1 在产生 `region region region region` 时达到了 EMA 损失 3.23(远低于随机几率 9.04)。用 2-3 句话解释模型如何在产生退化输出时实现数值合理的损失。参考交叉熵机制。

在四个轴上为每个样本评分

复合分数

v2发布了一个连贯性门,它对每个样本(在火hose训练期间每100步取样一次)在四个指标上进行评分:


Coherence gate flow


指标范围它捕捉的内容
二元组多样性0-35两标记级别的重复 (region region)
三元组多样性0-35三标记级别的重复 (a, b, a, b, a, b)
英语单词存在度0-20漂移到非英语(CJK、斯拉夫字母、乱码)
字符多样性0-10单字符坍缩 (''''', ... ... ...)

总分:100。及格线:30。


为什么使用四个指标,而不是一个

每个指标捕捉不同的失败模式:


- 模型崩溃为一个二元组的模型会失败于二元组多样性,但通过字符多样性

- 产生标点噪声(''''' ''''' '')的模型会失败于字符多样性,但如果标点对变化,则可能通过二元组多样性

- 模型漂移到非英语(翻译训练污染)会失败英语单词存在性测试,但如果产生语法正确的普通话,则通过 Bigram 和 Trigram 多样性测试。

- 产生 a, b, a, b, a, b 的模型通过 Bigram(a-b 和 b-a 出现),但失败 Trigram(a-b-a、b-a-b 主导)。


四个指标共同覆盖了失败空间。复合分数低于 30 意味着至少一个维度严重崩溃,足以拖累整个样本。


连续计数器

自动停止在 5 个连续样本 分数低于 30 后触发。单个坏样本可能在相变或稀有源抽取期间发生;连续五个意味着模型已停止恢复。每 100 步取样一次,5 个连续退化样本 = 500 步确认的连贯性崩溃。

计算分数

在第 80K 步的一个 v1 样本读取为 `region region region region region region region region`。估计分数:(a) 二元组多样性,(b) 三元组多样性,(c) 英语单词存在,(d) 字符多样性。计算总分。这个样本单独是否会触发门控?

v1 的运行情况会是什么样子

回测触发

根据 v1 的存储样本,追溯应用 v2 连贯性门控显示,门控会在第 132K 步触发。v1 运行到第 165K 步才手动终止。门控本会提前 33,000 步停止训练。


计算节省

RTX 4090 在 FP16 cuBLAS 下训练速度约为 ~6 步/分钟。33,000 步 / 6 步/分钟 = 5,500 分钟 = 91.6 小时 = 节省 3.8 天的计算时间。 以 130W 持续功率计算,那是约 12 kWh 的电量,加上 3.8 天的 GPU 损耗。


为什么选择第 132K 步而不是第 80K 步

v1 在第 80K 步产生了 region region region。为什么那时门没有触发?


因为在坏样本之间偶尔会出现好的样本。bandit 每 7-42 步循环遍历来源。即使是退化的模型,在从不同来源采样时偶尔会产生更多样化的输出,从而短暂重置连续计数器。到第 132K 步时,模型已经深度崩溃,以至于 5 个连续退化样本(500 步)变得不可避免。


课程:将烟雾报警器连接到每个运行器

v2 将 eval_chat_quality() 直接连接到火hose课程的样本处理代码路径,而不仅仅是遗留运行器。每个样本、每次运行、每个代码路径:相同的关卡。此修复只需约30行代码。

泛化工程模式

v1 浪费了3.8天,因为 eval_chat_quality() 只连接到一个运行器。用2-3句话论证 v2 的连贯性关卡为长期运行的ML训练确立了什么工程原则。引用布线选择和复合指标设计。