Языковая модель
Из Википедии, бесплатной энциклопедии
Языкова́я модель — это распределение вероятностей по последовательностям слов[1]. Для любой последовательности слов длины m языковая модель присваивает вероятность всей последовательности. Языковые модели генерируют вероятности путём обучения на корпусе текстов на одном или нескольких языках. Учитывая, что языки могут использоваться для выражения огромного множества верных предложений (так называемая цифровая бесконечность), языковое моделирование сталкивается с проблемой задания ненулевых вероятностей лингвистически верным последовательностям, которые могут никогда не встретиться в обучающих данных. Для преодоления этой проблемы было разработано несколько подходов к моделированию, таких как применение марковских цепей или использование нейронных архитектур, таких как рекуррентные нейронные сети или трансформеры.
Языковые модели полезны для решения множества задач вычислительной лингвистики; от первоначальных применений в распознавании речи[2] для того, чтобы избежать генерации бессмысленных (то есть маловероятных) последовательностей слов, до более широкого использования в машинном переводе[3] (например, оценка переводов-кандидатов), генерации естественного языка (генерация текста, более похожего на человеческий), разметки частей речи, синтаксического анализа[3], оптического распознавания символов, распознавания рукописного ввода[4], грамматических выводов[5], поиска информации[6][7] и других приложений.
Языковые модели используются при поиске информации в вероятностной модели запросов[англ.], где каждому документу в коллекции привязана отдельная языковая модель. Документы ранжируются на основе вероятности запроса Q в языковой модели документа : . Обычно для этой цели используется языковая модель униграмм.
Типы моделей
[править | править код]Униграмма
[править | править код]Модель униграммы можно рассматривать как комбинацию нескольких конечных автоматов с одним состоянием[8]. Предполагается, что вероятности маркеров в последовательности независимы, например:
В этой модели вероятность каждого слова зависит только от собственной вероятности нахождения этого слова в документе, поэтому в качестве единиц имеются только конечные автоматы с одним состоянием. Сам автомат имеет распределение вероятностей на всём словаре модели. Ниже приведена иллюстрация униграммной модели документа.
Условия | Вероятность в документе |
---|---|
а | 0,1 |
мир | 0,2 |
нравится | 0,05 |
мы | 0,05 |
делиться | 0,3 |
. . . | . . . |
Вероятность, сгенерированная для конкретного запроса, рассчитывается как
В разных документах есть модели униграмм с разной вероятностью слов в ней. Распределения вероятностей из разных документов используются для генерации вероятностей попаданий для каждого запроса. Документы можно ранжировать для запроса в соответствии с вероятностями. Пример моделей униграмм двух документов:
Условия | Вероятность в Doc1 | Вероятность в Doc2 |
---|---|---|
а | 0,1 | 0,3 |
мир | 0,2 | 0,1 |
нравится | 0,05 | 0,03 |
мы | 0,05 | 0,02 |
делиться | 0,3 | 0,2 |
. . . | . . . | . . . |
В контексте информационного поиска языковые модели униграмм часто сглаживаются, чтобы избежать случаев, когда P(term) = 0. Обычный подход заключается в создании модели максимального правдоподобия для всей коллекции и линейной интерполяции модели коллекции с моделью максимального правдоподобия для каждого документа для сглаживания[9].
n-грамм
[править | править код]В n-граммной модели вероятность наблюдения за предложением аппроксимируется как
Предполагается, что вероятность встретить i-е слово wi в контестной истории предшествующего i − 1 слов можно аппроксимировать вероятностью найти его в укороченной контекстной истории предыдущего n − 1 слова (марковское свойство n-го порядка). Чтобы уточнить, для n = 3 и i = 2 получится .
Условная вероятность рассчитывается на основе частот n-граммовой модели:
Термины биграммные и триграммные языковые модели обозначают n-граммовые модели с n = 2 и n = 3 соответственно[10].
Как правило, вероятности n-граммной модели не выводятся непосредственно из подсчёта частот, потому что модели, полученные таким образом, имеют серьёзные проблемы при столкновении с любыми n-граммами, которые ранее явно не наблюдались. Вместо этого необходима некоторая форма сглаживания, приписывающая часть общей вероятностной массы невидимым словам или n-граммам. Используются различные методы, от простого сглаживания «добавь один» (присваивание числа 1 невидимым n-граммам в качестве неинформативного априорного) до более сложных моделей, таких как модели Гуда — Тьюринга[англ.] или Катца[англ.].
Двунаправленная
[править | править код]Двунаправленные представления зависят как от пре-, так и от постконтекста (например, слов) на всех уровнях[11].
Пример
[править | править код]В биграммной языковый модели, вероятность предложения I saw the red house аппроксимируется как
тогда как в триграммной языковой модели, аппроксимация
Контекст первого n — 1 n-грамм заполняется маркерами начала предложения, обычно обозначаемыми символом <s>.
Кроме того, без маркера конца предложения вероятность неграмматической последовательности *I saw the всегда будет выше, чем вероятность более длинного предложения I saw the red house.
Экспоненциальная
[править | править код]Языковые модели с максимальной энтропией кодируют отношения между словом и историей n-грамм, используя функции признаков. Уравнение
где — статистическая сумма[англ.], — вектор параметров, а — функцией признаков. В простейшем случае функция признаков — это просто индикатор наличия некой n-граммы. Полезно использовать априорную или некоторую форму регуляризации.
Логбилинейная модель — ещё один пример экспоненциальной языковой модели.
Нейросетевая
[править | править код]Нейронные языковые модели (или языковые модели с непрерывным пространством) используют непрерывные представления или вложения слов для своих прогнозов[12]. Эти модели используют нейронные сети.
Встраивание в непрерывное пространство помогает уменьшить проклятие размерности в языковом моделировании: по мере того, как языковые модели обучаются на всё больших и больших текстах, количество уникальных слов (словарный запас) увеличивается[a]. Количество возможных последовательностей слов экспоненциально увеличивается с размером словаря, вызывая проблему разреженности данных из-за экспоненциально большого количества последовательностей. Таким образом, статистика необходима для правильной оценки вероятностей. Нейронные сети избегают этой проблемы, представляя слова распределённым образом, как нелинейные комбинации весов в нейронной сети[13]. Альтернативное описание состоит в том, что нейронная сеть аппроксимирует языковую функцию. Архитектура нейронной сети может быть прямой или рекуррентной, и хотя первая проще, вторая встречается чаще.
Как правило, нейронносетевые языковые модели строятся и обучаются как вероятностные классификаторы, которые учатся предсказывать распределение вероятностей.
То есть сеть обучена прогнозировать распределение вероятностей по словарю с учётом некоторого лингвистического контекста. Это делается с помощью стандартных алгоритмов обучения нейронных сетей, таких как стохастический градиентный спуск с обратным распространением ошибки[13]. Контекст может быть окном фиксированного размера предыдущих слов, чтобы сеть предсказывала следующее
из вектора признаков, представляющего предыдущие k слов[13]. Другим вариантом является использование «будущих» слов, а также «прошедших» слов в качестве признаков, так что предполагаемая вероятность
Это называется моделью мешка́ слов. Когда векторы признаков для слов в контексте объединяются непрерывной операцией, эта модель называется непрерывной архитектурой набора слов (англ. continuous bag-of-words architecture, CBOW)[14].
Третий вариант, который обучается медленнее, чем CBOW, но работает немного лучше, заключается в том, чтобы инвертировать предыдущую задачу и заставить нейронную сеть изучать контекст по заданному слову[14]. Более формально, учитывая последовательность обучающих слов , максимизируется средняя логарифмическая вероятность
где k — размер обучающего контекста, который может быть функцией центрального слова . Это называется скип-граммовой моделью языка[15]. Модели «мешок слов» и «скип-грамм» лежат в основе программы word2vec[16].
Вместо использования языковых моделей нейронных сетей для получения фактических вероятностей обычно вместо этого используется распределённое представление, закодированное в «скрытых» слоях сети, как представления слов; затем каждое слово отображается в n-мерный вещественный вектор, называемый встраиванием слов, где n — размер слоя непосредственно перед выходным слоем. Представления в скип-граммных моделях имеют отличительную характеристику, заключающуюся в том, что они моделируют семантические отношения между словами как линейные комбинации, фиксируя форму композиционности[англ.]. Например, в некоторых таких моделях, если v — это функция, которая отображает слово w в его n-d векторное представление, то
где ≈ уточнено условием, что его правая часть должна быть ближайшим соседом значения левой части[14][14]
Другие
[править | править код]Позиционная языковая модель[17] оценивает вероятность того, что данные слова встречаются в тексте близко друг к другу, не обязательно непосредственно рядом. Точно так же модели мешка́ понятий[18] используют семантику, связанную с многословными выражениями, такими как buy_christmas_present, даже когда они используются в информативных предложениях, таких как «сегодня я купил много очень хороших рождественских подарков».
Несмотря на ограниченные успехи в использовании нейронных сетей[19], авторы признают необходимость других методов при моделировании жестовых языков.
Языковые модели
[править | править код]Примеры языковых моделей:
- Модель Pathways Language Model (PaLM) — модель с 540 миллиардами параметров от Google Research[20]
- Универсальная языковая модель (GLaM) — модель с 1 триллионом параметров от Google Research[21]
- Language Models for Dialog Applications (LaMDA) — модель со 137 миллиардами параметров от Google Research[22]
- Модель Megatron-Turing NLG — модель с 530 миллиардами параметров от Microsoft/Nvidia[23]
- Факторизованная языковая модель[англ.]
- Кэшированная языковая модель[англ.] (см. кэш)
- Дисконтная модель Катца
- Генерация 3D-изображений DreamFusion/Imagen от Google Research[24]
- GET3D от Nvidia[25]
- MineClip от Nvidia[26]
- BLOOM: BigScience — большая открытая многоязычная языковая модель открытого доступа со 176 миллиардами параметров.
- Генеративный предварительно обученный трансформер (GPT)
- GPT-2[англ.]: генеративный предварительно обученный трансформер 2 с 1,5 миллиардами параметров.
- GPT-3: генеративный предварительно обученный трансформер 3 с беспрецедентным размером контекста длиной 2048 токенов и 175 миллиардов параметров (требуется 800 ГБ памяти).
- GPT-3.5/ChatGPT/InstructGPT от OpenAI[27]
- GPT-NeoX-20B: модель авторегрессионного языка с открытым исходным кодом с 20 миллиардами параметров.
- BERT[англ.]: представления двунаправленного кодировщика от трансформаторов (BERT)
- OPT-175B от Meta AI: ещё одна языковая модель со 175 миллиардами параметров. Она доступна более широкому сообществу исследователей ИИ.
- Point-E от OpenAI: генератор 3D-моделей[28].
- RT-1 от Google: модель для работающих роботов[29].
- ERNIE-Code от Baidu: модель многоязычного кодирования с 560 млн параметрами[29].
- Синтез текста в речь VALL-E на основе 3-секундного образца речи[30]. Она была предварительно обучена на 60 000 часов английской речи от 7000 уникальных носителей (набор данных: LibriLight)[31].
Hugging Face размещает общедоступные языковые модели, с помощью которых разработчики могут создавать приложения с использованием машинного обучения.
Оценка и ориентиры
[править | править код]Оценка качества языковых моделей в основном проводится путём сравнения с эталонными тестами, созданными людьми на основе типичных языковых задач. Другие, менее известные тесты качества исследуют внутренний характер языковой модели или сравнивают две такие модели. Поскольку языковые модели обычно предназначены для того, чтобы быть динамичными и учиться на основе данных, которые они видят, некоторые предлагаемые модели исследуют скорость обучения, например, путём проверки кривых обучения[32].
Для оценки систем языковой обработки были разработаны различные наборы данных[11]. К ним относятся:
- Корпус лингвистической приемлемости[33];
- Тест GLUE[34];
- Microsoft Research Paraphrase Corpus[35];
- Многожанровый вывод на естественном языке;
- Вопрос через интерфейс естественного языка;
- Пары вопросов-ответов Quora[36];
- Распознавание логического следствия из текста[37];
- Эталон семантического текстового сходства;
- Тест вопрос-ответ SQuAD[38];
- Стэнфордское дерево отношений[39];
- Winograd NLI.
Критика
[править | править код]Хотя можно показать, что современные языковые модели, такие как GPT-3, соответствуют способностям человека в некоторых задачах, неясно, являются ли они правдоподобными когнитивными моделями. Например, было показано, что рекуррентные нейронные сети изучают шаблоны, которые люди не изучают, и не могут изучать шаблоны, которые люди изучают[40].
См. также
[править | править код]Примечания
[править | править код]Комментарии
[править | править код]- ↑ См. Закон Хипса.
Источники
[править | править код]- ↑ Jurafsky, Dan. N-gram Language Models // Speech and Language Processing / Dan Jurafsky, James H. Martin. — 3rd. — 2021. Архивная копия от 22 мая 2022 на Wayback Machine
- ↑ Kuhn, Roland, and Renato De Mori. «A cache-based natural language model for speech recognition.» IEEE transactions on pattern analysis and machine intelligence 12.6 (1990): 570—583.
- ↑ 1 2 Andreas, Jacob, Andreas Vlachos, and Stephen Clark. «Semantic parsing as machine translation Архивная копия от 15 августа 2020 на Wayback Machine.» Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2013.
- ↑ Pham, Vu, et al. «Dropout improves recurrent neural networks for handwriting recognition.» 2014 14th International Conference on Frontiers in Handwriting Recognition. IEEE, 2014.
- ↑ Htut, Phu Mon, Kyunghyun Cho, and Samuel R. Bowman. «Grammar induction with neural language models: An unusual replication Архивная копия от 14 августа 2022 на Wayback Machine.» arXiv preprint arXiv:1808.10000 (2018).
- ↑ Ponte, Jay M.; Croft, W. Bruce (1998). A language modeling approach to information retrieval. Proceedings of the 21st ACM SIGIR Conference. Melbourne, Australia: ACM. pp. 275—281. doi:10.1145/290941.291008.
- ↑ Hiemstra, Djoerd (1998). A linguistically motivated probabilistically model of information retrieval. Proceedings of the 2nd European conference on Research and Advanced Technology for Digital Libraries. LNCS, Springer. pp. 569—584. doi:10.1007/3-540-49653-X_34.
- ↑ Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze: An Introduction to Information Retrieval, pages 237—240. Cambridge University Press, 2009
- ↑ Buttcher, Clarke, and Cormack. Information Retrieval: Implementing and Evaluating Search Engines. pg. 289—291. MIT Press.
- ↑ Craig Trim, What is Language Modeling? Архивная копия от 5 декабря 2020 на Wayback Machine, April 26th, 2013.
- ↑ 1 2 Devlin, Jacob; Chang, Ming-Wei; Lee, Kenton; Toutanova, Kristina (2018-10-10). "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". arXiv:1810.04805 [cs.CL].
- ↑ Andrej Karpathy. The Unreasonable Effectiveness of Recurrent Neural Networks (21 мая 2015). Дата обращения: 10 февраля 2023. Архивировано 1 ноября 2020 года.
- ↑ 1 2 3 Bengio, Y. (2008). "Neural net language models". Scholarpedia. 3 (1): 3881. doi:10.4249/scholarpedia.3881. ISSN 1941-6016. Архивировано 26 октября 2020. Дата обращения: 10 февраля 2023.
{{cite journal}}
: Википедия:Обслуживание CS1 (не помеченный открытым DOI) (ссылка) - ↑ 1 2 3 4 Mikolov, T., Chen, K., Corrado, G., Dean, J. (2013). "Efficient Estimation of Word Representations in Vector Space". Computation and Language. doi:10.48550/ARXIV.1301.3781. Архивировано 16 февраля 2023. Дата обращения: 10 февраля 2023.
- ↑ Mikolov, T., Sutskever, I., Chen, K., Corrado, G., Dean, J. (2013). "Distributed Representations of Words and Phrases and their Compositionality". Computation and Language. doi:10.48550/ARXIV.1310.4546. Архивировано 10 февраля 2023. Дата обращения: 10 февраля 2023.
- ↑ Harris. We're on the cusp of deep learning for the masses. You can thank Google later . Gigaom (16 августа 2013). Дата обращения: 10 февраля 2023. Архивировано из оригинала 11 ноября 2020 года.
- ↑ Yuanhua Lv, ChengXiang Zhai. Positional Language Models for Information Retrieval (PDF). Архивировано из оригинала (PDF) 24 ноября 2020. Дата обращения: 10 февраля 2023.
- ↑ Cambria, Erik. Sentic Computing: Techniques, Tools, and Applications : [англ.] / Erik Cambria, Amir Hussain. — Springer Netherlands, 2012-07-28. — ISBN 978-94-007-5069-2. Архивная копия от 15 марта 2023 на Wayback Machine
- ↑ Mocialov, Boris (August 2018). "Transfer Learning for British Sign Language Modelling". Proceedings of the Fifth Workshop on NLP for Similar Languages, Varieties and Dialects (VarDial 2018): 101—110. arXiv:2006.02144. Архивировано 5 декабря 2020. Дата обращения: 14 марта 2020.
- ↑ Narang; Chowdhery, Aakanksha Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance (англ.). ai.googleblog.com (4 апреля 2022). Дата обращения: 5 декабря 2022. Архивировано 4 апреля 2022 года.
- ↑ Dai; Du, Nan More Efficient In-Context Learning with GLaM (англ.). ai.googleblog.com (9 декабря 2021). Дата обращения: 5 декабря 2022. Архивировано 12 марта 2023 года.
- ↑ Cheng; Thoppilan, Romal LaMDA: Towards Safe, Grounded, and High-Quality Dialog Models for Everything (англ.). ai.googleblog.com (21 января 2022). Дата обращения: 5 декабря 2022. Архивировано 25 марта 2022 года.
- ↑ Smith, Shaden (2022-02-04). "Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, A Large-Scale Generative Language Model". Computation and Language. arXiv:2201.11990. Архивировано 2 февраля 2023. Дата обращения: 10 февраля 2023.
- ↑ Poole; Jain, Ajay; Barron, Jonathan T.; Mildenhall, Ben DreamFusion: Text-to-3D using 2D Diffusion (2022). Дата обращения: 5 декабря 2022. Архивировано 5 декабря 2022 года.
- ↑ Gao; Shen, Tianchang; Zian, Wang; Chen, Wenzheng; Yin, Kangxue GET3D: A Generative Model of High Quality 3D Textured Shapes Learned from Images . NVIDIA Toronto AI Lab. GitHub (2022). Дата обращения: 5 декабря 2022. Архивировано 28 ноября 2022 года.
- ↑ Fan, Linxi (2022-06-17). "MineDojo: Building Open-Ended Embodied Agents with Internet-Scale Knowledge". Machine Learning (англ.). arXiv:2206.08853. Архивировано 5 декабря 2022. Дата обращения: 10 февраля 2023.
- ↑ ChatGPT: Optimizing Language Models for Dialogue (англ.). OpenAI (30 ноября 2022). Дата обращения: 5 декабря 2022. Архивировано 30 ноября 2022 года.
- ↑ Wiggers. OpenAI releases Point-E, an AI that generates 3D models (амер. англ.). TechCrunch (20 декабря 2022). Дата обращения: 25 декабря 2022. Архивировано 25 декабря 2022 года.
- ↑ 1 2 Import AI 313: Smarter robots via foundation models; Stanford trains a small best-in-class medical LM; Baidu builds a multilingual coding dataset . us13.campaign-archive.com. Дата обращения: 4 января 2023. Архивировано 4 января 2023 года.
- ↑ VALL-E . valle-demo.github.io. Дата обращения: 6 января 2023. Архивировано 6 января 2023 года.
- ↑ Clark. Import AI 314: Language models + text-to-speech; emergent cooperation in wargames; ICML bans LLM-written papers . us13.campaign-archive.com (январь 2022). Дата обращения: 15 января 2023. Архивировано 15 января 2023 года.
- ↑ Karlgren, Jussi; Schutze, Hinrich, International Conference of the Cross-Language Evaluation Forum, Springer International Publishing, pp. 254—260, doi:10.1007/978-3-319-64206-2_8, ISBN 9783319642055
- ↑ The Corpus of Linguistic Acceptability (CoLA) . nyu-mll.github.io. Дата обращения: 25 февраля 2019. Архивировано 7 декабря 2020 года.
- ↑ GLUE Benchmark (англ.). gluebenchmark.com. Дата обращения: 25 февраля 2019. Архивировано 4 ноября 2020 года.
- ↑ Microsoft Research Paraphrase Corpus (амер. англ.). Microsoft Download Center. Дата обращения: 25 февраля 2019. Архивировано 25 октября 2020 года.
- ↑ Aghaebrahimian, Ahmad (2017), "Quora Question Answer Dataset", Text, Speech, and Dialogue, ISBN 9783319642055
- ↑ Sammons, V.G.Vinod Vydiswaran, Dan Roth; Vydiswaran, V.G.; Roth, Dan Recognizing Textual Entailment . Дата обращения: 24 февраля 2019. Архивировано из оригинала 9 августа 2017 года.
- ↑ The Stanford Question Answering Dataset . rajpurkar.github.io. Дата обращения: 25 февраля 2019. Архивировано 30 октября 2020 года.
- ↑ Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank . nlp.stanford.edu. Дата обращения: 25 февраля 2019. Архивировано 27 октября 2020 года.
- ↑ Hornstein, Norbert. Syntactic Structures after 60 Years: The Impact of the Chomskyan Revolution in Linguistics : [англ.] / Norbert Hornstein, Howard Lasnik, Pritty Patel-Grosz … [et al.]. — Walter de Gruyter GmbH & Co KG, 2018-01-09. — ISBN 978-1-5015-0692-5. Архивная копия от 16 апреля 2023 на Wayback Machine
Литература
[править | править код]- Ponte JM, Croft WB (1998). "A Language Modeling Approach to Information Retrieval". Research and Development in Information Retrieval. pp. 275—281. CiteSeerX 10.1.1.117.4237.
- Song F, Croft WB (1999). "A General Language Model for Information Retrieval". Research and Development in Information Retrieval. pp. 279—280. CiteSeerX 10.1.1.21.6467.
- Chen, Stanley; Joshua Goodman (1998). An Empirical Study of Smoothing Techniques for Language Modeling (Technical report). Harvard University. CiteSeerX 10.1.1.131.5458.