Онтологический статус интеллект-стека: мы не устраняем inductive bias, мы приветствуем его!
Если не иметь каких-то начальных знаний о структуре мира, то потребуется гигантский объём данных для обучения
В gonzo-обзорах ML статей было высказано очень интересное наблюдение по поводу нетрансформерной архитектуры нейросети MLP-mixer (https://t.me/gonzo_ML/776): "Всё это движение, от CNN к ViT и теперь к MLP — это движение ко всё большему устранению inductive biases из модели и переход к выучиванию нужных biases из данных. В каком-то смысле это продолжает движение от классического ML к DL, когда мы отказались от предрассчитанных фич и стали выучивать их из данных. Но отказались мы тогда не полностью, потому что, например, в картинках, где оно и выстрелило первоначально, мы заложились на встроенные в архитектуру решения, те самые inductive biases, которые в случае свёрточных сетей (CNN) были про локальность фич и некоторую инвариантность к перемещению. Trade-off здесь везде понятен -- для выучивания чего-то из данных, нужно больше данных, поэтому переход к новым моделям с меньшим числом (или с менее специфичными) biases требует больше данных для достижения того же качества. Что мы и наблюдали в случае ViT — он начинал круто работать на датасетах, существенно больше ImageNet’а. В случае MLP-Mixer этот тренд логично продолжается".
В принципе, разговор не столько про inductive bias, сколько про innate priors, как об этом говорили раньше, когда речь шла об архитектуре сети. Но сейчас говорят inductive bias, объединяя туда "аппаратную работу с фичами" на уровне архитектуры сети и "программную работу с фичами" по прямой организации их выучивания (когда знают, выучивание чего нужно поддержать).
Мы в ШСМ сейчас работаем с людьми, где innate priors поддержаны в мозге аппаратно, а вот inductive biases для познания выучиваются из учебных примеров (или не выучиваются, если ты Маугли и тебя растят волки в лесу, вот там да, unsupervised learning на больших массивах данных, какие тут к чёрту inductive biases кроме выживательных в лесу!).
Это лишь подтверждает: для человека, где мы не можем использовать "непосредственное наблюдение мира на огромных данных" inductive bias таки нужно выучивать из модели, а не вычислять самостоятельно из входного потока данных в соответствии с "горьким уроком". Если у тебя случился мозг-переросток, то сможешь сделать больше вычислений, и у тебя будет прорыв в познании. Но мозг-переросток должен при этом у тебя случиться размером с часть цивилизации, разработавшей текущий набор фич, излагаемых в трансдисциплинах. То есть ты должен а) быть мозгом мощней вычислительно, чем разработчики всех поколений дисциплин интеллект-стека и б) должен иметь доступ к миру, не меньше, чем все они вместе взятые, чтобы научиться на реально большом датасете. А поскольку этого нет, то будь добр вставать на проложенные до тебя рельсы мышления, доезжай до них до фронтира познания, и уже там надейся своим собственным мозгом только чуток подхакать одну-две фичи из огромного их числа, задаваемого текущим интеллект-стеком и дисциплинами прикладных предметных областей. Ровно поэтому на обложке учебника системного мышления и нарисованы рельсы. А для систем искусственного интеллекта? Если данных много (про вычислительные мощности вопрос отдельный, их можно пытаться экономить на эффективных алгоритмах, но и тут при росте числа данных много сэкономить не удастся) -- идите в проекты, где устраняете текущий inductive bias, текущие представления о важных фичах, и пытаетесь выучить новые "с чистого листа". Но для этого нужно дикое количество входных данных. Если данных не так много, то имейте inductive bias, наиболее универсальный (интеллект -- это про универсальность!) для вашего класса задач.
Интеллект-стек -- это наш способ задания SoTA inductive bias для человека и компьютера
Поскольку с жизненным опытом и у человека и у компьютера туговато, и не хотелось бы каждому человеку предлагать обобщить свой опыт восприятия дикого мира до уровня понимания важных объектов внимания/фич/inductive biases, которые есть у цивилизации сегодня, то мы для задания inductive bias голых мозгов или даже foundational model предлагаем использовать набор мыслительных дисциплин интеллект-стека. Вот их объекты -- это и есть искомые фичи, которые нужно выучить. Нужные для разбирательства с текущими ситуациями объекты внимания, representations -- ровно они изучаются в дисциплинах интеллект-стека. А "аппаратную" (или программно-аппаратную, как в случае компьютера) архитектуру человеческих мозгов мы считаем innate prior, и можно ещё пообсуждать, что там за фичи такие в "голом необученном" мозге человека (в работе Chollet по измерению интеллекта https://arxiv.org/abs/1911.01547 именно это обсуждается, она больше про innate priors, чем про рациональный/выучиваемый познанием inductive biase).
Вместо "огромного опыта, пропускаемого через себя и построения собственных фич" берутся фичи (типы важных объектов) из курсов интеллект-стека. Это приводит к огромной экономии по данным, и на малых датасетах, доступных человеку для восприятия в ходе его жизни это решение оказывается оптимальным. Так что всё так, всё так: это трансдисциплинарное рассуждение про то, как устроено познание, его нужно упоминать в курсе по исследованиям в рамках курсов по дисциплинам интеллект-стека. А какое продолжение может быть этой истории? Горький урок: на следующем шаге развития цивилизации будет достаточно вычислительной мощности, чтобы оперативно подхакивать сам интеллект-стек, набор известных фич представления мира, "важных объектов трансдисциплин". Впрочем, мы в ШСМ за этим прислеживаем, чтобы выучиваемая SoTA текущего inductive bias была именно SoTA, наилучшим обобщением для важных объектов, причём максимально универсальным.
В онтологии это всё дискуссия про многоуровневую объективацию: какого сорта объекты/фичи мы имеем для удобства рассуждений о мире? Рассуждение этого поста оказывается ровно тем же самым рассуждением, что и о пользе/вреде/нужности:
-- foundational ontology (которая по факту встроена как-то в аппаратуру, innate priors)
-- upper ontology как inductive bias (и вечный спор классических онтологов-метафизиков, которые хотят собрать более-менее непротиворечивое формальное представление бытия/"теорию всего" против современных вычислительных онтологов, которые утверждают, что "теории всего не бывает" и в каждом неуниверсальном проекте, ибо все проекты неуниверсальны, нужно придумывать какую-то свою удобную онтологию, включая upper ontology -- иногда для подъёма скорости вычислений в ущерб точности, иногда для подъёма точности при той же скорости, ибо это будет уместно для класса проблем, с которыми пришлось столкнуться. Вот эти рассуждения про наборы данных, их размер -- вот они в этих спорах обычно не присутствуют, но они как раз сюда.
-- middle ontology как нормальный такой кругозор, но вот это все согласны, что можно менять часто, выучивать, пересматривать и так далее. Это inductive bias, но soft. Делается через finetuning каких-то foundational/language models, которые выучили "из воздуха" (из огромных данных) какой-то вариант важных фич.
На эти темы рассуждал в 2016 году Nando de Freitas (и эта линия рассуждений была прервана появлением языковых моделей, а в них появлением трансформеров, ныне всё это переименованно в foundation models), я его цитировал в тексте "Коннекционистская весна онтологической инженерии" (2016, https://ailev.livejournal.com/1283541.html) и "Глубокое обучение: читал Нандо де Фрейтаса, много думал", https://ailev.livejournal.com/1240509.html. Что тут нового в текущем результате? Попытка разобраться в "горьком уроке": на что именно нужно так много вычислительной мощности в плане универсальности. Похоже, для универсальности (то есть чтобы результаты были лучше на выявленных в self supervised learning фичах, а не на выданных в виде архитектуры фичах, а другими словами, чтобы результаты были лучше на убранных inductive bias/innate priors) вычисления тратятся не на лучшее обдумывание небольших данных, а на поиск более компактного представления для универсальной обработки огромных и ещё более огромных данных. Representation learning в чистом виде (https://ailev.livejournal.com/1045081.html). Если хотите более интересные репрезентации, попробуйте их вычислить для более широких данных.
Интеллект-стек нужен при недостатке данных/жизненного опыта, а не только компенсации малой вычислительной мощности
Фишка в том, что если у вас неограниченный ресурс времени и запас по вычислительной мощности, то вы можете влезать в это выучивание -- и пытаться проложить ваши рельсы мышления к фронтиру, или к другим континентам, или в небо прямо по бездорожью, "через богатейший опыт". И тогда ура, у вас новый SoTA интеллект-стек в наличии. Если вычислительная мощность мала, то можно использовать только раскрутку:
-- выучиваем SoTA интеллект-стек
-- если очень-очень надо, берём крошечную часть и модифицируем, чтобы добиться более универсального представления каких-то уникальных фич в тех ситуациях, куда нас вынесла жизнь. Если часть не крошечная, то не хватит вычислительных ресурсов.
Интересно, что это же рассуждение пригодно и ко множеству вычислителей, которые действуют как ансамблевый алгоритм. Перезапуск цивилизации, чтобы получить интеллект-стек получше -- это не самый рациональный путь. Изобретатели "общих теорий всего", надеющиеся, что потом их творения кто-нибудь доведёт до возможности использовать как универсальный новый интеллект-стек -- вряд ли им хватит вычислительной мощности, чтобы реализовать идею. Это примерно так же, как надеяться, что природа могла бы изобрести другие аминокислоты, другую архитектуру клетки, другую архитектуру зверей (и необязательно млекопитающих!), другую архитектуру человека, и вот он бы сотоварищи сотворили новый интеллект-стек, который был бы много круче нынешнего. Или, можно флегматично заметить, не круче, а оказался бы на тупиковой линии. Впрочем, и нынешний интеллект-стек тоже на тупиковой линии, вопрос только в том, сможет ли цивилизация добыть достаточно вычислительной мощности и достаточно данных, чтобы таки заменить его на что-то более универсальное. Да, это ровно та постановка вопроса, которую Дэвид Дойч рассматривает в "Начале бесконечности": нужны и вычислители, и данные, и тех и других должно быть много. Но если вычислитель небольшой, как показывают нам текущие исследования, то много данных и отсутствие innate priors и inductive bias приходится заменять на их присутствие, добытое предыдущими исследованиями всей цивилизации как довольно внушительного вычислителя.
Вот мы в ШСМ этим и занимаемся: меняем десятки лет жизни "для получения опыта" на короткий примерно двухлетний курс инсталляции в мозги компактного представления этого опыта, то есть уже найденных фич, того самого цивилизационного inductive bias.
К кремниевым вычислителям, впрочем, это тоже относится: если их выучивать не с полного нуля, а в качестве хотя бы начального состояния давать вот этот самый интеллект-стек (ага, пусть проходят курсы ШСМ), то это будет экономить гигантские вычислительные ресурсы и гигантское время набора данных.
И чёрт с ними, с вычислительными ресурсами. Более важным тут оказывается, что экономится время набора данных, время попадания в сотни триллионов ситуаций. Тут умощнением вычислителя (скажем, экзокортекса) не обойдётся, надо будет покупать себе полувечную жизнь, и одновременно проживать её на многих континентах, во многих трудах, чтобы собрать данные для получения реально универсальных представлений. Это будет проблематично. Поэтому интеллект-стек как результат огромного количества вычислений, добывших этот inductive bias/набор фич/важные для внимания объекты/"онтологию всего" -- он оказывается цивилизационно весьма важным, эдакая консерва результата прогресса, которая может быть упакована в одну голову и экономит лишние годы жизни на набор опыта и его осмысление.
Это не foundation model типа нынешних предобученных нейросеток, это не knowledge graph типа набираемых CYC (старт вручную, потом они должны были выучивать это всё), это какой-то explanations web (паутина объяснений), другой тип накопления знаний. В computational ontology или даже глубоком обучении таких объектов нет. У нас есть, архитектура там не стековая (ибо даже в онтологиях там решётки/lattice, которые регулярно пытаются заменить более общим DAG, ибо lattice property states that any two concept nodes have at most one minimal shared (common) ancestor and at most one maximal shared descendant -- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6070340/) как в онтологиях, но и не полностью распределённая, как в нейросетях. Представление у нас этого знания находится в серой зоне между формальным и неформальным. Ибо формализовывать нужно уж совсем что-то незыблемое, это очень дорогое дело, по факту это означает, что оцифровывать и далее формализовывать/наводить строгость на рассуждения нужно только для upper ontology (как формализованное цифровое представление сейчас в природе -- это, пожалуй, только DNA, и после неё уже идут потом только буквы, появившиеся у человека). У Дойча вот эти рассуждения про важность цифры и формализма вычислений как надёжное основание бесконечного развития, затем у Ванчурина.
Мы работаем над "серой зоной" не очень формального знания, но гармонизированного по широкому спектру задач из разных вариантов теорий. У нас надежда на то, что интеллект-стек даёт некоторое знаниевое ядро/объяснительную паутину, которая будет дообучаться/finetuning на небольшом числе примеров из реальной жизни наших выпускников.
Необходимость накопления знаний, управления конфигурацией интеллект-стека при его доработках
В этой связи интересно, как проходят обсуждения в традиционных сообществах, которые занимаются вычислениями в целом и представлением знаний в частности. Например, в чате по типам данных в языках программирования, моделирования, представления знаний обсудили сегодня (https://t.me/typeslife/14639 -- первая моя реплика в этом треде) отличия исследовательских сообществ и исследовательских проектов: в исследовательских сообществах идут исследования, и туда регулярно кто-то приходит и предлагает сторонние идеи для продолжения работы с ними. Это по факту предложение поменять текущий inductive bias в мозгах тусовки исследователей и попробовать повозиться с ним (завербовать побольше себе вычислителей), вместо того, чтобы свой вычислитель добавить для дообучения на текущем варианте теории (включая лёгкую докрутку теории). Ключевое различие поведение людей в сообществах/чатах от лабораторного поведения по отношению к "гениальным прорывам":
-- люди, делающие "гениальный прорыв", хорошо разобрались с SoTA inductive bias, то есть они хорошо образованы
-- люди делающие "гениальный прорыв" хорошо поэтому прокритиковали перед предложением сообществу свой новый вариант inductive bias (они ж знакомы с предыдущими вариантами! текущей SoTA! знают и достоинства, и недостатки), и дальше ожидают критику со стороны сообщества и потом ещё и экспериментальную проверку. Но перед этим они внятно объясняют, чем именно лучше их "потенциально новая SoTA" по сравнению со всеми известными вариантами "текущей SoTA".
У нас в ШСМ продуктивные чаты лабораторий/семинаров получились, когда мы перешли в закрытый режим, то есть случайный прохожий без знания SoTA не может прийти и предложить "я вот тут читал/написал книжку, выкиньте то, чем занимаетесь, займитесь моей идеей". Как только мы свои лабораторные чаты закрыли, дело сразу пошло. Надо было их закрыть раньше, много времени потеряно. Но это не означает, что результаты обсуждений недоступны, недоступны идеи по улучшению интеллек-стека с текущего SoTA на следующий уровень, завтрашний. Делёжка знаниями идёт двумя путями: знание попадает в курсы (и туда можно прийти и забрать это новое знание), а полуфабрикаты попадают иногда на видео (вот тут много можно найти много видео с наших семинаров/лабораторий: https://www.youtube.com/channel/UCJ0Uq_WB7GLmY-NTz2oFoUQ/videos). В любом случае, стабильность и проверенность текущего варианта inductive bias/интеллект-стека -- это важно, это ценность, это нужно беречь, нужно иметь какое-то управление конфигурацией и изменениями, хотя бы в рамках границы организации как коллективного агента. Тусовка (как мы учим в курсе системного менеджмента) тем и отличается от оргзвена, что:
-- никто не может распоряжаться чужим ресурсом, а это означает, что нет способа разделить труд и разделить работы по созданию хоть чего-нибудь. Работы будут делаться и разделяться ad hoc, и вовсе необязательно при этом будут выполнены все необходимые. В организациях (то есть где люди организованы, то есть понятно что кому когда в каких объемах может поручить) есть как минимум issue tracker для учёта работ
-- и для управлением конфигурацией есть система ведения версий, к которой привязан этот issue tracker, и baseline/базис там может через нормальный commit поменять не любой проходящий мимо человек. Если у вас там какая-то версия термодинамики, то вы в организации не можете попасть в ситуацию, когда проходящий мимо школьник вдруг говорит, "я вчера читал клёвую книгу по флогистону, и ночью мне приснилась идея, как эту теорию улучшить -- давайте поисследуем, а? Вот я уже в систему ведения версий вашей лаборатории положил свой вариант вместо ваших текущих идей, моя-то идея лучше! Хотя вашу я не читал, но это же неважно, истина живёт в любом месте, и почему бы не у меня! Я слышал много историй, где такие же безграмотные как я начинали и выигрывали!". Вот в нормальных местах такого нету. Хочешь творить -- открывай свою лабораторию, при этом если будешь использовать лабораторию как площадку для вербовки в свои исследования, то до этого не дойдёт: ты ж внутрь не попадёшь, с тобой, безграмотным, там и разговаривать не будут! Сначала докажи, что знаком с текущими результатами и понимаешь, в чём они плохи (обычно люди в лаборатории и сами понимают, в чём они плохи, ибо были бы они хороши -- зачем им пахать в лаборатории? Пользовались бы текущим знанием, и всё!).
Это всё можно развивать для оргзвеньев из одного человека, из пяти-шести человек одной лаборатории, из НИИ на много сотен человек (включая существующие в форме каких-то необычных организаций типа OpenAI), тут форма неважна. Главное, что есть внешняя среда с непонятными идеями по поводу интеллект-стека как SoTA, и есть внутренняя среда, где идеи понятны и сформулированы. И нужно как-то блюсти идентичность. Это как раз разбирается в новых "термодинамических" моделях, например в ActInf с их Markov blanket. Идея исследований, поддерживаемых как-то "тусовками" развалилась, вот я в ноябре 2021 писал об этом в первой же строчке обзора "Исследования ШСМ, ноябрь 2021", https://ailev.livejournal.com/1590542.html
Неудача формальных представлений интеллект-стека
Идея чата по типам в языках программирования была (как видно из заголовка) в том, чтобы поисследовать вот эту почти помершую уже идею онтологического описания мира как средства представления нашего SoTA интеллект-стека. Использовать язык программирования с его системой типов как foundational ontology, как inductive bias, который позволит нам по-быстрому разбираться с важными в мире объектами.
Название предлагалось мной исходя из мысли, что формальная типизация языков программирования меняется на менее формальную языков моделирования и ещё менее формальную (не как в good old AI на Прологе, а как в современных нейросетях, работающих с естественным языком). Но собрались тут люди, которые в сторону relax типизации вообще не смотрят, а движение у них ровно наоборот, в сторону закручивания гаек формализации. Понятна их история, понятны их интересы, понятно всё — но моделирование и представление знаний в этом направлении где-то с 2012 года больше не живёт. Мощное движение "онтологов-логиков" где-то померло в 2013 году, работ 2014 года значимых уже нет, полная зима и ледниковый период, остались только академические исследования за деньги налогоплательщиков. Ровно в 2015 году я на излёте этого онтологического движения закончил проект dot15926 (dot15926.livejournal.com) и попал в попечительский совет Ontolog Forum вот просто ровно 19 декабря 2015, https://ailev.livejournal.com/1235590.html. Я писал тогда в 2015 в посте "Символьные онтологии и распределённые представления: нужны оба двое" ровно то же, что мог бы написать и сейчас: "Я не думаю, что онтологии быстро куда-то исчезнут. Отнюдь. Они просто перестают быть фронтиром и тем самым число активно занимающихся ими людей не будет быстро расти. Пять лет назад это было остромодно, теперь ontology engineering вышло на плато, а остромодным становится распределённое представление знаний. Всё, что я могу сделать в этом попечительском совете, так это обратить внимание на необходимость в computational ontology активней работать также и с распределёнными представлениями онтологий, не ограничиваться только логическими представлениями. Но это, конечно, terra incognita, этим практически никто пока не занимается". Ну, Ontolog Forum разворачивается в сторону распределённых представлений более чем медленно. Там всё-таки хранят традицию старой онтологической работы.
Представление знаний интеллект-стека в не очень строгом/полуформальном/уровня псевдокода виде в человеческой голове
Поэтому я повздыхал-повздыхал, но системным моделированием нужно было заниматься, и интеллект-стек как-то привносить в работу. Оказалось интересным мета-мета-метамодель и мета-мета-модель держать в голове человека (распределённое абсолютно неформальное представление), а вот мета-модель уже документировать, но тоже в не слишком формальной форме: колонок в табличках. Другое дело, что в моделере эти колонки таблички вполне могут служить и формальной моделью, таблички могут быть таблицами реляционного представления (со всеми недостатками и достоинствами, которые разбирал Chris Partridge в своей BORO book), и это всё можно провернуть вместо работы с сугубо формальными представлениями высокоуровневых онтологий, и это даже очень круто работает на практике.
А далее можно из этого важного выбирать что там нашлось супер-супер-важного и формализацию налаживать уже в этом. Силы на формализацию нужно тратить только того, что гиперважно. Но вот нахождение этого обычно многоуровнево и многостадийно, поэтому основная работа идёт не в полной неформальности, но и не в полной формальности. А этой "серой зоной" мало кто занимается. Вот мы там копаемся, и получаем результаты для практики.
И инструментарий там специфический. Вот мы провели месяц назад семинар ШСМ по опыту использования coda.io (https://www.youtube.com/watch?v=0_WycjiSbJg). И вот (https://ailev.livejournal.com/1593746.html) заметки про этот инструментарий работы с типами в "серой зоне" с этого семинара, это ж как раз заметки по использованию многоуровневой организации inductive bias по пересадке из мозгов в классические структуры данных даже ещё "доонтологической" эры (то есть в модели базы данных):
-- coda.io это инструмент моделирования: мета-мета-модель это наша новация (поддерживается курсами ШСМ), метамодель делается с участием subject expert и по факту это один из изводов DDD, операционная модель делается "просто сотрудниками". Важно: владелец мета-мета-модели (методолог/онтолог/когнитолог) ведёт беседу с subject expert и заставляет отмоделировать его предмет более полно, чем отмоделировал бы сам специалист в своём предмете. Мета-мета-модель содержит в себе чеклист моделирования как такового (foundation ontology, upper ontology и в случае трудового кругозора даже часть middle ontology), это позволяет делать более качественные предметные мета-модели. Сама coda.io понимает важность мета-моделей, но там "стихийная шаблонизация" ad hoc, качество получаемых моделей проверяется subject expert не в момент проектирования, а только методом проб и ошибок.
-- получаемые "двухэтажные" связки мета-модель+модель по факту нужно рассматривать в рамках парадигмы DevOps (в смысле единства ведения разработки и эксплуатации) и digital twins (ибо в число моделей разработки, главными из которых являются архитектурные модели, включаются модели операционные, времени эксплуатации/operations).
-- изначально coda.io была нацелена на ведение блогов, то есть публикацию доков в открытый доступ. А потом всё переориентировалось, и сейчас мы имеем доки для интранета, а не интернета. Но ограничения остались. Мы же понимаем, что блоги могут существовать на двух уровнях: блоги модели и блоги метамодели. Блоги метамодели в coda.io -- это вполне себе "мышление моделированием", такой вот производственный zettelkasten. Что напрочь отсутствует и нужно как-то прикручивать болтами сбоку (или искать в каких-то опциях): управление конфигурацией моделей, возможность хотя бы откатиться на предыдущую версию метамодели после неудачных групповых правок командой шустрых мейкеров (wiki как раз выжило, ибо для ситуации коллективного редактирования гипертекста предоставлялись возможности откатки до предыдущих версий каждой страницы и возможность посмотреть, какие изменения и кем были сделаны в каждой следующей версии -- иначе не разобраться). Без решения вопроса об управлении конфигурацией разработка в coda.io опасна.
-- программирование на нормальных языках в coda.io делается просто: обработка ведётся во внешних по отношению к coda.io системах, которые цепляются через стандартные коннекторы. Coda.io тем самым используется главным образом для моделирования, а не обработки (low code как моделер, а code при потребности немедленно уходит в другие системы, где этим могут заняться специально обученные люди.
-- При этом не путаем: low code тут означает "возможности для продвинутого пользователя", но не "визуальный интерфейс с квадратиками и стрелочками". Визуальный интерфейс, признали, играет важную психологическую роль. Как когда-то говорил Eric Raymond хакерам: "на собеседование в крупные фирмы одевайтесь не как вы обычно, а как одеваются хакеры в Голливуде". Вот и тут: демонстрируйте вашу работу не в реляционном (таблицы, rich text) виде, как вы её делаете, а лубочными картинками из квадратиков и стрелочек, как это принято у насмотревшихся Голливудских фильмов об айтишниках менеджеров.
-- мы ни разу не лояльны coda.io, но это лучший по отношению цена/качество на сегодня моделер. Если убрать цену, то Иван Падабед считает на сегодня лучшим fibery.io, и вот полуторагодичной давности сравнение: https://fibery.io/blog/fibery-vs-coda-the-power-of-workarounds/. А цена? Вы не обойдётесь несколькими платными мейкерами на организацию, платить придётся за всех прикоснувшихся. Было бы интересно, если бы кто-то покопал сегодняшнее состояние.
Текущий вариант вошёл в учебник "Системное мышление 2022", курс "Системный менеджмент 2021" и т.д.. Вот я опубликовал фрагмент текста про эту многоуровневую объективацию/задание inductive bias как многоуровневую работу с типами: https://ailev.livejournal.com/1594529.html (и обратите внимание, как это отличается от захода на системное моделирование, который делался много лет по заветам старых онтологов-формалистов с SysMoLan, всё это пригодится только потом, когда нужно будет формализовать только самое-самое важное -- цепочка текстов о SysMoLan как "выражение 81346 как eDSL" была в https://ailev.livejournal.com/1443879.html, можно начинать с прерванного места. Замечу, что в PLM системах до сих пор ровно вот это и развивают, "вендор-зависимо").
От строгости мы не отказываемся, но фронтир сейчас -- хорошие методы работы с нестрогими представлениями
Чат, о котором я упоминал, оказался про "строгая типизация в языках программирования, моделирования, представлениях знаний, и ещё более строгая, чем вы думаете". Там было много обсуждений, и на первых порах, и на вторых, но для наших целей они оказались бесплодны. Вот эта попытка развернуть "формалистов" к обсуждению задач моделирования жизни, закончилась она ничем, старт там был в августе 2019 года: https://ailev.livejournal.com/1486665.html, https://ailev.livejournal.com/1487293.html, https://ailev.livejournal.com/1488488.html, https://ailev.livejournal.com/1489546.html
Слово "формализм" можно рассматривать как 1. указание на строгость, или как 2. указание на объекты foundational ontology, определяемые с произвольной строгостью ("формализм женевской нотации" в химии про метод записи, а не про математическую строгость), "метод описания", viewpoint. Трактовка "формализма" как "метода описания" для мета-моделирования (мета-мета-мета-моделирования в нашем случае моделирования жизни) — это уже семантика, ближе к лингвистике, как каждая тусовка понимает язык, это не онтологическое рассмотрение. И тусовка чата "по знакомости слова" (там же сплошные любители теории категорий, мат.логики и прочих строгих рассмотрений) приняла "формализм" в первом словарном значении, как указание на строгость, а я во втором -- как указание на объекты foundational ontology (типы языка программирования, в которых потом нужно писать upper ontology и middle ontology), но определяемые с произвольной строгостью, ибо "за decidability не платят, платят за выразительность" (так когда-то выразился кто-то из онтологов, когда ему попытались попенять на то, что у него недостаточно формальная система. Суть ответа была в том, что полностью формальной системой многообразие жизни не опишешь, сложность в узкий формализм не помещается, и нужно строгость relax).
"Формализм" онтологический в тусовке онтологов — это до сих пор логика (при этом в части языков программирования буквально вчера John Sowa приводил пример работ 10-летней давности на Prolog и говорил, что Semantic Web далеко туда не доезжает даже сегодня, хотя формально под Semantic Web лежат логические пруверы и это всё эквивалентно Prolog. Значит, дело не только в использовании логического представления знаний по сравнению с какими другими "формализмами", а хоть и теории категорий или чего-то новомодного из топологических типов, https://groups.google.com/g/ontology-summit/c/S8md0bEwsCw/m/p1TYKV_ACgAJ).
Так что мы как-то вот так и пойдём дальше, "в серой зоне" между Сциллой формализма и Харибдой полной неформальности, используя распределённые представления в мозгах и реляционные строгие структуры в моделерах типа coda.io -- и так победим в довольно широком классе задач. Это наш подход к работе с inductive bias, наш системный ответ: мы смотрим на систему из людей и компьютеров в целом, и учитываем inductive bias на многих уровнях, не только уровне архитектуры нейросети как в том примере, с которого я начал свой текст.
Вопрос со строгими представлениями в инженерии и прочем не закрыт, это очевидно. Но вот с полустрогими, "серыми" представлениями -- огромная дыра, так это факт. Хотя там не серое, там "рябенькое", по большому счёту, но и это не "заднее слово": https://ailev.livejournal.com/1464563.html. И работать нам нужно не только по научению компьютеров, но и по научению людей, а мозг автодиффом не накроешь. Вот мы и используем интеллект-стек, чтобы предобучить мозг перед дальнейшими формализациями, а формализованное потом скидываем в экзокортекс, пусть с ним потом компьютер справляется, ему это легче.
Не уверен, что донёс идею, но я хотя бы попытался. Я думаю, что суть интеллект-стека многими не понимается, идея воспринимается многими людьми просто как набор учебных курсов типа обычного университетского, и зачем и почему этот стек создан вот таким, а не другим, не понимается. Это ещё одна попытка объяснить то, что мы делаем по части интеллект-стека.
Так что считайте этот текст непопсовым дополнением к "Образованию для образованных 2021". И я точно знаю, что есть несколько человек, которые способы всё это прочесть и понять. Для них и пишу.
UPDATE: обсуждение в AGI Russia с https://t.me/agirussia/30481, чате блога с https://t.me/ailev_blog_discussion/11994, https://www.facebook.com/groups/agirussia/posts/4869466629758543/