Большие языковые модели

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Большая языковая модель (large language model, LLM)— это тип тип модели машинного обучения, реализованный с помощью глубокой нейронной сети, имеющей большое число параметров (обычно миллиарды и более) и обученной на больших объёмах текстовых данных. «Большой» в данном контексте относится одновременно к масштабу параметров и к объёму обучающего корпуса, который в современных системах достигает нескольких петабайт и триллионов токенов. LLM-модели обучаются преимущественно само- или полу-самонаблюдаемым (self-/semi-supervised) методом, предсказывая следующее токен-звено в последовательности и тем самым усваивая статистические закономерности языка.Рост параметров, данных и вычислительных шагов приводит к предсказуемому улучшению качества, что подтверждают scaling laws.

После появления BERT (2017) и особенно GPT-3 (2020) LLM-подход стал доминировать в обработке естественного языка. Современные модели (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3 и др.) без специальной настройки умеют писать тексты и программный код, переводить, резюмировать, отвечать на вопросы и строить цепочки рассуждений; мультимодальные версии анализируют изображение, звук и видео. Адаптация к прикладной задаче делается тонкой донастройкой или инженерией подсказок (prompt engineering, in-context learning). Вместе с достижениями LLM наследуют предвзятости и погрешности исходных данных, склонны к «галлюцинациям» и требуют крупных вычислительных ресурсов, поэтому исследования сегодня сосредоточены на выравнивании поведения, фильтрации корпусов и энергоэффективных архитектурах.

Архитектура

В современных LLM почти всегда используется архитектура Transformer (трансформер) – сеть с механизмом самовнимания (self-attention)​. Впервые модель трансформера была предложена в статье Attention is All You Need от разработчиков Google в 2017 году.

Архитектура Transformer — это базовая нейросетевая схема для работы с последовательностями, включающая два логических модуля — энкодер (кодирует вход) и декодер (генерирует выход). На вход принимается последовательность, создается ее векторное представление (англ. embedding), прибавляется вектор позиционного кодирования, после чего набор элементов без учета порядка в последовательности поступает в кодирующий компонент (параллельная обработка), а затем декодирующий компонент получает на вход часть этой последовательности и выход кодирующего. В результате получается новая выходная последовательность.

Кодирующий компонент трансформера состоит из нескольких одинаковых слоёв-кодировщиков; аналогично устроен и декодирующий компонент. Сам трансформер — это последовательность моделей внимания, которые преобразуют исходную последовательность векторов в новую последовательность, где каждый элемент учитывает контекст остальных. Кодировщик формирует скрытые представления входных данных, сохраняя информацию о взаимосвязях между элементами. Декодировщик на основе скрытых представлений создаёт новую последовательность эмбеддингов для выходных токенов. Затем на основе этих эмбеддингов с помощью языковой модели генерируются итоговые выходные элементы.

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

Трансформеры применяются в трёх основных конфигурациях, каждая из которых по-разному использует энкодер и декодер и ориентирована на свой круг задач:

  • Энкодер-трансформеры (двунаправленные) учатся восстанавливать намеренно скрытые фрагменты текста, поэтому хорошо подходят для задач «понимания» — классификации, извлечения фактов, семантического поиска.
  • Декодер-трансформеры (авторегрессивные) оптимизируются на прогнозирование следующего токена и используются там, где нужен потоковый вывод: диалоговые агенты, автодополнение кода, креативная генерация.
  • Полные схемы «энкодер + декодер» совмещают оба подхода: энкодер строит представление всего входного текста, а декодер, опираясь на него, поэтапно формирует результат. Такая конфигурация наиболее эффективна для машинного перевода, суммаризации и вопросно-ответных систем.

Токенизация

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

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

Токенизация позволяет:

  • ограничить размер словаря до приемлемых масштабов;
  • корректно обрабатывать редкие и новые слова;
  • обеспечить однозначное отображение текста на последовательность числовых идентификаторов.

Для разбиения текста применяются субсловные алгоритмы, наиболее распространённые из которых — Byte Pair Encoding (BPE), WordPiece и UnigramLM. Каждый из них строит словарь из наиболее частых фрагментов корпуса и использует его для последовательного сегментирования любого входного текста.

