Русская Википедия:Большая языковая модель
Большая языковая модель (БЯМ) — это языковая модель, состоящая из нейронной сети со множеством параметров (обычно миллиарды весовых коэффициентов и более), обученной на большом количестве неразмеченного текста с использованием обучения без учителя. БЯМ появились примерно в 2018 году и хорошо справляются с широким спектром задач. Это сместило фокус исследований обработки естественного языка с предыдущей парадигмы обучения специализированных контролируемых моделей для конкретных задач[1].
Характеристики
Хотя термин «большая языковая модель» не имеет формального определения, он обычно относится к моделям глубокого обучения, имеющим количество параметров порядка миллиардов и более[2]. БЯМ — это модели общего назначения, которые превосходно справляются с широким спектром задач, в отличие от обучения одной конкретной задаче (например, анализу настроений, распознаванию именованных сущностей или математическим рассуждениям)[1][3]. Несмотря на обучение на простых задачах, таких как предсказание следующего слова в предложении, нейронные языковые модели с достаточным обучением и подсчётом параметров схватывают большую часть синтаксиса и семантики человеческого языка. Кроме того, большие языковые модели демонстрируют значительные общие знания о мире и способны «запоминать» большое количество фактов во время обучения[1].
Архитектура и обучение
В БЯМ чаще всего использовалась архитектура трансформера, которая с 2018 года стала стандартной техникой глубокого обучения для последовательных данных (ранее наиболее распространёнными были рекуррентные архитектуры, такие как модели с долгой кратковременной памятью). БЯМ обучаются без учителя на неаннотированном тексте. Трансформер при генерации вывода слева направо обучается максимизировать вероятность, назначенную следующему слову в обучающих данных, с учётом предыдущего контекста. В качестве альтернативы БЯМ может использовать двунаправленный трансформер (как в примере BERT), который присваивает распределение вероятностей по словам, имеющим доступ как к предыдущему, так и к последующему контексту[4]. В дополнение к задаче прогнозирования следующего слова или «заполнения пробелов» БЯМ могут быть обучены вспомогательным задачам, которые проверяют их понимание распределения данных, таких как прогнозирование следующего предложения (NSP), в котором представлены пары предложений и модель должна предсказать, появятся ли они рядом в обучающем корпусе текстов[4].
Самые ранние БЯМ обучались на корпусах, содержащих порядка миллиардов слов. Первоначальная версия GPT была обучена в 2018 году на BookCorpus, состоящем из 985 миллионов слов. В том же году BERT прошёл обучение на сочетании BookCorpus и английской Википедии, что соответствовало 3,3 миллиарда словам[4]. С тех пор учебные корпуса для БЯМ увеличились на порядки, достигнув сотен миллиардов или триллионов токенов[4].
Обучение БЯМ требует больших вычислительных ресурсов. Исследование 2020 года оценило стоимость обучения модели с 1,5 миллиардами параметров (на 1-2 порядка меньше, чем уровень техники в то время) в 1,6 миллиона долларов[5].
Анализ 2020 года показал, что возможности нейронных языковых моделей (измеряемые функцией потерь при обучении) плавно увеличивались по степенному закону от количества параметров, количества обучающих данных и вычислений, используемых для обучения[6][7]. Эти связи были проверены в широком диапазоне значений (до семи порядков), и не наблюдалось затухания отношения на верхнем конце диапазона (в том числе для размеров сети до триллионов параметров)[7].
Применение к последующим задачам
В период с 2018 по 2020 год стандартный метод использования БЯМ для конкретной задачи NLP заключался в тонкой настройке модели с дополнительным обучением для конкретной задачи. Впоследствии обнаружилось, что более мощные БЯМ, такие как GPT-3, могут решать задачи без дополнительного обучения с помощью методов «подсказки», в которых решаемая задача представляется модели в виде текстовой подсказки, возможно, с некоторыми текстовыми примерами подобных задач и их решений[1].
Тонкая настройка
Тонкая настройка — это практика модификации существующей предварительно обученной языковой модели путём её обучения (под наблюдением) конкретной задаче (например, анализ настроений, распознавание именованных объектов или маркировка частей речи). Это форма передаточного обучения. Обычно это включает введение нового набора весов, связывающих последний слой языковой модели с выходными данными последующей задачи. Исходные веса языковой модели могут быть «заморожены», так что во время обучения изучается только новый слой весов, соединяющий их с выходными данными. В качестве альтернативы исходные веса могут получать небольшие обновления (возможно, с замороженными более ранними слоями)[4].
Подсказка
В парадигме подсказок, популяризированной GPT-3[3] решаемая проблема формулируется с помощью текстовой подсказки, которую модель должна решить, предоставляя завершение (посредством статистического вывода). В «подсказке с несколькими выстрелами» подсказка включает небольшое количество примеров похожих пар (задача и решение). Например, задача анализа тональности маркировки тональности рецензии на фильм можно вызвать следующим образом[3]:
Review: This movie stinks. Sentiment: negative Review: This movie is fantastic! Sentiment:
Если модель выдаёт «положительно», значит, она правильно решила задачу. В подсказках с «нулевым выстрелом» примеры решения не предоставляются[5][8]. Примером с нулевой подсказкой для задачи с ответом на вопрос может быть «Кто написал книгу „Происхождение видов“?».
Было показано, что малая производительность БЯМ позволяет достигать конкурентоспособных результатов в задачах обработки естественного языка, иногда превосходя предыдущие современные подходы к точной настройке. Примерами таких задач NLP являются перевод, ответы на вопросы, задачи с ограничениями, расшифровка слов и использование нового слова в предложении[8]. Создание и оптимизация таких подсказок называется инжинирингом подсказок и в настоящее время является активной областью исследований.
Список больших языковых моделей
Название | Дата релизаШаблон:Efn | Разработчик | Число параметровШаблон:Efn | Размер корпуса текстов | ЛицензияШаблон:Efn | Примечания |
---|---|---|---|---|---|---|
BERT | 2018 | 340 миллионов[9] | 3,3 миллиарда слов[9] | Шаблон:Yes[10] | Ранняя и влиятельная языковая модель[1]. | |
GPT-2 | 2019 | OpenAI | 1,5 миллиарда[11] | 40GB[12] (~10 миллиардов токенов)[13] | Шаблон:Yes[14] | Универсальная модель на базе трансформенной архитектуры. |
GPT-3 | 2020 | OpenAI | 175 миллиардов[5] | 499 миллиардов токенов[13] | Общедоступный веб-API | Доработанный вариант GPT-3, получивший название GPT-3.5, стал общедоступным через веб-интерфейс под названием ChatGPT в 2022 году[15]. |
GPT-Neo | Март 2021 | EleutherAI | 2,7 миллиарда[16] | 825 GiB[17] | Шаблон:Yes[18] | Первый из серии бесплатных альтернатив GPT-3, выпущенных EleutherAI. GPT-Neo превзошёл модель GPT-3 аналогичного размера в некоторых тестах, но был значительно хуже, чем самая большая GPT-3[18]. |
GPT-J | Июнь 2021 | EleutherAI | 6 миллиардов[19] | 825 GiB[17] | Шаблон:Yes | Языковая модель в стиле GPT-3. |
Claude[20] | Декабрь 2021 | Anthropic | 52 миллиарда[21] | 400 миллиардов токенов[21] | Закрытая бета | Fine-tuned for desirable behavior in conversations[22]. |
GLaM (Generalist Language Model) | Декабрь 2021 | 1,2 триллиона[23] | 1,6 триллиона токенов[23] | Шаблон:No | Модель с разреженной смесью экспертов (Шаблон:Lang-en), что делает её более дорогой для обучения, но более дешёвой для выполнения логического вывода по сравнению с GPT-3. | |
LaMDA (Language Models for Dialog Applications) | Январь 2022 | 137 миллиардов[24] | 1,56T слов[24] | Шаблон:No | Специализируется на генерации ответов в разговорах. | |
Megatron-Turing NLG | Октябрь 2021[25] | Microsoft and Nvidia | 530 миллиардов[26] | 338,6 миллиарда токенов[26] | Шаблон:No | Стандартная архитектура, но обученная на суперкомпьютерном кластере. |
GPT-NeoX | Февраль 2022 | EleutherAI | 20 миллиардов[27] | 825 GiB[17] | Шаблон:Yes | На базе архитектуры Megatron. |
Chinchilla | Март 2022 | DeepMind | 70 миллиардов[28] | 1,3 триллиона токенов[28][29] | Шаблон:No | Модель с уменьшенным количеством параметров, обученная на большем количестве данных. |
PaLM (Pathways Language Model) | Апрель 2022 | 540 миллиардов[30] | 768 миллиардов токенов[28] | Шаблон:No | Направлена на достижение практических пределов масштаба модели. | |
OPT (Open Pretrained Transformer) | Май 2022 | Meta | 175 миллиардов[31] | 180 миллиардов токенов[32] | Некоммерческое исследованиеШаблон:Efn | Архитектура GPT-3 с некоторыми адаптациями Megatron. |
YaLM 100B | Июнь 2022 | Яндекс | 100 миллиардов[33] | 300 миллиардов токенов[34] | Шаблон:Yes | 75% текста, использованного при обучении, написано на русском языке[34]. |
BLOOM | Июль 2022 | Коллаборация под управлением Hugging Face | 175 миллиардов[6] | 350 миллиардов токенов (1,6TB)[35] | Шаблон:Yes | По сути — GPT-3, но обучена многоязычному корпусу текстов (30% английский, исключая языки программирования). |
AlexaTM (Teacher Models) | Ноябрь 2022 | Amazon | 20 миллиардов[36] | 1,3 триллиона[37] | Общедоступный веб-API[38] | Двунаправленная архитектура «последовательность к последовательности». |
LLaMA (Large Language Model Meta AI) | Февраль 2023 | Meta | 65 миллиардов[39] | 1,4 триллиона[39] | Некоммерческое исследованиеШаблон:Efn | Обучена на большом корпусе из 20 языков, чтобы добиться лучшей производительности с меньшим количеством параметров[39]. |
GPT-4 | Март 2023 | OpenAI | Нет данныхШаблон:Efn | Нет данных | Общедоступный веб-API | Доступна для пользователей ChatGPT Plus. Microsoft подтвердила, что в Bing Chat используется модель GPT-4[40]. |
StableLM | Апрель 2023 | Stability-AI | 7 миллиардов[41] | 800 миллиардов[41] | Исходный код: Apache 2.0[41] |
Источники
- Комментарии
- Примечания
- ↑ 1,0 1,1 1,2 1,3 1,4 Ошибка цитирования Неверный тег
<ref>
; для сносокManning-2022
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокextracting
не указан текст - ↑ 3,0 3,1 3,2 Ошибка цитирования Неверный тег
<ref>
; для сносокemergent
не указан текст - ↑ 4,0 4,1 4,2 4,3 4,4 Ошибка цитирования Неверный тег
<ref>
; для сносокjm
не указан текст - ↑ 5,0 5,1 5,2 Ошибка цитирования Неверный тег
<ref>
; для сносокWiggers
не указан текст - ↑ 6,0 6,1 Ошибка цитирования Неверный тег
<ref>
; для сносокbigger-better
не указан текст - ↑ 7,0 7,1 Ошибка цитирования Неверный тег
<ref>
; для сносокkaplan-scaling
не указан текст - ↑ 8,0 8,1 Ошибка цитирования Неверный тег
<ref>
; для сносокfew-shot-learners
не указан текст - ↑ 9,0 9,1 Ошибка цитирования Неверный тег
<ref>
; для сносокbert-paper
не указан текст - ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносок15Brelease
не указан текст - ↑ Шаблон:Cite web
- ↑ 13,0 13,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокchatgpt-blog
не указан текст - ↑ Шаблон:Cite web
- ↑ 17,0 17,1 17,2 Шаблон:Cite arxiv
- ↑ 18,0 18,1 Ошибка цитирования Неверный тег
<ref>
; для сносокvb-gpt-neo
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 21,0 21,1 Шаблон:Cite arxiv
- ↑ Шаблон:Cite arxiv
- ↑ 23,0 23,1 Ошибка цитирования Неверный тег
<ref>
; для сносокglam-blog
не указан текст - ↑ 24,0 24,1 Ошибка цитирования Неверный тег
<ref>
; для сносокlamda-blog
не указан текст - ↑ Шаблон:Cite web
- ↑ 26,0 26,1 Ошибка цитирования Неверный тег
<ref>
; для сносокmtnlg-preprint
не указан текст - ↑ Шаблон:Cite conference
- ↑ 28,0 28,1 28,2 Ошибка цитирования Неверный тег
<ref>
; для сносокchinchilla-blog
не указан текст - ↑ Шаблон:Cite arxiv
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокpalm-blog
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite arxiv
- ↑ https://yandex.ru/company/news/2022-06-23
- ↑ 34,0 34,1 GitHub - yandex/YaLM-100B: Pretrained language model with 100B parameters
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite arxiv
- ↑ Шаблон:Cite web
- ↑ 39,0 39,1 39,2 Ошибка цитирования Неверный тег
<ref>
; для сносокllama-blog
не указан текст - ↑ Шаблон:Cite web
- ↑ 41,0 41,1 41,2 Шаблон:Статья