Большой обзор больших языковых моделей

в 14:51, , рубрики: large language model, llm, nlp, большая языковая модель, искусственный интеллект, машинное обучение, нейросети

Большая языковая модель — что это такое?

LLM (Large Language Model, большая языковая модель) — это тип модели машинного обучения (или тип модели глубокого обучения), основанный на больших объёмах данных, который может выполнять любые задачи по обработке естественного языка (Natural Language Processing, NLP).

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

NLP — область информатики, который включает в себя предоставление компьютерам возможности интерпретировать и воспроизводить язык. В то же время NLP охватывает несколько областей обучения, включая лингвистику, информатику, статистику и искусственный интеллект. Основные сложности NLP заключаются в генерации и интерпретации человеческой речи, так как она достаточно двусмысленна и иногда даже люди, зная контекст, с трудом понимают, что имеется в виду. Например:

Рис. 1 Двусмысленная фраза

Рис. 1 Двусмысленная фраза

Вот контекст:

Рис. 2 Двусмысленная фраза в контексте

Рис. 2 Двусмысленная фраза в контексте

В самом начале хочется выделить ряд источников, которые подробно и понятно объясняют LLM:

История: от Тьюринга до GPT4

Существует много дискуссий о том, кто является создателем искусственного интеллекта. В этом исследовании отдаётся предпочтение основоположнику современных компьютеров — Алану Тьюрингу. Будем считать отправной точкой 1950 год, когда он опубликовал статью, в которой ввёл понятие «Тест Тьюринга» для оценки способности машины имитировать человеческое поведение.

Следующим ярким событием была Дартмутская конференция в 1956 году, на которой исследователи Джон Маккарти, Марвин Минский, Натаниэль Рочестер и Клод Шеннон предложили термин «искусственный интеллект» и сформулировали основные задачи и направления исследований в этой области. Большинство исследователей согласны с этой датой и считают конференцию началом эпохи искусственного интеллекта.

Рассматривая хронологию становления и развития LLM и ИИ в целом, можно выделить следующий ряд ключевых событий:

1967 год — появляется проект «Элиза», одна из первых программ, способная имитировать беседу с человеком.

1997 год — IBM Deep Blue побеждает чемпиона мира по шахматам Гарри Каспарова.

2006 год — Хинтон и Салахутдинов создают алгоритм глубокого обучения.

2011 год — IBM Watson побеждает в телешоу ‘Jeopardy!’, демонстрируя продвинутые возможности в области обработки естественного языка.

2017 год — Nvidia создала GPU для глубокого обучения.

2017 год — представлена архитектура Transformer.

2018 год — опубликована модель BERT, разработанная Google, которая использует архитектуру трансформеров и механизм внимания для глубокого понимания текста. Модель BERT представлена в двух основных версиях с различным количеством параметров:

  • BERT Base содержит 110 миллионов параметров.

  • BERT Large обладает 340 миллионами параметров.

2020 год — выпущена модель GPT-3 (Generative Pre-trained Transformer 3), разработанная OpenAI. Модель основана на архитектуре трансформеров, но использует однонаправленный (авторегрессионный) подход для генерации текста и обладает 175 миллиардами параметров. GPT-1 и GPT-2 обладают меньшим числом параметров: 117 миллионов у GPT-1 и 1,5 миллиарда у GPT-2 соответственно.

2021 год — DeepMind анонсирует AlphaFold для предсказания структуры белков.

2023 год — выпущена модель GPT-4.

2024 год — развиваются технологии генерации видео с использованием ИИ.

На рисунке ниже представлена краткая эволюция становления LLM.

Рис. 3 Значительные достижения в истории ИИ и LLM

Рис. 3 Значительные достижения в истории ИИ и LLM

На небольшом графике в правом верхнем углу на рисунке 3 видно, что количество исследований в области искусственного интеллекта не всегда линейно росло. Эти исследования переживали периоды скачкообразного развития от одного достижения к другому, в то время как сейчас развитие экспоненциальное.

Что под капотом?

1.1 Основные понятия и параметры LLM

Промпт (запрос) — это вводимые пользователем данные, которые модель использует для ответа.

Токены — дискретные символы, слова и другие фрагменты текста, которые используются для представления данных в структурированном формате.

Токенизация — это процесс преобразования данных в отдельные единицы, называемые токенами (рис. 4, рис. 5).

