1. Архитектура и принципы работы LLM: трансформеры, механизм внимания и векторные представления
Современные системы обработки естественного языка совершили качественный скачок благодаря переходу от последовательных алгоритмов к архитектурам, способным анализировать весь контекст одновременно. Чтобы создавать собственных интеллектуальных ассистентов и эффективно интегрировать большие языковые модели (LLM) в реальные проекты, необходимо глубоко понимать их внутреннее устройство: как текст превращается в математические абстракции и как нейронная сеть выявляет скрытые смысловые связи.
Векторные представления: как машины понимают текст
Нейронные сети не умеют работать с буквами или словами напрямую. Любая текстовая информация должна быть преобразована в числа. Этот процесс начинается с токенизации — разбиения сырого текста на базовые единицы (токены). Токеном может быть слово, часть слова или даже отдельный символ.
После токенизации каждый токен преобразуется в эмбеддинг (embedding) — плотный вектор фиксированной размерности, состоящий из вещественных чисел. Эмбеддинги не просто кодируют слова случайными числами, они отображают их в многомерное семантическое пространство, где геометрическое расстояние между векторами отражает смысловую близость слов.
Представьте себе трехмерное пространство, где оси координат отвечают за характеристики: «одушевленность», «пол» и «аристократичность». В таком пространстве векторы слов «король» и «королева» будут находиться близко друг к другу по осям одушевленности и аристократичности, но на противоположных концах оси пола. В реальных LLM размерность такого пространства составляет от сотен до десятков тысяч измерений (например, 12288 в GPT-3).
Классический пример семантической арифметики в векторном пространстве: Вектор(«Король») - Вектор(«Мужчина») + Вектор(«Женщина») Вектор(«Королева»)
Для вычисления степени смысловой близости двух слов или предложений часто используется косинусное сходство:
Где и — векторы сравниваемых токенов, — их скалярное произведение, а — произведение их длин. Значение означает полную идентичность векторов, — отсутствие связи, а — противоположность.
Ограничения классических подходов и появление Трансформеров
До 2017 года стандартом в обработке естественного языка (NLP) были рекуррентные нейронные сети (RNN) и архитектуры seq2seq. Их главный принцип — последовательная обработка: модель читает текст слово за словом, обновляя свое внутреннее скрытое состояние.
Этот подход имел два критических недостатка:
Решением стала архитектура Трансформер (Transformer), представленная исследователями Google. Она полностью отказалась от рекуррентности в пользу механизма внимания, позволив обрабатывать все слова в предложении одновременно.
!Схема базового блока Трансформера
Механизм самовнимания (Self-Attention)
Ядром архитектуры Трансформер является механизм самовнимания (Self-Attention). Он позволяет модели при обработке каждого слова смотреть на все остальные слова в предложении и определять, какие из них наиболее важны для понимания текущего контекста.
Рассмотрим фразу: «Банк одобрил кредит, потому что у него была хорошая репутация». Слово «него» может относиться к банку или к клиенту. Механизм самовнимания вычисляет связи между «него» и всеми остальными словами, присваивая наибольший вес слову «клиент» (подразумеваемому в контексте кредита) или «банк» в зависимости от более широкого контекста.
!Интерактивная матрица самовнимания
Математически этот процесс реализуется через три матрицы, которые создаются для каждого токена путем умножения его эмбеддинга на обучаемые весовые матрицы: * Query () — запрос. То, что текущий токен «ищет» в других токенах. * Key () — ключ. То, что токен «сообщает» о себе другим токенам. * Value () — значение. Фактическое смысловое содержание токена.
> Аналогия из жизни: вы приходите в библиотеку. Ваш поисковый запрос — это . Названия книг и теги на полках — это . Содержимое книги, которую вы в итоге читаете — это .
Формула вычисления внимания выглядит следующим образом:
Где: * — матрицы запросов, ключей и значений. * — транспонированная матрица ключей. * — скалярное произведение, вычисляющее «оценку совпадения» (насколько ключ подходит к запросу). * — размерность вектора ключа. Деление на необходимо для масштабирования: при больших размерностях скалярное произведение может давать огромные числа, что приводит к затуханию градиентов в функции softmax. * — функция, превращающая оценки в вероятности (веса от 0 до 1, сумма которых равна 1). * Умножение на — применение полученных весов к фактическим значениям токенов.
Многоголовое внимание (Multi-Head Attention)
Вместо того чтобы вычислять внимание один раз, Трансформер делает это параллельно несколько раз (обычно от 8 до 96 «голов»). Каждая голова обучается обращать внимание на разные аспекты текста: одна может следить за грамматическими связями (подлежащее и сказуемое), другая — за эмоциональным окрасом, третья — за временной последовательностью. Затем результаты всех голов объединяются.
Позиционное кодирование
Поскольку Трансформер обрабатывает все токены одновременно, он изначально не знает порядка слов. Для него фразы «собака кусает человека» и «человек кусает собаку» выглядят как одинаковый набор токенов.
Чтобы решить эту проблему, используется абсолютное позиционное кодирование (Positional Encoding). К вектору каждого эмбеддинга прибавляется специальный позиционный вектор, который содержит информацию о порядковом номере слова в предложении. В оригинальной статье для генерации этих векторов использовались функции синуса и косинуса разных частот, что позволяет модели легко вычислять относительные расстояния между словами.
Вычислительная сложность и проблема контекста
Главное ограничение классического механизма внимания — его квадратичная вычислительная сложность , где — длина последовательности (размер контекста).
Если мы увеличим длину входного текста в 10 раз, количество вычислений и потребление оперативной памяти GPU вырастут в 100 раз. Именно поэтому ранние модели имели жесткое ограничение контекста (например, 512 токенов у BERT). Современные архитектуры используют различные оптимизации (разреженное внимание, FlashAttention, механизмы внешней памяти), чтобы увеличить контекстное окно до сотен тысяч токенов.
Семейства моделей на базе Трансформеров
В зависимости от того, какие части оригинальной архитектуры (Энкодер или Декодер) используются, современные LLM делятся на три основных класса:
| Тип архитектуры | Принцип работы | Популярные модели | Идеальные задачи | | :--- | :--- | :--- | :--- | | Только Энкодер | Читает весь текст целиком (двунаправленный контекст). | BERT, RoBERTa | Классификация текста, извлечение сущностей (NER), анализ тональности. | | Только Декодер | Читает текст слева направо, предсказывая следующее слово (авторегрессия). | GPT-3, GPT-4, LLaMA | Генерация текста, чат-боты, написание кода, интеллектуальные агенты. | | Энкодер-Декодер | Энкодер сжимает входной текст, Декодер генерирует ответ. | T5, BART | Машинный перевод, суммаризация текстов. |
Для разработки интеллектуальных ассистентов сегодня чаще всего применяются авторегрессионные модели (Только Декодер) семейства GPT. Их способность предсказывать следующий токен на основе огромного массива знаний, заложенного на этапе предобучения, делает их универсальными решателями задач (General Purpose Solvers).
Понимание того, как эмбеддинги формируют семантическое пространство, а механизм внимания выявляет связи между токенами, является фундаментом. Эти знания критически важны для следующих этапов разработки: от настройки промптов (Prompt Engineering) до тонкого дообучения моделей (Fine-tuning) и интеграции LLM с внешними базами знаний (RAG).