English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гість
1 / ?
назад до уроків

Наскільки здивованою повинна бути модель?

Конвеєр втрат: Логіти до Хрест-ентропії


Від Логітів до Ймовірностей

Після 12 трансформерних блоків ANDREA-120M виробляє вектор з vocab_size чисел на позицію токена: логіти. Для ANDREA-120M vocab_size = 8449, тому кожна позиція видає 8449 логітів. Логіти — це ненормовані оцінки; деякі позитивні, деякі негативні, без обмеження на суму до 1.


Softmax перетворює логіти в розподіл ймовірностей:


p_i = exp(logit_i) / sum_j exp(logit_j)

Після softmax усі 8449 чисел знаходяться між 0 та 1, їхня сума дорівнює 1. Модель призначає ймовірність кожному можливому наступному токену.


Функція втрат Крос-ентропії

Навчання вимагає функції втрат: числа, яке вимірює, наскільки неправильним було передбачення моделі для заданого правильного відповіді. Крос-ентропія працює для моделювання мови:


loss_t = -log(p_correct_token_t)

Візьміть передбачену ймовірність моделі для фактичного наступного токена (того, що в тренувальних даних). Візьміть негативний логарифм цієї ймовірності. Це втрата для однієї позиції.


Чому негативний логарифм

Три властивості роблять -log(p) природною функцією втрат:


- -log(1) = 0: Коли модель передбачає правильний токен з 100% впевненістю, втрата дорівнює нулю.

- -log(0) = ∞: Коли модель присвоює нульову ймовірність правильному токену, втрата нескінченна. (На практиці, softmax ніколи не видає точно 0; втрата залишається скінченною, але великою.)

- Монотонна: Зі збільшенням передбаченої ймовірності для правильного токена втрата плавно зменшується.


Вища впевненість у правильній відповіді = нижчі втрати. Навчальна мета проста: максимізувати передбачену ймовірність для фактичного наступного токена.


Втрати на послідовність

ANDREA навчається на послідовностях довжиною 1024 (вікно контексту). Кожна послідовність генерує 1024 передбачення наступного токена. Втрати послідовності усереднюються по всіх позиціях:


```
sequence_loss = mean(-log(p_correct_t)) for t in 0..1023
```

Потім втрати послідовності усереднюються по батчу (ANDREA-120M використовує batch_size = 8). Одне скалярне число на кожен тренувальний крок. Саме це число відображається на кривій втрат.

Обчислення втрат для однієї позиції

На одній тренувальній позиції ANDREA-120M видає ймовірності softmax 0.4 для фактичного наступного токена (інші токени отримали решту 0.6). Обчисліть крос-ентропійну втрату для цієї єдиної позиції. Покажіть формулу та арифметику. Потім у одному реченні вкажіть, чи є це впевненим чи невизначеним прогнозом.

Перплексія = exp(втрата)

Дружніша шкала

Значення втрат, такі як 2.0 або 3.43, не відразу передають, що може робити модель. Перплексія переводить втрату на більш інтуїтивну шкалу:


perplexity = exp(loss)

Perplexity відповідає на чисте запитання: з-поміж скількох однаково ймовірних токенів модель ефективно обирає? Perplexity у 7 означає, що модель поводиться так, ніби обирає з 7 правдоподібних наступних токенів на кожній позиції. Perplexity у 1 означає ідеальне передбачення.


Поширені пари Loss-Perplexity


LossPerplexityЯк це відчувається
0.01.0Ідеальне передбачення
1.02.7Вибір серед ~3 правдоподібних токенів
2.07.4Територія фінального SMMA для ANDREA-12M
3.020.1Розумний текст, але з невизначеністю
3.4330.9Мінімум ANDREA-120M v1 (до шліфування)
5.0148Раннє навчання, вивчення розподілу словника
9.048449Базовий рівень випадкового вибору для словника ANDREA-120M

Perplexity ставить значення втрат у контекст: втрата 2.0 означає, що модель ефективно вибирає з ~7 токенів, а не з 8449.


Базовий рівень випадковості

Модель, яка нічого не знає та вгадує рівномірно, призначає ймовірність 1/V кожному токену, де V = vocab_size:


p_uniform = 1 / V
loss      = -log(1/V) = log(V)

Для ANDREA-120M з V = 8449:


