Языковая модель
Из Википедии, свободной энциклопедии
Языкова́я модель — это распределение вероятностей по последовательностям слов[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].
См. также
Примечания
Литература
Wikiwand - on
Seamless Wikipedia browsing. On steroids.