- BrainTools - https://www.braintools.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2018 год — опубликована модель BERT, разработанная Google, которая использует архитектуру трансформеров и механизм внимания [8] для глубокого понимания текста. Модель 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 год — развиваются технологии генерации видео с использованием ИИ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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-моделей.

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

  • по языку,

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

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

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

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

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

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

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

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

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

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

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

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

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

Также:

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

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

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

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

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

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

Инженер

Автор: TheSeCure

Источник [25]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/12402

URLs in this post:

[1] обучения: http://www.braintools.ru/article/5125

[2] интеллект: http://www.braintools.ru/article/7605

[3] Для тех, кто не знаком с ML: https://habr.com/ru/articles/774844/

[4] База для NLP: https://lena-voita.github.io/nlp_course.html

[5] Хорошая обзорная статья: https://habr.com/ru/articles/768844/

[6] Здесь качественно рассказаны основные подходы к разработке LLM: https://habr.com/ru/articles/775842/

[7] поведение: http://www.braintools.ru/article/9372

[8] внимания: http://www.braintools.ru/article/7595

[9] эволюция: http://www.braintools.ru/article/7702

[10] памяти: http://www.braintools.ru/article/4140

[11] сайте : http://huggingface.com

[12] Hugging Face: https://huggingface.co/models

[13] Hugging Face: https://huggingface.co/IlyaGusev/mbart_ru_sum_gazeta

[14] переработав код: https://github.com/GAbra/summarise-start-/tree/main

[15] Конкурент ChatGPT c открытым исходным кодом (появился во время написания статьи): https://chat.deepseek.com/

[16] Арена для сравнения моделей: https://arena.lmsys.org/

[17] Слепое тестирование: https://web.lmarena.ai/

[18] Ollama: https://ollama.com/

[19] tutorial: https://habr.com/ru/articles/807697/

[20] LM Studio – Discover, download, and run local LLMs: https://lmstudio.ai/

[21] Сайт: https://theresanaiforthat.com/

[22] Сайт: https://jenni.ai/

[23] Поиск научной литературы: https://www.litmaps.com

[24] Инструмент: https://elicit.com/

[25] Источник: https://habr.com/ru/companies/gaz-is/articles/884410/?utm_source=habrahabr&utm_medium=rss&utm_campaign=884410

www.BrainTools.ru

Rambler's Top100