loss_uniform = ln(8449) ≈ 9.04

Для ANDREA-12M з V = 2305:


loss_uniform = ln(2305) ≈ 7.74

Будь-яка втрата вище цієї базової лінії означає, що модель працює гірше, ніж випадково. Будь-яка втрата нижче неї означає, що модель навчилася чомусь: вона концентрує масу ймовірності на меншій підмножині токенів, ніж рівномірний розподіл.

Читання значення втрати

ANDREA-120M v1 досягла свого мінімуму EMA втрати 3.43 на кроці 110K (перед колапсом). Обчисліть: (a) перплексію при втраті 3.43; (b) у скільки разів краща за базову лінію випадкового вибору (ln(8449) ≈ 9.04) ця значення втрати, виражена як співвідношення перплексій. Покажіть обчислення.

Згладжування шуму на рівні кроків

Сирий Loss є шумним

Loss на кожному кроці коливається. Бандит ANDREA вибирає різне джерело кожні 7-42 кроки; деякі джерела (визначення словника) виробляють легкі loss; інші (абзаци з Gutenberg) виробляють важчі loss. Побудова графіка сирого loss кроку проти номера кроку дає хаотичний розкид.


Згладжена модифікована ковзна середня (SMMA) послаблює шум та виявляє тренд. Навчальний проксі ANDREA обчислює SMMA як:


SMMA[0]  = loss[0]
SMMA[t]  = (SMMA[t-1] * (N-1) + loss[t]) / N

З N = 100 (стандартне вікно згладжування ANDREA), кожне нове значення SMMA змішує 99% попереднього SMMA з 1% нової втрати кроку. Раптові стрибки поглинаються; стійкі зсуви з'являються поступово.


Чому не просто середнє?

Просте ковзне середнє за останні 100 кроків вимагає зберігання 100 значень втрат. SMMA зберігає одне значення (бігове середнє) та одну константу (розмір вікна). Економно за пам'яттю, обчислювально тривіально та достатньо гладко, щоб читати криву.


Різні ваги згладжування відповідають на різні питання:


- N = 10: відстежує короткострокові зміни; корисно під час фазових переходів

- N = 100: значення за замовчуванням ANDREA; відстежує середньостроковий прогрес

- N = 1000: лише довгостроковий тренд; корисний наприкінці тренування


Що відстежує ANDREA

Кожні 100 кроків проксі тренування записує loss.json з поточним SMMA, сирим loss, номером кроку та розбивкою за джерелами. Панель приладів на training.ai.unturf.com/dashboard опитує цей файл кожні 10 секунд. Зовнішні глядачі бачать живий прогрес; панель приладів тільки для читання.

Реальна крива ANDREA-12M

Рецепт, який досяг SMMA 2.0


КрокиСередній LossПримітки
0--2.5K4.50Випадкова ініціалізація, раннє навчання
2.5K--5K3.88Швидке зниження через фазу структуризації
5K--10K3.30Підходження до межі когерентності
10K--20K2.80Бандит знаходить оптимальну суміш
20K--25K2.40Плато — дефіцит даних
25K--30K2.50Введено дані Hermes + перезапуск LR
30K--35K2.35Hermes інтегровано, нові мінімуми
35K--40K2.104-руковий фокус, крутий спуск
40K--43.6K2.00Територія знань, SMMA нижче 2.0

Вирізняються три фази:


1. Крутий ранній спуск (0-10K). Втрата падає з 4.50 до 3.30, коли модель вивчає розподіл словникового запасу та базову структуру ходів. Базовий рівень випадкового шансу ln(2305) ≈ 7.74 знаходиться високо над цією кривою; модель швидко концентрує масу ймовірності, щойно стабілізуються вбудування.


2. Плато (20K-25K). Втрата зупиняється на 2.40. Бандит вичерпав запас на поточній суміші джерел. Дані Hermes додаються на кроці 25K, плюс теплий перезапуск LR, зламали плато.


3. Фінальний спад (35K-43.6K). Навчальна програма звузена з 16 джерел до 4 (hermes3-general + dictionary + gutenberg + chat). Крутіший спад втрат, ніж у повнорукавому бандиті. Фінальний SMMA: 2.0.


ANDREA-120M v1: Попереджувальна крива

