Исследование больших языковых моделей – Часть 1

Исследование больших языковых моделей - Часть 1' -> 'Исследование языковых моделей - Часть 1

Святой Грааль машинного обучения – обучение без учителя, возникновение понимания, понимание тренировки LLM

Эта статья написана преимущественно для самообразования. Она охватывает широкий и глубокий материал. Вы можете пропустить определенные разделы в зависимости от своих интересов или найти интересующую вас тему.

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

Поскольку LLMs основаны на нейронных сетях с функцией потерь, не является ли вся тренировка LLMs контролируемой тренировкой? Почему она обычно называется обучением без учителя?Можно ли обучить LLM в очень коротком предложении, чтобы показать, как работает тренировка LLM на практике?Что такое Маскированный и Причинный LM?Можете ли вы объяснить интуицию за Трансформаторной архитектурой в одной картинке?Что именно означает обучение без учителя в LLM?Почему главный архитектор ChatGPT – Илья Суверкар считает обучение без учителя священным Граалем машинного обучения?Что означает Возникновение / Понимание LLMs?

Какие существуют использования LLMs?Почему LLMs наиболее подходят в качестве помощников по продуктивности?Что такое векторный шаблон DB/Embedding для информационного поиска?Можно ли использовать LLMs для чего-то кроме текстовых задач? Что такое причинное мышление?В чем проблема с LLMs?Почему умы вроде Яна ЛеКуна считают текущие LLMs безнадежными?Являются ли LLMs объяснимыми, как их можно эффективно использовать, если они таковыми не являются?

Зачем нужно настраивать/переобучать LLMs?Почему сложно обучать LLMs?Как квантование и LoRA помогают в тренировке больших LLMs?Как работают квантование и LoRA?Что является эффективным способом настройки предварительно обученных LLMs?Что такое Instruct Tuning?Что такое Self Instruct? Как можно создать высококачественный набор данных для обучения Instruct Tuning?

Пока без ответаМожете ли вы показать, как LLMs различной возможности могут быть иерархически структурированы для создания сложной автоматизации с причинным рассуждением?Почему мы стремимся создать человекоподобный интеллект из LLMs или нейронных сетей? Почему это кажется зловеще похожим на создание птицеподобного полета задолго до изобретения фиксированного крыла самолета?

Поскольку статья довольно длинная, я разделил ее на три части для лучшей читаемости.

Часть 1 будет рассматривать эволюцию тренировки LLMs. Целью является создание контекста для понимания магии, или, более технически, возникновения, которое начинает происходить, когда размер модели превышает пороговое значение и когда она обучается с помощью огромного объема данных. Глубокие разделы подробно и глубоко иллюстрируют эти концепции, хотя их также легко понять большинству программистов.

Часть 2 кратко рассмотрит популярные использования LLMs, персональных помощников и чат-ботов с пользовательскими данными через шаблоны информационного поиска (поиск векторного пространства с дополнением LLM). Мы также рассмотрим некоторые идеи о том, как модель мышления и понимания LLMs могут стать их наиболее мощными использованиями. В этом контексте мы рассмотрим одно основное ограничение модели LLM, сравнивая преимущества контролируемой тренировки с недостатком моделей LLM – отсутствием объяснимости или сложностью определения фактов по сравнению с галлюцинациями. Мы рассмотрим, как такие системы были очень эффективно использованы в компьютерных системах с помощью иерархии контроля, ненадежные системы были сделаны надежными на более высоком уровне контроля – например, наш ежедневный использование ChatGPT, а также как это можно распространить на другие использования.

Часть 3 будет рассматривать некоторые концепции, связанные с тренировкой LLMs в пользовательских областях. Мы сосредоточимся на понимании области в этом контексте и на том, как это намного мощнее, чем простые шаблоны информационного поиска векторного пространства. Это просто в игрушечных примерах, но на практике не очень просто с реальными данными. Мы рассмотрим, как техники квантования открыли очень большие LLMs миру и как это, совместно с концепцией сокращения параметров обучения, демократизировало настройку LLMs. Мы рассмотрим основную технику эффективной настройки – Instruct tuning, и как решить самую большую практическую проблему Instruct tuning – недоступность качественного набора данных для обучения с инструкциями со всеми концепциями, которые мы рассмотрели до сих пор.

В будущих разделах будет рассмотрена концепция использования понимания LLMs и использования иерархии контроля для расширения возможностей систем искусственного интеллекта/машинного обучения.

Введение

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

Есть еще одна возможность, которая не так очевидна, но может быть самой мощной. Она подразумевается в первой возможности и технически называется NLU, естественное языковое понимание. Чтобы что-то понять, вам нужна модель этого. Для людей – это ментальная модель. Чтобы понять язык, вам нужна модель языкового синтаксиса и семантики. Чтобы понять вопрос пользователя и быть способным на эффективный ответ, модели нужна внутренняя модель мира. В этой области идет дебат между ведущими мыслителями, есть ли какая-то внутренняя модель мира, изученная этими LLM, или это кажется нам таким.

