🧠 AI: за кулисами "разума" 🧠

Глава 5: Как работают алгоритмы в LLM — «кухня» генерации 🍳

📖 В предыдущих главах мы разобрали, как модель читает текст и как устроен трансформер. Теперь давайте посмотрим на финальный этап: как модель решает, какое слово поставить следующим. Это и есть «кухня» генерации — где из сырых вероятностей готовят готовый ответ. 🍳

📊 От логитов к вероятностям. После того как векторы прошли через все слои трансформера, модель выдаёт для последнего токена вектор, который умножается на матрицу unembedding (она же output projection или LM head; о ней — в следующей главе). Получаются логиты — «сырые оценки» для каждого возможного следующего токена в словаре. Логиты проходят через softmax и превращаются в вероятности. Модель говорит: «С вероятностью 40% дальше должно идти "кофе", с 25% — "чай", с 10% — "сок"». А с вероятностью 0.001% — «деплоить в пятницу». И вот тут-то и начинается самое интересное. 🎲

🎛️ Алгоритмы выборки (sampling) — как модель выбирает. Даже если у модели есть вероятности, она может выбирать следующее слово по-разному:

⚡ Greedy decoding (жадный выбор): берём самый вероятный вариант. Быстро, предсказуемо, но скучно. Как если бы QA-инженер всегда выбирал самый очевидный тест-кейс, пропуская редкие сценарии. А потом — сюрприз на проде. 😅

🌡️ Temperature sampling: температура регулирует «уверенность» модели. Низкая — консервативно, высокая — креативно. Температура 0.7 — золотая середина. Температура 1.5 — модель несёт околесицу с такой уверенностью, что ей хочется верить. Температура 0 — в большинстве реализаций эквивалентна greedy: отвечает как после трёх кружек кофе — быстро, чётко и без единого намёка на креативность. ☕

🔢 Top-k sampling: модель смотрит только на k самых вероятных токенов и выбирает из них. Отсекает странные варианты. Как фильтр «не показывать мне вакансии, где предлагают меньше 200k». 💸

🎯 Top-p (nucleus) sampling: модель берёт столько токенов, чтобы их суммарная вероятность составила p (например, 90%), и выбирает из этого «ядра». Более гибкий способ, который адаптируется к разным стилям текста. 🎯

🍽️ Алгоритмы выборки можно представить как выбор блюда в ресторане:

🥇 Greedy — вы всегда берёте самое популярное блюдо. Предсказуемо, но после года посещений официант знает ваш заказ раньше вас. 🍽️

🎲 High temperature — выбираете что-то рискованное. «А что, интересно же». 🤪

📋 Top-k — смотрите только на топ-10 блюд в меню. Остальное игнорируете, даже если шеф рекомендует. 👨‍🍳

🍲 Top-p — набираете блюда, пока суммарная вероятность не достигнет порога. Итог непредсказуем, но хотя бы не катастрофичен. 📉

🧹 Декодирование и постпроцессинг. После выбора токена он добавляется к уже сгенерированному тексту, и процесс повторяется. В конце токены собираются обратно в слова, убираются лишние пробелы, выравнивается пунктуация. Это как повар, который не только готовит блюдо, но и вытирает тарелку перед подачей — мелочь, а приятно. ✨

🧩 Важный тренд 2026 года — перенос вычислений на этап вывода (inference-time compute). Современные reasoning-модели тратят больше времени на «обдумывание» задачи перед генерацией ответа: они генерируют промежуточные рассуждения, а не просто ждут. Это как если бы студент не сразу писал ответ, а сначала черновик, проверил его, исправил — и только потом сдал. Для QA это означает, что время ответа стало длиннее, но качество — выше. Ирония в том, что мы годами боролись за скорость ответа, а теперь намеренно делаем модель «медленнее», чтобы она думала лучше. Технологии идут вперёд, а мы — обратно к «семь раз отмерь». 🤔

🎰 Почему один и тот же запрос даёт разные ответы. LLM не «ищет» готовый ответ в базе, а конструирует его на лету. Поэтому один и тот же промпт может дать гениальный ответ или полную чушь в зависимости от настроек и случайности выборки. Это не баг, а особенность генерации. Для QA-инженера отсюда важный вывод: фиксируйте параметры генерации и seed в тестах, иначе вы тестируете не модель, а лотерею. Хотя, если честно, иногда и с фиксированными параметрами ощущение лотереи не пропадает. Просто лотерея становится чуть более детерминированной. 🎰

🧠 AI: за кулисами "разума" 🧠 | Сетка — социальная сеть от hh.ru