После этапа токенизации каждая единица текста — токен — преобразуется в числовое представление, понятное нейронной сети. Этот процесс включает несколько последовательных шагов:

  • Преобразование токенов в идентификаторы: Каждый токен сопоставляется с уникальным числовым индексом на основе заранее построенного словаря токенов.Текстовые токены заменяются их уникальными числовыми идентификаторами (ID). Каждый ID — это номер токена в заранее построенном словаре, что позволяет нейронной сети работать с числами вместо слов.
  • Преобразование идентификаторов в эмбеддинги: Для каждого токен-идентификатора извлекается или вычисляется соответствующий вектор фиксированной размерности — эмбеддинг (embedding).Это многомерное числовое представление заменяет ID и уже содержит информацию о значении и контекстных свойствах токена. Все эмбеддинги имеют одинаковую длину для удобства обработки.
  • Добавление позиционных кодировок: Поскольку архитектура Transformer сама по себе не учитывает порядок элементов, к эмбеддингам добавляются позиционные кодировки (positional encodings), которые предоставляют информацию о позиции токена в последовательности.Иными словами, благодаря этому модель "знает", какой токен идет первым, вторым, третьим и так далее в предложении.
  • Формирование входных матриц: На выходе получается матрица размерности [длина последовательности × размерность эмбеддинга], которая служит начальным представлением текста и передаётся на вход нейронной сети, в частности в блоки самовнимания (self-attention) Transformer.Каждая строка этой матрицы соответствует одному токену, а содержащийся в ней вектор несёт в себе как его смысловое значение (эмбеддинг), так и информацию о его положении в тексте (позиционная кодировка).
Текст → Токены → Идентификаторы → Эмбеддинги + Позиционные кодировки → Вход в модель

Механизм внимания

Механизм внимания (attention mechanism) — ключевой компонент архитектуры Transformer, который обеспечивает возможность учитывать зависимости между токенами независимо от расстояния между ними в последовательности. После того как входной текст преобразован в последовательность векторов, эта последовательность поступает в центральный элемент трансформера — блок внимания (attention block).

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

В естественном языке значение слова или выражения не определяется изолированно — оно зависит от контекста, то есть от других слов и структур в окружении. В нейронных сетях текст кодируется через векторные представления — эмбеддинги, которые численно отражают лексические и синтаксические свойства токенов. Без механизма прямого внимания (как в Transformer), информация о контексте либо терялась бы на больших расстояниях (как в простых моделях), либо передавалась бы последовательно, что менее эффективно для улавливания дальних связей. Однако в естественном языке значение слова или синтаксической конструкции динамично, и его интерпретация должна адаптироваться в зависимости от контекста. Механизм внимания выполняет контекстуализацию векторных представлений, что означает (или просто :):

  • Каждый токен «оценивает» свою важность относительно других токенов в предложении.
  • В процессе обновления векторные представления обогащаются взаимной информацией, отражая синтаксические зависимости, семантические роли и прагматический контекст.


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

Входные векторы токенов (с позициями) → Механизм Внимания (Взаимодействие векторов) → Контекстуализированные векторы токенов (Векторы обогащенные информацией о связях с другими токенами)

Техническая реализация механизма внимания

Внутреннее устройство механизма внимания включает несколько ключевых вычислительных шагов и компонентов. Для каждого входного вектора генерируются три вектора: Запрос (Query), Ключ (Key) и Значение (Value). На основе их взаимодействия вычисляются веса внимания, которые затем используются для получения обновленных, контекстуализированных векторных представлений. Распространенным подходом является использование многоголовой архитектуры (Multi-Head Attention) для параллельной обработки информации.

Запрос (Query), Ключ (Key), Значение (Value)

В основе вычисления механизма внимания лежит преобразование каждого входного вектора (являющегося суммой эмбеддинга токена и его позиционной кодировки) в три различных векторных представления: Запрос (Query, Q), Ключ (Key, K) и Значение (Value, V).

Концептуально эти три вектора выполняют следующие роли в механизме внимания:

  • Запрос (Query): Представляет собой вектор текущего токена, который инициирует процесс поиска релевантной информации в последовательности. Его можно рассматривать как "вопрос" или "зонд", используемый для оценки важности других токенов относительно текущего.
  • Ключ (Key): Выступает в роли идентификатора или "метки", описывающей аспект содержания каждого токена. Вектор Запроса (Q) текущего токена сравнивается со всеми векторами Ключей (K) в последовательности (включая свой собственный) для определения степени их соответствия или релевантности.
  • Значение (Value): Содержит фактическую информацию или представление, ассоциированное с каждым токеном, которое будет передано дальше. После вычисления весов внимания на основе взаимодействия Запросов и Ключей, эти веса применяются к векторам Значений для формирования итогового взвешенного представления, которое и является выходом механизма внимания для данного токена.

Обучение больших языковых моделей

