Книга: Инжиниринг искусственного интеллекта
Назад: 1.5 Трансформерные блоки (Transformer Blocks)
Дальше: 1.7 Галлюцинации: когда модель уверенно врёт

1.6 Выходной слой и генерация

Мы прошли долгий путь. Текст превратился в токены, токены - в эмбеддинги, эмбеддинги обогатились информацией о позиции, затем многократно прошли через блоки внимания и переработки. На выходе последнего блока у нас есть векторы, которые содержат в себе глубокое понимание всего контекста. Но как из этого понимания рождается новое слово? Как модель делает следующий шаг? Ответ - в выходном слое.

После последнего блока вектор каждого токена преобразуется в вероятность следующего токена через LM Head (language modeling head / головная сеть языкового моделирования) - это линейная проекция на размер словаря с последующей функцией softmax.

Звучит сложно, но на деле последний шаг устроен довольно просто. Вектор последнего токена (или специального токена-подсказки) проходит через финальный линейный слой, который превращает его в набор сырых оценок - по одной на каждое слово в словаре. Эти оценки называются логитами. Именно с ними и начинается игра.



1. Логиты и Softmax (Как получить вероятности)



Логиты - это «сырые» оценки, которые мозг ИИ выдает каждому слову. Например, кот = 100, собака = 90, астероид = 1. Это просто баллы, они могут быть любыми (хоть 1000, хоть -5). Сами по себе они неудобны для выбора.

Но логиты - это просто числа. Они могут быть 100, 90, 1, -5 - сами по себе они не говорят, насколько вероятно то или иное слово. Чтобы получить удобоваримые вероятности, нужен специальный преобразователь.

Softmax - это функция, которая превращает эти сырые баллы в проценты (вероятности), чтобы их сумма равнялась 100%. Результат: кот = 60%, собака = 39%, астероид = 1%.



Итак, у нас есть честные вероятности: кот 60%, собака 39%, астероид 1%. Казалось бы, всегда выбирай самое вероятное - и дело с концом. Но такой подход сделает текст скучным и предсказуемым. Иногда нам нужна креативность, иногда - строгая точность. Для этого инженеры придумали несколько регулировок.

На этапе генерации модель не всегда выбирает токен с максимальной вероятностью. Используются параметры:



2. Температура (Temperature)



Первая и самая известная регулировка - температура. Это ручка, которая крутит «креативность» модели. T -> 0 (Холодно): Модель становится жадной и почти всегда выбирает самое вероятное слово (Кот). Текст получается точный, но скучный и предсказуемый.



T = 1 (Норма): Оставляем проценты как есть (Кот 60%, Собака 39%).

T > 1 (Горячо): Модель выравнивает шансы. Кот может получить 35%, Собака 34%, и даже Астероид 31%. Модель начинает «креативно» выбирать странные варианты, но может начать бредить.



Иногда же нам нужно сказать: «Редкие слова не рассматриваем, оставляем только основных претендентов». Для этого есть два фильтра - P и K.



3. Top-P (Ядро, nucleus sampling)



Это фильтр «пока не накопится».



Как работает

Модель сортирует слова от самых вероятных к самым редким и складывает их проценты, пока сумма не достигнет порога P (например, 0.9 или 90%). Остальные слова выкидываются.



Пример

Вы включили этот фильтр. Модель берет Кота (60%) + Собаку (39%) = 99% (порог P=0.9 пройден). Астероид (1%) вылетает, потому что он лишний. Выбор идет только между Котом и Собакой.



4. Top-K (K-лучших)



Top-P работает по принципу «накопи достаточно». А есть другой подход - более жёсткий: оставить ровно K лучших, и точка. Это фильтр «оставить только K претендентов». Модель оставляет только K самых вероятных слов, все остальные отсекает.

Пример: K=2. Оставляем Кота (60%) и Собаку (39%). Астероид (1%) вылетает. Выбор только из двух.



Итог

> Логиты - оценки.

> Softmax - превращает оценки в понятные доли.

> Температура - делает выбор более плоским или острым.

> Top-P - оставляет слова, пока не наберется нужная сумма вероятностей.

> Top-K - оставляет строго K самых вероятных слов.



Процесс повторяется авторегрессивно - только что сгенерированное слово добавляется к входной последовательности, и модель предсказывает следующее. Так продолжается, пока не будет сгенерирован токен конца последовательности или не достигнут лимит длины.

Теперь вы знаете главные рычаги управления генерацией. Комбинируя температуру, Top-P и Top-K, можно получать и строгие технические тексты, и творческие рассказы, и всё что между ними. Инженерный выбор зависит от задачи.

Мы замкнули цикл. От одинокого токена на входе мы дошли до генерации нового слова на выходе. Теперь вы понимаете, как устроен «мозг» современных языковых моделей - от первой до последней операции.



Но мир ИИ не ограничивается генеративными трансформерами. Существуют и другие архитектуры, каждая со своими сильными сторонами: свёрточные сети для картинок, рекуррентные для последовательностей, диффузионные для генерации изображений. И даже внутри семейства трансформеров есть важное разделение на энкодеры, декодеры и их комбинации.

В следующей главе мы совершим экскурс по основным типам архитектур, чтобы понимать, какой инструмент для какой задачи выбирать.



Назад: 1.5 Трансформерные блоки (Transformer Blocks)
Дальше: 1.7 Галлюцинации: когда модель уверенно врёт