Такий самий розрахунок словникового запасу: ln(8449) ≈ 9.04. ANDREA-120M v1 досягла SMMA 3.43 на кроці 110K (її мінімум), потім розійшлася:


КрокиEMA ВтратиТренд
26K--40K4.29Збіжність
70K--85K3.60Найкращий регіон
85K--110K3.43Мінімум
110K--125K3.54Розбіжність
140K--155K4.05Розбіжність
155K--165K4.54Колапс

Числово розумні значення втрат протягом усього часу (3.43 значно нижче випадкового базового рівня 9.04). Але зразки були повторювальним колапсом: Budy Budy Budy Budy. Втрати розповідали оманливу історію; аудити зразків — ні.


Зупинка навчання з керуванням когерентністю v2 (активність 78) додала паралельний сигнал: різноманітність біграм, різноманітність триграм, наявність англійських слів, різноманітність символів. Коли всі чотири показники залишаються нижче 30 протягом 5 послідовних зразків, навчання автоматично зупиняється. Цей сигнал виявив би v1 на кроці 132K, заощадивши 3,8 дні обчислень.

Що розповідає кожна фаза

Дивлячись на криву втрат ANDREA-12M (4.50 → 3.30 → плато 2.40 → фінал 2.00), вкажіть, яка фаза показує навчання моделі розподілу словникового запасу, яка фаза вказує, що бандит вичерпав запас змішаних джерел, та яка фаза відображає фокус на звуженій програмі. Одне речення на фазу, посилаючись на конкретні діапазони кроків.

Урок 120M v1

Два незалежні сигнали

ANDREA-120M v1 досяг SMMA 3.43 на кроці 110K. Чисельно: 273× краще за випадковий шанс (перплексія 31 проти розміру словника 8449). Виглядає чудово на кривій.


Зразок на кроці 110K::


''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '

Втрата та когерентність є незалежними сигналами. Низька втрата означає, що модель ефективно концентрує масу ймовірності. Когерентність означає, що модель генерує текст, який люди можуть читати. Перше не передбачає друге.


Чому існує цей розрив

Модель може знизити втрату за допомогою:


1. Вивчення реальних мовних патернів (добре): узгодження підмета з дієсловом, поширені фрази, фактичні асоціації.

2. Запам'ятовування структурних артефактів (погано): шаблони високої частоти повторень, специфічні для набору даних особливості, дегенеративні аттрактори.


Обидва зменшують loss. Перший генерує зразки, які подобаються людям. Другий генерує Budy Budy Budy Budy. Навчальна цільова функція сама по собі не може їх розрізнити.


ANDREA-120M v3 Polish: Де Loss & Coherence Зустрілися

Після v3 polish (крок 112K і далі), ANDREA-120M генерує:


Крок 112,584, loss 0.30, ppl 1::


> [extinction prompt]
< чорна павучиха монтана жива, ка Carolina parakeet вимерла.

Обидва факти правильні. Carolina parakeet оголошено вимерлою у 1939 році; чорна павучиха мавпа існує. Низька втрата (0.30) ТА когерентне фактичне відтворення.


Крок 112,500, втрата 1.94, ppl 7::


> Як знайти застарілі пакети в проєкті Python?
< Використовуйте pip list --outdated names, щоб побачити список пакунків pip...

Вища втрата (1.94 → ppl 7), але правильний інструмент з'являється з тренувальних даних. Плавність формулювань все ще розвивається на 56% етапі тренування.


Дисципліна двох сигналів

Сучасні тренувальні конвеєри моніторять ОБИДВА:


- Крива втрат. Показує, чи модель навчається чомусь кількісному.

- Аудит зразків. Показує, чи те, що модель вивчила, є корисним.


v2 додав coherence-gated early stopping (activity 78). v3 polish був perturbation навчальної програми, викликаний аудитом зразків, а не значеннями втрат. Втрати самі по собі необхідні, але ніколи не достатні.

Діагностика гіпотетичного запуску

Новий тренувальний запуск показує спад SMMA loss з 8.0 → 3.5 → 2.8 за 100K кроків. Аудити зразків на кроці 100K показують: bigram diversity 12 (низька), trigram diversity 8 (низька), English word presence 18 (висока), character diversity 7 (висока). Що, ймовірно, робить модель? Чи слід продовжувати тренування, зупинити чи змінити напрямок? Обґрунтуйте вашу відповідь у 3-4 реченнях.