Урок v1: Loss выглядит нормально, вывод — мусор
Предостерегающая история
ANDREA-120M v1 достигла EMA loss 3.43 на шаге 110K, значительно ниже случайного шанса (ln(8449) = 9.04). Число выглядело уважительно. Сэмплы — нет.
шаг 80K: регион регион регион регион регион регион регион
шаг 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
шаг 140K: игры, игры, игры, игры, игры, игры
шаг 165K: Буды Буды Буды Буды Буды Буды Буды Буды
в1 не имел подключенного мониторинга выборки. Модель производила мусор с повторяющимся циклом с шага 80K и далее, и обучение продолжалось еще 85K шагов, прежде чем кто-то заметил. 10+ дней вычислений потрачены зря, потому что никто не читал вывод.
Что скрывает Loss
Cross-entropy loss измеряет, насколько модель удивлена следующим токеном. Модель, которая выдаёт region region region region, выглядит неудивлённой своим собственным выводом (она предсказывала одно и то же слово каждый раз). Числовая потеря может оставаться низкой, в то время как семантическое качество рушится.
Исправление v2
sample_every = 100 шагов. Генерируем 420 свободных токенов. Раннее остановка с контролем когерентности оценивает каждый сэмпл по разнообразию биграмм, разнообразию триграмм, наличию английских слов и разнообразию символов (шкала 0-100). Авто-остановка после 5 последовательных сэмплов с оценкой ниже 30. Ретро-тест на v1: сработало бы на шаге 132K, сэкономив 3.8 дня.
Чтение сэмплов — не опция. Чтение сэмплов — это то, как мы знаем, что loss что-то значит.
Loss против Качества Сэмплов
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 | ВНИМАНИЕ: запомненная подстрока |
| 0.00 | 1 | идеальное запоминание |
Потеря на образец vs EMA Loss
EMA loss (экспоненциальное скользящее среднее по многим шагам) отражает общее здоровье обучения. Потеря на образец отражает качество одного конкретного образца. Эти два значения расходятся: EMA может оставаться на уровне 2.0, в то время как отдельные образцы могут попадать в диапазон от 0.13 до 4.0 в зависимости от того, какой промпт выбрал бандит.
Чтение потери на отдельный образец — это способ обнаружить выбросы. EMA loss ничего не говорит о том, запомнил ли один образец подстроку repo-docs; потеря на образец — говорит.
Чтение трех значений потери
Прогулка по окну аудита
Окно из 700 шагов
Между шагом 111,996 и 112,668 модель ANDREA-120M произвела образцы, охватывающие шесть несвязанных доменов знаний. Каждый попадает в уровень потерь:
Уровень 1: Фактическое воспроизведение (loss 0.30, ppl 1)
шаг 112,584, биология
> [extinction prompt]
> < black spider montano is alive, carolina parakeet is extinct.
Два правильных факта. 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.
Уровень 3: Соблюдение ограничений (loss 1.05, ppl 3)
шаг 112,248, поэзия
> Напишите хайку о дожде, используя три слова, начинающиеся на 'r'.
> < Rain's rhythmic refrain, Rivulets on the window, Respite from life's pain.
Три слова на 'r' (Rain, Rivulets, Respite), три строки, структура хайку сохранена, семантическая связность вокруг дождя. ppl 3 = модель рассматривала несколько кандидатов на каждом шаге, но оставалась в рамках ограничения.
Уровень 4: Знающий, но неточный (потери 1.94, ppl 7)
шаг 112,500, инструменты python
> Как найти устаревшие пакеты в проекте Python?
> < Используйте pip list --outdated names, чтобы увидеть список пакетов pip в вашем управлении проектом, или должно быть через pyenv, чтобы получить более автоматические пакеты.
Правильная команда ядра (pip list --outdated) emerges from training data. Плавность формулировок всё ещё развивается. Небольшая путаница: pyenv управляет версиями Python, а не пакетами. ppl 7 означает, что модель рассматривала ~7 правдоподобных продолжений на каждом шаге; не все были точно правильными.
Уровень 5: ALERT, Запомненная Подстрока (loss 0.13, ppl 1)
шаг 112,080, аномальный
Loss 0.13 находится НИЖЕ учебного уровня. Модель слишком уверена в этом образце. Диагноз: запомненная подстрока repo-docs, а не выученный чат. Бандит вытащил «зомби-руку» repo-docstrings с весом 1.546 из состояния предыдущего запуска, & образец воспроизвёл дословный фрагмент обучающих данных.
Аномально низкий loss — это предупреждение о запоминании, а не сигнал качества. Значение ниже 0.20 означает: проверьте, генерирует ли модель или копирует.
Шесть доменов за 700 шагов
Биология (волнистый попугайчик), обработка сигналов (Фурье), поэзия (хайку), инструменты Python (pip), разговорный диалог, диалог по операциям. Шесть несвязанных доменов за 700 шагов говорит нам о том, что бандит выполняет разнообразную работу, а не застрял на одном источнике. Ширина доменов ЯВЛЯЕТСЯ метрикой качества.
Диагностика трех образцов
Почему отправлять образцы на внешнюю оценку
Что поймала внешняя оценка
Внутренний аудит образцов показал, что модель производит биологию, обработку сигналов, поэзию и Python по запросу. Внешняя оценка качества чата поставила этим образцам '9.5/10' и 'превосходит ожидания в задачах на знания для этого масштаба'.
Внутренний обзор отвечает: выполняет ли бандит разнообразную работу? Внешний обзор отвечает: оценил бы человеческий читатель эти выходы как хорошие?
Почему оба важны
Внутренний аудит выявляет структурные сбои: коллапс повторений, всплески запоминания, низкоразнообразные зомби-руки. Уровни потерь, разнообразие n-грамм и широта доменов — всё это наблюдаемо по прокси.
Внешняя оценка выявляет неудачи в семантическом качестве: уверенно-ложные факты, неуклюжие формулировки, пропущенные нюансы. Ни один из них не проявляется в числах потерь.
Методология
Панель управления обучением ANDREA на training.ai.unturf.com/dashboard намеренно публичная и только для чтения. Любой может в реальном времени опрашивать .loss.json, .samples.json и состояние бандита. Внешние рецензенты имели доступ к тем же данным, что и оператор.
9.5/10 от независимого читателя, на выборках, взятых на шаге 112,584 из 200,000, с полной провенансностью: этот результат воспроизводим, поддаётся аудиту и не поддаётся манипуляциям. Те же выборки, те же значения потерь, то же состояние бандита видны любому, кто посмотрит.
Два независимых сигнала
Внутренний: низкие потери + высокое разнообразие + покрытие нескольких доменов = банда здоров.
Внешний: 9.5/10 от независимого рецензента = выходные оценки хороши.
Оба сигнала совпадают: обучение сходится к фактическому воспроизведению, следованию ограничениям и coherentности нескольких абзацев. Если бы они разошлись (низкие потери, но внешняя оценка 3/10), у нас была бы проблема с манипуляцией метриками, которую нужно расследовать.
Два сигнала, один диагноз
Пять шагов на окно аудита
Один аудит, пять проверок
1. Прочитайте уровень потерь. ppl = exp(loss). Сопоставьте с таблицей из пяти уровней.
2. Проверьте на выбросы ниже 0.20. Сигнал запоминания. Расследуйте перед тем, как считать качественным результатом.
3. Прочитайте фактический текст примера. Числа потерь не скажут вам, что говорит вывод. Прочитайте его.
4. Подсчитайте широту доменов. Шесть несвязанных доменов в 700 шагах = бандит здоров. Один домен, повторённый 7 раз = бандит застрял.
5. Сравните с внешней оценкой. Если ваша выборка выглядит хорошо для вас, попросите кого-то вне запуска прочитать её. Их несогласие — это информация.
Что это связывает
- Activity 22 (grow_a_language_model_checkpoints). cadence sample_every соответствует cadence чекпоинтов; оба срабатывают каждые 100 шагов.
- Activity 21 (coherence-gated early stopping). Метрики разнообразия, которые автоматически останавливают обучение при коллапсе выборок.
- Activity 24 (grow_a_language_model_microgpt_to_andrea). Коллапс v1, загрязнение v2.5, полировка v3 — все это поймано (или могло быть поймано) аудитом выборок.
Одна Истина
Потери — это число. Чтение выборок — это то, как мы понимаем, что значит это число.