Как показано на рисунках 4 и 5, токеном может быть как одно слово, так и один символ, а количество токенов в фразе на русском языке используется гораздо большее, чем на английском.

Рис. 4 Токенизация на английском

Рис. 4 Токенизация на английском
Рис. 5 Токенизация на русском

Рис. 5 Токенизация на русском

Контекстное окно — количество токенов, которые можно передать модели за раз (эквивалентно RAM в памяти компьютера).

Эмбеддинги — кодирование текста в смысл в виде вектора длины для базовой модели (сам вектор представляет собой смысл); или иначе — векторное представление слов в виде набора токенов.

Embedding model (модель встраивания) — тип LLM, который преобразует данные в векторы (массивы или группы чисел).

Базовая модель — это нейросеть, обученная на большом объёме данных, которую можно настроить для решения каких-либо задач.

Температура — параметр от 0 до 1, который влияет на креативность модели. При температуре близкой к 0 модель стремится дать более точный результат, при близкой к 1 выводит слова, которые менее часто встречались в обучающей выборке.

Top-p — выбор токенов из вариантов с наибольшей вероятностью; сумма их вероятностей определяет выбор модели.

Например, если p установлено равным 0,15, модель выберет такие токены, как «Юнайтед» и «Нидерланды», поскольку их вероятности составляют в сумме 14,7%, меньше 0,15, а «Чехию» уже проигнорирует (рис. 6). Чем ниже значение p, тем более стандартными являются ответы, генерируемые моделью. Общая рекомендация — изменить либо температуру, либо top-p, но не то и другое одновременно.

Рис. 6 Top-p (пример)

Рис. 6 Top-p (пример)

Top-k — выбор следующего токена из списка токенов с наибольшим k, которые отсортированы по их вероятности (рис. 7). Например, если для k установлено значение 3, модель в соответствии с температурой выберет один из трёх лучших вариантов.

Рис. 7 Top-k (пример)

Рис. 7 Top-k (пример)

1.2 Состав LLM

Первые современные большие языковые модели с 2017 года строятся на архитектуре Transformer, которая остаётся актуальной и в наши дни. Трансформер (Transformer) — базовая архитектура для многих современных моделей обработки естественного языка. На базе трансформера были созданы все имеющиеся большие языковые модели.

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

1.2.1 Архитектура Transformer и принцип работы

Рис. 8 Архитектура Transformer

Рис. 8 Архитектура Transformer

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

Энкодер (кодировщик) состоит из нескольких слоев, каждый из которых включает в себя два основных компонента (Multi-Head Attention и Feed-forward network).

Рис. 9 Кодировщик

Рис. 9 Кодировщик

1. Multi-Head Attention | Self-attention (самовнимание):

  • На вход поступают эмбедденги фиксированной величины, они перемножаются на веса (матрицы) — запросы, ключи и значения (queries, keys, values), затем конкатенируются и передаются обратно через линейный слой (Add & Norm), что улучшает способность модели устанавливать зависимости между токенами. Этот механизм разбивается на несколько «голов» (heads), каждая из которых использует свои собственные параметры внимания (Query, Key, Value).

Рис. 10 Multi-Head Attention

Рис. 10 Multi-Head Attention

2. Feed-forward Neural Network (сеть прямого распространения):

  • FNN представляет собой два обычных полносвязных слоя, применяемых независимо к каждому элементу входной последовательности. Размер промежуточного представления (выхода первого слоя) обычно в 4 раза больше выходов блока self-attention D_m >> D_ff.

  • Между слоями используется нелинейная функция активации. Увеличенный размер промежуточного представления позволяет FNN обеспечить дополнительную нелинейность и экспрессивность модели. Два полносвязных слоя FNN с большим количеством параметров могут обрабатывать более сложные нелинейные зависимости в данных, а также позволяют более детально использовать веса, полученные с первого слоя, чтобы их применять к второму, который хранит в себе от 2/3 до 3/4 параметров модели Transformer.

Рис. 11 Feed-forward network

Рис. 11 Feed-forward network

Декодер (декодировщик) также состоит из нескольких слоев, и каждый слой включает три основных компонента.

Рис. 12 Декодировщик

Рис. 12 Декодировщик

1. Masked Multi-Head Attention | self-attention (самовнимание):

Токены смотрят на предыдущие последовательности, чтобы учитывать контекст. Это достигается с помощью маскирования (треугольная матрица, где фиолетовые значения — нули), которое предотвращает появление информации о будущих токенах. Также на рисунке ниже представлено сравнение Self-Attention и masked Self-Attention.

