Инструмент под названием BERT способен обогнать людей в тестах на чтение и понимание. Однако он же демонстрирует, какой путь ещё нужно пройти ИИ
Осенью 2017 года Сэм Боумен, вычислительный лингвист из Нью-Йоркского университета, решил, что компьютеры до сих пор ещё не очень хорошо понимают текст. Конечно, они достаточно неплохо научились симулировать это понимание в определённых узких областях, вроде автоматических переводов или анализа чувств (к примеру, определять, является ли предложение «грубым или милым», как он сказал). Однако Боумен хотел получить измеримое свидетельство: настоящее понимание написанного, изложенное человеческим языком. И он придумал тест.
В работе от апреля 2018 года, написанной совместно с коллегам из Вашингтонского университета и DeepMind, компании, принадлежащей Google и занимающейся искусственным интеллектом, Боумен представил набор из девяти задач на понимание прочитанного для компьютеров под общим названием GLUE (General Language Understanding Evaluation) [оценка понимания обобщенного языка]. Тест был разработан как «достаточно показательный пример того, что исследовательское сообщество считает интересными задачами», сказал Боумен, но так, чтобы быть «простым для людей». К примеру, в одной задаче задаётся вопрос об истинности предложения, которую нужно оценить на основе информации из предыдущего предложения. Если вы можете сказать, что из сообщения «президент Трамп приземлился в Ираке, начав свой семидневный визит» следует, что «президент Трамп находится с визитом за границей», вы проходите тест.
Машины его провалили. Даже передовые нейросети набрали не более 69 из 100 очков суммарно по всем тестам – тройку с минусом. Боумен с коллегами не были удивлены. Нейросети – многослойные конструкции с вычислительными связями, грубо напоминающие работу нейронов в мозгу млекопитающих – показывают неплохие результаты в области «обработки естественных языков» [Natural Language Processing, NLP], но исследователи не были уверены, что эти системы обучаются чему-то серьёзному о самом языке. И GLUE доказывает это. «Ранние результаты показывают, что прохождение тестов GLUE выходит за пределы возможностей существующих моделей и методов», — писали Боумен с соавторами.
Но их оценка прожила недолго. В октябре 2018 Google представил новый метод, BERT (Bidirectional Encoder Representations from Transformers) [двунаправленные презентации кодировщика для трансформеров]. Он получил в GLUE оценку в 80.5. Машины всего за шесть месяцев перепрыгнули с тройки с минусом до четвёрки с минусом в этом новом тесте, измеряющем реальное понимание машинами естественного языка.
«Это было ощущение ’вот чёрт’, — вспоминает Боумен, выразив это более цветастым словом. – Это сообщение было встречено сообществом с недоверием. BERT получал во многих тестах оценки близкие к тому, что мы считали максимумом возможного». И действительно, до появления BERT в тесте GLUE даже не было приведено оценок человеческих достижений, чтобы было с чем сравнивать. Когда Боумен и один из его аспирантов добавили их в GLUE в феврале 2019 года, они продержались всего несколько месяцев, а, потом модель на основе BERT от Microsoft побила и их.
На момент написания данной статьи практически все первые места в тестах GLUE заняты системами, включающими, расширяющими или оптимизирующими модель BERT. Пять из них превосходят по способностям людей.
Но значит ли это, что ИИ начинает понимать наш язык, или он просто учится обыгрывать наши системы? После того, как нейросети на базе BERT взяли тесты типа GLUE штурмом, появились новые методы оценки, считающие, судя по всему, эти NLP-системы компьютерными версиями "умного Ганса" – лошади, жившей в начале XX века, якобы бывшей достаточно умной для того, чтобы производить арифметические вычисления в уме, но на самом деле считывавшей бессознательные знаки, подаваемые ей её владельцем.
«Мы знаем, что находимся где-то в серой зоне между пониманием языка в очень скучном и узком смысле, и созданием ИИ, — сказал Боумен. – В целом реакцию специалистов можно было описать так: Как это произошло? Что это значит? Что нам теперь делать?»
Написание собственных правил
В знаменитом мысленном эксперименте "Китайская комната" человек, не знающий китайского языка, сидит в комнате, заполненной множеством книг с правилами. В книгах можно найти точную инструкцию по тому, как принимать входящую в комнату последовательность китайских символов и выдавать подходящий ответ. Человек снаружи подсовывает под дверь комнаты вопросы, записанные на китайском языке. Человек внутри обращается к книгам с правилами, и формулирует совершенно разумные ответы на китайском языке.
Этот эксперимент использовали для доказательства того, что несмотря на создающееся снаружи впечатление, нельзя сказать, что у человека в комнате есть какое-то понимание китайского. Однако даже симуляция понимания была приемлемой целью NLP.
Единственная проблема – в отсутствии идеальных книг с правилами, поскольку естественный язык слишком сложен и бессистемен, чтобы его можно было свести к твёрдому набору спецификаций. Возьмём, к примеру, синтаксис: правила (в т.ч. эмпирические), определяющие группировку слов в осмысленные предложения. У предложения "яростно спящие бесцветные зелёные идеи" соблюдён синтаксис, но любой владеющий языком человек понимает его бессмысленность. Какая специально составленная книга правил смогла бы включить в себя этот неписанный факт, связанный с естественным языком – не говоря уже о бессчётном количестве других фактов?
Исследователи NLP пытались найти эту квадратуру круга, заставляя нейросети писать свои собственные кустарные книги правил в процессе т.н. «предварительной тренировки» или претренинга [pretraining].
До 2018 года одним из основных инструментов претренинга было нечто вроде словаря. Этот словарь использовал векторное представление слов [word embedding], описывавших связи между словами в виде цифр так, чтобы нейросети могли воспринимать эту информацию, как входные данные – что-то вроде грубого глоссария для человека в китайской комнате. Однако прошедшая претренинг на векторном словаре нейросеть всё равно оставалась слепой к смыслу слов на уровне предложений. «С её точки зрения, предложения ’человек укусил собаку’ и ’собака укусила человека’ идентичны», — сказал Тэл Линзен, вычислительный лингвист из университета Джонса Хопкинса.
Тэл Линзен, вычислительный лингвист из университета Джонса Хопкинса.
Улучшенный метод использует претренинг для обеспечения нейросети более богатыми книгами правил – не только словарём, но и синтаксисом с контекстом – перед тем, как обучать её на выполнение определённой задачи по NLP. В начале 2018 года исследователи из OpenAI, университета Сан-Франциско, Алленовского института искусственного интеллекта и Вашингтонского университета одновременно вывели хитроумный способ приблизиться к этому. Вместо претренинга только одного, первого слоя сети при помощи векторного представления слов, исследователи начали обучать нейросети целиком на более общей задаче под названием языковое моделирование.
«Простейший вариант моделирования языка следующий: я прочту кучку слов и попытаюсь предсказать следующее, — пояснил Майл Отт, исследователь из Facebook. — Если я скажу, „Джордж Буш родился в“, то модели нужно предсказать следующее слово в этом предложении».
Такие языковые модели с глубоким претренингом можно довольно эффективно создавать. Исследователи просто скармливают своим нейросетям огромные объёмы написанного текста из свободных ресурсов вроде Википедии – миллиарды слов, расставленных в грамматически корректные предложения – и дают сети возможность предсказывать следующее слово самостоятельно. По сути, это равнозначно тому, что мы предложим человеку в китайской комнате составить собственный набор правил, пользуясь для справки входящими китайскими сообщениями.
«Прелесть такого подхода в том, что модель получает кучу знаний о синтаксисе», — сказал Отт.
Более того, такие предварительно обученные нейросети могут применять свои репрезентации языка для обучения более узкой задаче, не связанной с предсказанием слов – к процессу тонкой настройки.
«Можно взять модель с этапа претренинга и адаптировать её к любой реальной задаче, которая вам нужна, — пояснил Отт. – И после этого вы получаете гораздо лучшие результаты, чем если бы вы непосредственно с самого начала пытались решать вашу задачу».
В июне 2018 года, когда OpenAI представила свою нейросеть GPT, с включённой в неё языковой моделью, целый месяц проходившей претренинг на миллиарде слов (взятых из 11 038 цифровых книг), её результат в тесте GLUE, 72,8 очков, сразу же стал самым лучшим. И всё же Сэм Боумен предположил, что эта область будет развиваться ещё очень долго перед тем, как какая-либо система сможет хотя бы приблизиться к уровню человека.
А потом появилась BERT.
Многообещающий рецепт
Так что же такое BERT?
Во-первых, это не полностью обученная нейросеть, способная прямо сразу выдавать результаты на человеческом уровне. Боумен говорит, что это «очень точный рецепт претренинга нейросети». Как пекарь может, следуя рецепту, гарантированно выдать вкусный корж для пирога — который потом можно использовать для разных пирогов, от черничного до шпинатного киша – так и исследователи из Google создали рецепт BERT, который может служить идеальным фундаментом для «выпекания» нейросетей (то есть, их тонкой подстройки), чтобы они хорошо справлялись с различными задачами по обработке естественного языка. Google сделал код BERT открытым, что означает, что другим исследователям уже не нужно повторять этот рецепт с нуля – они могут просто скачать его; это вроде как купить заранее испечённый корж для пирога в магазине.
Если BERT – это рецепт, то какой у него список ингредиентов? «Это результат трёх разных вещей, соединённых вместе так, что система начинает работать», — сказал Омер Ливай, исследователь из Facebook, проанализировавший устройство BERT.
Омер Ливай, исследователь из Facebook
Первое – прошедшая претренинг языковая модель, то есть, те самые справочники из китайской комнаты. Вторая – возможность решить, какие из особенностей предложения являются наиболее важными.
В 2017 году Джейкоб Узкорейт, инженер из Google Brain, работал над способами ускорения попыток компании понять язык. Он заметил, что все передовые нейросети страдают из-за присущего им ограничения: они изучают предложение по словам. Такая «последовательность», вроде бы, совпадала с представлением о том, как люди читают текст. Однако Узкорейт заинтересовался, «не может ли быть так, что понимание языка в линейном, последовательном режиме не является наиболее оптимальным».
Узкорейт с коллегами разработали новую архитектуру нейросетей, концентрирующуюся на «внимании», механизме, позволяющем каждому слою нейросети присваивать определённым особенностям входных данных большие веса по сравнению с другими. Эта новая архитектура с вниманием, трансформер, может взять предложение типа «собака кусает человека» [a dog bites the man] в качестве входа и закодировать каждое из слов параллельно разными способами. К примеру, трансформер может связать «кусает» и «человека», как глагол и подлежащее-объект, проигнорировав артикль «a»; в то же время, она может связать «кусает» и «собака», как глагол и подлежащее-субъект, проигнорировав артикль «the».
Непоследовательная природа трансформера представляет предложения более выразительно, или, как говорит Узкорейт, древовидно. Каждый слой нейросети устанавливает много параллельных связей между определёнными словами, игнорируя остальные – примерно как ученик в начальной школе разбирает предложение на части. Эти связи часто проводятся между словами, которые могут находиться не рядом. «Такие структуры выглядят как наложение нескольких деревьев», — пояснил Узкорейт.
Такие древовидные репрезентации предложений дают трансформерам возможность моделировать контекстный смысл, а также эффективно изучать связи между словами, стоящими далеко друг от друга в сложных предложениях. «Это несколько контринтуитивно, — сказал Узкорейт, — но исходит от лингвистики, которая давно уже занимается древовидными моделями языка».
Джейкоб Узкорейт, руководитель берлинской команды Google AI Brain
Наконец, третий ингредиент в рецепте BERT расширяет нелинейное чтение ещё сильнее.
В отличие от других прошедших претренинг языковых моделей, созданных посредством обработки нейросетями терабайтов текста, читаемого слева направо, модель BERT читает и справа налево, и одновременно слева направо, и обучается предсказывать, какие слова случайным образом были исключены из предложений. К примеру, BERT может принять на вход предложение вида «Джордж буш […] в Коннектикуте в 1946 году», и предсказать, какое именно слово скрыто в середине предложения (в данном случае, «родился»), обработав текст в обоих направлениях. «Эта двунаправленность заставляет нейросеть извлечь как можно больше информации из любого подмножества слов», — сказал Узкорейт.
Используемый BERT претренинг, похожий на игру в слова – языковое моделирование с маскированием – вещь не новая. Его десятилетиями использовали для оценки понимания языка людьми. Для Google он обеспечил практический способ использования двунаправленности в нейросетях вместо односторонних методов претренинга, доминировавших в этой области до этого. «До появления BERT однонаправленное моделирование языка было стандартом, хотя это и необязательное ограничение», — сказал Кентон Ли, исследователь из Google.
Каждый из трёх этих ингредиентов – глубокая модель языка с претренингом, внимание и двунаправленность – существовали до BERT по отдельности. Но до тех пор, пока Google не выпустил свой рецепт в конце 2018 года, никто не скомбинировал их таким успешным образом.
Уточняя рецепт
Как любой хороший рецепт, BRET вскоре был адаптирован различными поварами под свои вкусы. Весной 2019 года был период, «когда Microsoft и Alibaba наступали друг другу на пятки, еженедельно меняясь местами в рейтинге, подстраивая свою модель», — вспоминает Боумен. Когда в августе впервые вышла улучшенная версия BERT под именем RoBERTa, исследователь Себастиан Рудер из DeepMind сухо отметил в своей популярной рассылке по NLP: «Новый месяц, и новая передовая языковая модель с претренингом».
Как у «коржа», у BERT есть несколько проектных решений, влияющих на качество его работы. Сюда входит размер выпекаемой нейросети, количество данных, использованных для претренинга, способ маскировки слов, и то, как долго нейросеть работает с этими данными. А в последующих рецептах, таких, как RoBERTa, исследователи подправляют эти решения – как повар, уточняющий рецепт.
В случае с RoBERTa, исследователи из Facebook и Вашингтонского университета увеличили количество некоторых ингредиентов (данных для претренинга, длину входящих последовательностей, время обучения), один ингредиент удалили (задачу по «предсказанию следующего предложения», которая изначально была в BERT и отрицательно влияла на результаты), а другой изменили (усложнили задачу с маскировкой отдельных слов). В итоге они ненадолго заняли первое место в рейтинге GLUE. Через шесть недель исследователи из Microsoft и Мэрилендского университета добавили свои уточнения в RoBERTa, и вырвали следующую победу. На данный момент первое место в GLUE заняла ещё одна модель, ALBERT (аббревиатура от «lite BERT», то есть, «облегчённый BERT»), ещё немного изменившая базовую структуру BERT.
«Мы пока ещё разбираемся, какие рецепты работают, какие – нет», — сказал Отт из Facebook, работавший над RoBERTa.
Но, как улучшение техники предварительного выпекания коржей не научит вас основам химии, так и постепенное улучшение BERT не даст вам особенно много теоретических знаний о развитии NLP. «Буду с вами предельно честным – я не слежу за этими работами, как по мне, они чрезвычайно скучные», — сказал Линзен, вычислительный лингвист из университета Джонса Хопкинса. «Тут есть определённая научная загадка», признаёт он, но не в том, как сделать BERT и всех его потомков умнее, и даже не в том, чтобы разобраться, почему они такие умные. Вместо этого «мы пытаемся понять, насколько эти модели реально понимают язык, — сказал он, — а не обучаются странным трюкам, которые почему-то срабатывают на наборах данных, на которых мы обычно оцениваем эти модели».
Иначе говоря, BERT что-то делает правильно. Но что, если он делает это по неправильной причине?
Хитрый, но не умный
В июле 2019 года два исследователя из Тайваньского государственного университета Чэн Кунь использовали BERT с впечатляющими результатами на относительно малоизвестном тесте на быстродействие под названием «задача на понимание аргументации». Для выполнения задачи требуется выбрать неявное исходное условие («основание»), поддерживающее аргумент в пользу какого-либо заявления. К примеру, чтобы доказать, что «курение вызывает рак» (заявление) поскольку «научные исследования продемонстрировали наличие связи между курением и раком» (аргументация) нужно выбрать аргумент «научным исследованиям можно доверять» («основание»), а не другой вариант: «научные исследования дороги» (пусть так, однако в к данному контексту это не имеет отношения). Всё ясно?
Если не всё, не беспокойтесь. Даже люди не очень хорошо справляются с этой задачей без практики. Средний базовый уровень для человека без тренировки равняется 80 из 100. BERT достиг показателя 77 – что, как сказали авторы, было «неожиданно».
Но вместо того, чтобы решить, что BERT способен наделять нейросети способностями рассуждать не хуже Аристотеля, они подозревают, что на самом деле всё проще: BERT обнаруживал поверхностные закономерности в формулировке оснований. И действительно, проанализировав свои тренировочные данные, авторы нашли довольно много свидетельств таких т.н. «ложных подсказок». К примеру, если просто выбирать все основания, содержащие частицу «не», можно правильно ответить на вопросы в 61% случаев. Вычистив все подобные закономерности из данных, учёные обнаружили, что результат BERT упал с 77 до 53 – что практически эквивалентно случайному выбору. Статья в посвящённом машинному обучению журнале The Gradient от Стэнфордской лаборатории искусственного интеллекта, сравнила BERT с «умным Гансом», лошадью, якобы сильной в арифметике.
В другой статье, "Прав по неверным причинам ", Линзен с соавторами опубликовали свидетельства того, что высокие результаты BERT в определённых тестах GLUE также можно отнести на счёт существования ложных подсказок в обучающих данных. В работу был включён альтернативный набор данных, разработанных так, чтобы лишить BERT возможности работать подобным образом. Набор данных назвали Гансом (Heuristic Analysis for Natural-Language-Inference Systems, HANS) [эвристический анализ систем, делающих заключения на основе естественного языка].
Так что же, BERT и все его родственники, штурмующие таблицы рекордов – это просто обман? Боумен соглашается с Линзеном в том, что некоторые из данных GLUE составлены неряшливо. Они заполнены когнитивными искажениями, присущими создававшими его людьми, и этим потенциально может воспользоваться мощная сеть на основе BERT. «Нет какого-то универсального трюка, который позволил бы решить все задачи в GLUE, однако существует множество возможностей „срезать углы“, которые в этом помогают, — сказал Боумен, — и модель может их найти». Но он не думает, что в основе BERT нет ничего ценного. «У нас, по-видимому, есть модель, изучившая что-то действительно интересное касательно языка, — сказал он. – Однако она определённо не умеет понимать человеческий язык в общем смысле».
Как говорит Ецзинь Чой, специалист по информатике из Вашингтонского университета и Алленовского института, один из способов стимуляции прогресса в направлении общего понимания языка – концентрироваться не только на улучшении версий BERT, но и на разработке тестов лучшего качества, а также обучающих данных, снижающих вероятность появления ненастоящих технологий в стиле «умного Ганса». Её работа исследует подход под названием «состязательная фильтрация», использующий алгоритмы для проверки обучающих данных для NLP и удаления примеров, чрезмерно часто повторяющихся или иным способом оставляющих нейросетям неявные подсказки. После такой состязательной фильтрации «эффективность BERT может значительно упасть», сказала она, а «эффективность человека падает не так сильно».
И всё же некоторые исследователи NLP считают, что даже с улучшением обучающих процедур языковым моделям всё же встретятся реальные препятствия на пути к настоящему пониманию языка. Даже с мощным претренингом, BERT не умеет идеально моделировать язык в общем случае. После подстроек он моделирует «конкретную задачу по NLP, или даже конкретный набор данных для этой задачи», — сказала Анна Роджерс, вычислительный лингвист из Лаборатории машинного текста при Массачусетском университете. Вероятно, что никакой набор обучающих данных, как бы он ни был тщательно подготовлен или аккуратно профильтрован, не сможет включить в себя все крайние случаи и непредсказуемые входные данные, с которыми легко справляются люди, использующие естественный язык.
Боумен указывает, что тяжело даже понять, что может убедить нас в том, что нейросеть достигла реального понимания языка. Стандартные тесты должны выявлять нечто обобществляемое касательно знаний тестируемого. Однако любой учащийся знает, что тесты легко обмануть. «Нам очень сложно придумывать тесты, достаточно тяжёлые и достаточно защищённые от обмана, чтобы их решение убедило нас в том, что мы действительно решили задачу в некотором аспекте языковых технологий ИИ», — сказал он.
Недавно Боумен с коллегами представили тест под названием SuperGLUE, специально разработанный так, чтобы быть сложным для систем на базе BERT. Пока что ни одна сеть не смогла обогнать в нём человека. Но даже если (или когда) это случится, значит ли это, что машины смогут научиться понимать язык лучше, чем раньше? Или просто наука станет лучше обучать машины прохождению этого теста?
«Хорошая аналогия, — сказал Боумен. – Мы придумали, как проходить тесты LSAT и MCAT, но при этом у нас может не быть квалификации для того, чтобы стать врачами или юристами». И всё же, судя по всему, именно так и двигаются исследования в области ИИ. «Шахматы казались серьёзным испытанием на интеллект до тех пор, пока мы не придумали, как написать программу для игры, — сказал он. – Мы определённо вступили в такую эпоху, когда целью стало выдумывание всё более сложных задач, представляющих понимание языка, и придумывание способов их решения».