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

un

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

Що передбачає мовна модель

Ймовірнісний двигун продовження

Мовна модель приймає послідовність токенів та призначає ймовірнісний розподіл над тим, який токен буде наступним. Подайте їй the cat sat on the та вона видасть ймовірності по всьому словнику: висока маса на mat, floor, couch; низька маса на xylophone, Tuesday.


Використовуючи вибірку з цього розподілу, додаючи токен та подаючи назад: цей цикл генерує текст токен за токеном. Автореgresивна генерація, названо так, бо кожен крок регресує на своєму попередньому виводі.


Три числа визначають мовну модель


Розмір словника (V). Скільки різних токенів може генерувати модель. ANDREA-12M використовувала 4,353 токени; ANDREA-120M використовує 8,449.


Вікно контексту (T). Скільки токенів вміщується в один прохід вперед. Моделі ANDREA використовують T = 1,024.


Кількість параметрів (P). Скільки навчених ваг міститься всередині. 12M, 120M та 480M називають сімейство за P.


Сім'я з трьох


Варіантd_modelГоловиШариКонтекстПараметри
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

Три регулятори масштабування: d_model (ширина кожного внутрішнього вектора), n_layer (глибина штабованих блоків трансформера), n_head (паралельні проєкції уваги). Словник та контекст залишаються фіксованими в межах родини.

Читання таблиці родини

Порівняйте ANDREA-12M (d_model=384, 6 шарів, 12 голівок) з ANDREA-120M (d_model=768, 12 шарів, 12 голівок). Назвіть дві архітектурні осі, що масштабуються від 12M до 120M, та одну, що залишається сталою. Однореченна причина для кожного вибору масштабування допоможе.

Чому малі моделі важливі

Обмеження як звільнення

Великі мовні моделі з сотнями мільярдів параметрів потребують тисяч GPU, пропрієтарних наборів даних та корпоративних бюджетів. Лише небагато людей можуть їх тренувати. Лише небагато людей можуть їх ремонтувати.


Мала мовна модель на одній GPU перевертає це. Будь-хто з 4090 (або 3060) може відтворити ANDREA з відкритих даних. Рецепт тренування подвоюється як модельна картка. Відкритий код, відкриті ваги, відкриті дані; повна провенience за 72 години обчислень.


Ємність проти якості

Менші моделі не можуть запам'ятовувати свій тренувальний корпус. ANDREA-12M з 12.8M параметрів не має ємності для зберігання фактичного контенту; вона вивчає структуру ходів, розподіл словника та форму відповіді. ANDREA-120M з 10× ємністю вивчає фактичне пригадування, когерентність кількох абзаців та широту домену (перевірено через зовнішню оцінку на 9.5/10 на зразках біології та обробки сигналів).


Висновок: потужність встановлює стелю. Навчальна програма визначає, чи буде досягнута ця стеля. Активності 14-23 охоплюють навчальну програму. [TITLE decoder_only/]

Три варіанти трансформера

Кодер, Декодер, Обидва

Оригінальний трансформер (Vaswani et al., 2017) містив кодер та декодер, з’єднані разом для перекладу. Від цієї статті походять три архітектурні лінії:


Тільки кодер (лінія BERT). Двостороння увага, без причинної маски. Оптимізований для класифікації, а не генерації. Токен бачить як своє минуле, так і майбутнє під час навчання.


Encoder-decoder (T5, BART). Кодувальник читає вхід; декодувальник генерує вихід, звертаючись до кодувальника через cross-attention. Використовується для перекладу, узагальнення.


Decoder-only (GPT, ANDREA). Causal mask: кожен токен бачить лише своє минуле. Навчається передбачати наступний токен. Генерація безкоштовна; навчання та інференс використовують один і той же forward pass.


Чому Decoder-Only перемагає на одній GPU

Три причини:


1. Єдина ціль. Передбачення наступного токена працює на будь-якому тексті. Не потрібні пари джерело/ціль.

2. Симетрія тренування та інференсу. Той самий прямий прохід, без спеціальної логіки генерації.

3. Простота пам'яті. Без крос-уваги; один стек шарів; один потік активацій.


ANDREA успадковує вибір decoder-only від microGPT, яка успадкувала від nanoGPT, яка успадкувала від GPT-2. Лінія залишається стандартною; те, що змінюється, живе в токенізації, інфраструктурі тренування та навчальній програмі.

Чому Decoder-Only для ANDREA

Наведіть одну причину з перспективи тренувальних даних та одну причину з перспективи поведінки інференсу, чому ANDREA використовує трансформер decoder-only замість encoder-decoder як у T5.

Що вміщується в 24 ГБ

Байтів на параметр

RTX 4090 постачається з 24 ГБ VRAM. Тренування ANDREA-12M використовувало 1.4 ГБ. ANDREA-120M використало значно більше. Розрив пояснюється простою вправою з обліку: кожен параметр з'являється кілька разів у пам'яті під час тренування.