Рис. 13 Masked Self-Attention

Рис. 13 Masked Self-Attention

2. Encoder-decoder attention | Cross attention (внимание декодера к энкодеру):

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

  • Запросы берутся из состояний декодера, а ключи и значения из состояний энкодера.

Рис. 14 Encoder-decoder attention

Рис. 14 Encoder-decoder attention

3. Feed-forward Neural Network (сеть прямого распространения):

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

Дополнительные элементы:

Каждый слой энкодера и декодера включает также пропускные соединения или остаточные связи (Add & Norm), которые позволяют улучшить обучение сети и стабилизировать градиенты:

  • Добавление (Add): выходные данные слоев внимания или FNN добавляются к исходным данным.

  • Нормализация (Norm): затем берётся среднее значение и стандартное отклонение результатов, которые вычисляются для каждой обучающей выборки.

Positional encoding (позиционное кодирование): поскольку трансформеры не имеют встроенного порядка следования токенов, позиционное кодирование добавляет информацию о позиции каждого токена в последовательности.

Выходной слой:

Linear layer (линейный слой) преобразует выходные данные декодера в логиты (сырые значения), которые будут использоваться для предсказания вероятностей следующего токена.

Softmax преобразует логиты в вероятности, которые используются для выбора следующего токена в последовательности.

Принцип работы (кратко)

  1. Входная последовательность проходит через слой входного кодирования, добавляются позиционные кодировки.

  2. Энкодер обрабатывает последовательность через несколько слоев самовнимания и прямого распространения.

  3. Декодер принимает сдвинутую вправо выходную последовательность, проходит через слои маскированного самовнимания, внимания к энкодеру и прямого распространения.

  4. Линейный слой и Softmax преобразуют выходные данные декодера в вероятности предсказания следующего токена.

Классификация моделей

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

  • (На базе энкодера) BERT (Bidirectional Encoder Representations from Transformers) — модель, которая смотрит на текст в обоих направлениях для лучшего понимания контекста.

  • (На базе декодера) GPT (Generative Pre-trained Transformer) — модель, предназначенная в первую очередь для генерации текста.

  • (Энкодер + декодер) T5 (Text-to-Text Transfer Transformer) — модель, которая рассматривает все задачи обработки естественного языка как преобразование текста в текст.

  • MoE (Mixture of Experts) — модель, которая состоит из нескольких экспертов (предобученных моделей) для выполнения определённой задачи.

В таблице 1.1 приведено сравнение этих моделей в более удобном формате.

Таблица 1.1 Сравнение архитектур больших языковых моделей:

Архитектура

Применение

Пример модели

Только энкодер

Классификация, извлечение признаков

BERT, RoBERTa

Только декодер

Генерация текста

GPT, Llama

Энкодер и декодер

Машинный перевод, пересказ текста

T5, BART

Несколько экспертов

В зависимости от имеющихся моделей

Mistral

Немного практики

Существует множество реализаций примеров по использованию API OpenAI, но если есть необходимость проводить локальные эксперименты для создания своих собственных приложений и качество не очень важно, то можно рассмотреть использование готовых open-source-моделей.

На сайте существует большое количество различных моделей с разнообразной классификацией:

  • по языку,

  • по типу задачи,

  • по датасету и т. д.

Рис. 15 Hugging Face. Главная

Рис. 15 Hugging Face. Главная

Примеры использования моделей бывают сразу представлены в проектах автора. В качестве примера возьмём проект Ильи Гусева «mbart_ru_sum_gazeta» для краткого пересказа:

Рис. 16 Hugging Face, экземпляр кода

Рис. 16 Hugging Face, экземпляр кода

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

Рис. 17 WEB-интерфейс для модели mbart

Рис. 17 WEB-интерфейс для модели mbart

Полезные источники

Где можно попробовать топовые модели бесплатно:

Локальные эксперименты:

Также:

  • Сайт, на котором собирается крайне большое количество LLM-инструментов или агентов, предназначенных для различных задач. Есть как платные, так и бесплатные инструменты.

  • Сайт, который поможет написать статью.

  • Поиск научной литературы, отображение цитирования литературы в виде графа.

  • Инструмент, позволяющий в табличном формате сравнить и представить актуальную литературу.

Большой обзор больших языковых моделей - 18

Георгий Абраменко

Инженер

Автор: TheSeCure

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js