До сих пор, говоря об эволюции ИИ и нейронных сетей, в частности, мы преимущественно рассматривали примеры из области компьютерного зрения. Классификация изображений действительно была первым барьером, который удалось преодолеть с помощью глубокого обучения, но вскоре модели, основанные на данной технологии, также победили в задачах NLP– в машинном переводе и распознавании речи.
При этом надо сказать, что эволюция систем обработки естественного языка не менее важный аспект развития ИИ. Более того, в области обработки языка нейросетевая революция явила не менее впечатляющие результаты: машинный перевод на наших глазах стал почти неотличим от перевода людей-переводчиков, а голосовые интеллектуальные помощники стали привычным сервисом. Возможности аннотирования документов, голосовое управление, генерация текстов и даже стихов – все эти чудеса нам стали доступны с помощью нейросетевых NLP-технологий. Так что без экскурса в эволюцию систем NLP и анализа влияния глубокого обучения на NLP рассмотрение темы будет явно неполным.
NLP – это одно из важнейших направлений искусственного интеллекта, которое позволяет обеспечить взаимодействие между компьютером и человеком на базе естественного языка, то есть помогает компьютерам понимать человеческий язык, интерпретировать его и манипулировать им. NLP – это зонтичный термин, объединяющий ряд областей, связанных с обработкой естественного языка.
Основные элементы NLP можно представить на упрощенной замкнутой схеме системы “вопрос – ответ” (рис. 2.17), которая включает: перевод речи в текст; обработку текста (представление текста в интерпретируемые машиной данные); механизм контроля диалога, имеющий интерфейс к некоторому источнику знаний о предметной области; систему генерации ответа (текста на естественном языке); и, наконец, синтез этого текста обратно в речь.
Рис. 2.17. Условная схема автоматизированной системы вопросов и ответов.
Помимо сокращения NLP часто используются аббревиатуры NLU и NLG.
NLU (Natural-language understanding, понимание естественного языка) – это часть NLP – система, отвечающая за разбор высказываний пользователей и понимание их смысла, она включает такие этапы как предварительная обработка текста, классификация запроса, соотнесение с одним из классов, известных системе, и извлечение параметров запроса (сущностей).
NLG (Natural-language generation) – генерация естественного языка – процесс преобразования структурированных данных в естественный язык.
На базе технологий NLP созданы десятки различных приложений, некоторые из которых перечислены на рис. 2.18.
Рис. 2.18. Базовые приложения на основе технологии NLP.
Дополнительно об NLP-приложениях и типах компаний, занятых в их разработке, речь пойдет во второй лекции данного курса, а в данном разделе более подробно поговорим об истории формирования и эволюции NLP-технологий.
Можно сказать, что NLP находится на пересечении лингвистики и технологий искусственного интеллекта (см. рис. 2.19), при том, что вектор эволюции NLP направлен от лингвистики к технологиям глубокого обучения.
Рис. 2.19. NLP находится на пересечении лингвистики и технологий искусственного интеллекта.
В самом общем плане в развитии NLP можно выделить три этапа – символьный (с 1950-х до начала 1990-х годов), статистический (1990-2010) и нейросетевой (2010 – до настоящего времени). Отмеченные периоды достаточно наглядно просматриваются на примере машинного перевода, о котором следует сказать более подробно (рис. 2.20).
Рис. 2.20. Краткая история машинного перевода.
Историю машинного перевода обычно отсчитывают с так называемого Джорджтаунского эксперимента (1954 год), когда программа, состоявшая из шести правил, перевела 60 предложений с транслитерированного русского на английский язык.
Задачи обработки естественного языка потребовали разработки модели представления текстов для компьютерной обработки. Об одной из первых таких моделей – “мешок слов” – следует кратко напомнить читателю, что будет полезно для дальнейших рассуждений. Мешок слов Bagof-words (BoW) – это простейшая модель представления информации о тексте в числовом виде, используемая в обработке естественного языка. Текст в этой модели представляется как набор слов, без учета грамматики и порядка.
Поясним методику на простом примере. Пусть имеется документ с текстом из известной песни “Пусть всегда будет солнце, пусть всегда …” и так далее (рис.2.21).
Рис. 2.21. Иллюстрация к понятиям One Hot Encoding и Bag of Words
Сверху выписаны все слова, встречающиеся в документе (словарь). Для кодирования слов использована процедура так называемого “One Hot Encoding”, или OHE-кодирования, суть которой поясняется на рис. 2.21 – каждое слово представляется вектором, длина которого равна длине словаря. Во всех позициях вектора стоят нули, кроме позиции, соответствующий номеру этого слова в словаре, – там, соответственно, стоит единица.
Как видно из рисунка, строчки соответствуют словам текста песни. Чтобы создать вектор, который кодировал бы весь документ (мешок слов), достаточно сложить one-hot-вектора каждого из слов. В таком векторе теряется информация о последовательности слов в тексте и остается только информация о наборе слов в рассматриваемом документе, отсюда и происходит название “мешок слов”.
Недостатком подхода является то, что информация о взаимном расположении слов и связях между ними отбрасывается. Кроме того, при большом словаре векторы содержат большое количество нулей – такая “разреженная” форма представления информации имеет свои недостатки, поскольку работа с подобными векторами требует большого объема памяти и вычислительных ресурсов.
Рассмотрим основные этапы эволюции систем машинного перевода. Первый этап – это перевод, основанный на правилах, или RBMT-перевод (сокращение от “Rule Based Machine Translation”). Самая первая и элементарная форма RBMT-перевода – это прямой машинный перевод, или “перевод по словам”: исходное предложение разбивается на слова, которые сравниваются с введенным словарем, осуществляется перевод по словам, который затем корректируется на основе морфологии и синтаксиса. Данный метод был отправной точкой машинного перевода, но в силу своих ограничений вскоре был заменен более совершенным трансферным машинным переводом, который позволил перейти от задания правил перевода каждого слова к возможности манипулирования более объемными синтаксическими конструкциями – перевод предваряет определение набора грамматических правил предложения на исходном языке и преобразование предложения в форму, совместимую с целевым языком.
Следующий этап в развитии RBMT – это так называемый “интерлингва-перевод” (или межъязыковый перевод) – метод, при котором осуществляется перевод с исходного языка на интерлингву, искусственный язык, разработанный для перевода слов и значений с одного языка на другой, впоследствии происходит перевод с интерлингвы на целевой язык.
Машинный перевод, основанный на правилах (RBMT), был первым шагом в решении задачи машинного перевода. Он относится к символьным методам в NLP, когда в фокусе было исследование синтаксического анализа на основе правил. Большинство исследований в данный период было посвящено обучению на ограниченных объемах данных. RBMT-перевод имел ограниченную точность, требовал наличия огромного числа правил, написанных вручную, основным недостатком метода являлось то, что не была решена проблема определения значения слова в зависимости от контекста. Наиболее популярным приложением того времени была система машинного перевода Systran, которая была разработана в 1968 году компанией Latsec.
В середине 1970-х годов Systran использовался NASA в рамках проекта тестирования корабля Союз-Аполлон, проводимого совместно с Советским Союзом. В тот период переводчики основывались на двуязычном словаре и наборе лингвистических правил под каждый язык.
Работы по созданию машинного перевода велись и в СССР. В 1956 г. в Институте точной механики и вычислительной техники был представлен первый советский компьютерный переводчик, включавший словарь из 2300 слов. В 1972 году специалисты института “Информэлектро” начали разработку системы машинного перевода – ЭТАП (Электротехнический автоматический перевод). В 1991 году бывшие сотрудники лаборатории ЛГПИ им. Герцена основали компанию PROMT.
Примерно в 80-х годах (см. рис. 2.20) появился машинный перевод на основе примеров (Example Based Machine Translation EBMT) – это метод машинного перевода, в котором в качестве основы используются параллельные тексты (двуязычные корпуса), составленные по принципу “фраза к фразе”. Метод повысил доступность машинного перевода, позволяя применять в переводе сложные языковые правила, которые уже встроены в используемые фразы.
Следующий важный шаг в развитии машинного перевода – это статистический машинный перевод (SMT – Statistical Machine Translation). Появление статистических методов в NLP произошло именно в области машинного перевода за счет появления к тому времени больших корпусов двуязычных текстов.
В 1990 году компания IBM впервые осуществила статистический машинный перевод. В отличие от своих предшественников – систем перевода на основе правил, статистические системы машинного перевода самостоятельно извлекают эти правила из большого количества примеров перевода – из так называемых параллельных текстов (текст на исходном языке и его перевод на целевой язык). К этому времени (начало 90-х) как раз стали доступны большие корпуса двуязычных текстов. Машине потребовались миллионы предложений на двух языках, чтобы набрать статистику по каждому слову. Просмотрев большое количество текстов, машина составляет словарь вероятностей перевода, основываясь на обучающей коллекции текстов. В самом общем плане суть статистического перевода состоит в том, что машина выбирает наиболее вероятные переводы каждого отдельного слова с учетом контекста и строит из них предложения. Предположим, необходимо перевести предложение “в комнате стоит красный стул”, а в статистической базе уже есть переведенная фраза “в комнате стоит зеленый стол” – решение элементарно: берется существующий шаблон перевода и нужные слова просто заменяются по словарю.
Статистический машинный перевод часто противопоставляют алгоритмам перевода, основанным на правилах. В случае статистического машинного перевода система ничего не знает о лингвистических правилах – перевод генерируется на основе статистических моделей, параметры которых являются производными от анализа двуязычных корпусов текста.
Статистический машинный перевод, так же как и RBMT, прошел три стадии: перевод “на словах”, на основе фраз и так называемый синтаксический перевод.
Создание статистического машинного перевода совпало с развитием Интернета, и ряд компаний, включая разработчика Systran, начали предлагать бесплатный машинный перевод онлайн. В 2006 году компания Google запустила Google Translate, который, несмотря на ограниченную в то время точность перевода, стал пользоваться большой популярностью.
С 2000-х годов нейронные сети начинают использоваться для решения задачи предсказания следующего слова в тексте с учетом предыдущих слов. В 2003 году Бенгио и др. предложили первую нейронную модель языка, состоящую из нейронной сети прямого распространения с одним скрытым слоем.
Они также одними из первых предложили технологию эмбеддингов слов. Технологию, о которой следует сказать чуть подробнее.
Эмбеддинги слов
Для решения многих задач NLP нейронная сеть должна понимать сходство между словами. Cлова, находящиеся в похожих контекстах, обычно обозначают близкие по значению понятия.
С каждым словом у людей возникают близкие ассоциации. Например, говоря об облаке, каждый может продолжить “облако – грозовое” или “облако кучевое”. То есть мы можем предположить, какое слово может соседствовать со словом “облако”. Вероятно, можно численно закодировать это наше знание – сопоставить словам числа так, чтобы близкие слова имели близость на числовой прямой. Очевидно, что пространство смыслов многомерно, и мы можем взять несколько признаков и сравнить по ним слова. Например, по “принадлежности к живому” слова “котенок” и “кошка” должны быть ближе, чем “кошка” и “дом”. Покажем, как можно сравнить слова, выбрав несколько параметров, по которым они сравниваются (рис. 2.22).
Рис. 2.22. Схема, поясняющая термин “Эмбеддинги слов”.
Как видно из рисунка, семантическое значение слова можно представить набором параметров или вектором. Слову сопоставляются векторы, отображающие его значение в “пространстве смыслов”. Векторы, которые позволяют представить семантическую близость слов, назвали эмбеддингами. Если каждому слову предоставить в соответствие вектор (набор из N чисел), то расстояние между точками, на которые указывают эти векторы в N-мерном пространстве, и будет мерой близости этих слов. Значения компонент векторов определяют в процессе обучения. Процесс обучения приводит к объединению векторов в N-мерном пространстве в кластеры по семантической близости слов.
Математически задача определения такого вектора формулируется как максимизация косинусной близости между векторами слов, которые появляются в близких контекстах, и минимизация косинусной близости между векторами слов, которые не появляются друг рядом с другом. Рядом друг с другом в данном случае, значит, в близких контекстах. Если угол между двумя векторами равен 0, то они сонаправлены и значение cos(0)=1, если векторы ортогональны, то косинусная близость нулевая (cos(pi/2) = 0), а если противоположно направлены, то cos(pi) = -1.
Первый успешный инструмент создания эмбеддингов слов появился благодаря разработке сотрудников Google в 2013 году – этим инструментом явилась модель Word2Vec (дословно “слово в вектор”). Для обучения используется большой текстовый корпус, генерируется словарь корпуса, а затем модель обучается на входных текстах, вычисляя векторное представление слов.
Благодаря Word2Vec появился новый способ создания векторов слов более эффективный, чем разреженное представление слов с помощью кодирования OHE, которое мы рассмотрели выше. Использование технологии эмбеддингов слов позволило повысить производительность моделей и сократить время вычислений. Эмбеддинг может быть предобучен на больших корпусах текстов и выгружен в виде словаря, где слову ставится в соответствие вектор, формируя предобученные эмбеддинги, которые можно использовать без повторного обучения.
Эволюцию NLP-технологий можно представить в виде многослойной пирамиды, каждый из слоев в которой обозначает добавление новых возможностей (рис. 2.23). Мы рассмотрели два нижних этажа и далее рассмотрим следующий – это модели на базе рекуррентных нейронных сетей.
Рис. 2.23. Ключевые технологии, на которых строятся современные NLP-приложения.
Рекуррентные нейронные сети (Recurrent Neural Network, RNN) сыграли важную роль в развитии NLP-технологий, и о них следует рассказать чуть более подробно.
Рекуррентные нейронные сети
Выше мы рассматривали сети прямого распространения, в которых сигнал распространяется строго от входного слоя к выходному. Подобные сети не имеют механизма запоминания информации о ранее полученных входах и, соответственно, не подходят для решения задач распознавания речи, в которых важно предсказывать, что будет дальше (например, какая буква будет следовать в слове или слово в предложении).
“Пусть всегда светит ***”, нам очевидно, что финальное слово в предложении – “солнце”. Естественно, мы можем сделать такое предсказание только при наличии механизма запоминания предшествующих слов. Этот механизм актуален для любых последовательностей. Например, в случае видео. Предположим, у нас имеется последовательность кадров, где запечатлено перемещение мяча. Сделать предположение о следующем положении мяча можно только при наличии механизма запоминания последовательности предыдущих кадров.
Рекуррентная нейронная сеть – это тип нейронной сети, которая содержит циклические связи между нейронами (в отличие от сетей прямого распространения), которые позволяют эффективно работать с временными паттернами и последовательностями данных. Таким образом, рекуррентные сети имеют внутреннюю память, что позволяет учитывать не только фактический вход, но и предыдущие, то есть запоминать то, что произошло ранее. Эта возможность рекуррентной сети и делает ее эффективной для работы с последовательными данными (рис. 2.24).
Видео, текст, речь, музыка – это все примеры последовательностей.
Рис. 2.24. Сравнение сети прямого распространения и рекуррентной нейронной сети.
Первые рекуррентные сети были известны еще в 80-х годах прошлого века, однако широкое практическое применение они нашли существенно позже, как и многие другие алгоритмы глубокого обучения. Популярность рекуррентные сети получили в 2014 и 2015 годах благодаря достижениям в области глубокого обучения и увеличению вычислительных возможностей.
Рассмотрим в самом общем плане, как работают рекуррентные сети. Как мы заметили, RNN оптимально работает с последовательными данными, в случае текста можно сказать, что процедура использует i-ое слово в качестве входных данных и объединяет с выходом слова i-1, та же процедура будет применена для слова i+1, и именно поэтому алгоритм называется рекуррентной нейронной сетью, по-скольку нейронная сеть применяет одни и те же операции к каждому слову i в предложении.
На рис. 2.25 (слева) показана часть нейронной сети A, которая принимает входной сигнал x и выводит значение h. Цикл позволяет передавать информацию с одного шага сети на другой.
Справа представлена развертка цикла, которая показывает, что RNN можно представить как несколько копий одной и той же сети, каждая из которых передает сообщение преемнику. В процессе обучения происходит такое “разворачивание” сети, и развернутая копия обучается алгоритмом обратного распространения, получившим название BPTT (back propagation through time).
Рис. 2.25. Развертка цикла в RNN.
В рекуррентной нейронной сети каждое значение слова в предложениипредсказываетсянетольконаосноветекущеговходногосигнала, но и на основе предыдущих входных сигналов. Следует отметить, что рекуррентная сеть способна обрабатывать последовательности различной длины, что часто наблюдается при работе с естественным языком, например в случае перевода с одного языка на другой.
Один из недостатков нейронной сети – это так называемая “проблема с долгосрочной зависимостью”, которая состоит в том, что по мере того, как разрыв между необходимой информацией становится больше, RNN становится менее и менее эффективной.
Суть проблемы легко понять при анализе ( рис. 2.26). Когда расстояние между словами, которые позволяют сделать правильный прогноз, минимально, то RNN не испытывает проблем, как например в случае фразы “пусть на небе светит ***” – “солнце”.
Рис. 2.26. Иллюстрация проблемы “долгосрочной зависимости”.
А если, предположим, необходимо ответить на вопрос, какое слово должно быть в конце предложения “Я был в Англии, познакомился с массой приятных людей и даже выучил пару фраз на ***”?
Очевидно, что автор предложения выучил несколько фраз на английском, потому что именно это слово упомянуто в начале предложения. Но чем дальше отстоят слова, которые позволяют сделать предсказание искомого слова в последовательности, тем хуже с этой задачей справляется рекуррентная сеть. Это происходит из-за того, что развернутая рекуррентная сеть обучается единым алгоритмом обратного распространения, и ошибка, проходя от конца сети к началу, претерпевает затухание.
Мы отметили, что один из недостатков рекуррентных сетей заключался в “проблеме с долгосрочной зависимостью”. Эта проблема была решена при использовании специальных рекуррентных сетей с так называемой долгой краткосрочной памятью, или LSTM (Long short-term memory).
LSTM – это разновидность архитектуры рекуррентных нейронных сетей, способная к обучению долгосрочным зависимостям. LSTM-архитектура способна передавать только релевантную информацию на более глубокие слои сети, позволяя каждому слою “решать”, какую информацию нужно сохранить, а какую можно отбросить, что в свою очередь обеспечило возможность фиксировать существенные детали прошлого контекста и сохранять их, пока они актуальны.
Основным недостатком LSTM-архитектуры являлось то, что технология использовала для предсказания только предшествующую информацию. Однако, например, при переводе предложения, чтобы принять правильное решение, важно иметь информацию о словах, использованных во всем предложении. Эта проблема была решена с помощью технологии “двунаправленный LSTM”, которая рассматривает полное предложение для предсказания.
В 2014 году в работе Cho и др. была предложена базовая модель sequence-to-sequence – “последовательность в последовательность” (seq2seq) – модель глубокого обучения, основанная на технологии рекуррентных сетей и достигшая больших успехов в задачах NLP и, в частности, в машинном переводе.
Seq2seq – это модель, которая состоит из двух рекуррентных нейронных сетей (RNN): encoder (кодер), которая обрабатывает входные данные, и decoder (декодер), которая генерирует данные вывода. Первая RNN кодирует предложение на исходном языке в так называемый контекстный вектор, вторая декодирует его в последовательность на другом языке, эта схема на новом уровне повторяет уже упомянутую нами ранее схему интерлингва, или межъязыковый перевод.
На рис. 2.27 показана схема машинного перевода с использованием алгоритма Seq2seq.
Рис. 2.27. Машинный перевод на базе использования алгоритма Seq2seq
Входная последовательность (предложение на русском языке) обрабатывается кодером, который переводит входную информацию в вектор, называемый контекстом, и пересылает контекст декодеру, который элемент за элементом генерирует выходную последовательность. Заметим, что прежде чем обрабатывать слова, их переводят в векторы с помощью алгоритма эмбеддингов слов, о котором мы рассказали ранее.
RNN и LSTM-сети были весьма популярны в 2014 г., они использовались в машинном переводе, а также в таких популярных продуктах как Сири и Алекса.
В течение нескольких лет RNN и LSTM были основной технологией для задач NLP. Недостатком RNN /LSTM оставалась невысокая точность при переводе длинных фраз, и вскоре им на смену пришел еще более совершенный подход к архитектуре – так называемые “сети внимания”. В 2015 году Бахданау и другие предложили механизм внимания как способ устранения указанного недостатка. Механизм внимания позволил декодеру фокусироваться на различных частях входных данных при генерации каждого слова на выходе.
Сети, основанные на внимании, – это тип нейронных сетей, которые позволяют сосредоточиться на определенном подмножестве входных данных. Эти модели показали высокие результаты на многих NLP-задачах, включая машинный перевод и ответы на вопросы.
Сети, основанные на внимании, привнесли способность модели фокусироваться на релевантных входных данных. Модели со вниманием отличались от двунаправленных моделей RNN/LSTM тем, что рассматривали входную последовательность и на каждом шаге решали, какая часть этой последовательности важна и “требует внимания”. То есть модель учитывала весомость слов, окружающих текущий контекст. Сети, основанные на внимании, стали популярны в 2015-2016 годах.
Метод внимания помог повысить точность, однако он столкнулся с проблемой в плане производительности. Поскольку вычисления выполнялись последовательно, было трудно масштабировать это решение.
Трансформеры
В 2017 году был представлен новый тип нейронной сети на основе внимания, получивший название “трансформер”. Как и RNN, трансформер представляет собой архитектуру для преобразования одной последовательности в другую с помощью механизма кодердекодер, но он отличается от предыдущих существующих моделей Seq2Seq тем, что не использует никаких рекуррентных сетей.
Ранее в курсе как достоинство рекуррентных сетей была отмечена возможность обработки последовательностей “слово за словом”. Основным недостатком этой методики является тот факт, что обработка данных занимает много вычислительных ресурсов. Одна из задач разработчиков модели Transformer состояла в том, чтобы устранить этот недостаток. Разработчики пришли к идее обрабатывать всю входную последовательность сразу.
Механизм внимания позволил трансформерам обрабатывать все элементы одновременно за счет формирования прямых связей между отдельными элементами. Благодаря этому модель Transformer смогла обучаться быстрее и на гораздо большем количестве данных с помощью распараллеливания, что в свою очередь повысило точность при выполнении NLP-задач.
Центральным в архитектуре трансформеров является механизм внутреннего внимания (или самовнимания, self-attention), который моделирует отношения между всеми словами в предложении и оценивает, как каждое слово в предложении связано с другими словами.
Подробное описание механизма внутреннего внимания выходит за рамки обзорного изложения материалов, принятого в данной курсе. Заметим лишь, что при высокоуровневом объяснении механизма внутреннего внимания обычно говорят, что данный механизм позволяет смоделировать “понимание” связей отдельных слов с другими словами при обработке каждого конкретного слова.
При восприятии текста человек понимает смысл прочитанного, в том числе исходя из понимания смысла слов. Так, например, прочитав две фразы – ” кошка не перешла улицу, так как она слишком устала” и “кошка не перешла улицу, потому что она была слишком широкой”, – человек сразу понимает, что в первом случае слово “она” относится к слову “кошка”, а во втором случае “она” относится к улице.
Рис. 2.28. Упрощенная схема машинного перевода с использованием архитектуры трансформер.
Трансформерные архитектуры привели к фундаментальным изменениям в области компьютерной лингвистики, в которой в течение многих лет доминировали рекуррентные нейронные сети. Появились разные реализации трансформаторов, такие как BERT, GPT, GPT-2, GPT-3.
Возможность большего распараллеливания во время обучения позволила проводить обучение на больших наборах данных. Это привело к развитию трансферного обучения в области языкового моделирования и появлению предварительно обученных моделей.
Напомним, что суть трансферного обучения состоит в том, что навыки, полученные водном “проекте”, можно передать в другой (рис.2.29).
Рис. 2.29. Процесс традиционного и трансферного обучения.
Можно привести аналогию. Когда ребенок впервые пробует кататься на велосипеде, ему нужно учиться с нуля, и это требует определенного времени – необходимо научиться держать равновесие, рулить, тормозить. Когда ребенок подрастает и учится ездить на мотоцикле, ему уже не нужно начинать с нуля. Базовые навыки (такие как умение держать равновесие при вхождении в поворот) уже являются привычными.
Применительно к задачам NLP можно сказать, что суть трансферного обучения заключается в предварительном обучении модели на большом корпусе обычных текстов, из которых модель понимает базовые принципы устройства языка и последующего обучения модели на специфическом в контексте решения задачи корпусе текста, на котором модель дообучается решению конкретной задачи. Это позволяет демонстрировать более высокие результаты, чем в случае обучения на одних только специфических для задачи данных. Успехи трансферного обучения были продемонстрированы на примере таких известных моделей как GPT и BERT.
В 2018 году компания OpenAI предобучила на большом объеме текста генеративную нейронную сеть GPT. На основе разработки от OpenAI в конце 2018 года в Google создали свою нейросеть – BERT, которая сразу побила несколько рекордов по успешности решения ряда NLP-задач.
Модель появилась в начале 2018-го, а уже в октябре того же года Google встроил модель в свой поисковик. Разработчики модели выложили в открытый доступ код модели и сделали возможным скачивание различных версий BERT, переобученных на больших наборах данных. То есть базовая версия модели, которая прошла длительное предобучение на больших корпусах текстов, стала доступной для того, чтобы ее можно было дообучить на прикладных задачах сторонних пользователей. То, что исходный код BERT находился в открытом доступе, позволило множественным разработчикам использовать модель, адаптируя ее к своим уникальным задачам.
Тонкая настройка или дополнительное обучение модели на отдельном наборе данных, отличном от того, на котором модель обучалась изначально, позволяет, слегка изменив параметры сети, обеспечить решение новой задачи – получить более быстрое обучение, чем, если бы та же модель обучалась с нуля.
Тем, кому индивидуальная тонкая настройка была не нужна, было доступно множество открытых бесплатных, предварительно обученных моделей BERT для различных случаев использования, для конкретных задач, таких как анализ настроений в Twitter, категоризатор эмоций, перевод речи в текст, обнаружение токсичных комментариев и т. п.
Вскоре после появления BERT вышла его мультиязычная версия, обученная на 104 языках, в том числе на русском. Обучением русскоязычных моделей BERT занималась лаборатория глубокого обучения МФТИ в рамках проекта Deep Pavlov, Институт исследования искусственного интеллекта AIRI и Sber AI.
Тренды последних лет – мультимодальность, базисные модели
Появление трансформеров привело к радикальным изменениям в мультимодальных задачах, когда одновременно используется несколько типов входных сигналов (например, текст и изображения).
Длительное время стандартом де-факто для мультимодальных задач с использованием текстов и картинок было применение сверточных нейронных сетей для извлечения признаков из визуальной области, при том, что для получения текстового представления использовались рекуррентные нейронные сети. Эта картина изменилась с появлением архитектуры трансформеров.
В феврале 2019 г. компанией OpenAI была создана модель Generative Pretrained Transformer 2 (GPT-2) – система ИИ с открытым исходным кодом, которая позволяла переводить, отвечать на вопросы и генерировать текст на уровне, который в ряде случаев неотличим от написанного человеком. GPT-2 был создан как развитие модели OpenAI GPT от 2018 года, с десятикратным увеличением как количества параметров, так и размера обучающего набора данных (модель обучили на 40 Гб текста).
В 2020 году OpenAI выпустила модель GPT-3, которая позволяла не только создавать текст, но и генерировать код, писать рассказы и сочинять стихи. Для обучения модели потребовалось 570 Гб текста.
Серия моделей GPT также продемонстрировала, что обучение на очень большом корпусе и тонкая настройка модели под целевую задачу могут значительно превзойти обычные модели в качестве, однако, с другой стороны, в полный рост проявилось ограничение, связанное с непропорционально высокой стоимостью обучения больших трансформерных моделей.
Говоря о развитии глубокого обучения в задачах естественного языка интересно провести сравнение последних с развитием моделей, предназначенных для решения задач компьютерного зрения. На рис. 2.30 показан современный период развития нейросетевых моделей для решения задач компьютерного зрения, обработки естественного языка и мультимодальных задач по данным статьи Andrew Shin, Masato Ishii.
Рис. 2.30. Примеры нейросетевых моделей для решения задач компьютерного зрения, обработки естественного языка и мультимодальных задач. Источник: Andrew Shin, Masato Ishii
В верхней части диаграммы отмечены модели для решения задач компьютерного зрения. Блок, обозначенный как CNN, иллюстрирует совокупность моделей, построенных на архитектуре сверточных сетей. Модели VGG и Resnet уже были нами упомянуты при обсуждении ILSVRC (рис. 2.5). DenseNet – еще одна модель на основе архитектуры сверточных сетей, предложенная в 2017 г. Блок, обозначенный как R-CNN (Region-Based Convolutional Neural Network), – это семейство моделей машинного обучения для компьютерного зрения и, в частности, для обнаружения объектов. Данная архитектура была разработана в 2014 году и включает следующие этапы: нахождение потенциальных объектов на изображении и разбиение их на регионы, извлечение признаков каждого полученного региона с помощью сверточных нейронных сетей, классификация обработанных признаков с помощью метода опорных векторов и уточнение границ регионов с помощью линейной регрессии.
В рассмотренном примере механизм внутреннего внимания – это тот механизм, который позволяет установить ассоциации между словами “она” со словом “кошка” в первом случае и со словом “улица” во втором случае.
Трансформеры продемонстрировали свои возможности в обработке естественного языка, включая задачи машинного перевода (рис. 2.28) и распознавания речи.
Обратим внимание на модель Vision Transformer, показанную на рис.2.30 на границе 2020 года. В то время как архитектура Transformer стала стандартом дефакто для задач обработки естественного языка после 2017 года, ее применение в компьютерном зрении оставалось ограниченным. В задачах компьютерного зрения механизм внимания либо применялся совместно со сверточными сетями, либо использовался для замены определенных компонентов сверточных сетей при сохранении их общей структуры.
В 2020 году Досовицкий и др. (2020) предложили модель Vision Transformer (ViT) и в данной публикации показали, что выше-упомянутая зависимость от CNN не является необходимой и чистый трансформер может хорошо справляться с задачами классификации изображений.
Как ранее было отмечено, трансформеры используют механизм внимания, суть которого в самом общем плане в NLP-задачах состоит в измерении связей между парами входных слов. Стоимость этой операции (с точки зрения вычислительных ресурсов) квадратично зависит от количества слов. Для изображений основной единицей анализа является пиксель. Однако вычисление взаимосвязей для каждой пары пикселей в типичном изображении является непомерно затратным с точки зрения вычислительных ресурсов. Вместо этого ViT вычисляет отношения между пикселями в различных небольших участках изображения (например, 16×16 пикселей), что позволило значительно снизить вычислительные затраты и показать хорошие результаты. В нижней части рис. 2.30 представлена эволюция архитектур нейросетевых моделей, используемых в задачах NLP. Здесь выделено два больших блока – это RNN, которая господствовала до 2017 года, и сменившая ее архитектура Transformer, о которой мы написали выше. Боксами меньшего размера представлены конкретные модели, начиная от LSTM и заканчивая GPT-3, которые также ранее были рассмотрены.
В средней части приведены модели, которые были предложены для решения мультимодальных задач (компьютерное зрение – обработка языка). Для решения указанных задач необходима совместная обработка изображения и текста, связанного с ним. Подобные модели позволяют решать такие задачи, как генерация описания по изображению, изображения по текстовому описанию, визуальные ответы на вопросы или поиск изображения по подписи.
Первая из упомянутых на рисунке моделей данного типа – это модель Google Show and Tell (“Покажи и расскажи”), которая позволяла определить, что изображено на фотографии. Модель была создана в 2014 году и в течение нескольких лет дорабатывалась. В публикации за 2016 год было отмечено, что в ходе тренировки модели на подписях, созданных людьми, система научилась генерировать подписи с точностью около 94%.
Впоследствии, до появления архитектуры трансформеров (до 2017 г.) был предложен еще ряд мультимодальных моделей – это такие модели как Spatial Attention, DenseCAP, Semantic Attention.
После успеха предварительно обученных трансформаторов для языкового моделирования, таких как BERT, профессиональное сообщество предложило различные модели на основе трансформеров, такие как Vil-BERT (Lu и др. 2019), UNITER (Chen и др. 2020), ViLT (Kim, Son и др. 2021), которые объединяют представления из текста и изображений и достигают высоких результатов в нескольких мультимодальных задачах.
В 2019 году была начата разработка нейронной сети DALL-E, когда OpenAI получила грант суммой в 1 миллиард долларов от компании Microsoft на разработку инновационных технологий в сфере искусственного интеллекта. Первая версия нейросети была представлена мировому сообществу в январе 2021 года, а в апреле 2022 года была анонсирована новая версия – DALL-E 2, созданная для генерации изображений на основе пользовательского описания.
В интернете доступна версия DALL-E Mini (Craiyon Image Generator From Text), где каждый может поэкспериментировать и посмотреть, как нейросеть строит изображения по текстовым описаниям пользователей (рис. 2.31).
Рис. 2.31. Онлайновый сервис построения изображений по тексту Craiyon Image Generator From Text. Изображения по тексту “Тарелка с яблоком и грушей”. Источник: (DALL-E Mini)
Мы рассмотрели последний период развития нейросетевых моделей применительно к решению задач компьютерного зрения и задач естественного языка. И далее хотели бы продемонстрировать общую картину развития нейросетевых моделей, начиная с их зарождения и заканчивая последними моделями победителей разного рода соревнований. Общая тенденция для обсуждаемых моделей – это экспоненциальный рост числа параметров (рис. 2.32).
Рис. 2.32. Рост числа параметров модели во времени. Источник: Intel
Отсчет на рис. 2.32 ведется начиная с упомянутых в начале курса моделей – Персептрон, Alexnet, Resnet. Следом на рисунке идет представленная впервые в 2016 году нейронная сеть Yolo (You Only Look Once), используемая для обнаружения объектов в реальном времени с высокой точностью, которая имела более 65 млн обучаемых параметров. Следующей в ряду указана Google Neural MachineTranslation (GNMT) – система нейронного машинного перевода, разработанная компанией Google и представленная в ноябре 2016 года. Решение было использовано для повышения скорости и точности перевода в Google Translate. Двумя годами позже появилась также упомянутая нами нейросетевая модель-трансформер по имени BERT от компании Google, которая появилась в начале 2018 года. BERT имела 110 миллионов параметров, а ее версия Bert Large – 340 миллионов. В 2019 году вышла модель GPT-2 от компании OpenAI с рекордным на момент появления числом параметров в полтора млрд. GPT-3 была представлена в мае 2020 года и имела около 175 миллиардов обучаемых параметров, полная версия OpenAI GPT-3 стала самой большой моделью, обученной на момент представления.
На создание GPT-3 ушли десятки миллионов долларов. Известно, что только вычислительные затраты на одну итерацию обучения составили около 4,6 миллиона долларов, что представляет лишь небольшую долю общих затрат. Кривая рис. 2.32 показывает резкий рост стоимости обучения модели с увеличением ее размера.
Естественно ожидать, что процесс наращивания количественных показателей, отмеченный на рис. 2.32, должен был привести к появлению качественных возможностей нейросетевых моделей. И такой переход количества в качество был отмечен – по сути, так можно трактовать появление нового термина – “базисные модели”.
Термин “базисные модели” был введен исследователями из Стэнфорда в 2021 г. в статье “О возможностях и рисках базисных моделей”. Предложенный термин помог обозначить смену парадигмы в развитии ИИ и позволил авторам поместить на временной шкале новый период, который по значимости соседствует с такими глобальными понятиями как “искусственный интеллект” и “машинное обучение”. Если ранее мы демонстрировали диаграммы Венна, где глубокое обучение было крайним вложенным элементом (см. рис. 1.14), то теперь внутри последнего вложено еще и множество “базисные модели” (см. рис. 2.33).
Рис. 2.33. Базисные модели как ступень эволюции нейросетей. Источник: Stanford University
При этом авторы упомянутой коллективной статьи подчеркивают, что само понятие “Базисная модель” не является новой технологией, а имеет в своей основе глубокие нейронные сети и самоконтролируемое обучение. И в качестве ярких примеров базисных моделей рассматривают уже упомянутые нами BERT и GPT 3.
Базисные модели вводятся как сверхглубокие мультимодальные нейросетевые модели, которые демонстрируют возникновение новых возможностей на базе технологии глубокого обучения.
Согласно выводам исследователей из Стэнфорда, история ИИ – это история универсализации моделей и развития эмерджентности , проявляющейся в этих моделях. Эмерджентность, или спонтанное возникновение новых свойств в системе, можно отследить на разных этапах. С внедрением машинного обучения из рассматриваемых данных (из примеров) возникает (автоматически выводится) способ решения задачи; на стадии глубокого обучения возникают высокоуровневые характеристики, используемые для предсказания, а с появлением базисных моделей открываются новые возможности, такие как обучение в контексте.
Говоря об универсализации моделей, можно проследить следующую цепочку. На стадии машинного обучения ( рис. 2.33) для каждой задачи было необходимо извлечение своей совокупности признаков. С появлением базисных моделей можно констатировать, что одна модель может быть базой для широкого круга задач, что, по сути, и знаменует начало эры базисных моделей.
Технологически базисные модели становятся возможными благодаря трансферному обучению и масштабированию. В рамках глубокого обучения преобладающим подходом к трансферному обучению является предварительное обучение: модель обучается на типовой задаче со стандартным датасетом (часто просто как средство достижения цели), а затем адаптируется к последующей задаче, представляющей интерес, путем тонкой настройки.
Более того, современные модели, такие как GPT-3, могут использоваться для решения задач вообще без дополнительного обучения (zero-shot learning) или с крайне небольшим количеством примеров (few-shot learning). Например, мы можем решать задачи текстовой классификации, подавая генеративной модели на вход исходный текст и далее “спрашивая” ее, к какой категории этот текст принадлежит. Это является сменой парадигмы, когда модели становятся настолько большими и дорогими в обучении, что их практически невозможно дообучить в условиях небольшой компании.
Масштабирование достигается на базе совершенствования компьютерного оборудования (например, на базе использования GPU); использование архитектуры модели Transformer, которая позволяет использовать параллелизм аппаратного обеспечения, и обеспечивает доступность гораздо большего количества обучающих данных.
До 2019 года самоконтролируемое обучение с помощью языковых моделей было, по сути, подотраслью NLP, которая развивалась параллельно с другими разработками в NLP. После 2019 года самоконтролируемое обучение с использованием языковых моделей стало скорее основой NLP, поскольку использование BERT стало нормой. Признание того, что одна модель может быть базой для такого широкого круга задач, ознаменовало начало эры базисных моделей. Базисные модели привели к высокому уровню универсализации в том плане, что почти все современные модели NLP теперь адаптированы на основе одной из нескольких базовых моделей, таких как BERT, RoBERTa, BART и др.
Появление эры базисных моделей проявилось также в универсализации и большей однородности исследовательского инструментария. Аналогичные подходы к моделированию последовательностей на основе трансформеров стали применяться к тексту, изображениям, к речи, табличным данным, к исследованиям органических молекул и т.п. Эти примеры указывают на возможность появления унифицированного набора инструментов для разработки базисных моделей в широком диапазоне модальностей (рис. 2.34).
Рис. 2.34. Базисная модель может быть натренирована на мульти-модальных данных. Источник: Stanford University
Базисная модель может извлекать информацию из данных, различных модальностей, и одна модель может быть адаптирована к широкому спектру решаемых задач.
Это можно назвать изменением парадигмы, поскольку в прошлом считалось, что ИИ-модели способны выполнять одну задачу за раз. Исследование задач разных модальностей, таких как задачи компьютерногозренияизадачиобработкиестественногоязыка,проводилось с использованием разных технических подходов – исследователи зрения изучали такие темы, как обработка сигналов, а исследователи языка – грамматику языка. Сам термин узкий искусственный интеллект в учебниках 5-7-летней давности подавался как интеллект, заточенный на решение одной конкретной задачи и не имеющий возможности решать задачи из других областей, что противопоставлялась возможностям человека учиться в разных направлениях. Даже при наличии концепции трансферного обучения не предполагалось, что одна модель будет выполнять задачи, сильно отличающиеся друг от друга. Базисные модели с глубоким обучением позволили создавать модели, способные выполнять множество задач.
На рис2.30, 2.32 был упомянут ряд значимых моделей, появившихся сравнительно недавно. Но технологии развиваются так стремительно, что многие из последних и уже нашумевших проектов в книгу не попали, поскольку заявили о себе буквально за время ее написания. В итоге такие современные модели, как DALLE-2, Midjourney, LAMBDA, Gato и некоторые другие, просто не успели попасть в обзор. Однако мы не могли не отметить чат-бот ChatGPT, специализирующийся на диалогах, который был запущен компанией OpenAI 30 ноября 2022 года и который стал, наверное, самым обсуждаемым проектом в конце 2022 г., как раз на момент завершения работы над курсом.
ChatGPT получен на основе доработки базовой модели от OpenAI GPT-4.5 (улучшенной версии GPT-3). Сервис способен понимать человеческую речь, выстраивать диалог с собеседником, отвечать на сложные вопросы.
Мы попросили чат-бот рассказать о себе. В ответ на запрос “Напиши раздел про GPTChat для книги “Искусственный интеллект. Анализ, тренды, мировой опыт”” от бота был получен следующий ответ. “GPT (Generative Pre-training Transformer) Chat – это большая языковая модель, разработанная OpenAI, которая используется для генерации текста в режиме реального времени. Она была создана для того, чтобы обеспечить натуральную и убедительную коммуникацию с людьми через чат-бот. GPT Chat использует архитектуру Transformer, которая позволяет ей учитывать контекст и понимать смысл текста. Она также имеет доступ к большому корпусу текста, что помогает ей лучше отвечать на различные вопросы и учитывать разные тональности и настроения. GPT Chat уже используется в различных областях, таких как клиентская поддержка, маркетинг, образование и развлечения”.
В своем обзоре развития ИИ-систем мы, по сути, подошли к переднему краю разработок, и можно сказать, что определенную (упрощенную и далеко не полную) траекторию эволюции технологий ИИ (по состоянию на конец 2022 г.) представили. В название лекции было вынесено не только слово “развитие”, но и слово “структура” технологий ИИ, поэтому далее поговорим о структуре и иерархии ИИ-технологий в составе комплексных решений.
До сих пор, говоря об эволюции ИИ и нейронных сетей, в частности, мы преимущественно рассматривали примеры из области компьютерного зрения. Классификация изображений действительно была первым барьером, который удалось преодолеть с помощью глубокого обучения, но вскоре модели, основанные на данной технологии, также победили в задачах NLP– в машинном переводе и распознавании речи.
При этом надо сказать, что эволюция систем обработки естественного языка не менее важный аспект развития ИИ. Более того, в области обработки языка нейросетевая революция явила не менее впечатляющие результаты: машинный перевод на наших глазах стал почти неотличим от перевода людей-переводчиков, а голосовые интеллектуальные помощники стали привычным сервисом. Возможности аннотирования документов, голосовое управление, генерация текстов и даже стихов – все эти чудеса нам стали доступны с помощью нейросетевых NLP-технологий. Так что без экскурса в эволюцию систем NLP и анализа влияния глубокого обучения на NLP рассмотрение темы будет явно неполным.
NLP – это одно из важнейших направлений искусственного интеллекта, которое позволяет обеспечить взаимодействие между компьютером и человеком на базе естественного языка, то есть помогает компьютерам понимать человеческий язык, интерпретировать его и манипулировать им. NLP – это зонтичный термин, объединяющий ряд областей, связанных с обработкой естественного языка.
Основные элементы NLP можно представить на упрощенной замкнутой схеме системы “вопрос – ответ” (рис. 2.17), которая включает: перевод речи в текст; обработку текста (представление текста в интерпретируемые машиной данные); механизм контроля диалога, имеющий интерфейс к некоторому источнику знаний о предметной области; систему генерации ответа (текста на естественном языке); и, наконец, синтез этого текста обратно в речь.
Помимо сокращения NLP часто используются аббревиатуры NLU и NLG.
NLU (Natural-language understanding, понимание естественного языка) – это часть NLP – система, отвечающая за разбор высказываний пользователей и понимание их смысла, она включает такие этапы как предварительная обработка текста, классификация запроса, соотнесение с одним из классов, известных системе, и извлечение параметров запроса (сущностей).
NLG (Natural-language generation) – генерация естественного языка – процесс преобразования структурированных данных в естественный язык.
На базе технологий NLP созданы десятки различных приложений, некоторые из которых перечислены на рис. 2.18.
Дополнительно об NLP-приложениях и типах компаний, занятых в их разработке, речь пойдет во второй лекции данного курса, а в данном разделе более подробно поговорим об истории формирования и эволюции NLP-технологий.
Можно сказать, что NLP находится на пересечении лингвистики и технологий искусственного интеллекта (см. рис. 2.19), при том, что вектор эволюции NLP направлен от лингвистики к технологиям глубокого обучения.
В самом общем плане в развитии NLP можно выделить три этапа – символьный (с 1950-х до начала 1990-х годов), статистический (1990-2010) и нейросетевой (2010 – до настоящего времени). Отмеченные периоды достаточно наглядно просматриваются на примере машинного перевода, о котором следует сказать более подробно (рис. 2.20).
Историю машинного перевода обычно отсчитывают с так называемого Джорджтаунского эксперимента (1954 год), когда программа, состоявшая из шести правил, перевела 60 предложений с транслитерированного русского на английский язык.
Задачи обработки естественного языка потребовали разработки модели представления текстов для компьютерной обработки. Об одной из первых таких моделей – “мешок слов” – следует кратко напомнить читателю, что будет полезно для дальнейших рассуждений. Мешок слов Bagof-words (BoW) – это простейшая модель представления информации о тексте в числовом виде, используемая в обработке естественного языка. Текст в этой модели представляется как набор слов, без учета грамматики и порядка.
Поясним методику на простом примере. Пусть имеется документ с текстом из известной песни “Пусть всегда будет солнце, пусть всегда …” и так далее (рис.2.21).
Сверху выписаны все слова, встречающиеся в документе (словарь). Для кодирования слов использована процедура так называемого “One Hot Encoding”, или OHE-кодирования, суть которой поясняется на рис. 2.21 – каждое слово представляется вектором, длина которого равна длине словаря. Во всех позициях вектора стоят нули, кроме позиции, соответствующий номеру этого слова в словаре, – там, соответственно, стоит единица.
Как видно из рисунка, строчки соответствуют словам текста песни. Чтобы создать вектор, который кодировал бы весь документ (мешок слов), достаточно сложить one-hot-вектора каждого из слов. В таком векторе теряется информация о последовательности слов в тексте и остается только информация о наборе слов в рассматриваемом документе, отсюда и происходит название “мешок слов”.
Недостатком подхода является то, что информация о взаимном расположении слов и связях между ними отбрасывается. Кроме того, при большом словаре векторы содержат большое количество нулей – такая “разреженная” форма представления информации имеет свои недостатки, поскольку работа с подобными векторами требует большого объема памяти и вычислительных ресурсов.
Рассмотрим основные этапы эволюции систем машинного перевода. Первый этап – это перевод, основанный на правилах, или RBMT-перевод (сокращение от “Rule Based Machine Translation”). Самая первая и элементарная форма RBMT-перевода – это прямой машинный перевод, или “перевод по словам”: исходное предложение разбивается на слова, которые сравниваются с введенным словарем, осуществляется перевод по словам, который затем корректируется на основе морфологии и синтаксиса. Данный метод был отправной точкой машинного перевода, но в силу своих ограничений вскоре был заменен более совершенным трансферным машинным переводом, который позволил перейти от задания правил перевода каждого слова к возможности манипулирования более объемными синтаксическими конструкциями – перевод предваряет определение набора грамматических правил предложения на исходном языке и преобразование предложения в форму, совместимую с целевым языком.
Следующий этап в развитии RBMT – это так называемый “интерлингва-перевод” (или межъязыковый перевод) – метод, при котором осуществляется перевод с исходного языка на интерлингву, искусственный язык, разработанный для перевода слов и значений с одного языка на другой, впоследствии происходит перевод с интерлингвы на целевой язык.
Машинный перевод, основанный на правилах (RBMT), был первым шагом в решении задачи машинного перевода. Он относится к символьным методам в NLP, когда в фокусе было исследование синтаксического анализа на основе правил. Большинство исследований в данный период было посвящено обучению на ограниченных объемах данных. RBMT-перевод имел ограниченную точность, требовал наличия огромного числа правил, написанных вручную, основным недостатком метода являлось то, что не была решена проблема определения значения слова в зависимости от контекста. Наиболее популярным приложением того времени была система машинного перевода Systran, которая была разработана в 1968 году компанией Latsec.
В середине 1970-х годов Systran использовался NASA в рамках проекта тестирования корабля Союз-Аполлон, проводимого совместно с Советским Союзом. В тот период переводчики основывались на двуязычном словаре и наборе лингвистических правил под каждый язык.
Работы по созданию машинного перевода велись и в СССР. В 1956 г. в Институте точной механики и вычислительной техники был представлен первый советский компьютерный переводчик, включавший словарь из 2300 слов. В 1972 году специалисты института “Информэлектро” начали разработку системы машинного перевода – ЭТАП (Электротехнический автоматический перевод). В 1991 году бывшие сотрудники лаборатории ЛГПИ им. Герцена основали компанию PROMT.
Примерно в 80-х годах (см. рис. 2.20) появился машинный перевод на основе примеров (Example Based Machine Translation EBMT) – это метод машинного перевода, в котором в качестве основы используются параллельные тексты (двуязычные корпуса), составленные по принципу “фраза к фразе”. Метод повысил доступность машинного перевода, позволяя применять в переводе сложные языковые правила, которые уже встроены в используемые фразы.
Следующий важный шаг в развитии машинного перевода – это статистический машинный перевод (SMT – Statistical Machine Translation). Появление статистических методов в NLP произошло именно в области машинного перевода за счет появления к тому времени больших корпусов двуязычных текстов.
В 1990 году компания IBM впервые осуществила статистический машинный перевод. В отличие от своих предшественников – систем перевода на основе правил, статистические системы машинного перевода самостоятельно извлекают эти правила из большого количества примеров перевода – из так называемых параллельных текстов (текст на исходном языке и его перевод на целевой язык). К этому времени (начало 90-х) как раз стали доступны большие корпуса двуязычных текстов. Машине потребовались миллионы предложений на двух языках, чтобы набрать статистику по каждому слову. Просмотрев большое количество текстов, машина составляет словарь вероятностей перевода, основываясь на обучающей коллекции текстов. В самом общем плане суть статистического перевода состоит в том, что машина выбирает наиболее вероятные переводы каждого отдельного слова с учетом контекста и строит из них предложения. Предположим, необходимо перевести предложение “в комнате стоит красный стул”, а в статистической базе уже есть переведенная фраза “в комнате стоит зеленый стол” – решение элементарно: берется существующий шаблон перевода и нужные слова просто заменяются по словарю.
Статистический машинный перевод часто противопоставляют алгоритмам перевода, основанным на правилах. В случае статистического машинного перевода система ничего не знает о лингвистических правилах – перевод генерируется на основе статистических моделей, параметры которых являются производными от анализа двуязычных корпусов текста.
Статистический машинный перевод, так же как и RBMT, прошел три стадии: перевод “на словах”, на основе фраз и так называемый синтаксический перевод.
Создание статистического машинного перевода совпало с развитием Интернета, и ряд компаний, включая разработчика Systran, начали предлагать бесплатный машинный перевод онлайн. В 2006 году компания Google запустила Google Translate, который, несмотря на ограниченную в то время точность перевода, стал пользоваться большой популярностью.
С 2000-х годов нейронные сети начинают использоваться для решения задачи предсказания следующего слова в тексте с учетом предыдущих слов. В 2003 году Бенгио и др. предложили первую нейронную модель языка, состоящую из нейронной сети прямого распространения с одним скрытым слоем.
Они также одними из первых предложили технологию эмбеддингов слов. Технологию, о которой следует сказать чуть подробнее.
Эмбеддинги слов
Для решения многих задач NLP нейронная сеть должна понимать сходство между словами. Cлова, находящиеся в похожих контекстах, обычно обозначают близкие по значению понятия.
С каждым словом у людей возникают близкие ассоциации. Например, говоря об облаке, каждый может продолжить “облако – грозовое” или “облако кучевое”. То есть мы можем предположить, какое слово может соседствовать со словом “облако”. Вероятно, можно численно закодировать это наше знание – сопоставить словам числа так, чтобы близкие слова имели близость на числовой прямой. Очевидно, что пространство смыслов многомерно, и мы можем взять несколько признаков и сравнить по ним слова. Например, по “принадлежности к живому” слова “котенок” и “кошка” должны быть ближе, чем “кошка” и “дом”. Покажем, как можно сравнить слова, выбрав несколько параметров, по которым они сравниваются (рис. 2.22).
Как видно из рисунка, семантическое значение слова можно представить набором параметров или вектором. Слову сопоставляются векторы, отображающие его значение в “пространстве смыслов”. Векторы, которые позволяют представить семантическую близость слов, назвали эмбеддингами. Если каждому слову предоставить в соответствие вектор (набор из N чисел), то расстояние между точками, на которые указывают эти векторы в N-мерном пространстве, и будет мерой близости этих слов. Значения компонент векторов определяют в процессе обучения. Процесс обучения приводит к объединению векторов в N-мерном пространстве в кластеры по семантической близости слов.
Математически задача определения такого вектора формулируется как максимизация косинусной близости между векторами слов, которые появляются в близких контекстах, и минимизация косинусной близости между векторами слов, которые не появляются друг рядом с другом. Рядом друг с другом в данном случае, значит, в близких контекстах. Если угол между двумя векторами равен 0, то они сонаправлены и значение cos(0)=1, если векторы ортогональны, то косинусная близость нулевая (cos(pi/2) = 0), а если противоположно направлены, то cos(pi) = -1.
Первый успешный инструмент создания эмбеддингов слов появился благодаря разработке сотрудников Google в 2013 году – этим инструментом явилась модель Word2Vec (дословно “слово в вектор”). Для обучения используется большой текстовый корпус, генерируется словарь корпуса, а затем модель обучается на входных текстах, вычисляя векторное представление слов.
Благодаря Word2Vec появился новый способ создания векторов слов более эффективный, чем разреженное представление слов с помощью кодирования OHE, которое мы рассмотрели выше. Использование технологии эмбеддингов слов позволило повысить производительность моделей и сократить время вычислений. Эмбеддинг может быть предобучен на больших корпусах текстов и выгружен в виде словаря, где слову ставится в соответствие вектор, формируя предобученные эмбеддинги, которые можно использовать без повторного обучения.
Эволюцию NLP-технологий можно представить в виде многослойной пирамиды, каждый из слоев в которой обозначает добавление новых возможностей (рис. 2.23). Мы рассмотрели два нижних этажа и далее рассмотрим следующий – это модели на базе рекуррентных нейронных сетей.
Рекуррентные нейронные сети (Recurrent Neural Network, RNN) сыграли важную роль в развитии NLP-технологий, и о них следует рассказать чуть более подробно.
Рекуррентные нейронные сети
Выше мы рассматривали сети прямого распространения, в которых сигнал распространяется строго от входного слоя к выходному. Подобные сети не имеют механизма запоминания информации о ранее полученных входах и, соответственно, не подходят для решения задач распознавания речи, в которых важно предсказывать, что будет дальше (например, какая буква будет следовать в слове или слово в предложении).
“Пусть всегда светит ***”, нам очевидно, что финальное слово в предложении – “солнце”. Естественно, мы можем сделать такое предсказание только при наличии механизма запоминания предшествующих слов. Этот механизм актуален для любых последовательностей. Например, в случае видео. Предположим, у нас имеется последовательность кадров, где запечатлено перемещение мяча. Сделать предположение о следующем положении мяча можно только при наличии механизма запоминания последовательности предыдущих кадров.
Рекуррентная нейронная сеть – это тип нейронной сети, которая содержит циклические связи между нейронами (в отличие от сетей прямого распространения), которые позволяют эффективно работать с временными паттернами и последовательностями данных. Таким образом, рекуррентные сети имеют внутреннюю память, что позволяет учитывать не только фактический вход, но и предыдущие, то есть запоминать то, что произошло ранее. Эта возможность рекуррентной сети и делает ее эффективной для работы с последовательными данными (рис. 2.24).
Видео, текст, речь, музыка – это все примеры последовательностей.
Первые рекуррентные сети были известны еще в 80-х годах прошлого века, однако широкое практическое применение они нашли существенно позже, как и многие другие алгоритмы глубокого обучения. Популярность рекуррентные сети получили в 2014 и 2015 годах благодаря достижениям в области глубокого обучения и увеличению вычислительных возможностей.
Рассмотрим в самом общем плане, как работают рекуррентные сети. Как мы заметили, RNN оптимально работает с последовательными данными, в случае текста можно сказать, что процедура использует i-ое слово в качестве входных данных и объединяет с выходом слова i-1, та же процедура будет применена для слова i+1, и именно поэтому алгоритм называется рекуррентной нейронной сетью, по-скольку нейронная сеть применяет одни и те же операции к каждому слову i в предложении.
На рис. 2.25 (слева) показана часть нейронной сети A, которая принимает входной сигнал x и выводит значение h. Цикл позволяет передавать информацию с одного шага сети на другой.
Справа представлена развертка цикла, которая показывает, что RNN можно представить как несколько копий одной и той же сети, каждая из которых передает сообщение преемнику. В процессе обучения происходит такое “разворачивание” сети, и развернутая копия обучается алгоритмом обратного распространения, получившим название BPTT (back propagation through time).
В рекуррентной нейронной сети каждое значение слова в предложениипредсказываетсянетольконаосноветекущеговходногосигнала, но и на основе предыдущих входных сигналов. Следует отметить, что рекуррентная сеть способна обрабатывать последовательности различной длины, что часто наблюдается при работе с естественным языком, например в случае перевода с одного языка на другой.
Один из недостатков нейронной сети – это так называемая “проблема с долгосрочной зависимостью”, которая состоит в том, что по мере того, как разрыв между необходимой информацией становится больше, RNN становится менее и менее эффективной.
Суть проблемы легко понять при анализе ( рис. 2.26). Когда расстояние между словами, которые позволяют сделать правильный прогноз, минимально, то RNN не испытывает проблем, как например в случае фразы “пусть на небе светит ***” – “солнце”.
А если, предположим, необходимо ответить на вопрос, какое слово должно быть в конце предложения “Я был в Англии, познакомился с массой приятных людей и даже выучил пару фраз на ***”?
Очевидно, что автор предложения выучил несколько фраз на английском, потому что именно это слово упомянуто в начале предложения. Но чем дальше отстоят слова, которые позволяют сделать предсказание искомого слова в последовательности, тем хуже с этой задачей справляется рекуррентная сеть. Это происходит из-за того, что развернутая рекуррентная сеть обучается единым алгоритмом обратного распространения, и ошибка, проходя от конца сети к началу, претерпевает затухание.
Мы отметили, что один из недостатков рекуррентных сетей заключался в “проблеме с долгосрочной зависимостью”. Эта проблема была решена при использовании специальных рекуррентных сетей с так называемой долгой краткосрочной памятью, или LSTM (Long short-term memory).
LSTM – это разновидность архитектуры рекуррентных нейронных сетей, способная к обучению долгосрочным зависимостям. LSTM-архитектура способна передавать только релевантную информацию на более глубокие слои сети, позволяя каждому слою “решать”, какую информацию нужно сохранить, а какую можно отбросить, что в свою очередь обеспечило возможность фиксировать существенные детали прошлого контекста и сохранять их, пока они актуальны.
Основным недостатком LSTM-архитектуры являлось то, что технология использовала для предсказания только предшествующую информацию. Однако, например, при переводе предложения, чтобы принять правильное решение, важно иметь информацию о словах, использованных во всем предложении. Эта проблема была решена с помощью технологии “двунаправленный LSTM”, которая рассматривает полное предложение для предсказания.
В 2014 году в работе Cho и др. была предложена базовая модель sequence-to-sequence – “последовательность в последовательность” (seq2seq) – модель глубокого обучения, основанная на технологии рекуррентных сетей и достигшая больших успехов в задачах NLP и, в частности, в машинном переводе.
Seq2seq – это модель, которая состоит из двух рекуррентных нейронных сетей (RNN): encoder (кодер), которая обрабатывает входные данные, и decoder (декодер), которая генерирует данные вывода. Первая RNN кодирует предложение на исходном языке в так называемый контекстный вектор, вторая декодирует его в последовательность на другом языке, эта схема на новом уровне повторяет уже упомянутую нами ранее схему интерлингва, или межъязыковый перевод.
На рис. 2.27 показана схема машинного перевода с использованием алгоритма Seq2seq.
Входная последовательность (предложение на русском языке) обрабатывается кодером, который переводит входную информацию в вектор, называемый контекстом, и пересылает контекст декодеру, который элемент за элементом генерирует выходную последовательность. Заметим, что прежде чем обрабатывать слова, их переводят в векторы с помощью алгоритма эмбеддингов слов, о котором мы рассказали ранее.
RNN и LSTM-сети были весьма популярны в 2014 г., они использовались в машинном переводе, а также в таких популярных продуктах как Сири и Алекса.
В течение нескольких лет RNN и LSTM были основной технологией для задач NLP. Недостатком RNN /LSTM оставалась невысокая точность при переводе длинных фраз, и вскоре им на смену пришел еще более совершенный подход к архитектуре – так называемые “сети внимания”. В 2015 году Бахданау и другие предложили механизм внимания как способ устранения указанного недостатка. Механизм внимания позволил декодеру фокусироваться на различных частях входных данных при генерации каждого слова на выходе.
Сети, основанные на внимании, – это тип нейронных сетей, которые позволяют сосредоточиться на определенном подмножестве входных данных. Эти модели показали высокие результаты на многих NLP-задачах, включая машинный перевод и ответы на вопросы.
Сети, основанные на внимании, привнесли способность модели фокусироваться на релевантных входных данных. Модели со вниманием отличались от двунаправленных моделей RNN/LSTM тем, что рассматривали входную последовательность и на каждом шаге решали, какая часть этой последовательности важна и “требует внимания”. То есть модель учитывала весомость слов, окружающих текущий контекст. Сети, основанные на внимании, стали популярны в 2015-2016 годах.
Метод внимания помог повысить точность, однако он столкнулся с проблемой в плане производительности. Поскольку вычисления выполнялись последовательно, было трудно масштабировать это решение.
Трансформеры
В 2017 году был представлен новый тип нейронной сети на основе внимания, получивший название “трансформер”. Как и RNN, трансформер представляет собой архитектуру для преобразования одной последовательности в другую с помощью механизма кодердекодер, но он отличается от предыдущих существующих моделей Seq2Seq тем, что не использует никаких рекуррентных сетей.
Ранее в курсе как достоинство рекуррентных сетей была отмечена возможность обработки последовательностей “слово за словом”. Основным недостатком этой методики является тот факт, что обработка данных занимает много вычислительных ресурсов. Одна из задач разработчиков модели Transformer состояла в том, чтобы устранить этот недостаток. Разработчики пришли к идее обрабатывать всю входную последовательность сразу.
Механизм внимания позволил трансформерам обрабатывать все элементы одновременно за счет формирования прямых связей между отдельными элементами. Благодаря этому модель Transformer смогла обучаться быстрее и на гораздо большем количестве данных с помощью распараллеливания, что в свою очередь повысило точность при выполнении NLP-задач.
Центральным в архитектуре трансформеров является механизм внутреннего внимания (или самовнимания, self-attention), который моделирует отношения между всеми словами в предложении и оценивает, как каждое слово в предложении связано с другими словами.
Подробное описание механизма внутреннего внимания выходит за рамки обзорного изложения материалов, принятого в данной курсе. Заметим лишь, что при высокоуровневом объяснении механизма внутреннего внимания обычно говорят, что данный механизм позволяет смоделировать “понимание” связей отдельных слов с другими словами при обработке каждого конкретного слова.
При восприятии текста человек понимает смысл прочитанного, в том числе исходя из понимания смысла слов. Так, например, прочитав две фразы – ” кошка не перешла улицу, так как она слишком устала” и “кошка не перешла улицу, потому что она была слишком широкой”, – человек сразу понимает, что в первом случае слово “она” относится к слову “кошка”, а во втором случае “она” относится к улице.
Трансформерные архитектуры привели к фундаментальным изменениям в области компьютерной лингвистики, в которой в течение многих лет доминировали рекуррентные нейронные сети. Появились разные реализации трансформаторов, такие как BERT, GPT, GPT-2, GPT-3.
Возможность большего распараллеливания во время обучения позволила проводить обучение на больших наборах данных. Это привело к развитию трансферного обучения в области языкового моделирования и появлению предварительно обученных моделей.
Напомним, что суть трансферного обучения состоит в том, что навыки, полученные водном “проекте”, можно передать в другой (рис.2.29).
Можно привести аналогию. Когда ребенок впервые пробует кататься на велосипеде, ему нужно учиться с нуля, и это требует определенного времени – необходимо научиться держать равновесие, рулить, тормозить. Когда ребенок подрастает и учится ездить на мотоцикле, ему уже не нужно начинать с нуля. Базовые навыки (такие как умение держать равновесие при вхождении в поворот) уже являются привычными.
Применительно к задачам NLP можно сказать, что суть трансферного обучения заключается в предварительном обучении модели на большом корпусе обычных текстов, из которых модель понимает базовые принципы устройства языка и последующего обучения модели на специфическом в контексте решения задачи корпусе текста, на котором модель дообучается решению конкретной задачи. Это позволяет демонстрировать более высокие результаты, чем в случае обучения на одних только специфических для задачи данных. Успехи трансферного обучения были продемонстрированы на примере таких известных моделей как GPT и BERT.
В 2018 году компания OpenAI предобучила на большом объеме текста генеративную нейронную сеть GPT. На основе разработки от OpenAI в конце 2018 года в Google создали свою нейросеть – BERT, которая сразу побила несколько рекордов по успешности решения ряда NLP-задач.
Модель появилась в начале 2018-го, а уже в октябре того же года Google встроил модель в свой поисковик. Разработчики модели выложили в открытый доступ код модели и сделали возможным скачивание различных версий BERT, переобученных на больших наборах данных. То есть базовая версия модели, которая прошла длительное предобучение на больших корпусах текстов, стала доступной для того, чтобы ее можно было дообучить на прикладных задачах сторонних пользователей. То, что исходный код BERT находился в открытом доступе, позволило множественным разработчикам использовать модель, адаптируя ее к своим уникальным задачам.
Тонкая настройка или дополнительное обучение модели на отдельном наборе данных, отличном от того, на котором модель обучалась изначально, позволяет, слегка изменив параметры сети, обеспечить решение новой задачи – получить более быстрое обучение, чем, если бы та же модель обучалась с нуля.
Тем, кому индивидуальная тонкая настройка была не нужна, было доступно множество открытых бесплатных, предварительно обученных моделей BERT для различных случаев использования, для конкретных задач, таких как анализ настроений в Twitter, категоризатор эмоций, перевод речи в текст, обнаружение токсичных комментариев и т. п.
Вскоре после появления BERT вышла его мультиязычная версия, обученная на 104 языках, в том числе на русском. Обучением русскоязычных моделей BERT занималась лаборатория глубокого обучения МФТИ в рамках проекта Deep Pavlov, Институт исследования искусственного интеллекта AIRI и Sber AI.
Тренды последних лет – мультимодальность, базисные модели
Появление трансформеров привело к радикальным изменениям в мультимодальных задачах, когда одновременно используется несколько типов входных сигналов (например, текст и изображения).
Длительное время стандартом де-факто для мультимодальных задач с использованием текстов и картинок было применение сверточных нейронных сетей для извлечения признаков из визуальной области, при том, что для получения текстового представления использовались рекуррентные нейронные сети. Эта картина изменилась с появлением архитектуры трансформеров.
В феврале 2019 г. компанией OpenAI была создана модель Generative Pretrained Transformer 2 (GPT-2) – система ИИ с открытым исходным кодом, которая позволяла переводить, отвечать на вопросы и генерировать текст на уровне, который в ряде случаев неотличим от написанного человеком. GPT-2 был создан как развитие модели OpenAI GPT от 2018 года, с десятикратным увеличением как количества параметров, так и размера обучающего набора данных (модель обучили на 40 Гб текста).
В 2020 году OpenAI выпустила модель GPT-3, которая позволяла не только создавать текст, но и генерировать код, писать рассказы и сочинять стихи. Для обучения модели потребовалось 570 Гб текста.
Серия моделей GPT также продемонстрировала, что обучение на очень большом корпусе и тонкая настройка модели под целевую задачу могут значительно превзойти обычные модели в качестве, однако, с другой стороны, в полный рост проявилось ограничение, связанное с непропорционально высокой стоимостью обучения больших трансформерных моделей.
Говоря о развитии глубокого обучения в задачах естественного языка интересно провести сравнение последних с развитием моделей, предназначенных для решения задач компьютерного зрения. На рис. 2.30 показан современный период развития нейросетевых моделей для решения задач компьютерного зрения, обработки естественного языка и мультимодальных задач по данным статьи Andrew Shin, Masato Ishii.
В верхней части диаграммы отмечены модели для решения задач компьютерного зрения. Блок, обозначенный как CNN, иллюстрирует совокупность моделей, построенных на архитектуре сверточных сетей. Модели VGG и Resnet уже были нами упомянуты при обсуждении ILSVRC (рис. 2.5). DenseNet – еще одна модель на основе архитектуры сверточных сетей, предложенная в 2017 г. Блок, обозначенный как R-CNN (Region-Based Convolutional Neural Network), – это семейство моделей машинного обучения для компьютерного зрения и, в частности, для обнаружения объектов. Данная архитектура была разработана в 2014 году и включает следующие этапы: нахождение потенциальных объектов на изображении и разбиение их на регионы, извлечение признаков каждого полученного региона с помощью сверточных нейронных сетей, классификация обработанных признаков с помощью метода опорных векторов и уточнение границ регионов с помощью линейной регрессии.
В рассмотренном примере механизм внутреннего внимания – это тот механизм, который позволяет установить ассоциации между словами “она” со словом “кошка” в первом случае и со словом “улица” во втором случае.
Трансформеры продемонстрировали свои возможности в обработке естественного языка, включая задачи машинного перевода (рис. 2.28) и распознавания речи.
Обратим внимание на модель Vision Transformer, показанную на рис.2.30 на границе 2020 года. В то время как архитектура Transformer стала стандартом дефакто для задач обработки естественного языка после 2017 года, ее применение в компьютерном зрении оставалось ограниченным. В задачах компьютерного зрения механизм внимания либо применялся совместно со сверточными сетями, либо использовался для замены определенных компонентов сверточных сетей при сохранении их общей структуры.
В 2020 году Досовицкий и др. (2020) предложили модель Vision Transformer (ViT) и в данной публикации показали, что выше-упомянутая зависимость от CNN не является необходимой и чистый трансформер может хорошо справляться с задачами классификации изображений.
Как ранее было отмечено, трансформеры используют механизм внимания, суть которого в самом общем плане в NLP-задачах состоит в измерении связей между парами входных слов. Стоимость этой операции (с точки зрения вычислительных ресурсов) квадратично зависит от количества слов. Для изображений основной единицей анализа является пиксель. Однако вычисление взаимосвязей для каждой пары пикселей в типичном изображении является непомерно затратным с точки зрения вычислительных ресурсов. Вместо этого ViT вычисляет отношения между пикселями в различных небольших участках изображения (например, 16×16 пикселей), что позволило значительно снизить вычислительные затраты и показать хорошие результаты. В нижней части рис. 2.30 представлена эволюция архитектур нейросетевых моделей, используемых в задачах NLP. Здесь выделено два больших блока – это RNN, которая господствовала до 2017 года, и сменившая ее архитектура Transformer, о которой мы написали выше. Боксами меньшего размера представлены конкретные модели, начиная от LSTM и заканчивая GPT-3, которые также ранее были рассмотрены.
В средней части приведены модели, которые были предложены для решения мультимодальных задач (компьютерное зрение – обработка языка). Для решения указанных задач необходима совместная обработка изображения и текста, связанного с ним. Подобные модели позволяют решать такие задачи, как генерация описания по изображению, изображения по текстовому описанию, визуальные ответы на вопросы или поиск изображения по подписи.
Первая из упомянутых на рисунке моделей данного типа – это модель Google Show and Tell (“Покажи и расскажи”), которая позволяла определить, что изображено на фотографии. Модель была создана в 2014 году и в течение нескольких лет дорабатывалась. В публикации за 2016 год было отмечено, что в ходе тренировки модели на подписях, созданных людьми, система научилась генерировать подписи с точностью около 94%.
Впоследствии, до появления архитектуры трансформеров (до 2017 г.) был предложен еще ряд мультимодальных моделей – это такие модели как Spatial Attention, DenseCAP, Semantic Attention.
После успеха предварительно обученных трансформаторов для языкового моделирования, таких как BERT, профессиональное сообщество предложило различные модели на основе трансформеров, такие как Vil-BERT (Lu и др. 2019), UNITER (Chen и др. 2020), ViLT (Kim, Son и др. 2021), которые объединяют представления из текста и изображений и достигают высоких результатов в нескольких мультимодальных задачах.
В 2019 году была начата разработка нейронной сети DALL-E, когда OpenAI получила грант суммой в 1 миллиард долларов от компании Microsoft на разработку инновационных технологий в сфере искусственного интеллекта. Первая версия нейросети была представлена мировому сообществу в январе 2021 года, а в апреле 2022 года была анонсирована новая версия – DALL-E 2, созданная для генерации изображений на основе пользовательского описания.
В интернете доступна версия DALL-E Mini (Craiyon Image Generator From Text), где каждый может поэкспериментировать и посмотреть, как нейросеть строит изображения по текстовым описаниям пользователей (рис. 2.31).
Мы рассмотрели последний период развития нейросетевых моделей применительно к решению задач компьютерного зрения и задач естественного языка. И далее хотели бы продемонстрировать общую картину развития нейросетевых моделей, начиная с их зарождения и заканчивая последними моделями победителей разного рода соревнований. Общая тенденция для обсуждаемых моделей – это экспоненциальный рост числа параметров (рис. 2.32).
Отсчет на рис. 2.32 ведется начиная с упомянутых в начале курса моделей – Персептрон, Alexnet, Resnet. Следом на рисунке идет представленная впервые в 2016 году нейронная сеть Yolo (You Only Look Once), используемая для обнаружения объектов в реальном времени с высокой точностью, которая имела более 65 млн обучаемых параметров. Следующей в ряду указана Google Neural MachineTranslation (GNMT) – система нейронного машинного перевода, разработанная компанией Google и представленная в ноябре 2016 года. Решение было использовано для повышения скорости и точности перевода в Google Translate. Двумя годами позже появилась также упомянутая нами нейросетевая модель-трансформер по имени BERT от компании Google, которая появилась в начале 2018 года. BERT имела 110 миллионов параметров, а ее версия Bert Large – 340 миллионов. В 2019 году вышла модель GPT-2 от компании OpenAI с рекордным на момент появления числом параметров в полтора млрд. GPT-3 была представлена в мае 2020 года и имела около 175 миллиардов обучаемых параметров, полная версия OpenAI GPT-3 стала самой большой моделью, обученной на момент представления.
На создание GPT-3 ушли десятки миллионов долларов. Известно, что только вычислительные затраты на одну итерацию обучения составили около 4,6 миллиона долларов, что представляет лишь небольшую долю общих затрат. Кривая рис. 2.32 показывает резкий рост стоимости обучения модели с увеличением ее размера.
Естественно ожидать, что процесс наращивания количественных показателей, отмеченный на рис. 2.32, должен был привести к появлению качественных возможностей нейросетевых моделей. И такой переход количества в качество был отмечен – по сути, так можно трактовать появление нового термина – “базисные модели”.
Термин “базисные модели” был введен исследователями из Стэнфорда в 2021 г. в статье “О возможностях и рисках базисных моделей”. Предложенный термин помог обозначить смену парадигмы в развитии ИИ и позволил авторам поместить на временной шкале новый период, который по значимости соседствует с такими глобальными понятиями как “искусственный интеллект” и “машинное обучение”. Если ранее мы демонстрировали диаграммы Венна, где глубокое обучение было крайним вложенным элементом (см. рис. 1.14), то теперь внутри последнего вложено еще и множество “базисные модели” (см. рис. 2.33).
При этом авторы упомянутой коллективной статьи подчеркивают, что само понятие “Базисная модель” не является новой технологией, а имеет в своей основе глубокие нейронные сети и самоконтролируемое обучение. И в качестве ярких примеров базисных моделей рассматривают уже упомянутые нами BERT и GPT 3.
Базисные модели вводятся как сверхглубокие мультимодальные нейросетевые модели, которые демонстрируют возникновение новых возможностей на базе технологии глубокого обучения.
Согласно выводам исследователей из Стэнфорда, история ИИ – это история универсализации моделей и развития эмерджентности , проявляющейся в этих моделях. Эмерджентность, или спонтанное возникновение новых свойств в системе, можно отследить на разных этапах. С внедрением машинного обучения из рассматриваемых данных (из примеров) возникает (автоматически выводится) способ решения задачи; на стадии глубокого обучения возникают высокоуровневые характеристики, используемые для предсказания, а с появлением базисных моделей открываются новые возможности, такие как обучение в контексте.
Говоря об универсализации моделей, можно проследить следующую цепочку. На стадии машинного обучения ( рис. 2.33) для каждой задачи было необходимо извлечение своей совокупности признаков. С появлением базисных моделей можно констатировать, что одна модель может быть базой для широкого круга задач, что, по сути, и знаменует начало эры базисных моделей.
Технологически базисные модели становятся возможными благодаря трансферному обучению и масштабированию. В рамках глубокого обучения преобладающим подходом к трансферному обучению является предварительное обучение: модель обучается на типовой задаче со стандартным датасетом (часто просто как средство достижения цели), а затем адаптируется к последующей задаче, представляющей интерес, путем тонкой настройки.
Более того, современные модели, такие как GPT-3, могут использоваться для решения задач вообще без дополнительного обучения (zero-shot learning) или с крайне небольшим количеством примеров (few-shot learning). Например, мы можем решать задачи текстовой классификации, подавая генеративной модели на вход исходный текст и далее “спрашивая” ее, к какой категории этот текст принадлежит. Это является сменой парадигмы, когда модели становятся настолько большими и дорогими в обучении, что их практически невозможно дообучить в условиях небольшой компании.
Масштабирование достигается на базе совершенствования компьютерного оборудования (например, на базе использования GPU); использование архитектуры модели Transformer, которая позволяет использовать параллелизм аппаратного обеспечения, и обеспечивает доступность гораздо большего количества обучающих данных.
До 2019 года самоконтролируемое обучение с помощью языковых моделей было, по сути, подотраслью NLP, которая развивалась параллельно с другими разработками в NLP. После 2019 года самоконтролируемое обучение с использованием языковых моделей стало скорее основой NLP, поскольку использование BERT стало нормой. Признание того, что одна модель может быть базой для такого широкого круга задач, ознаменовало начало эры базисных моделей. Базисные модели привели к высокому уровню универсализации в том плане, что почти все современные модели NLP теперь адаптированы на основе одной из нескольких базовых моделей, таких как BERT, RoBERTa, BART и др.
Появление эры базисных моделей проявилось также в универсализации и большей однородности исследовательского инструментария. Аналогичные подходы к моделированию последовательностей на основе трансформеров стали применяться к тексту, изображениям, к речи, табличным данным, к исследованиям органических молекул и т.п. Эти примеры указывают на возможность появления унифицированного набора инструментов для разработки базисных моделей в широком диапазоне модальностей (рис. 2.34).
Базисная модель может извлекать информацию из данных, различных модальностей, и одна модель может быть адаптирована к широкому спектру решаемых задач.
Это можно назвать изменением парадигмы, поскольку в прошлом считалось, что ИИ-модели способны выполнять одну задачу за раз. Исследование задач разных модальностей, таких как задачи компьютерногозренияизадачиобработкиестественногоязыка,проводилось с использованием разных технических подходов – исследователи зрения изучали такие темы, как обработка сигналов, а исследователи языка – грамматику языка. Сам термин узкий искусственный интеллект в учебниках 5-7-летней давности подавался как интеллект, заточенный на решение одной конкретной задачи и не имеющий возможности решать задачи из других областей, что противопоставлялась возможностям человека учиться в разных направлениях. Даже при наличии концепции трансферного обучения не предполагалось, что одна модель будет выполнять задачи, сильно отличающиеся друг от друга. Базисные модели с глубоким обучением позволили создавать модели, способные выполнять множество задач.
На рис2.30, 2.32 был упомянут ряд значимых моделей, появившихся сравнительно недавно. Но технологии развиваются так стремительно, что многие из последних и уже нашумевших проектов в книгу не попали, поскольку заявили о себе буквально за время ее написания. В итоге такие современные модели, как DALLE-2, Midjourney, LAMBDA, Gato и некоторые другие, просто не успели попасть в обзор. Однако мы не могли не отметить чат-бот ChatGPT, специализирующийся на диалогах, который был запущен компанией OpenAI 30 ноября 2022 года и который стал, наверное, самым обсуждаемым проектом в конце 2022 г., как раз на момент завершения работы над курсом.
ChatGPT получен на основе доработки базовой модели от OpenAI GPT-4.5 (улучшенной версии GPT-3). Сервис способен понимать человеческую речь, выстраивать диалог с собеседником, отвечать на сложные вопросы.
Мы попросили чат-бот рассказать о себе. В ответ на запрос “Напиши раздел про GPTChat для книги “Искусственный интеллект. Анализ, тренды, мировой опыт”” от бота был получен следующий ответ. “GPT (Generative Pre-training Transformer) Chat – это большая языковая модель, разработанная OpenAI, которая используется для генерации текста в режиме реального времени. Она была создана для того, чтобы обеспечить натуральную и убедительную коммуникацию с людьми через чат-бот. GPT Chat использует архитектуру Transformer, которая позволяет ей учитывать контекст и понимать смысл текста. Она также имеет доступ к большому корпусу текста, что помогает ей лучше отвечать на различные вопросы и учитывать разные тональности и настроения. GPT Chat уже используется в различных областях, таких как клиентская поддержка, маркетинг, образование и развлечения”.
В своем обзоре развития ИИ-систем мы, по сути, подошли к переднему краю разработок, и можно сказать, что определенную (упрощенную и далеко не полную) траекторию эволюции технологий ИИ (по состоянию на конец 2022 г.) представили. В название лекции было вынесено не только слово “развитие”, но и слово “структура” технологий ИИ, поэтому далее поговорим о структуре и иерархии ИИ-технологий в составе комплексных решений.