v1の教訓:損失は良好に見えるが、出力はゴミ
警告の物語
ANDREA-120M v1はステップ110KでEMA損失3.43に到達し、ランダムチャンス(ln(8449) = 9.04)を大幅に下回りました。数値は立派に見えました。サンプルはそうではありませんでした。
ステップ 80K: リージョン リージョン リージョン リージョン リージョン リージョン リージョン
ステップ 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
ステップ 140K: ゲーム、ゲーム、ゲーム、ゲーム、ゲーム、ゲーム
ステップ 165K: ブディ ブディ ブディ ブディ ブディ ブディ ブディ ブディ
v1にはサンプル監視が接続されていませんでした。モデルはステップ80K以降に繰り返しループのゴミを出力し、誰かが気づくまでさらに85Kステップ訓練が続きました。出力を読まなかったために10日以上の計算資源が無駄になりました。
損失が隠すもの
クロスエントロピー損失は、モデルが次のトークンに対してどれだけ驚くかを測定します。region region region region を出力するモデルは、自分の出力に対して驚いていないように見えます(毎回同じ単語を予測しているため)。数値的な損失は低く保たれていても、意味的な品質は崩壊します。
v2 の修正
sample_every = 100 ステップごと。420個の自由形式トークンを生成します。一貫性ゲート付き早期停止は、ビグラム多様性、トリグラム多様性、英語単語の存在、& 文字多様性(0-100スケール)で各サンプルをスコアリングします。5連続サンプルが30未満で自動停止。v1でバックテスト:132Kステップでトリガーされ、3.8日を節約。
サンプルの読み取りはオプションではありません。サンプルの読み取りが、損失に意味があるかどうかを知る方法です。
損失 vs サンプル品質
ppl = exp(loss)
変換
Cross-entropy loss は nats で報告されます。Perplexity はモデルが各ステップで考慮する等確率トークンの同等数を報告します。変換:ppl = exp(loss).
8449トークンの語彙に対するランダム: loss = ln(8449) = 9.04, ppl = 8449。完全に記憶した完璧な予測: loss = 0, ppl = 1。
参考表
| loss | ppl | 読み方 |
|---|---|---|
| 9.04 | 8449 | 完全な語彙に対するランダム |
| 5.00 | 148 | 初期訓練、基本構造 |
| 3.00 | 20 | 語彙分布の学習 |
| 2.00 | 7 | 知識豊富だが不正確 |
| 1.00 | 2.7 | 制約遵守の出現 |
| 0.70 | 2 | 教科書的一行 |
| 0.30 | 1 | 事実の想起、主に記憶 |
| 0.13 | 1 | ALERT: 記憶された部分文字列 |
| 0.00 | 1 | 完璧な記憶 |
サンプルごとの損失 vs EMA 損失
EMA 損失(多くのステップにわたる指数移動平均)は、全体的なトレーニングの健全性を報告します。サンプルごとの損失は、特定の1つのサンプルの品質を報告します。これらは乖離します:EMA は 2.0 に留まる一方、個々のサンプルはバンディットが選択したプロンプトに応じて 0.13 から 4.0 のどこかに着地します。
個々のサンプル損失を読むことで外れ値を検知します。EMA 損失は、あるサンプルがリポジトリのドキュメントの部分文字列を記憶したかどうかを何も教えてくれませんが、サンプルごとの損失は教えてくれます。
3つの損失値の読み取り
監査ウィンドウを歩く
700ステップのウィンドウ
ステップ111,996から112,668の間で、ANDREA-120Mは6つの無関係な知識ドメインにまたがるサンプルを生成しました。各々が損失ティアに該当します:
階層 1: 事実の想起 (loss 0.30, ppl 1)
step 112,584, biology
> [extinction prompt]
> < black spider montano is alive, carolina parakeet is extinct.
2つの正しい事実。Carolina parakeetは1939年に絶滅が宣言されました;black spider monkeyは現存。ppl 1は、モデルがすべてのステップで正しいトークンを選択したことを意味します。外部評価: 9.5/10。
ティア 2: 教科書の一文定義 (loss 0.74, ppl 2)
ステップ 112,668, 信号処理
> [Fourier transform prompt]
> < フーリエ変換は信号を周波数成分に分解し、信号特性の分析と周波数領域でのフィルタリングを可能にします。
教科書的な一文の定義。時間から周波数への分解で、正しい適用用語を使用。外部評価: 9.5/10。
Tier 3: 制約遵守 (loss 1.05, ppl 3)
step 112,248, poetry
> 'r' で始まる3つの単語を使って、雨についての俳句を書いてください。
> < 雨のリズミカルな反復、 窓の細流、 人生の痛みからの休息。
'r' の単語3つ (Rain, Rivulets, Respite)、3行、俳句の構造を保持、雨を中心とした意味的整合性。ppl 3 = モデルは各ステップでいくつかの候補を考慮したが、制約内に留まった。
ティア4: 知識はあるが不正確 (損失 1.94, ppl 7)
ステップ 112,500, python tools
> Pythonプロジェクトで古いパッケージをどうやって見つける?
> < pip list --outdated names を使ってプロジェクト管理内のpipパッケージリストを確認するか、pyenv経由でより自動的なパッケージを取得すべきです。
正しいカーネルコマンド (pip list --outdated) が訓練データから現れます。表現の流暢さはまだ発展中です。軽微な混同: pyenv はPythonバージョンを管理し、パッケージではありません。ppl 7 はモデルが各ステップで約7つのあり得る続きを考慮したことを意味します; すべてが正確だったわけではありません。
ティア5: ALERT、記憶された部分文字列 (loss 0.13, ppl 1)
ステップ 112,080、異常
損失 0.13 は教科書ティアを下回る。モデルがこのサンプルで過度に自信を持っている。診断: 学習されたチャットではなく、記憶された repo-docs 部分文字列。バンディットが前の実行状態から重み 1.546 のゾンビ repo-docstrings アームを引き、トレーニングデータの逐語的なチャンクを再現した。
異常な低損失は品質信号ではなく、記憶の警告です。 0.20未満とは: モデルが生成しているかコピーしているかを確認せよ。
700ステップで6つのドメイン
生物学(インコ)、信号処理(フーリエ)、詩(俳句)、Pythonツール(pip)、会話対話、オプス対話。700ステップ以内に6つの無関係なドメインがあることは、バンディットが多様な作業をしており、1つのソースに固まっていないことを示します。ドメインの広さは品質メトリクスです。
3つのサンプルの診断
外部の目にサンプルを提出する理由
外部評価で捉えられたもの
内部サンプル監査では、モデルが生物学、信号処理、詩、Pythonをオンデマンドで生成していることがわかりました。外部のチャット品質評価では、これらのサンプルを「9.5/10」と評価し、「この規模での知識タスクでその実力を超えたパフォーマンス」としました。
内部レビューが答える:バンディットは多様な作業をしたか? 外部レビューが答える:人間の読者がこれらの出力を良いと評価するか?
両方が重要な理由
内部監査は構造的な失敗を捉えます:繰り返し崩壊、記憶スパイク、低多様性のゾンビアーム。損失階層、n-gram多様性、ドメインの広さはすべてプロキシから観察可能です。
外部評価は意味的な品質の失敗を捉えます:自信を持って間違った事実、不自然な表現、ニュアンスの欠落。これらのいずれも損失数値には現れません。
方法論
ANDREAのトレーニングダッシュボード training.ai.unturf.com/dashboard は意図的に公開され、読み取り専用です。誰でも .loss.json、.samples.json、およびbandit状態をリアルタイムでポーリングできます。外部レビュアーはオペレーターと同じデータにアクセスできました。
200,000ステップの112,584ステップで抽出したサンプルに対する独立した読者からの9.5/10という評価で、完全な出所情報付き:その結果は再現可能、監査可能、操作不可能です。同じサンプル、同じ損失値、同じbandit状態は、確認する誰にでも見えます。
2つの独立したシグナル
内部: 低損失 + 高多様性 + 多ドメインカバレッジ = バンドイト健全。
外部: 独立レビュアーから9.5/10 = 出力レート良好。
両方が一致: 訓練は事実の想起、制約の遵守、多段落の一貫性に収束中。もし乖離したら(低損失だが外部評価3/10)、調査すべきメトリック・ゲーミング問題が発生。
2つのシグナル、1つの診断
監査ウィンドウごとの5ステップ
1回の監査、5つのチェック
1. 損失階層を読む。 ppl = exp(loss)。5階層表と照合せよ。
2. 0.20未満の異常値をチェック。 暗記シグナル。品質結果として扱う前に調査せよ。
3. 実際のサンプルテキストを読む。 損失数値は出力内容を教えてくれない。読め。
4. ドメインの広さを数える。 700ステップで6つの無関係なドメイン = 健全なバンディット。1つのドメインが7回繰り返し = 詰まったバンディット。
5. 外部の評価と比較する。 自分のサンプルが良さそうに見えても、ランの外の誰かに読んでもらう。彼らの不同意は情報だ。
これが何に繋がるか
- Activity 22 (grow_a_language_model_checkpoints). sample_every の頻度がチェックポイントの頻度と一致;両方とも100ステップごとに発火。
- Activity 21 (coherence-gated early stopping). サンプルが崩壊したらトレーニングを自動停止する多様性メトリクス。
- Activity 24 (grow_a_language_model_microgpt_to_andrea). v1の崩壊、v2.5の汚染、v3の洗練はすべて(またはサンプル監査で検知できた)サンプル監査で検知された。
一つの真実
損失は数値です。サンプルを読むことでその数値が何を意味するかを知ります。