Искусственный интеллект превзошел человека в тесте на понимание текста, но радоваться рано
Вчера мир облетела новость, что система искусственного интеллекта (ИИ) обошла человека в тесте на понимание теста. Сообщение претендует на сенсацию, поэтому я решил копнуть несколько глубже своих собратьев по перу и выяснить подробности. Итак, речь идет об одном из тестов, который называется Stanford Question Answering Dataset (SQuAD). Разработал его Пранав Раджпуркар (Pranav Rajpurkar) из Стэнфордского университета. Тестом я называю его условно — по-английски это именуется «reading comprehension dataset», или датасет (набор данных) для понимания смысла в читаемом тексте. Поскольку нынешние системы ИИ с задачей распознавания (преобразования в письменный текст) устной речи справляются уже не хуже человека, то уместно говорить о понимании смысла текста вообще. А это, на мой взгляд, самая важная и сложная задача в области искусственного интеллекта.
SQuAD содержит тексты размером с небольшой абзац, набранные из свыше пятисот англоязычных статей Википедии, а также больше ста тысяч вопросов и ответов к ним. База делится на три части: 80% данных предназначены для тренировки обучаемой нейросети, 10% — для её «калибровки», а оставшиеся 10% зарезервированы для прохождения теста (и поэтому недоступны разработчикам).
Для оценки результатов теста предназначены две метрики: ExactMatch (EM) и F1. Первая оценивает результат самым простым способом — если ответ тестируемой системы ИИ точно совпадает с правильным, то результат засчитывается, если нет — то нет. В свою очередь в F1 учитывается разброс (вероятно что-то вроде смысловой дистанции) между ответом ИИ и правильным ответом.
В метриках EM и F1 среднестатистический результат человека составляет соответственно 82.304% и 91.221%. В августе 2016 года появились первые результаты — 54.505% и 67.748%. С тех пор они планомерно улучшались, и на днях в метрике EM превзошли человека с результатами 82.65% и 82.44%. Первый 3 января был представлен Microsoft Research Asia, а второй 5 января — Alibaba iDST NLP. Во второй метрике разработки обеих организаций до человеческого уровня по-прежнему не дотягивают — 88.493% и 88.607%.
Наверняка в ближайшее время будет преодолен и этот рубеж, но едва ли можно говорить о серьезных достижениях в области понимания смысла в тексте — его как не было, так и нет. Речь идет скорее о лингвистических способностях натренированных нейросетей — то, о чем их спрашивают, они не понимают, а угадывают, исходя из выявленных взаимосвязей между текстом, вопросом и правильным ответом в наборе из ста тысяч примеров. Причем судя по просмотренным мною примерам, ИИ в данном тесте имеет дело лишь с довольно примитивными вопросами, ответы на которые не выходят за пределы одного предложения.
Рассмотрим конкретный пример:
Одной из самых знаменитых уроженок Варшавы была Мария Склодовская-Кюри, получившая международное признание за исследования в области радиоактивности и ставшая первой среди женщин лауреатом Нобелевской премии. В числе знаменитых музыкантов — Владислав Шпильман и Фредерик Шопен. Хотя Шопен родился в деревне Желязова-Воля в 60 км от Варшавы, его семья переехала в город когда он был в возрасте семи месяцев. Здесь также родился в 1745 году Казимир Пулавский, польский генерал и герой войны за независимость США.
К данному тексту прилагаются следующие вопросы с ответами:
- Лауреатом чего первой среди женщин стала Мария Склодовская-Кюри? (Нобелевской премии)
- В каком году родился Казимир Пулавский? (1745)
- Кем был Фредерик Шопен? (знаменитым музыкантом)
- В каком возрасте был Шопен, когда его семья переехала в Варшаву? (семь месяцев)
Казалось бы ничего сложного, но например в одном из прохождений этого теста на вопрос «Кем был Фредерик Шопен?» одна из программ вместо «знаменитым музыкантом» ответила «Владиславом Шпильманом». И такими ошибками выложенные в открытом доступе примеры изобилуют. Тем более сомнительно, что нынешний высокий результат будет получен в более сложных вопросах. Зададим такой: «За свободу какой страны боролся один из соотечественников Шопена?» Чтобы правильно на него отметить, программе надо уметь:
- связать между собой понятия боролся и герой войны, независимость и свобода
- понимать смысл слова соотечественник
- объединить сведения из двух разных предложений.
А до этого, судя по всему, еще очень далеко.