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 використовувала інший шлях коду та ніколи не викликала eval. Димова сигналізація стояла в іншій кімнаті з закритими дверима.


Вартість

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


Випадковий шанс для словника з 8449 токенів — 9.04. v1 досягла EMA втрат 3.23, виробляючи region region region. Втрати самі по собі не можуть виявити колапс когерентності. Модель, яка мінімізує крос-ентропію, повторюючи один високчастотний токен, чисельно винагороджується за цей режим відмови.

Чому Криві Втрат Обманювали

v1 досягла EMA втрат 3.23 (значно нижче випадкового шансу 9.04), виробляючи `region region region region`. Поясніть у 2-3 реченнях, як модель може досягти чисельно розумних втрат, виробляючи дегенеративний вивід. Посилайтесь на механізм крос-ентропії.

Оцінюйте кожен зразок за чотирма осями

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

v2 впроваджує ворота когерентності, які оцінюють кожен зразок (знятий кожні 100 кроків під час тренування firehose) за чотирма метриками:


Coherence gate flow


МетрикаДіапазонЩо вона виявляє
Диверсифікація біграм0-35Повторення на рівні двох токенів (region region)
Диверсифікація триграм0-35Повторення на рівні трьох токенів (a, b, a, b, a, b)
Наявність англійських слів0-20Відхилення в неанглійську мову (CJK, кирилиця, нісенітниця)
Диверсифікація символів0-10Згортання до одного символу (''''', ... ... ...)

Загальний можливий: 100. Поріг: 30.


Чому чотири метрики, а не одна

Кожна метрика виявляє інший режим відмови:


- Модель, що згортається до одного біграму, не проходить Bigram diversity, але проходить Character diversity.

- Модель, що виробляє шум пунктуації (''''' ''''' ''), не проходить Character diversity, але може пройти Bigram diversity, якщо пари пунктуації варіюються.

- Модель, що переходить на неанглійську мову (забруднення тренувальними даними з перекладами), не проходить тест на наявність англійських слів, але проходить Bigram & Trigram diversity, якщо виробляє граматичну мандаринську.

- Модель, що виробляє a, b, a, b, a, b, проходить Bigram (a-b & b-a з'являються), але не проходить Trigram (a-b-a, b-a-b домінують).


Разом чотири метрики охоплюють простір невдач. Композитний бал нижче 30 означає, що принаймні одна вісь сильно впала, щоб затягнути всю вибірку вниз.


Послідовний лічильник

Auto-halt спрацьовує після 5 послідовних зразків з балом нижче 30. Одиничні погані зразки можуть виникати під час фазових переходів або витягування рідкісних джерел; п'ять поспіль означають, що модель припинила відновлення. З зразками, що беруться кожні 100 кроків, 5 послідовних дегенеративних зразків = 500 кроків підтвердженого колапсу когерентності.

Обчислити бал

Зразок v1 на кроці 80K читає `region region region region region region region region`. Оцініть бали: (a) Диверсифікація біграм, (b) Диверсифікація триграм, (c) Наявність англійських слів, (d) Диверсифікація символів. Обчисліть загальний бал. Чи спрацьовує гейт на цьому зразку самотужки?

Як би виглядав v1

Ретроспективно протестований тригер

З урахуванням збережених зразків v1, ретроспективне застосування гейту когерентності 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() безпосередньо до коду обробки зразків у firehose curriculum, а не лише до legacy runner. Кожен зразок, кожен запуск, кожен кодовий шлях: той самий бар'єр. Виправлення зайняло ~30 рядків коду.

Узагальніть інженерний шаблон

v1 витратив 3.8 днів, тому що eval_chat_quality() був підключений лише до одного runner. Аргументуйте (у 2-3 реченнях), який інженерний принцип для тривалого навчання ML встановлює бар'єр когерентності v2. Посилайтесь на вибір підключення та дизайн композитної метрики.