Серия #llm_internals
В последнее время я стал всё больше углубляться во внутреннее устройство LLM. Очень полезно понимать, как работает эта неведомая «чёрная коробочка», которая пишет нам код.
Кроме того, хочется в будущих постах углубляться в разбор новостей чуть больше, а для этого вам тоже нужно понимать матчасть.
Итак, начинаем с самой базы
Что такое токен?
Наверняка вы уже интуитивно это понимаете, но давайте разберемся окончательно и закрепим.
Токен — один из кусочков, на который нарезается текст перед тем, как передать его модели. Это не слово, и не буква, всё чуточку хитрее.
У каждого семейства моделей свой токенайзер, но логика общая: частые слова — обычно 1 токен, редкие — 2-3 куска. Например, в токенайзере GPT-5.x «cat» — 1 токен, а «Anthropic» — 2 (Anth + ropic). У Claude или Llama они могут отличаться.
Советую поиграться самостоятельно, у OpenAI токенайзер открытый и есть удобный интерфейс чтобы его потыкать.
Далее токены превращаются в числа: у токенайзера есть словарь из 30-250 тысяч токенов, каждому из которых сопоставлено число.
Итого, когда вы написали промт, токенайзер сначала режет его на токены, а потом превращает их в числовую последовательность.
Вот именно с этими последовательностями и работает модель
Когда модель возвращает ответ, она возвращает токены по одному (в виде тех же чисел), и каждый последующий зависит от предыдущих.
————
Что такое веса?
Когда модель обучают, ей скармливают огромные массивы текста — статьи, библиотеки книг, код с GitHub, форумы.
А что значит «скармливают»? Главный этап обучения называется pretraining: модель решает одну задачу — по куску текста предсказывает следующий токен. Ей дают текст, отрезают конец, спрашивают «какой токен идёт дальше?», смотрят на ошибку, чуть-чуть подкручивают её «внутренние числа» в нужную сторону.
И так миллиарды раз — пока не начнёт угадывать стабильно. После pretraining модель ещё дополнительно доучивают (fine-tuning, RLHF) — учат отвечать полезно и безопасно. Но основное «знание мира» закладывается именно в pretraining — это самый дорогой и долгий этап.
Эти «внутренние числа» и есть веса. По сути, это коэффициенты в огромной формуле, по которой модель вычисляет следующий токен. У современных больших моделей их сотни миллиардов или триллионы.
Если вы работали с локальными моделями, могли видеть вот такие обозначения:
Qwen3.6-27B, здесь 27B — это количество параметров (~27 миллиардов). А параметры, это в основном это веса плюс некоторые мелочи.То есть, никакой базы знаний внутри модели нет. Всё, что она «знает» — кто такой Эйнштейн и как писать на Go, закодировано в весах. Когда вы общаетесь с моделью — она ничего не ищет в "базе", она просто прогоняет ваш промт через свою "формулу" и считает, какой токен лучше выдать следующим.
Этот процесс (вычисление следующего токена) называется inference
Веса между сессиями не меняются. Модель не "помнит" все ваши сообщения. Ей просто отправляется ВСЯ история текущей переписки с каждым новым запросом.
Веса бывают открытые и закрытые:
- Открытые: Llama, Qwen, DeepSeek, Gemma, gpt-oss. Их можно скачать, запустить у себя, форкнуть, дообучить под свою задачу.
- Закрытые: GPT, Claude, Gemini
Полезный вывод: когда вы видите в анонсе фразу «стартап обучил свою модель поверх открытых весов» — это значит, они взяли готовую и до-обучили (fine-tune). Это нормальная практика, но это НЕ «разработали с нуля». А подают часто именно так.
И ещё один очень важный термин: карточка модели (model card) — это документ, в котором написано, на чём обучали, сколько данных, какие бенчмарки прогнали, известные ограничения. Наличие такой карточки — это стандарт индустрии. Если какой-то серьёзный релиз идёт без неё — это очень сильный красный флаг.
————
В следующем посте подробнее разберёмся, что происходит внутри модели и обсудим скелет архитектуры трансформера 🤖
🟢Интересно ли вам такое? Если эта серия постов хорошо зайдёт, напишу отдельно полноценную статью и сделаю ролик.
P.S. Какую же крутую схему для обложки нарисовал GPT, прям без ошибок 🫶
#llm_internals
