Предварительное обучение, точная настройка и изучение контекста в моделях больших языков (LLM)

С момента появления Transformers в 2017 году Большие языковые модели (LLM) полностью изменили процесс обучения моделей машинного обучения языковым задачам. Раньше для данной задачи и данного набора данных мы использовали различные модели, такие как RNN, LSTM, деревья решений и т. д., обучая каждую из них на подмножестве данных и тестируя остальные. И та модель, которая давала наилучшую точность, становилась победителем. Конечно, нужно было настроить и поэкспериментировать со многими гиперпараметрами модели. И для многих проблем также была необходима разработка признаков. Но эти дни почти прошли!

С появлением LLM на основе трансформаторов у нас теперь есть огромные модели с более чем 100 миллионами, которые на самом деле не требуют такого рода экспериментов. То, что раньше называлось «обучением», теперь разделено на два этапа: первый — «предобучение», второй — «тонкая настройка». Если привести аналогию, то более ранняя (или, лучше сказать, древняя!) Модель процесса обучения была похожа на наши программы профессионального обучения или развития навыков, которые готовили вас к конкретной задаче. Напротив, процесс предварительной подготовки похож на целостное образование в колледже, которое дает вам широкий набор навыков, которые вы затем можете настроить в соответствии с выбранной вами профессией. Существует также обучение в контексте, особенно для LLM с 1+ миллиардом параметров, и оно больше похоже на тех супер-умных студентов, которые могут сдать экзамены всего за пару часов подготовки и, самое главное, быстро забыть все, чему они научились. после окончания экзаменов. Да, такие люди существуют!

Давайте более подробно рассмотрим все эти три аспекта: предварительное обучение, тонкую настройку и обучение в контексте.

Предварительная подготовка

То, как люди изучают язык, сильно отличается от того, как его изучает компьютер. Для человека язык — это способ выражения. У нас есть опыт или наблюдение, которые мы хотим облечь в слова ради разговора. Но для компьютера не существует таких вещей, как опыт или наблюдение. Возможно видение через камеры, но это не наблюдение и не опыт.

Для компьютера речь идет только о вводе и выводе, и это тоже в битах. Компьютер по своей природе является чисто алгоритмическим и статистическим. Если компьютер обучен изучению языковой модели, это в основном означает, что по заданному набору слов он может предсказать следующее слово с хорошей точностью. И это то, что представляет собой предтренировочный процесс! То, что мы называем предварительным обучением, — это, по сути, обучение LLM на большом количестве данных (по крайней мере, несколько миллиардов слов) с основной задачей предсказания слов в предложении. Теперь есть два способа, которыми мы можем это сделать.

Один из способов называется MLM (Masked Language Model) и используется двунаправленными моделями вроде BERT, в которых определенный процент слов в обучающем наборе маскируется, а задача модели — предсказать эти пропущенные слова. Обратите внимание, что в этой задаче модель может видеть слова, предшествующие пропущенному слову, а также следующие за ним, и поэтому она называется двунаправленной. Для предварительного обучения BERT также использовалась другая задача под названием «Предсказание следующего предложения» (NSP), но исследователи обнаружили, что ее полезность незначительна, а MLM достаточно хорош для всех практических целей.

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

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

Тонкая настройка

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

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

Контекстное обучение

Теперь, хотя тонкая настройка для конкретной задачи является относительно дешевой задачей (несколько долларов) для таких моделей, как BERT с несколькими сотнями миллионов параметров, она становится довольно дорогой для больших моделей, подобных GPT, которые имеют несколько миллиардов параметров. И это просто потому, что во время тонкой настройки также необходимо обновить все параметры модели, и даже в меньшем наборе данных затраты на тонкую настройку моделей LLM, таких как GPT, могут быть непомерно большими! Возможно, вместо этого их следует называть Огромными языковыми моделями (HLM).

Спасительной грацией для этих моделей было то, что называется обучением в контексте или обучением за несколько выстрелов посредством быстрого проектирования. Таким образом, вместо точной настройки модели с сотней или тысячами входных текстов модель просто берет в качестве входных данных несколько примеров для конкретной задачи (обычно ‹10), а затем быстро выясняет, как хорошо выполнить эту задачу. Обратите внимание, что в этом процессе не происходит обновления веса модели! Никакого обратного распространения и градиентного спуска! Да, вот что волшебно и загадочно в этом процессе.

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

Краткое содержание

Так что же дальше в области обработки естественного языка (NLP)? Будет ли у нас еще одна причудливая архитектура, полностью отличная от преобразователей, основанных на внимании, разработанных какой-то большой лабораторией, которые выведут НЛП на новый уровень? И будет ли тогда совершенно новый тренировочный процесс? Скорее всего нет! Трансформеры никуда не денутся, как и тренировочный процесс. Это связано с тем, что с точки зрения геометрического глубокого обучения трансформер — это не просто произвольная архитектура, которая случайно хорошо справилась с языковыми задачами. Он обладает некоторыми важными свойствами, которые будет трудно воспроизвести в совершенно другой архитектуре. Так что да, углубитесь в LLM на основе трансформаторов и их учебный процесс, не опасаясь, что эти знания станут ненужными в ближайшем будущем. Трансформеры здесь, чтобы остаться!