10 апреля 5 минут чтения #Технологии

Что такое языковые модели и как они развиваются

Иллюстрация материала

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

Что такое языковая модель

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

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

Основная цель большинства моделей ― создать разумное и «человеческое» продолжение любого текста на основе той информации, которая ей доступна. Генерируя предложения, алгоритм как бы постоянно спрашивает: «Учитывая текущее состояние текста, какое слово дальше будет статистически более ожидаемым?» Например, маловероятно, чтобы в какой-то фразе рядом стояли слова «почистить» и «молоко». А вот «налить» и «молоко» ― привычное и регулярное соседство.

Интересный факт, которому ученые пока не нашли объяснения: если языковая модель выбирает статистически наиболее вероятные слова, сгенерированный текст получается очень «плоским» и недостаточно живым. Чтобы сделать его ярче и образнее, в моделях специально понижают уровень точности.

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

Какими были первые языковые модели

Различных вариаций было много, мы перечислим наиболее заметные из них.

  • ELIZA (1966 год). Считается первой языковой моделью в истории. Она задумывалась как «зеркалящий» чат-бот, который задавал уточняющие вопросы на основе полученной информации. Например, если пользователь констатировал факт: «Мне грустно», она спрашивала: «А почему тебе грустно?» А когда в предложении фигурировали слова «ребенок» или «родители», ELIZA просила подробнее рассказать о семье.
  • PARRY (1972 год). Этот бот не часто спрашивал, зато регулярно навязывал собеседнику собственные темы для разговоров, а в случае затруднений достаточно грубо его прерывал. Как и ELIZA, PARRY работал с набором готовых шаблонов. В его базе было ограниченное количество заранее прописанных реплик, которыми бот оперировал в зависимости от введенной пользователем информации.
  • A.L.I.C.E. (1995 год). Историки технологий называют этого бота вершиной алгоритмов старого образца, которые работали с набором готовых паттернов и правил. Ее создатель ― Ричард Уоллес ― пришел к выводу, что в языке существует ограниченный набор конструкций, которые люди используют наиболее регулярно. Каждой такой конструкции он присвоил свой индекс частотности. Когда пользователь вводил в диалоговое окно сообщение, алгоритмы A.L.I.C.E. по отдельным словам и фразам распознавали, о какой теме идет речь. В зависимости от этого программа выбирала готовый ответ из множества заранее написанных сценариев. Код алгоритма был открыт, и пользователи активно пополняли базу готовых ответов. Поэтому бот оказался весьма успешным и популярным.
  • Jabberwacky (1997 год). Это первый алгоритм, который получил возможность учиться. Он не только сопоставлял входные данные со своей базой готовых ответов, но и мог анализировать контекст высказывания.

Как на языковые модели повлияло машинное обучение

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

В начале 2000-х годов начали появляться гибридные боты: часть их ответов была основана на готовых паттернах, а часть ― генерировали они сами. Это стало возможно благодаря технологии машинного обучения.

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

Как на языковые модели повлияли трансформеры

В 2017 году в Google создали нейросеть с особой архитектурой и назвали ее ― трансформер. Она умеет делать следующее: принимать один последовательный набор данных, трансформировать их по определенному алгоритму и выдавать другой последовательный набор данных.

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

У трансформера есть механизм внимания: он может вычленять из вводной информации ключевые моменты, запоминать, а затем на их основе интерпретировать все остальные данные. Например, в процессе перевода такие нейросети сначала определяют наиболее важные слова в предложении. Затем ― находят связанные с этими словами другие части предложений. Алгоритмы выстраивают заключение: «то, как нужно перевести слова B, С, и D, зависит от того, какое значение у слова A». И только после этого следует перевод высказывания.

Трансформеры могут запоминать больше контекста. Этого достигли благодаря изменениям в обработке информации: она стала параллельной, а не последовательной.

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

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

Как развивалась языковая модель GPT

На сегодняшний день существует 3 версии этой модели.

  • GPT-1 ― мало отличалась от языковых моделей предыдущего поколения. Важно было лишь продемонстрировать возможность использования нейросетей-трансформеров для генерации текстового контента.
  • GPT-2 ― модель усовершенствовали, у нее появилось больше параметров для анализа, исследователи расширили корпус текстов, на которых обучалась нейросеть. В результате она начала генерировать тексты, приближенные к человеческим.
  • GPT-3 ― количество параметров для анализа входящей информации увеличили, число текстов для обучения нейросети тоже значительно возросло. На этом этапе количество перешло в качество, и программа сама научилась строить рассуждения, писать код, решать математические уравнения.

На основе языковой модели GPT-3 был создан бот ChatGPT ― аналог ассистента, создателя контента и поисковой системы.

Как языковые модели используют сегодня

  • Программы для автозаполнения в смартфонах и компьютерах. С ними мы сталкиваемся каждый день и по привычке называем «Т9», по аналогии с режимом, который когда-то был распространен на старых моделях телефонов. Такие программы минимально анализируют контекст сообщения, которое вводит пользователь, и исправляют возможные ошибки (правда, не всегда корректно).
  • Алгоритмы для помощи программистам. Существует специальное ПО, которое проверяет код и при необходимости его корректирует. Только в качестве базы для обучения используют не опубликованные тексты пользователей, а готовые фрагменты кода, которые когда-либо были написаны людьми.
  • Программы-переводчики. С помощью языковых моделей переводы стали более живыми. Буквальное соответствие слов часто сильно затрудняло понимание сути высказывания. Программы-переводчики, основанные на ИИ, лучше подбирают синонимы и четче определяют, в каком значении использовано конкретное слово в конкретном контексте. От буквального перевода удалось перейти к смысловому.
  • Программы для генерации контента. Наиболее известная из них ― ChatGPT. Программа создает тексты по запросу пользователя, и их предназначение достаточно разнообразно. Это могут быть развернутые ответы на конкретные и абстрактные вопросы, эссе и сочинения по заданной теме, фрагменты программного кода.