Для кожного параметра тренування утримує:

- Саму вагу (1× вага)

- Перший момент Adam (m): така ж форма, як у ваги (1× вага)

- Другий момент Adam (v): така ж форма, як у ваги (1× вага)

- Градієнти: така ж форма, як у ваги (1× вага)

- Активації та тимчасові: ~2-4× вага (залежить від батчу та контексту)


Загалом: ~6-8× кількості ваг, у байтах визначається точністю.


Точність множить усе


ТочністьБайт/парамЗагалом для 120M вагПримітки
FP324480 МББазовий; найбезпечніший, найповільніший
FP162240 МБcuBLAS, вдвічі менше пам'яті
FP8 E4M31120 МБTensor cores, ризик NaN

Помножте на 6-8× для повного відбитку на час тренування. ANDREA-120M тренується комфортно в FP16 (~2 ГБ для ваг + оптимізатор + градієнти); FP8 E4M3 вдвічі скорочує час тренування на tensor cores RTX 4090.


Активність 13 (grow_a_language_model_precision) детально розглядає компроміси точності FP.

Розрахунок розміру стану оптимізатора ANDREA-120M

ANDREA-120M має ~120,000,000 параметрів. Кожен ваговий FP32 займає 4 байти. AdamW зберігає два додаткові floats стану оптимізатора на вагу (m, v). Обчисліть: (a) тільки ваги в FP32, у MB; (b) ваги + стан оптимізатора в FP32, у MB; (c) ваги + стан оптимізатора в FP16, у MB. Покажіть обчислення.

Двадцять п'ять активностей

Дві половини

Цей курс чітко поділяється навпіл. Перша половина охоплює те, що microGPT навчив поле: трансформер, що працює на одній GPU. Друга половина охоплює реальний внесок ANDREA: навчальний план, що навчається.


Половина 1: Трансформер на одній GPU (активності 2-13)


#АктивністьЕтап
2Токенізатор морфем Гаррісадистрибутивна сегментація, словник 256+N+1
3Вирівнювання токенізатор-дітточка насичення, чому 12M витрачено 63.6%
4Ембедінги та позиціявивчені токени + пошук позиції
5Масштабована увага точкового добуткуQ·Kᵀ/√d, причинна маска, softmax
6Багатоголовкова увагарозподіл голів, паралельні проєкції
7Блок трансформераMLP, резидуали, нормалізація шару
8Крос-ентропія та перплексіялогарифмічна ймовірність, втрата SMMA
9Зворотне поширення в кастомному CUDAправило ланцюжка через microgpt_cuda.cu
10AdamWроздільний розпад ваги; чому ванільний Adam помер
11LR warmup + cosine decay2000-кроковий розгін; чому миттєвий пік руйнує 120M
12Обрізання градієнтівглобальна L2 норма; 3 CUDA ядра
13FP32 / FP16 / FP8 E4M3компроміси точності; тензорні ядра

Половина 2: Навчальна програма, що навчається (активності 14-24)


#АктивністьПеремога
14Багатозадачні бандитиUCB1, дослідження проти використання
15Фазовий контроль кубиків7/14/21/28/42 фази, 1d3/1d4 кубики
16Приписування винагород та EMAEMA втрат за джерелом, масштабування 1000×
17Підлоги джерел та штраф епохи1/(1+epochs) запобігає меморизації
18Бонус покриттявідстеження на рівні документа, 1.3× свіжість
19Розігрів з навчальною програмою7 чат/прози джерел перші 20K кроків
20Фільтрація за формою, не символамиhas_system_prompt_shape()
21Раннє зупинення з керуванням когерентністюbigram/trigram/word/char auto-halt
22Контрольна точка, відновлення, сигналиformat, SIGTERM/SIGUSR1, loss.json continuity
23Аудит зразка та зовнішня оцінкаreading a run, 9.5/10 territory
24Від microGPT до ANDREA-120Mv1 collapse, v2 fixes, v2.5 patch, v3 polish

Плюс супутник: geometry_of_andrea розглядає кожен шар як геометрію (простір вбудувань, увага як проєкція, поверхня втрат, бандит як хода на дискретному симплексі).


Пропонований порядок

Діяльності 2-13 будують робочий трансформер. Пропустіть до другої половини, якщо ви вже тренували трансформери; поверніться, коли з'явиться цікавість.


Кожна діяльність стоїть окремо, де можливо. Математичні посилання посилаються на попередні діяльності за назвою (див. діяльність 5: scaled dot-product attention). Посилання на код вказують на microgpt/microgpt_cuda.cu та microgpt/training_proxy.py у ~/git/uncloseai-cli/.

Звідки ви почнете?

Глядячи на 24 діяльності + супутник з геометрії, назвіть одну діяльність, з якої хочете почати, та одну причину: прогалина в попередніх знаннях, професійна релевантність чи чиста цікавість. Немає неправильної відповіді; шлях через курс належить вам.