Один нейрон проводит прямую. Слой нейронов ищет признаки. Стопка слоёв строит признаки из признаков — и отсюда берётся всё остальное.
Слой — это просто несколько нейронов, которые смотрят на одни и те же входы, но с разными весами. Каждый ищет своё.
┌─ нейрон 1 → «напряжение просело» вход x₁ ──┬───┼─ нейрон 2 → «пульсации выше нормы» вход x₂ ──┼───┼─ нейрон 3 → «греется» вход x₃ ──┴───└─ нейрон 4 → «всё в допуске» каждый видит все входы, но у каждого свои веса
Никто не говорил нейронам, что искать. Подписи справа — это то, что они начали выделять сами, потому что так уменьшалась ошибка. И это уже интересная мысль: признаки не задаются, они возникают.
Второй слой смотрит уже не на исходные данные, а на выводы первого. Третий — на выводы второго. С каждым слоем абстракция растёт.
| Слой | Что выделяет в фотографии платы |
|---|---|
| 1 | Границы яркости: где светлое сменяется тёмным |
| 2 | Линии и углы: из границ складываются отрезки |
| 3 | Простые формы: прямоугольники, круги, дорожки |
| 4 | Детали: корпус конденсатора, ножки микросхемы |
| 5 | Сборки: узел питания, выходной каскад |
| 6 | Ответ: «вздутый конденсатор в фильтре питания» |
Никто не программировал «ищи границы на первом слое». Такая иерархия возникает сама, потому что это экономный способ описать изображения: границы переиспользуются во всех формах, формы — во всех деталях. Сеть находит эту экономию, минимизируя ошибку.
Считается просто. Между соседними слоями каждый нейрон связан с каждым, то есть число весов — это произведение размеров слоёв.
слой из 1000 нейронов → слой из 1000 нейронов = 1 000 × 1 000 = 1 000 000 весов (один переход!) языковая модель: ширина слоя ~4096, слоёв ~32, плюс внимание итог: миллиарды. Отсюда «7B», «14B», «70B».
Каждый параметр надо хранить и умножать. Модель 7B в сжатии Q4 — это около 4,7 ГБ, которые должны лежать в видеопамяти. У вас 16 ГБ: спокойно помещается 14B, впритык 32B в сильном сжатии. Отсюда прямая связь между «миллиарды параметров» и «что реально запустится».
«Каждый с каждым» — не единственный вариант, и для разных данных придуманы разные схемы.
| Тип | Идея | Для чего |
|---|---|---|
| Полносвязный | Каждый с каждым | Универсально, но дорого. Внутри всех остальных |
| Свёрточный | Маленькое окно скользит по картинке, веса общие | Изображения. Экономит параметры в сотни раз |
| Рекуррентный | Выход подаётся обратно на вход | Последовательности. Сейчас почти вытеснен |
| Внимание | Каждый элемент решает, на какие другие смотреть | Текст, и не только. Глава 08 |
Угол остаётся углом в любом месте кадра. Значит незачем учить отдельный детектор угла для каждой точки изображения — достаточно одного набора весов, который применяется везде. Это называется разделением весов, и именно оно сделало распознавание изображений реальным. Та же идея внутри моделей, генерирующих картинки — глава 14.
Вход слоя прибавляется к его выходу напрямую, в обход вычислений. Звучит странно, а без этого приёма сети глубже примерно двадцати слоёв практически не обучались: сигнал ошибки затухал, не доходя до первых слоёв.
Обходной путь даёт ошибке «короткую дорогу» назад. Именно это позволило перейти от десятков слоёв к сотням, и это есть в каждом современном трансформере.
После каждого слоя числа приводятся к сопоставимому масштабу. Иначе значения либо разрастаются до бесконечности, либо схлопываются в ноль — и обучение разваливается.
Это как согласование уровней между каскадами усилителя. Не согласовали — либо перегруз, либо сигнал утонул в шуме. Нормализация делает ровно это: держит рабочую точку каждого слоя в разумном диапазоне.
| Что | Сколько | Когда |
|---|---|---|
| Веса модели | Основной объём | Всегда, пока модель загружена |
| Активации | Зависит от длины входа | Во время прохода |
| Кэш контекста | Растёт с длиной диалога | В языковых моделях |
| Градиенты и состояния оптимизатора | В разы больше самих весов | Только при обучении |
При обучении кроме весов надо хранить градиенты и служебные состояния оптимизатора — обычно втрое-вчетверо больше памяти, чем занимает сама модель. Поэтому на 16 ГБ вы спокойно запускаете 14B, но обучать её целиком не сможете. Выход — LoRA, которая обучает крошечную добавку вместо всей модели. Глава 13.
Самое интересное: как именно подбираются эти миллиарды чисел. Оказывается, довольно простым приёмом.
Бесплатная книга · tariel.ge · версии инструментов и команды проверяйте в документации проектов
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.