- BrainTools - https://www.braintools.ru -
LLM (Large Language Model, большая языковая модель) — это тип модели машинного обучения [1] (или тип модели глубокого обучения), основанный на больших объёмах данных, который может выполнять любые задачи по обработке естественного языка (Natural Language Processing, NLP).
Более простыми словами это нейронная сеть с крайне большим количеством изменяемых параметров, которая позволяет решать задачи по обработке и генерации текста. Чаще всего реализована в виде диалогового агента, с которым можно общаться в разговорной форме.
NLP — область информатики, который включает в себя предоставление компьютерам возможности интерпретировать и воспроизводить язык. В то же время NLP охватывает несколько областей обучения, включая лингвистику, информатику, статистику и искусственный интеллект [2]. Основные сложности NLP заключаются в генерации и интерпретации человеческой речи, так как она достаточно двусмысленна и иногда даже люди, зная контекст, с трудом понимают, что имеется в виду. Например:
Вот контекст:
В самом начале хочется выделить ряд источников, которые подробно и понятно объясняют LLM:
Существует много дискуссий о том, кто является создателем искусственного интеллекта. В этом исследовании отдаётся предпочтение основоположнику современных компьютеров — Алану Тьюрингу. Будем считать отправной точкой 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 видно, что количество исследований в области искусственного интеллекта не всегда линейно росло. Эти исследования переживали периоды скачкообразного развития от одного достижения к другому, в то время как сейчас развитие экспоненциальное.
Промпт (запрос) — это вводимые пользователем данные, которые модель использует для ответа.
Токены — дискретные символы, слова и другие фрагменты текста, которые используются для представления данных в структурированном формате.
Токенизация — это процесс преобразования данных в отдельные единицы, называемые токенами (рис. 4, рис. 5).
Как показано на рисунках 4 и 5, токеном может быть как одно слово, так и один символ, а количество токенов в фразе на русском языке используется гораздо большее, чем на английском.
Контекстное окно — количество токенов, которые можно передать модели за раз (эквивалентно RAM в памяти [10] компьютера).
Эмбеддинги — кодирование текста в смысл в виде вектора длины для базовой модели (сам вектор представляет собой смысл); или иначе — векторное представление слов в виде набора токенов.
Embedding model (модель встраивания) — тип LLM, который преобразует данные в векторы (массивы или группы чисел).
Базовая модель — это нейросеть, обученная на большом объёме данных, которую можно настроить для решения каких-либо задач.
Температура — параметр от 0 до 1, который влияет на креативность модели. При температуре близкой к 0 модель стремится дать более точный результат, при близкой к 1 выводит слова, которые менее часто встречались в обучающей выборке.
Top-p — выбор токенов из вариантов с наибольшей вероятностью; сумма их вероятностей определяет выбор модели.
Например, если p установлено равным 0,15, модель выберет такие токены, как «Юнайтед» и «Нидерланды», поскольку их вероятности составляют в сумме 14,7%, меньше 0,15, а «Чехию» уже проигнорирует (рис. 6). Чем ниже значение p, тем более стандартными являются ответы, генерируемые моделью. Общая рекомендация — изменить либо температуру, либо top-p, но не то и другое одновременно.
Top-k — выбор следующего токена из списка токенов с наибольшим k, которые отсортированы по их вероятности (рис. 7). Например, если для k установлено значение 3, модель в соответствии с температурой выберет один из трёх лучших вариантов.
Первые современные большие языковые модели с 2017 года строятся на архитектуре Transformer, которая остаётся актуальной и в наши дни. Трансформер (Transformer) — базовая архитектура для многих современных моделей обработки естественного языка. На базе трансформера были созданы все имеющиеся большие языковые модели.
Применение архитектуры Transformer может варьироваться: например, может использоваться только декодер, только кодировщик или изменяться механизм работы слоя внимания и другие элементы. Однако несомненно то, что данная архитектура служит основой для всех существующих моделей в той или иной степени.
Архитектура Transformer представляет собой мощную и гибкую модель для обработки последовательностей данных. Она состоит из двух основных частей: энкодера и декодера.
Энкодер (кодировщик) состоит из нескольких слоев, каждый из которых включает в себя два основных компонента (Multi-Head Attention и Feed-forward network).
1. Multi-Head Attention | Self-attention (самовнимание):
На вход поступают эмбедденги фиксированной величины, они перемножаются на веса (матрицы) — запросы, ключи и значения (queries, keys, values), затем конкатенируются и передаются обратно через линейный слой (Add & Norm), что улучшает способность модели устанавливать зависимости между токенами. Этот механизм разбивается на несколько «голов» (heads), каждая из которых использует свои собственные параметры внимания (Query, Key, Value).
2. Feed-forward Neural Network (сеть прямого распространения):
FNN представляет собой два обычных полносвязных слоя, применяемых независимо к каждому элементу входной последовательности. Размер промежуточного представления (выхода первого слоя) обычно в 4 раза больше выходов блока self-attention D_m >> D_ff.
Между слоями используется нелинейная функция активации. Увеличенный размер промежуточного представления позволяет FNN обеспечить дополнительную нелинейность и экспрессивность модели. Два полносвязных слоя FNN с большим количеством параметров могут обрабатывать более сложные нелинейные зависимости в данных, а также позволяют более детально использовать веса, полученные с первого слоя, чтобы их применять к второму, который хранит в себе от 2/3 до 3/4 параметров модели Transformer.
Декодер (декодировщик) также состоит из нескольких слоев, и каждый слой включает три основных компонента.
1. Masked Multi-Head Attention | self-attention (самовнимание):
Токены смотрят на предыдущие последовательности, чтобы учитывать контекст. Это достигается с помощью маскирования (треугольная матрица, где фиолетовые значения — нули), которое предотвращает появление информации о будущих токенах. Также на рисунке ниже представлено сравнение Self-Attention и masked Self-Attention.
2. Encoder-decoder attention | Cross attention (внимание декодера к энкодеру):
Декодер смотрит на состояния энкодера, чтобы учитывать информацию из исходной последовательности.
Запросы берутся из состояний декодера, а ключи и значения из состояний энкодера.
3. Feed-forward Neural Network (сеть прямого распространения):
Аналогично энкодеру, после обработки внимания сеть обрабатывает и трансформирует информацию для её дальнейшей передачи следующему блоку.
Дополнительные элементы:
Каждый слой энкодера и декодера включает также пропускные соединения или остаточные связи (Add & Norm), которые позволяют улучшить обучение сети и стабилизировать градиенты:
Добавление (Add): выходные данные слоев внимания или FNN добавляются к исходным данным.
Нормализация (Norm): затем берётся среднее значение и стандартное отклонение результатов, которые вычисляются для каждой обучающей выборки.
Positional encoding (позиционное кодирование): поскольку трансформеры не имеют встроенного порядка следования токенов, позиционное кодирование добавляет информацию о позиции каждого токена в последовательности.
Выходной слой:
Linear layer (линейный слой) преобразует выходные данные декодера в логиты (сырые значения), которые будут использоваться для предсказания вероятностей следующего токена.
Softmax преобразует логиты в вероятности, которые используются для выбора следующего токена в последовательности.
Принцип работы (кратко)
Входная последовательность проходит через слой входного кодирования, добавляются позиционные кодировки.
Энкодер обрабатывает последовательность через несколько слоев самовнимания и прямого распространения.
Декодер принимает сдвинутую вправо выходную последовательность, проходит через слои маскированного самовнимания, внимания к энкодеру и прямого распространения.
Линейный слой и 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]существует большое количество различных моделей с разнообразной классификацией:
по языку,
по типу задачи,
по датасету и т. д.
Примеры использования моделей бывают сразу представлены в проектах автора. В качестве примера возьмём проект Ильи Гусева «mbart_ru_sum_gazeta» для краткого пересказа:
Немного переработав код [14], получилось создать примитивное локальное web-приложение для пересказа текста. В связи с тем, что данные для дообучения были созданы на основе новостных изданий, то текст для демонстрации был выбран из новостного источника.
Где можно попробовать топовые модели бесплатно:
Конкурент ChatGPT c открытым исходным кодом (появился во время написания статьи) [15];
Слепое тестирование [17]. После голосования отображаются используемые модели.
Локальные эксперименты:
LM Studio – Discover, download, and run local LLMs [20] — очень простое приложение для использования языковых моделей локально.
Также:
Сайт [21], на котором собирается крайне большое количество LLM-инструментов или агентов, предназначенных для различных задач. Есть как платные, так и бесплатные инструменты.
Сайт [22], который поможет написать статью.
Поиск научной литературы [23], отображение цитирования литературы в виде графа.
Инструмент [24], позволяющий в табличном формате сравнить и представить актуальную литературу.
Инженер
Автор: 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
Нажмите здесь для печати.