Онтологическая инженерия в 2023: уже запах нафталина или ещё нет?

В октябре 2022 я сделал подборку материалов по онтологической инженерии Онтологическая инженерия в 2022: ailev — LiveJournal. Прошёл почти год, и вот некоторое обновление моего понимания происходящего. Попробуем обсудить ещё раз, что такое “онтология” в отличие от “модели” (то есть дать “онтологию моделирования как включающую онтологию онтологизирования”). Текст больше для меня и немногих спецов, разбиравшихся в онтологиях (скажем, знающих про OWL – что там внутри, а не только название) и разбирающихся в LLM (скажем, знакомых с LoRA). Про многие из поминающихся в этом тексте практики можно прочесть со ссылками на литературу в курсе “Интеллект-стек” (все эти Software 2.0 и Software 3.0, и многое другое), но часть идей излагаю первый раз – это сформулировалось за последний год. Надо будет над этим ещё поразмыслить, а потом спланироваться: разобраться с собственными планами движения в области инженерии знаний/онтологической инженерии. У меня предстоят осенью дебаты с John Sowa, будем считать, что этот текст написано в порядке подготовки к этим дебатам. Опять же, инженерии знаний (познанию/исследованиям aka моделированию aka с выходом на изменения мира – творчеству) надо учить. Но почему надо, зачем учить, кого учить, чему учить и как учить?

“Онтология” (вернее, онтологическое описание) – это информационная модель мира. John Sowa пишет в https://groups.google.com/g/ontolog-forum/c/bRNtvLs1suM/m/GBnE9NAlBQAJ): “World modeling, by the way, is a subject that AI has been working on for many years. The usual title of that subject is “Ontology””. Часть курса, в котором говорилось про семантику, теорию понятий, онтологию, логику мы переименовали в “Моделирование”, просто добавили общности.

