Машинный интеллект на начало февраля 2022: до сих пор непонятно, как оценивать
ailev — 04.02.2022 Я вчера посмотрел доклад Douglas Lenat (CYC) про его путь ошибок символического подхода к машинному интеллекту, беседу двух тьюринговских лауреатов (LeCun и Raj Reddy) про проблемы машинного интеллекта и ещё почитал про AlphaCode от DeepMind о нежити как олимпиадном программисте среднего уровня и поглядел танцы Spot из Boston Dynamics. Всё-таки живём мы в восхитительный момент в истории человечества, наблюдать за историей машинного интеллекта в разы и разы интересней, чем смотреть даже научную фантастику: и идей не меньше, и интриги не меньше.CYC никуда не делся, продолжает делать и исправлять свои ошибки
В своём докладе "Representation and Reasoning Lessons Learned in Building Cyc" (https://ontologforum.org/index.php/ConferenceCall_2022_02_02, слайды и запись должны будут появиться через несколько дней). Douglas Lenat сказал, что CYC продолжает работать над символическим подходом к машинному интеллекту. В команде продолжают работать 50 человек, работают они без грантов и прочей господдержки, предметная область вроде как поменялась с терроризма (хотя примеров оттуда было более чем достаточно) на медицину. И вроде как успех-успех, хотя и вполне умеренней. IBM Watson как шедший в том же направлении работы с естественным языком он пожалел: успехи там были, но люди из маркетинга нарисовали картинку нереальной крутизны, и сравнение шло не с SoTA ("мы лучше других машин"), а с нарисованным маркетингом ожиданием ("мы лучше всех людей"), после чего бизнес закрыл эту историю (IBM по-тихому продала IBM Watson). CYC такой ошибки не делал, не изображал из себя "решателя всех проблем, и быстро, и вот прямо сейчас", поэтому до сих пор как-то живёт. В докладе были кратко прокомментированы достоинства символьного (а не нейросетевого) вывода, и ошибки, которые Douglas Lenat посчитал ошибками. Достоинства всем известны: работа с причинностью, а также представление нескольких потенциальных причин с аргументами "за" и "против" (после чего можно проводить эксперименты в реальном мире по поводу поддержки этих аргументов), абсолютно очевидно как достигается канемановское мышление S2 и в целом решения не хрупкие/brittle (то есть нет вот прямо уж совсем нелепых ошибок на ровном месте, как у нейронных сетей). При этом если цепочка причинности на 10 хопов/hops в графе причинности, то это вполне себе берётся, а если в доказательстве 10000 шагов, то доказанное будет таки верным и каждый раз идти одним и тем же путём, для аналоговых систем такое не слишком доступно.
Дальше весь доклад был про ошибки. Вот буквально несколько примеров ошибок (в докладе их было много больше), но я перескажу их чуть в другом языке, чем использовал сам Lenat:
-- common sence (здравый смысл) это не то, что вы можете найти в текстах (то есть закодировать тексты энциклопедий недостаточно), это то, что знает читатель текстов, чтобы понимать тексты. Грубо говоря, оказалось, что вручную они должны закодировать не энциклопедии в количестве, как считалось на старте проекта в 1984 году, а что-то из мозгов читателя, а потом CYC прочтёт вот эти тексты энциклопедий. И они закодировали, и там более-менее уже успех. Как узнали? Когда они пришли в медицину, то потребовалось добавить только 5% правил собственно медицинских, а 95% уже в базе знаний CYC было. Интеллект -- это 95% их базы, а прикладное знание медицины -- 5%.
-- оказалось, что не нужно агонизировать по поводу кривизны upper ontology. Это просто вопрос эффективности: чем лучше представление знаний, тем меньше вычислять. Но если онтология крива в смысле понятий, то в ней всё одно можно выразить то, что нужно, хотя это будет более длинно и вычислять нужно будет больше. Но если слишком долго разрабатывать саму онтологию, то можно вообще не дойти до эффективных вычислений. Как всегда, это exploration vs. exploitation, и важно не переборщить с exploration.
-- все эти триплет-представления и даже логика первого порядка -- это морок из-за "проблемы двух языков". С одной стороны, требуется выразительность языка для представления знаний, а с другой стороны -- самые выразительные языки тупо медленны. Как они решили проблему? Выразительность победила: они перешли на язык программирования (CycL), в котором использовали логику высших порядков с заведомо медленными вычислениями (или даже отсутствием теоретической вычислимости). И отдельно начали разрабатывать ускорители вычислений на базе разных эвристик (теорема о бесплатном обеде: универсального алгоритма не существует). Они разработали 1100 ускорителей-оптимизаторов, часть на нейронных сетях. А потом тихо убили модуль общего вывода, который практически перестал давать результаты. То есть раньше это были ускорители к главному алгоритму, а теперь там кроме ускорителей ничего и нет. И ускорители, как всегда, решают проблему перевода представления в язык, более близкий к машинному. По этому пути потом легко и квантовый ускоритель воткнуть, и оптический, и нейросетевой (уже!) и простейший SAT solver.
-- долго пытались добиться того, чтобы наиболее эффективно показать знания человеку в виде графа, потом в виде таблиц с иерархиями, потом в виде каких-то текстов, а потом оказалось, что это бесполезно, и реализовалась та же идея, что с ускорителями: множественность представлений знания, а "главного/единого языка представления знаний" нет (тем более что дальше все эти представления должны будут конвертироваться в представления для разных ускорителей).
-- они поняли, что без контекста никакое высказывание не имеет не только смысла, но и значения. И дальше разработали хоть как-то работающий механизм микротеорий. И это самое крутое, что позволило продвинуться в работе. В том числе это отвечает и на вопрос, почему upper ontology не срабатывает: потому что в ней нет контекстов! Для меня это выход в системность: там ведь контексты внутри контекстов внутри контекстов. В системном мышлении мы говорим о системе и её среде, в аналоге такого мышления для мира описаний -- о тексте и контексте. Текста без контекста не существует, как и системы без среды. Но в мире взаимодействие среды и системы осуществляет вселенная по законам физики, а в описаниях -- вычислитель по "законам" какого-то алгоритма Вот фрагмент дискуссии по ходу доклада в чате: "Mike Bennett: Do you define 'context' as a nexus of concepts and / or instances of concepts, or is it defined in some other way? John Sowa: Mike, important point about context: everybody who tried to define context failed. It's impossible to give a definition of context that is independent of the context". Ещё одно замечание от John Sowa: нейросети не равны ML, и это тупик, ибо нейросети просто аппроксимируют (выучивают) функцию X от Y (monadic), а надо учитывать diadic и triadic функции, ибо они как раз и дают учёт целей и тем самы пользы как учёт контекста. ML может работать с контекстом, а нейросеть -- нет. И Lenat в целом с этим согласился. А я бы тут поспорил, ибо что-то не видел сферической нейросети в вакууме, на них же делают вполне себе программирование и более сложные системы с ML! Но эта вот линия про контекст оказывается той же самой, про демиурга: заниматься нужно миром, контекстом, без него разбирательство с агентом не получится.
-- из возможных ошибок будущего: хотят раскрыть какую-то часть CYC для исследователей, чтобы хоть как-то распространить подход, но боятся, что утечёт в сеть коммерческий продукт, "бесценное знание, закодированное вручную". И ещё отследили, что ход на совсем уж всеобщность и универсальность ошибочен, и пытаются для каждого клиента делать специализированное решение вместо излишне универсального (и этот перегиб в универсальность у них, похоже, в каждом проекте).
Для меня тут само производство новых ускорителей и новых микротеорий -- это функции интеллекта, и если это делает не сам CYC, то он не движется к AGI. Но никаких разговоров типа AutoML я не услышал. Скорее всего, просто это было offtop, вряд ли такая тема прошла мимо Lenat.
Как говорить о будущем машинного интеллекта непонятно: не знаем, как описывать прогресс, экзамены не работают!
И встык с этим я прослушал свеженькое выступление двух тьюринговских лауреатов (LeCun и Raj Reddy) по поводу будущего исскусственного интеллекта: https://youtu.be/4a6ZC70Gkgg. Тут самое интересное -- акцент на то, что непонятно как измерять прогресс. "Тесты", которые указываются как доказательство достижения, то есть "сдал экзамен -- доказал умность" стабильно проходятся, но тут же объявляются неправильными, поэтому предлагаются новые тесты, они тоже проходятся, и так будет всегда (ибо понятно уже: если известно, какой именно ЕГЭ, на него всегда можно натаскать. Даже медведя можно научить ездить на велосипеде!).
Скажем, представители символьного AI указывали, что нейросетки не могут работать со схемами Винограда, https://en.wikipedia.org/wiki/Winograd_schema_challenge, (и точно, первые сетки этого не умели!), ибо для этого нужно иметь вот этот самый common sense и способность к логике, как у CYC -- но у нейросеток этого нету! А потом появились языковые модели, в которых кроме моделей языка появилась и модель мира -- и неожиданно оказалось, что современные хорошо обученные нейросетки демонстрируют работу с этими схемами на уровне обычного человека. И тут заговорили что это не слишком хороший тест. Тест Тьюринга тоже был пройден давно: сначала он был хороший, а теперь тоже пройден, и стал плохим. То же с распознаванием изображений, то же с ответами на вопросы, то же со сдачей школьных и даже вузовских экзаменов. То же с игрой Go и стратегическими видеоиграми. И батареями тестов типа SuperGLUE (там тоже уже человечьи результаты превзойдены, https://super.gluebenchmark.com/leaderboard). И так происходит практически со всеми тестами, поэтому проблема -- непонятно, как измерять интеллект. Как я их понимаю! Для людей ведь ровно те же проблемы: взять хотя бы девочку Алису, которая сдала ЕГЭ в 9 лет, но оказалось, что это просто память у неё хороша (натаскана на работу с мнемотехникой), а интеллект таки девятилетки!
Ещё одно интересное замечание LeCun в том, как он определяет автономного агента: это который не имеет аппаратно встроенного плана достижения цели (есть-то он хочет, а вот как накормить себя -- этого в аппаратуре нет, нужно как-то придумать план и реализовать его, если удастся). Грубо говоря, если внутри есть составление алгоритма и потом исполнение алгоритма -- это автономный агент. А если нет составления алгоритма, а только исполнение (как я понимаю, ситуация с подкручиванием параметров -- это всё-таки не "составление алгоритма"), то не автономный агент. Нет автономности -- не говорим об интеллекте (ибо интеллект это про создание алгоритмов!).
Третья работа вчерашнего дня -- это AlphaCode от DeepMind, https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode. Это прямой ответ на вопрос про составление алгоритмов, то есть ближе всего к "интеллекту". Задача из той же серии "вы говорили, что у AI на нейросетках не получится писать коды, так вот вам софтина, которая читает задания на естественном языке с олимпиад по программированию, и решает задачи на уровне среднего программиста" (AlphaCode входит в лучшие 54% программеров, то есть 46% живых участников программистских олимпиад решают задачки по кодированию хуже, чем эта нежить). И, конечно, там не только нейросетки, да и сеток наверняка несколько, что сразу даёт другой системный уровень. Дальше мы уже знаем, что будет: через некоторое время AlphaCode во второй или третьей версии обгонит всех человеков, и человеки скажут "ну и что, это всё одно не интеллект ещё!". Но тут помним CYC, что там этих "контекстов/микротеорий" чёртова туча (25 тысяч, то есть 25 тысяч предметных областей, вот тут я про эти "онтолеты" как applet вместо application пишу, или они же будут онтиками -- это я в 2011 году, до всех нейросетей, https://ailev.livejournal.com/909758.html), ускорителей с эвристиками вывода там 1100, и это всё вполне счётные вещи. Выиграет, как водится, посредник: как в случае музыки и кино это будет тот, кто соберёт все знания и все виды ускорителей в какой-то "маркетплейс" и будет торговать этой толпой в розницу. Ах, я описываю "биржу труда", сайт поиска работы для нежити! Но архитектуры, которая делает изо всего подобного большую думалку, пока нет (хотя CYC выглядит ровно такой архитектурой, но там сама сверхумность пока проблематична, она требует совсем других расходов, что сверхумность нейросеток. И непонятно, если вложить те миллиарды долларов, которые тратят на нейросетевые архитектуры, можно ли "вручную" будет получить что-то интересное на базе CYC или аналогичной символической системы. Но это уже бизнес-вопрос, и пусть его решают владельцы этих миллиардов).
Ещё одна интересная работа -- это танцы робота Spot от Boston Dynamics, там продемонстрировано ещё некоторое количество интересных динамических балансов: https://www.youtube.com/watch?v=3hvWhE8nKwA. Это важно, потому как потихоньку приближается решение парадокса Моравека: какая-нибудь муха без интеллекта отлично двигается, и даже в воздухе, а роботы двигаются из рук (ног, крыльев, хвостов) вон как плохо. Парадокс в том, что даже человек рассуждает логически плохо, нестабильно, с ошибками, а машина это делает отлично! Но вот потихонечку развивается неполноприводная робототехника (http://underactuated.mit.edu/intro.html), а составление плана действий тоже существенно продвинулось (по большому счёту, олимпиады по программированию -- это как раз олимпиады по составлению планов!).
Так что берём железо типа Spot, добавляем софт типа AlphaCode, новое поколение ускорителей для нейросеток на аналоговых схемах (их сейчас много, типа https://semiwiki.com/ip/306735-embedded-logic-nvm-solutions-for-al-chips/ или https://techxplore.com/news/2022-01-world-mram-based-in-memory.amp, это тренд), и вполне получаем в 2025 году ответ на на шмитхуберовский capucin challenge. Помним, что Шмитхубер сказал в июле 2015 году, что через десять лет парадокс Моравека будет преодолён: In order to pick a fruit at the top of a tree, Capuchin monkey plans a sequence of sub-goals (e.g., walk to the tree, climb the tree, grab the fruit, …) effortlessly. We will have machines with animal-level intelligence in 10 years, https://sites.google.com/site/deepernn/home/blog/briefsummaryofthepaneldiscussionatdlworkshopicml2015. Добавьте сюда пару лет прерывания нормальной жизни на локдауны, но человечество, похоже, в предложенный Шмитхубером график вполне укладывается.
Так что пока в мире нейросетей с пониманием плохо, а с умением уже более-менее хорошо, даже умением программировать (нейросетка в бессознанке даёт более-менее правильные ответы, но хрупка и объяснить-мотивировать аргументированно своё решение не может). Ну, из работ по обучению я помню, что пониманию учить вдвое больше, чем собственно навыку (подробней писал тут -- https://ailev.livejournal.com/1285014.html). То есть нужно примерно вдвое больше вычислительных ресурсов, и учёта того, что потребуется предъявлять понимание. ОК, это сделают, работы-то уже идут.
Итого: больше интеллектов хороших и разных, они в пути, они к нам идут, и идут быстро! Непонятно только, куда именно: эволюция бежит одновременно во все стороны.
Пара выводов для наших проектов: продолжаем не поддаваться на провокации и задумываемся про text in context vs. system in environment
На провокации по "покажите, как вы оцениваете то, что поднимаете интеллект ваших выпускников" не поддаёмся, внятного ответа у человечества на вопрос оценки прогресса в интеллекте до сих пор нет, поэтому продолжаем просто учить людей решать отдельные важные задачи (даём интеллект-стек, а затем много-много прикладных курсов). Для меня изложенное в текущем тексте подтверждает выводы "Измерение интеллекта: занимаемся миром/средой/окружением/контекстами/domain, становимся демиургами https://ailev.livejournal.com/1609242.html и "Как определить, правда ли, что мы делаем людей умнее?" https://ailev.livejournal.com/1604070.html.
Намечается тропинка к системному подходу в описаниях, по линии текст-контекст примерно такой же, как система-среда, только в первом случае там работает какой-то вычислитель (физика, представляемая алгоритмом), а во втором "просто физика". С этого места уже можно как-то думать, что там общего, а в чём разница (и абсолютно понятно, почему привыкшие работать с описаниями модельеры говорят иногда context, а не environment для системы. Мы на эту путаницу не ведёмся). Это ставим на заметку в план исследований по линии системного мышления/системного моделирования.
UPDATE: обсуждение в чате блога с https://t.me/ailev_blog_discussion/13247
|
</> |