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() была подключена к неправильному раннеру

Сбой на 10 дней, который должен был остановиться на 3-й день

ANDREA-120M v1 обучалась 16.1 дней на RTX 4090 при 130W непрерывно. Примеры выходов сохранялись каждые 200 шагов, но никогда не анализировались во время запуска. На шаге 80K (4-й день) примеры читались как region region region region region. На шаге 110K — ''''' ''''' '' ''' ''. Обучение продолжалось еще 11 дней, пока не было вручную остановлено на шаге 165K.


Что пошло не так с сигналом пожарной тревоги

eval_chat_quality() существовала в кодовой базе. Она оценивала качество сэмплов. Она даже работала правильно. Но она была подключена только к устаревшему многофазовому раннеру. Куррикулум v1 firehose использовал другой путь кода и никогда не вызывал оценку. Датчик дыма стоял в другой комнате с закрытой дверью.


Стоимость

16.1 дней вычислений. 130W непрерывно. ~50 кВт·ч электричества. Модель не произвела полезного вывода ни на одном этапе. EMA потерь опустилась до 3.23 на шаге 110K, затем поднялась обратно до 4.54 на шаге 165K, когда обучение остановилось. Численно разумно; семантически пусто.


Случайная вероятность для словаря из 8449 токенов — 9.04. v1 достигла EMA потерь 3.23, производя region region region. Потери сами по себе не могут обнаружить коллапс coherentности. Модель, минимизирующая кросс-энтропию повторением одного высокочастотного токена, численно вознаграждается за этот режим сбоя.

Почему кривые потерь лгали

v1 достигла EMA потерь 3.23 (значительно ниже случайной вероятности 9.04), производя `region region region region`. Объясните в 2-3 предложениях, как модель может достичь численно разумных потерь, производя вырожденный вывод. Сослаться на механизм кросс-энтропии.

Оценивайте каждый сэмпл по четырём осям

Композитный балл

v2 поставляется с coherence gate, который оценивает каждый сэмпл (снимаемый каждые 100 шагов во время firehose training) по четырём метрикам:


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 шагов подтвержденного коллапса когерентности.

Вычислить балл

Образец v1 на шаге 80K читается как `region region region region region region region region`. Оцените баллы: (a) разнообразие биграмм, (b) разнообразие триграмм, (c) наличие английских слов, (d) разнообразие символов. Вычислите итог. Сработает ли ворота на этом образце в одиночку?

Как выглядел бы v1

Триггер ретроспективного тестирования

На основе сохраненных образцов v1, ретроспективное применение ворот coherentности v2 показывает, что ворота сработали бы на шаге 132K. v1 дошел до шага 165K перед ручной остановкой. Ворота остановили бы обучение на 33 000 шагов раньше.


Вычислительные ресурсы сэкономлены

RTX 4090 обучалась со скоростью ~6 шагов/мин в FP16 cuBLAS. 33,000 шагов / 6 шагов/мин = 5,500 минут = 91.6 часов = 3.8 дня вычислительных ресурсов сэкономлено. При 130W непрерывно, это ~12 кВт⋅ч электроэнергии, плюс 3.8 дня износа GPU.


Почему шаг 132K, а не 80K

v1 выдавала region region region на шаге 80K. Почему тогда не сработал гейт?


Потому что между плохими сэмплами появлялись периодические хорошие. Бандит циклически переключался между источниками каждые 7-42 шага. Даже дегенеративная модель иногда выдавала более разнообразные выходы при сэмплировании из другого источника, временно сбрасывая счетчик последовательных неудач. К шагу 132K модель коллапсировала достаточно глубоко, чтобы 5 последовательных дегенеративных сэмплов (500 шагов) стали неизбежными.


Урок: Подключите датчик дыма к каждому кабелю

v2 подключает eval_chat_quality() напрямую в код обработки выборок основного учебного конвейера, а не только в устаревший раннер. Каждая выборка, каждый запуск, каждый путь кода: один и тот же барьер. Исправление заняло ~30 строк кода.

Обобщите инженерный шаблон

v1 потратил 3.8 дня, потому что eval_chat_quality() был подключен только к одному раннеру. Аргументируйте (в 2-3 предложениях), какой инженерный принцип для длительного обучения ML устанавливает барьер согласованности v2. Ссылайтесь как на выбор подключения, так и на дизайн композитной метрики.