Урок v1: Втрата виглядає добре, вивід — сміття
Попереджувальна історія
ANDREA-120M v1 досягла EMA втрати 3.43 на кроці 110K, значно нижче випадкового шансу (ln(8449) = 9.04). Число виглядало пристойно. Зразки — ні.
крок 80K: регіон регіон регіон регіон регіон регіон регіон
крок 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
крок 140K: ігри, ігри, ігри, ігри, ігри, ігри
крок 165K: Буди Буди Буди Буди Буди Буди Буди Буди
v1 не мав підключеного моніторингу зразків. Модель виробляла повторювані петлеві сміття з кроку 80K і далі, та тренування продовжувалося ще 85K кроків, перш ніж хтось помітив. 10+ днів обчислень витрачено даремно, бо ніхто не читав вивід.
Що приховує Loss
Cross-entropy loss вимірює, наскільки модель здивована наступним токеном. Модель, яка видає region region region region, виглядає не здивованою своїм власним виводом (вона передбачала те саме слово щоразу). Числовий loss може залишатися низьким, тоді як семантична якість руйнується.
Виправлення v2
sample_every = 100 кроків. Генерувати 420 вільних токенів. Coherence-gated early stopping оцінює кожен семпл за bigram diversity, trigram diversity, наявністю англійських слів та різноманітністю символів (шкала 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 | досконале запам’ятовування |
Втрата на зразок проти EMA-втрати
EMA-втрата (експоненційний ковзний середній за багато кроків) повідомляє про загальний стан тренування. Втрата на зразок повідомляє про якість одного конкретного зразка. Ці два розходяться: EMA може сидіти на 2.0, тоді як окремі зразки можуть бути від 0.13 до 4.0 залежно від того, який промпт вибрав бандит.
Читання втрати на окремий зразок — це спосіб, як ми ловимо викиди. EMA-втрата нічого не каже про те, чи запам'ятав один зразок підрядок repo-docs; втрата на зразок — каже.
Читання трьох значень втрат
Прогулянка по вікну аудиту
Вікно з 700 кроків
Між кроком 111,996 та 112,668 модель ANDREA-120M виробила зразки, що охоплюють шість не пов'язаних доменів знань. Кожен потрапляє в рівень втрат:
Рівень 1: Фактичне відтворення (loss 0.30, ppl 1)
крок 112,584, біологія
> [extinction prompt]
> < чорна павучиха монтана жива, ка롤інська папуга вимерла.
Дві правильні факти. Ка롤інська папуга оголошена вимерлою 1939; чорна павучиха мавпа існує. 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'.
> < Дощовий ритмічний рефрен, Струмочки на вікні, Перепочинок від болю життя.
Три слова на 'r' (Rain, Rivulets, Respite), три рядки, структура хайку збережена, семантична когерентність навколо дощу. ppl 3 = модель розглядала кілька кандидатів на кожному кроці, але залишалася в межах обмеження.
Рівень 4: Знань багато, але неточний (втрата 1.94, ppl 7)
крок 112,500, інструменти python
> Як знайти застарілі пакети в проєкті Python?
> < Використовуйте pip list --outdated для перегляду списку pip-пакетів у вашому проєкті, або через pyenv для отримання більш автоматичних пакетів.
Правильна команда ядра (pip list --outdated) з'являється з тренувальних даних. Плавність формулювання все ще розвивається. Невелика плутанина: pyenv керує версіями Python, а не пакетами. ppl 7 означає, що модель розглядала ~7 правдоподібних продовжень на кожному кроці; не всі були точно правильними.
Рівень 5: ALERT, Запам'ятований Підрядок (loss 0.13, ppl 1)
крок 112,080, аномальний
Втрата 0.13 знаходиться НИЖЧЕ підручного рівня. Модель надто впевнена в цьому зразку. Діагноз: запам'ятований підрядок repo-docs, а не вивчений чат. Бандит витягнув "зомбі" руку repo-docstrings з вагою 1.546 з попереднього стану запуску, та зразок відтворив буквальний фрагмент тренувальних даних.
Аномально низька втрата — це попередження про запам'ятовування, а не сигнал якості. Менше 0.20 означає: перевірте, чи модель генерує, чи копіює.
Шість доменів за 700 кроків
Біологія (попуга), обробка сигналів (Фур'є), поезія (хайку), інструменти Python (pip), розмовний діалог, операційний діалог. Шість не пов'язаних доменів за 700 кроків свідчить, що бандит виконує різноманітну роботу, а не застряг на одному джерелі. Ширина доменів Є метрикою якості.
Діагностика трьох зразків
Чому подавати зразки на зовнішню оцінку
Що виявила зовнішня оцінка
Внутрішній аудит зразків показав, що модель створює біологію, обробку сигналів, поезію та python на вимогу. Зовнішня оцінка якості чату оцінила ці зразки як '9.5/10' та 'перевершує свої можливості в знаннєвих завданнях для цього масштабу'.
Внутрішній огляд відповідає: чи виконував бандит різноманітну роботу? Зовнішній огляд відповідає: чи оцінив би людський читач ці результати як хороші?
Чому обидві важливі
Внутрішній аудит виявляє структурні збої: колапс повторень, сплески меморизації, низько-диверсифіковані зомбі-руки. Рівні втрат, диверсифікація n-gram та широта доменів — усе це спостерігається з проксі.
Зовнішня оцінка виявляє невдачі семантичної якості: впевнено-хибні факти, незграбні формулювання, пропущені нюанси. Жоден із них не відображається в числах втрат.
Методологія
Панель керування тренуванням ANDREA за адресою training.ai.unturf.com/dashboard навмисно є публічною та тільки для читання. Будь-хто може опитувати .loss.json, .samples.json та стан бандита в реальному часі. Зовнішні рецензенти мали доступ до тих самих даних, що й оператор.
9.5/10 від незалежного читача, на зразках, взятих на кроці 112,584 з 200,000, з повним походженням: цей результат є відтворюваним, аудиторним та не піддається маніпуляціям. Ті самі зразки, ті самі значення втрат, той самий стан бандита видимі для будь-кого, хто подивиться.
Два незалежні сигнали
Внутрішній: низькі втрати + висока різноманітність + покриття багатокореневого домену = здоровий бандит.
Зовнішній: 9.5/10 від незалежного рецензента = рейтинги виходу такі ж хороші.
Обидва узгоджуються: тренування сходиться до фактичного відтворення, дотримання обмежень та когерентності багатопараграфного тексту. Якби вони розійшлися (низькі втрати, але зовнішня оцінка 3/10), ми б мали проблему з маніпуляцією метриками для розслідування.
Два сигнали, один діагноз
П'ять кроків на вікно аудиту
Один аудит, п'ять перевірок
1. Прочитайте рівень втрат. ppl = exp(loss). Порівняйте з таблицею п'яти рівнів.
2. Перевірте на викиди нижче 0.20. Сигнал меморизації. Дослідіть перед тим, як розглядати як якісний результат.
3. Прочитайте фактичний текст зразка. Числа втрат не можуть сказати вам, що каже вихід. Прочитайте його.
4. Підрахуйте ширину доменів. Шість не пов’язаних доменів у 700 кроках = бандит здоровий. Один домен, повторений 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 collapse, v2.5 contamination, v3 polish все виявлено (або могло бути виявлено) аудиторською вибіркою.
Одна Істина
Втрата — це число. Читання зразків — це спосіб дізнатися, що означає це число.