Тем не менее, их понимание естественного языка настолько хорошо, и их внутренняя модель мира содержит достаточно информации, чтобы они проходили тест Тьюринга, как это было задумано (https://www.nature.com/articles/d41586-023-02361-7), а также мини-тест Тьюринга, основанный на причинно-следственном рассуждении, предложенный самым известным критиком ИИ на данный момент, Джудея Перлом. Мы вернемся к этой теме позже.

С одной стороны, каждый знает, что такое интеллект; с другой стороны, никто не знает. Роберт Дж. Стернберг, источник

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

LLM начинаются как глупые автоматы, но где-то во время их обучения они становятся достаточно умными, чтобы обобщать свое обучение для задач, для которых они явно не обучены. Это то, что мы можем свободно назвать “пониманием”. Как я уже упоминал раньше, это предмет ожесточенных дебатов, и наша цель не углубляться в дебаты, а попытаться узнать.

Обучение LLM и появление понимания

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

Правила/Дерево поиска

Мы можем начать с IBM DeepBlue – суперкомпьютера для игры в шахматы. Используя мощность суперкомпьютера и специальные чипы, он победил Гарри Каспарова – шахматного гроссмейстера в 1997 году. Однако тогда не было ни искусственного интеллекта, ни нейронных сетей, это был поиск в дереве. Вы можете немного абстрагироваться и сказать, что это был движок, основанный на правилах. Обучающие данные были созданы вручную с использованием экспертных знаний в данной области, сведенных к набору правил. Алгоритм оптимизировал выбор следующего хода из огромного, но вычислимого набора результатов, основываясь на текущем состоянии его мира. Однако было ясно, что невозможно использовать эту программу на основе правил для более широких областей.

Обучение с учителем

Через десять лет, в 2011 году, IBM Watson – созданный для вопросно-ответной системы и специально обученный для Trivia QA, сыграл в игру Jeopardy и победил чемпиона. Вокруг этого возникло большое возбуждение, как будто это была следующая система знаний, которая изменит все. Основной способ обучения системы, по-видимому, был обучение с учителем. Это данные с метками, по которым система обучалась выбирать правильный ответ или, в данном случае, правильный вопрос.

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

“Все впечатляющие достижения глубокого обучения сводятся к простому подгону кривых…”. Известная критика систем искусственного интеллекта и машинного обучения, обладатель премии Тьюринга, Джудея Перл

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

Лучшим примером одного из самых крупных наборов данных с метками и его последствий является ImageNet. Это огромное количество помеченных изображений, собранных в рамках проекта ImageNet, помогло AlexNet, представленной в 2012 году (Илья Суцкевер, Алекс Крижевский и Джеффри Хинтон), революционизировать компьютерное зрение, хотя уже в 1998 году Янн Лекун и другие представили свою нейронную сеть, основанную на LeNet, для распознавания рукописного текста.

Обратите внимание, что Илья Суцкевер также является одним из основателей OpenAI и сыграл важную роль в обучении моделей GPT впоследствии.

Вернемся к истории. Шум вокруг IBM Watson постепенно стихает, поскольку стали очевидны ограничения системы. Статья в NY Times дает представление о некоторых проблемах, почему она не смогла хорошо обобщаться на другие области, как надеялась IBM, основная причина – недостаток правильно размеченных данных.

Обучение с подкреплением

В 2016 году Google DeepMind AlphaGo стал очень популярным, победив чемпиона по Го. Эта игра представляет собой гораздо более широкую область/стратегию, чем шахматы (невозможно для алгоритмов типа правил движка/дерева поиска). Ключевым здесь было обучение с подкреплением (RL).

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

Более сложная игра, чем Го, – это Дота, и в 2019 году небольшая компания (на тот момент) под названием OpenAI победила текущих чемпионов по Dota 2

Вот интересный отрывок, связанный с этим событием. Последнее слово “масштаб” является интересной частью, которая может указывать на то, как они использовали эту концепцию для своей будущей работы с моделями GPT

Мы начали OpenAI Five, чтобы работать над проблемой, которая казалась неподъемной для существующего глубокого обучения с подкреплением… Мы ожидали, что нам понадобятся сложные алгоритмические идеи, такие как иерархическое обучение с подкреплением, но мы были удивлены тем, что обнаружили: основным улучшением, которое нам было нужно для этой проблемы, был масштаб.

DeepDive – жесткое RL выглядит так, как будто его можно использовать для всего (например, так учится ходить ребенок или большинство организмов), за исключением областей, таких как игры, имеющие очень ограниченное или контролируемое пространство состояний, это очень сложно реализовать. Например, в автомобиле с автопилотом любое небольшое изменение состояния на предыдущем шаге может влиять на последующие шаги положительно или отрицательно. Здесь сводится к реализации функции потерь, которая может временно сохранять и работать. (https://stanford.edu/~ashlearn/RLForFinanceBook/book.pdf, почему для RL требуется приближение обратного распространения ошибки https://stats.stackexchange.com/a/340657/191675)

Итак, мы рассмотрели обучение с учителем (основу алгоритмов ИИ/МО на данный момент) и обучение с подкреплением – в основном в видеоиграх и подобных.

Обучение без учителя – священная Грааль всех обучения?

В OpenAI .. надежда заключалась в том, что если у вас есть нейронная сеть, которая может предсказывать следующее слово, она решит обучение без учителя. Так что до появления GPTs обучение без учителя считалось священной Граалью машинного обучения….

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

И именно это привело к GPT-3 и, в конечном счете, к тому, где мы находимся сегодня. – Интервью Ильи Суцкевера

Прежде чем мы перейдем к исследованию того, что он имеет в виду под “Священной Граалью”, давайте отойдем назад, чтобы прояснить контекст и изучить то, что инженеры обычно имеют в виду, когда говорят об обучении без учителя, и что имеется в виду здесь. Он здесь имеет в виду более высокоуровневую обучающую абстракцию, а не фактическую реализацию. Пока еще загадка, как сеть, обученная предсказывать следующие токены, может обобщаться настолько, как LLM, то есть они учатся обобщаться в безучительном режиме, хотя обучение является обучением с учителем предсказания следующего токена.

Обычный подход к обучению без учителя

Когда мы обычно говорим об обучении без учителя в МО, это несколько алгоритмов, связанных с кластеризацией, например, кластеризация k-средних, снижение размерности, метод главных компонент или подгонка временных рядов. Они основаны на математике или свойствах матриц. Они все довольно сложны, но если вы хорошо разбираетесь в математике или прикладываете достаточно усилий, их можно понять.

В случае глубокого обучения, примером на более низком уровне являются автоэнкодеры. Автоэнкодеры более интересны в контексте LLM в том, как они учат структуры для внутреннего сжатого представления. В автоэнкодерах целью является то же самое, что и ввод. То есть, имея сложные данные (например, высокодетализированное изображение), обучить неглубокую сеть давать похожий вывод. Для этого сети нужно научиться некоторым закономерностям в данных, чтобы сжать их достаточно. Подробнее см. http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/

В этой статье мы фокусируемся не на вышеупомянутых классических случаях использования МО или глубокого обучения, а на обучении без учителя для LLM.

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

Давайте посмотрим, как мы можем настроить или повторно обучить предварительно обученную модель для предсказания чего-то другого, например “Zoo” вместо “City” перед предложением “I love New York”. Таким образом, мы можем иметь представление о тренировке и потере LLM.

Примером тренировочного предложения будет “I love New York Zoo”. Модели подается первое слово “I”, и она выводит что-то. Но цель задается как love, и вычисляется потеря CrossEntropy Loss с этой целью, которая минимизируется в процессе тренировки. Наконец, после York цель становится Zoo. Метка или цель – это, по сути, следующий токен.

Это обычное обучение с учителем. Поскольку модель небольшая и набор данных небольшой, здесь не происходит обучение без учителя.

Будь то для небольшой игрушечной модели NanoGPT или для модели LLAMA2, используемая потеря в основном является потерей кросс-энтропии.

Функция softmax используется в качестве последнего слоя нейронной сети для создания вероятностного распределения по классам. В нашем случае классами являются все слова в словаре.

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

Чтобы лучше понять, нам нужно немного глубже погрузиться в архитектуру Transformer. Модели LLM обычно разрабатываются либо как — Причинная языковая модель, либо как Модели языка с маскировкой (MLM), где в предложении вводится определенный шум, закрывая некоторые слова (но модель все равно видит все токены в предложении). Они также известны как однонаправленная и двунаправленная модели соответственно.

Третий вариант – это комбинация, называемая Префиксная причинная или модель языка с маскировкой — где в тренировочных данных присутствует префиксная строка задания (например, ’Translate to French:“). Последняя стала известной благодаря модели типа T5 (FlanT5 — Finetune Langage Model for Text-to-Text Transformer). (Также есть и другие вариации)

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

Причинные языковые модели названы так, потому что они работают причинным образом, предсказывая на основе предыдущих токенов и, вероятно, на основе причинной связи между этими токенами. Как эта связь находится – это целая история о модели Transformer и роли “Attention” – знаменитой статье “Attention is all you need”, которая представила сети Transformer.

Объяснить эту концепцию простым способом не так просто. Я настоятельно рекомендую вам посмотреть это объяснительное видео, возможно, несколько раз – Intuition Behind Self-Attention Mechanism in Transformer Networks – YouTube.

Мы можем сказать, что в процессе обучения правильному ‘следующему’ токену для предсказания обратным распространением потери обучается три набора весов на каждый токен – веса Key, Query и Value. Они являются основой механизма “Attention”. В вышеупомянутом видео прекрасно объясняется эта идея.

Для вычисления вектора значений используется концепция скалярного произведения векторов, который является суммой вклада скалярного произведения векторов Query и Key.

Интуиция заключается в том, что “похожие векторы” в пространстве векторных вложений будут иметь большее значение скалярного произведения и больший вклад. Это трюк для захвата причинной связи токенов/слов в предложении.

Затем веса корректируются с помощью обратного распространения ошибки, что означает, что обученные веса представляют новое и лучшее контекстное векторное пространство для предложения. (Веса Key и Query имеют многомерность, и есть несколько головок внимания, поэтому это не одно векторное пространство, а множество)

В Transformer есть несколько головок внимания, поэтому, какую головку внимания взвешивать больше, также можно настроить с помощью весов. Transformer network – это такая архитектура, где интуиция о причинной связи между токенами кодируется как обучаемые веса в линейных слоях нейронной сети.

Я попытался объяснить это на упрощенной картинке ниже

Приблизительное функционирование одной головы в трансформерной нейронной сети - Источник Автор

Здесь вы можете подробнее увидеть, как небольшая предварительно обученная модель, которая имеет наибольшую вероятность генерации Ciy после Я люблю Нью-Йорк, может быть донастроена для снижения потерь и генерации Zoo https://github.com/alexcpn/tranformer_learn/blob/main/LLM_Loss_Understanding.ipynb

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

Однако, когда сеть становится большой, а объем обучающих данных становится гигантским (от миллиарда до триллиона токенов), происходит какое-то другое явление, когда, помимо простого “кривой подгонки”, она может обобщить обучение, чтобы ‘понять’ внутреннюю структуру (человеческий язык, язык программирования и т. д.) обучающих данных без явного обучения этому. Это священная грааль безнаблюдательного обучения.

Илья Суцкевер описывает это https://youtu.be/AKMuA_TVz3A?t=490

Таким образом, из скромного контролируемого обучения развивается таинственное безнаблюдательное обучение

Возникновение понимания

Статья Языковые модели являются безнаблюдательными многозадачными учениками представила миру GPT-2 на основе архитектуры “трансформер”. Она сделала нечто очень необычное.

Она эмпирически доказала, что достаточно большая LLM, обученная с достаточно большим набором данных (CommomCrawl / WebText – очищенные данные из интернета), начинает “понимать” структуру языка. Я специально не использую менее спорный термин “обобщение” вместо “понимания” для лучшего понимания всех.

Вот научная статья от Google/DeepMind, которую легко прочитать по этой теме https://arxiv.org/pdf/2206.07682.pdf.

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

Те же авторы обсудили это с лучшими визуальными материалами (ниже)

Источник: https://hai.stanford.edu/news/examining-emergent-abilities-large-language-models

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

Чтобы действительно понять что-то и не просто быть генератором вероятностного распределения, необходима, по сути, изученная внутренняя модель мира – согласно Илье Суцкеверу. Это делает его полностью отличным от других форм машинного обучения и искусственного интеллекта.

Чтобы проиллюстрировать это, вот пример входных и выходных данных модели ChatGpt4. Модель не была явно обучена вождению автомобиля. Но вы можете видеть, что она сформировала мировоззрение или внутреннюю модель мира на основе своих обучающих данных и может давать исчерпывающие ответы.

Источник: Автор и ChatGPT4

Неясно, как происходит возникновение понимания при масштабировании обучения и параметров модели. Роль случайности или ее изучение/измерение – вероятности, в сложных системах взаимодействия, например, как это представлено в “Слепом часовщике”, связана с эволюцией и физикой на квантовом уровне, иногда заставляет задуматься, есть ли какой-то другой способ, кроме вероятностных распределений, чтобы описать их. Это требует дальнейших исследований и более ясной структуры для более четкого объяснения.

Например, я искал энтропию и LLM и наткнулся на эту статью Исследование возможности фазовых переходов в LLM​, а также связанную презентацию основателя компании Wolfarm и ученого Стивена Вольфарма. Так что не фантазия думать в этих направлениях.

Обратите внимание, что другие сигналы, которые следуют этому свойству языка, также могут быть эффективными кандидатами для обучения LLM, где вместо слов сигнал может быть токенизирован. Примером может быть музыка https://ai.googleblog.com/2022/10/audiolm-language-modeling-approach-to.html. Аналогично, структуры, не подчиняющиеся этой модели, такие как, скажем, ДНК, могут быть сложными для таких моделей.

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