Процесс обучения LLM (Large Language Model) на основе архитектуры Transformer
(продолжение предыдущего поста)
Архитектура Transformer позволяет LLM эффективно обучаться на больших объёмах текстовых данных, улавливая сложные языковые закономерности и генерируя осмысленные ответы. Ключевые особенности процесса:
* Параллелизм — благодаря механизму внимания, модель может анализировать весь входной текст одновременно, а не последовательно.
* Контекстуальное понимание — взаимосвязи между токенами улавливаются на нескольких уровнях через механизмы внимания.
* Устойчивость к длине последовательности — архитектура не теряет контекст даже для длинных текстов.
* Гибкость — архитектура поддерживает как задачи понимания языка (энкодер), так и генерацию текста (декодер)
Рассмотрим поэтапно:
1. Подготовка входных данных (Inputs)
Процесс начинается с подачи на вход текста, который разбивается на токены (слова или подслова). Эти токены преобразуются в векторные представления (Input Embedding) — числовые векторы, отражающие семантику и контекст каждого токена.
2. Добавление позиционной кодировки (Positional Encoding)
Поскольку нейронная сеть не знает порядка слов, к каждому вектору эмбеддинга добавляется позиционная кодировка — специальные числа, указывающие на позицию токена в последовательности. Это позволяет модели учитывать порядок слов.
3. Обработка в энкодере (Encoder)
Энкодер состоит из нескольких слоёв, каждый из которых выполняет следующие операции:
* Multi-Head Attention (многоголовое внимание) — модель анализирует взаимосвязи между всеми токенами одновременно, выделяя важные контекстуальные связи. Механизм многоголового внимания позволяет учитывать разные аспекты контекста параллельно.
* Add & Normalize (сложение и нормализация) — результаты внимания складываются с входными векторами и нормализуются для стабилизации обучения.
* Feed Forward — простейшая полносвязная нейронная сеть применяет нелинейные преобразования к векторам, углубляя их представление.
* Повторение слоёв — эти шаги повторяются в нескольких слоях энкодера, углубляя понимание контекста.
На выходе энкодера формируется контекстуализированное представление входного текста — набор векторов, отражающих смысл и взаимосвязи между токенами.
4. Обработка в декодере (Decoder)
Декодер отвечает за генерацию выходного текста (Outputs) и работает по схожей схеме, но с ключевыми отличиями:
* Masked Multi-Head Attention (маскированное многоголовое внимание) — декодер предсказывает следующий токен, имея доступ только к предыдущим токенам (будущие токены «закрыты» маской). Это позволяет модели генерировать текст последовательно.
* Multi-Head Attention над выходом энкодера — декодер обращается к векторам, созданным энкодером, чтобы учитывать контекст входного текста при генерации ответа.
* Add & Normalize и Feed Forward — аналогичные операции для углубления представления.
* Повторение слоёв — несколько слоёв декодера последовательно генерируют выходные токены.
5. Формирование выходных эмбеддингов (Output Embedding)
После прохождения через декодер формируется последовательность векторов выходных токенов. К ним также применяется позиционная кодировка.
6. Преобразование в вероятности токенов (Linear → Softmax)
* Линейный слой (Linear) — преобразует векторы токенов в необработанные оценки (logits) для каждого возможного токена в словаре модели.
* Функция Softmax — преобразует оценки в вероятности, где каждому токену соответствует вероятность его появления в данной позиции.
7. Генерация итогового вывода (Outputs (shifted right))
Модель выбирает токен с наибольшей вероятностью и добавляет его в выходную последовательность. Процесс повторяется до генерации полного ответа или до достижения специального токена окончания (EOS — End Of Sequence).
Post #3506
1.8K