Онтология – это не любая модель, а специализированная модель (модель – род, онтология – вид). Модели бывают разные: физические, информационные. Информационные модели: дискриминативные/discriminative (классифицирующие: для замеренного состояния мира дающие класс состояния, “относящие к термину”) и порождающие/generative (предсказывающие состояние мира по набору параметров). Онтологические модели – это информационные дискриминативные модели, а не порождающие. По ним можно классифицировать, но не предсказывать. Это гипотеза, но вроде как ей ничего не противоречит, так что надо брать её всерьёз. При этом надо ещё выдержать спор с тем же John Sowa, который вдруг считает, что а) нейросети типа GPT не порождающие, а синоним к порождению – эмерджентность, причём “эмерджентность” не является чем-то объясняющим (https://groups.google.com/g/ontolog-forum/c/voNRzl1jBOc/m/e0zQbIahAQAJ – “Tensor calculus is the mathematics used to process LLMs. It is defined very precisely. But when you have a huge collection of LLMs derived by a huge amount of computer power that pumps an enormous amount of CO2 in the air, some people claim that emergent properties occur. But the word ‘emergent’ explains nothing. If you replace “emergent properties” with “miracle”, there is no change of meaning. The word “emergent” has no explanatory power of any kind”. And by the way, another synonym for ‘emergent’ is ‘generative’, which represents the G of GPT. When people talk about “generative AI”, you can get the same explanatory power with the phrase “miraculous AI”. Or if you delete the meaningless words, you could just say AI – which is what most people do. That is a brief summary of the article “Emergence” isn’t an explanation, it’s a prayer", A critique of Emergentism in Artificial Intelligence, “Emergence” isn’t an explanation, it’s a prayer | by From Narrow To General AI | Medium. С понятиями emergent и generative в моделировании, онтологии и инженерии знаний в целом надо разбираться отдельно.

Классические специализации собственно онтологии: список (фолксономии, слоники/vocabulary – теги), глоссарии (словари/dictionary – списки с определениями на естественном языке), свободные иерархии (loose hierarchies по отношению классификации, каталоги/directories), тезаурусы (указана синонимия, более широкие и узкие значения терминов), в части терминологии. Дальше пошла работа больше с концептами/понятиями: таксономии/мерономии (формальные иерархии, RDF тут), модели данных (классы и отношения, например, ER), “онтологии в старом узком значении” (формальное описание домена: классы, отношения, логические аксиомы/формальные ограничения/constraints – например, на OWL), графы знаний (к “онтологии в старом узком значении” добавили какой-то контент: тексты, иллюстрации, источники).

Литература по онтологиям, графам знаний и их применениям сошла на нет где-то в 2015 году (ибо появились нейронные сети: как дискриминирующие классификаторы – распознаватели, так и порождающие – генераторы изображений и текстов). Тут возможны две ситуации: как с инженерией требований – об онтологиях забыли, это был тупичок, или же это как с самими нейронными сетями после бума начала 80х годов в период зимы искусственного интеллекта: онтологии вернутся, хотя и “на другой элементной базе”.

Онтологии по большому счёту работают с типизацией (это же попытки выразить классы), типизация нужна для поиска противоречий и выявления ошибок (описано в подразделе “Творчество” курса “Интелект-стек”). С другой стороны, для рассуждений по аналогии нужна либо очень плотная сеть понятий (как в методах VivoMind по нахождению близких по структуре подграфов в графе знаний), либо нужно иметь дифференцируемую онтологию (линия Software 2.0, линия “дифференцируемого всего”, Дифференцируемое всё: от чёрно-белой картины мира к рябенькой: ailev — LiveJournal. И там как с концепцией системы и или архитектурой: можно делать relax формальности переводом в дифференцируемую форму, затем находить оптимум в многомерном пространстве, затем формализовать). Вот по этой линии возможен переход и к порождению (порождаем новые понятия, которые заставляют в мире находить новые объекты) – как в дискриминативных нейронных сетях перешли к порождающим (ход на GAN, вариационные методы).

Переопределение онтологий как на работающие со спектром формальности и разнообразием выражений позволит склеить классическое философское понимание (ответ на вопрос “что там”/what is there) и текущее понимание жёсткой типизации с формальной логикой. Типизация при переходе к дифференцируемым представлениям оказывается вероятностной, а формальное мат.логическое представление – крайним случаем. И поэтому рассуждения/вывод/inference на онтологиях от чисто мат.логического переходит ко всему спектру дифференцируемых форм (смотрим на вывод в нейронных сетях общего вида, на вычисления по дифференцируемым алгоритмам, вывод в байесовских сетях, квантовоподобный вывод – дальше надо разбираться).

Один из контрольных примеров – это покопаться с тезисом, что найденные Ванчуриным со товарищи “инварианты” поведения самоуправляемых автономных частиц это вполне себе онтология, эти инварианты – важные объекты, нужные для компактного (сжатие! моделирование!) описания мира. You need not too many artificial neurons to have learned behavior. Here is simulation features twenty cars, each operating as a separate neural network. Remarkably, these neural networks consist of only fifty neurons, making efficient use of resources. The neural networks are trained from scratch, without any pre-training – Cars (and paper about it in the end of the page. Those “invariants” from the paper for me is reference to ontology of driving domain that expressed in slightly non-usual way, with mathematic formulae. But you need relax you definition of ontology to count this invariants as valid ontology for self-driving. See paper in the end of the cars page, it is interesting how many participants of ontolog forum can see ontology work in it. I definitely see ontology engineering there, defining of 4 “invariants”).

Ещё контрольный пример “в каком виде сегодня представлены нематлогические онтологии” – LoRA (LoRA: Low-Rank Adaptation, [2106.09685] LoRA: Low-Rank Adaptation of Large Language Models – и там определяется для LLM) модели разных domains по обновлённым определениям – это вполне себе онтологии (и в визуальном моделировании, и в текстовом). Понятие модели в Stable Diffusion: Beginner's Guide to Stable Diffusion Models - Stable Diffusion Art (и там модели checkpoint, LoRA, hypernetworks, textual inversions), что такое LoRA модели (What are LoRA models and how to use them in AUTOMATIC1111 - Stable Diffusion Art), LoRA модели (библиотечка, поглядите на разнообразие, там ведь не только аниме, а всего их больше полутора тысяч): lora Stable Diffusion AI Models | Civitai.

Сами МLLM при этом выглядят как вполне онтологии (хотя там надо уточнять: как в онтологии CYC до чёртиков противоречивых микротеорий, так и в LLM до чёртиков противоречивых “дифференцируемых” микроонтологий), плюс там ещё зашит инференс и хорошо бы поразбираться ещё с этим MLLM против vanilla text LLM (object detection, включая self-supervised learning объектов – это же онтологическое моделирование мира в чистом виде, “что там в мире”!). И ещё надо бы расширяться на вопросы типа “LLM+внешняя память” как тьюринг-полный вычислитель – [2301.04589] Memory Augmented Large Language Models are Computationally Universal.

Общее впечатление, что онтологический разговор, проблемы, требуемая функциональность в части представления знаний остались в области LLM ровно таким же, как в древнем понимании “онтологической работы”, только все термины другие и акценты поменялись. Дальше не очень понятно, что проще: плюнуть на все наработки последней сотни лет в области онтологии (Software 1.0 – ручное моделирование мира в терминах мат.логики) и быстро-быстро наработать новое понимание по линии дифференцируемых архитектур и LLM (Software 2.0 и Software 3.0, соответственно).

Ещё может быть вариант, что вместо “онтологий” будут говорить просто о том, для чего нужны эти онтологии – о типизации, присвоении типа. Поэтому к онтологическим работам можно отнести и вот такие – GitHub - microsoft/TypeChat: TypeChat is a library that makes it easy to build natural language interfaces using types. (там работа с естественным языком и LLM усиливается указанием типов).

Когда-то это называлось “инженерия знаний”, ведущим тут было “представление знаний в системах искусственного интеллекта”, ведущим там была как раз работа с “онтологиями” дальше был ребрендинг в графы знаний, ибо сами “онтологии” оказались не нужны, а вот кое-какой вывод на онтологиях, привязанных к разным текстам и картинкам (Google knowledge graph прежде всего) – вроде как ещё представлялись полезными до момента появления ChatGPT и Bard. Если вспомнить, что нам по идее нужны “знания” в смысле Дойча (это explanation web, причём SoTA explanations, то есть требуемые в active inference generative models, которые дальше надо выводить в действие, “принимать всерьёз”), но ontology engineering трансформировалось просто в инженерию знаний, а “старые онтологии” – это одно из “представлений знаний”, на нижнем конце спектра формальности и к тому же дискриминационные модели. Собственно, в “инженерии знаний” современного толка (на базе LLM) это всё разнообразие изучается как representations learning (откуда собственно и пошли первые победы искусственных нейросетей – Обучение представлениям (representation learning): ailev — LiveJournal). То есть современный извод – это инженерия знаний, а онтологическая инженерия – это инженерия небольшой части представлений знаний, причём даже не совсем знаний (ибо в онтологиях нет объяснений, нет работы с контрфактичностью и причинностью в явном виде, а также практически отсутствуют beliefs, то есть меры уверенности в модели). Так что пока прогноз на то, что “онтологии” сохранятся как отдельная область исследований, скорее, отрицательный.

Это всё означает, что разработка фолксономий (тегирование), словарей, глоссариев, таксономий, графов знаний ещё по инерции некоторое время будет идти (как до сих пор во многих инженерных компаниях разрабатывают требования – помним, что “парадигмы вымирают вместе с их носителями”), но пользоваться результатами онтологических работ (даже выполненных с использованием LLM в работах типа DeepOnto – A package for ontology engineering with deep learning and language model, GitHub - KRR-Oxford/DeepOnto: A package for ontology engineering with deep learning and language models.).

Но пока всё выглядит так, что по факту занимаются чем-то, маркированным словом “онтологии” будет всё меньше и меньше людей, и сами онтологии в их классическом виде выглядят сильно устаревшими. Глоссарии к нашим курсам просят чисто по инерции, как в “порталах” к поисковому движку просили рубрикаторы и каталоги или хотя бы теги чуть ли не к каждому абзацу. Они, понятное дело, вымерли – а полнотекстовый поиск выжил, Почему я не использую теги: ailev — LiveJournal (это я полтора десятка лет назад ещё написал). Дальше и полнотекстовый поиск стремительно меняется сервисами типа perplexity.ai, Bard, Bing Chat и прочими на основе LLM. Такой “поиск” ещё и с синтезом подкреплённого первоисточниками текстового ответа на вопрос уже есть даже по нашим курсам, это уже commodity, общее место, не фронтир.

А ontolog forum тем самым физически постареет (люди постареют!) и жизнь там замрёт. Я в свои 65 лет там один из самых молодых в попечительском совете, так что рок-н-ролл оттуда вроде как ушёл, что явно ещё один признак или “онтологической зимы” (если всё вдруг неожиданно возродится, как нейросети – только вместо спайковых/нейроморфных возродились прежде всего эквивалентные им ANN, а спайковые так и остались “в зиме нейросетей”) или “вымирания онтологии” (если всё так и заглохнет, как когда-то вытесненная химией алхимия). Это означает, что когда я говорю, что “действующий онтолог” и пишу про “онтологию системной инженерии” – надо писать осторожней, ибо это добавляет запах нафталина, чувствительный нос это может отвратить (и тут я подумал, что молодое поколение уже и запах нафталина не знает, и от чего это было и зачем и почему это признак старья – жизнь и тут ушла, сам нафталин стал нафталинным). Ну, или произойдёт “обратный ребрендинг”, следующее поколение LLM назовут “нейро-онтологиями”, и слово вернётся. И можно будет говорить, что “я занимался онтологиями ещё тогда, когда это было не модно”.

2 лайка