Обучение LLM происходит преимущественно в два этапа:

  1. Предобучение (Pretraining) На этом этапе модель обучается на больших неразмеченных корпусах текста методом самонаблюдаемого обучения (self-supervised learning). Задача заключается в прогнозировании следующего токена в последовательности (авторегрессия) или в восстановлении скрытых фрагментов (маскированное обучение). Предобучение позволяет модели усвоить обширные статистические закономерности языка, грамматику, факты о мире и базовые формы рассуждений.
  2. Донастройка (Fine-tuning) После предобучения модель дообучается на специализированных данных для выполнения конкретных задач, например, генерации ответов, классификации текстов или выполнения инструкций. Современные подходы включают:
    • Донастройку на размеченных датасетах (supervised fine-tuning).
    • Обучение с подкреплением с участием человека (RLHF, reinforcement learning from human feedback) для корректировки поведения модели согласно целевым метрикам качества, безопасности и полезности.

Проблемы и ограничения

Несмотря на впечатляющий прогресс, современные Большие языковые модели (LLM) обладают рядом проблем и ограничений:


I. Вычислительные и Архитектурные Ограничения

  1. Высокие вычислительные затраты: Обучение и эксплуатация LLM требуют значительных вычислительных мощностей, времени и энергии, что влечет высокие экономические и экологические издержки. Кроме того, авторегрессионная природа генерации (последовательное создание токенов) ограничивает параллелизацию и замедляет скорость вывода по сравнению с неавторегрессивными подходами.
  2. Ограничение длины контекста: Архитектура Трансформер имеет квадратичную зависимость вычислительных затрат и требований к памяти от длины последовательности. Это вынуждает устанавливать фиксированный предел (окно контекста) на объем текста, который модель может обработать единовременно, приводя к обрезанию длинных документов и потере информации за пределами окна.


II. Проблемы Надежности и Точности Генерации

  1. Галлюцинации: Генерация фактически неверной, но правдоподобно звучащей информации. Это связано с отсутствием у модели реального понимания мира, опорой на статистические закономерности в данных и неспособностью к верификации генерируемых утверждений.
  2. Накопление ошибок (Error Propagation): Процесс, при котором ошибки, допущенные на ранних этапах генерации, усиливаются и приводят к нарастанию неточностей на последующих шагах, снижая общее качество и согласованность текста.
  3. Ограниченная композиционность: Трудности с задачами, требующими многошагового логического вывода или точных вычислений (например, умножение многозначных чисел, решение головоломок). Точность моделей в таких задачах резко падает с ростом сложности из-за авторегрессионной природы генерации.
  4. Повторы: Склонность к избыточному повторению слов или фраз, снижающая информативность и читаемость текста. Связана с особенностями обучения и алгоритмов декодирования (выбора следующего токена).
  5. Реверсивное проклятие (Reversal Curse): Неспособность модели автоматически обобщать знания в обратном направлении: обучившись на утверждении «A есть B», модель часто не может вывести «B есть A» .
  6. Компромисс "креативность-точность": Необходимость балансировать между генерацией разнообразных, оригинальных ответов и поддержанием фактологической точности. Повышение одного аспекта часто негативно сказывается на другом, например, высокая креативность может коррелировать с увеличением галлюцинаций.

III. Проблемы Взаимодействия и Управления:

  1. Низкая управляемость: Сложность точного контроля над стилем, тоном, содержанием генерируемого текста или следованием сложным инструкциям. Управляемость сильно зависит от качества входных инструкций («промптов») и методов дообучения (fine-tuning).
  2. Чувствительность к формулировкам: Незначительные изменения во входном запросе (промпте) могут приводить к существенно разным ответам, даже если семантика запроса сохраняется. Это затрудняет получение стабильных и предсказуемых результатов.


IV. Этические и Социальные Аспекты:

  1. Проблемы предвзятости и справедливости: Модели могут воспроизводить и усиливать существующие в обучающих данных социальные стереотипы, предвзятость или токсичность. Обеспечение справедливости и безопасности моделей является сложной задачей.
  2. Проблема выравнивания (LLM Alignment): Более общая проблема, включающая предыдущий пункт. Это задача обеспечения соответствия поведения модели человеческим ценностям, намерениям и этическим нормам. Она включает борьбу с предвзятостью, галлюцинациями, генерацией вредоносного контента и повышение управляемости.
  3. Риски злонамеренного использования: Возможность применения БЯМ для создания и массового распространения дезинформации, фишинга, спама, вредоносного кода или генерации убедительных фейковых текстов, что несет угрозы информационной и личной безопасности, а также подрывает доверие в обществе.

Ссылки:

Литература

  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
  • Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
  • Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
  • Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
  • Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
  • OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
  • Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.