Category: it

Category was added automatically. Read all entries about "it".

2019

lytdybr

В очередной (одиннадцатый!) раз еду на рабочую встречу по проблемам системной инженерии, которую организует Русское отделение INCOSE в SPA-отель Бекасово 22-25 апреля 2021 (http://incose-rus.org/bekasovo-2021 -- и если вы туда собрались, то бронирование нужно сделать побыстрее. Жить одному на полный срок с трёхразовым питанием в тамошнем отеле обойдётся 11700 плюс будет небольшой оргвзнос, от услуг спонсоров решили отказаться, ибо рекламные доклады нам не нужны -- на эти грабли уже наступали). Я собираюсь обсуждать в Бекасово современное состояние системной инженерии (SoTA по сравнению с "классикой") и образование по системной инженерии (в частности, меня интересуют согласованные между собой и курсом системного мышления кругозорные онлайн-курсы системного менеджмента, системной инженерии и системного предпринимательства. И программы blended learning на их основе, то есть курсы с участием преподавателей и онлайн-частью, используемой как лекции и рабочая тетрадь с заданиями).

Половина рабочей тетради курса системного менеджмента уже готова, за неделю добью вторую половину -- и аккурат к конференции курс будет опубликован. Пререквизитом для него будет предъявление сертификата прохождения курса "Системное мышление 2020" (и более ранние версии курса не подойдут, мы ориентируемся на SoTA в знаниях. Наши выпускники получали промокоды для прохождения этой версии курса, и кто не успел -- тот опоздал. Кстати, мы планируем поднять стоимость всех наших онлайн-курсов, поэтому успевайте купить их по нынешним ценам до конца марта, дальше это будет чуть дороже).

А ещё потихоньку двинулся и предпринимательский кругозор (об этом тоже будет рассказано на нашей конференции 3-4 апреля 2021 -- https://system-school.ru/conf21). Вот верхнеуровневые намётки к содержанию тамошнего подкурса трансдисциплины праксиологии и экономики (спасибо Виктору Агроскину, который это всё потихоньку двигает): методологический индивидуализм, ресурс - понятие, полезность, предпочтения, добровольная сделка, рынки и цены, разделение труда, капитальные блага, процентные ставки, деньги, спрос на денежные остатки, роли, фирма, инвестиции, финансирование государства, фондовый рынок, примеры/кейсы сложных явлений.

Так что к концу года (я тут аккуратен с "к 1 сентября", вряд ли это текущими темпами реально) у нас уже должен быть полный набор кругозорных курсов: системная инженерия, системный менеджмент, системное предпринимательство. Плюс помним про онтологику, системную методологию, вычислительное мышление и переписку "ОдО". "Образование для образованных 2020" при этом получило подзаголовок "Образование для образованных: чему учиться образованным", ибо акцент тут идёт на содержании образования. А вот "Системное самообразование: как учиться образованным" Церена Церенова и Анны Лубенченко акцентом имеет практику самообразования, а не содержание образования (при всей неразрывности формы и содержания образования, мы тут об акцентах).

Обсуждение параллелизации деятельности/вычислений как одна из важных мыслей в вычислительном мышлении обсуждается в профильном чате с https://t.me/comp_thinking/666, где я пишу:
То есть показать как работает системное мышление в инженерном, менеджерском, предпринимательском — это показали. Что без онтологики тупо не будешь понимать тексты и не будешь делать понятные тексты — это показали. И я даже готов показывать, что там с методологией в инженерии, менеджменте и предпринимательстве — https://ailev.livejournal.com/1559209.html

А вот с вычислительным мышлением пока проложена некоторая дорожка в инженерию (без моделирования там каюк), но не в предпринимательство и не в менеджмент. Хотя примерно понятно, как наводить мосты с системным мышлением (это ж всё про описания и моделирование/моделеры в конечном итоге, но и тут с натяжкой).

И тут про AI ещё хоть как-то понятно и прикладно, но вот алгоритмика типа "я могу как директор сам написать скрипт для MS Teams" как компьютер когда-то позволил "сам написать письмо без секретаря-машинистки, которой я надиктовывать буду", вот до такого уровня я ещё не продвинулся в понимании.

Digital twins тут важный шаг, но директор стадиона "готов использовать", но не готов понимать, как оно там внутри на пару-тройку системных уровней устроено. В этом проблема.

Про телефон люди готовы знать только то, что они есть и там есть приложения — дальше разбираемся с предметными областями приложений, но не самим объектом "приложение", который сам по себе довольно сложен с точки зрения DevOps.

То есть "вычислительное мышление для айтишников" абсолютно понятно. А вот для всех людей — плохо продумано. Поэтому школьная информатика — это полная профанация идеи, как и сегодняшняя школьная математика, да и школьная физика. Чисто исторический артефакт, "так склалось": все дискуссии времён введения информатики ("там учат мышлению, которому не учат на других уроках — математики, физики, логики и всех остальных") оказались вдруг оборванными. Информатике начали учить, и обсуждение того, зачем это делать — оно вдруг затухло, лет так на тридцать (с 1985 года, когда информатика появилась в СССР в школьной обязательной программе).
А дальше идёт коммент Алексея Митина, продолжающий обсуждение происходящего с машинным обучением:
Интеллект создателей кода классических алгоритмов очень трудно параллелить. А интеллект создателей самих алгоритмов и подавно.

Машинное обучение как метод создания алгоритмов и написания кода как раз и имеет преимущество именно за счёт горизонтального масштабирования.
Я докручиваю этот ход на "горизонтальное масштабирование", "разделение вычислений/мышления" в "Ну вот это нужно осмыслить как отдельный принцип (похоже ведь на правду, у людей в деятельности это "разделение труда", а вот "разделение мышления", "разделение вычислений" плохо осмыслено пока) и учить в том числе и директоров стадионов". А обсуждение машинного обучения против классического решения дифуров закончилось моей ссылкой на свежую работу про физический (а не "цифровой") искусственный интеллект Partial Differential Equations is All You Need for Generating Neural Architectures – A Theory for Physical Artificial Intelligence Systems -- http://arxiv.org/pdf/2103.08313.

Неожиданно нашлись мои ещё школьные танцевальные фото и даже скан диплома о победе на первом в Анапе конкурсе бальных танцев (грамота смотра сельской самодеятельности! 1973 год, а сам бланк 1972 года, 50-летие СССР), это в интервью с моей тогдашней партнёршей, а ныне заслуженным работником искусств Кубани Лидией Путиловой (в девичестве Бартеневой): https://bloknotanapa.ru/news/anapchanka-lidiya-putilova-tantsuy-poka-molodoy-i-. Я там прописан как "работал в Кремле", но это неправда. На совещаниях разных в Кремле был неоднократно, но точно там не работал! Я плохо виден на тамошней фотографии, но вот тут виден много лучше, это фото из той же серии:

А сейчас я в социальных танцах, и уже четыре с половиной года (после тридцати лет танцевального перерыва). Социальные танцы иногда очень зрелищны, но иногда это примерно вот так (видео моего танца с Татьяной Ангел, с кизомба-вечеринки в это воскресенье): https://www.youtube.com/watch?v=7tD1VZM5nFU. "Не пытайтесь повторить в домашних условиях" )))

Решил, что я уже совсем мультидансер, и мне нужно в сентябре в Крым на мультидансовый Q-фест 4-12 сентября 2021 -- и уже купил туда билетик (https://vk.com/qfestdance). И ещё билетик на осенний фестиваль кизомбы "Нашествие"25-29 ноября 2021, https://vk.com/kizombainvasion. Почему так заранее? Так цена почти вдвое дешевле, если настолько заранее! При этом методологическая работа в танцевальном и телесном направлении не прекращается, все тексты по этому направлению тут: https://vk.com/buffdance

Льда на улицах совсем нет уже (только на клумбах остался), разъезжал опять по городу на самокате.

UPDATE: обсуждение во френдфиде https://freefeed.net/ailev/c914ac10-6bad-4454-afa2-4dcde4136c37
2019

Опубликовано видео моего доклада "Цифровой двойник и цифровая нить в системной инженерии"

Видео моего доклада "Цифровой двойник и цифровая нить в системной инженерии" на 136 рабочей встрече Русского отделения INCOSE, 12 марта 2021 -- https://youtu.be/h_hDeO_7fbI, слайды: https://yadi.sk/i/mqEOhY27VXD-GQ, доклад шёл примерно час, и ещё полчаса были вопросы и обсуждение.

В докладе рассказывается, чем отличается традиционная тематика PLM и интеграции данных жизненного цикла от тематики цифровой инженерии как создания цифрового двойника и цифровой нити:
-- цифровой -- это новый информационный, цифровая нить -- это новая интеграция данных(2:53)
-- внимание к воплощению: проектирование с учётом изготовления и эксплуатации(18:04)
-- ромб-диаграмма моделеориентированной инженерии(25:18) вместо V-диаграммы(20:09)
-- цифровой двойник: обязательно плюс стадия эксплуатации!(31:06)
-- цифровая модель, тень, двойник(40:15): принципиальная схема(34:58)
-- хитрая математика ведёт к хитрым языкам мультифизического моделирования, а они -- к хитрым компиляторам(48:08)
-- цифровая нить как эвфемизм для интеграции данных(53:47)
-- цифровая трансформация как постановка практики цифровой инженерии(59:28)

В докладе я практически не касался тем "непромышленных" цифровых двойников, опоры на вычислительное мышление и использование AI. Более того, от аудитории предполагалось знание того, что такое PLM и в чём заключается интеграция данных жизненного цикла (всё-таки доклад был для системных инженеров).

Основное содержание доклада было в текстах https://ailev.livejournal.com/1550931.html и https://ailev.livejournal.com/1549559.html, но живое изложение было более компактным и высокоуровневым, и в нём было больше практических советов для системных инженеров.
2019

Вычислительное мышление: пять тем для отслеживания в 2021

Некоторые темы для отслеживания и размышлений на досуге. При этом охотно верю, что у кого-то это идеи для размышления в рабочее время. Вот кто сидит и думает в рабочее время? Прямо так сидит и думает, ибо "у меня такая работа"? На досуге-то это представить легко, а в рабочем кабинете, и чтобы не три минуты, а три часа, не отвлекаясь? Ссылок даю мало, предлагаю время от времени гуглить и находить каждый раз что-нибудь свеженькое при этом -- это и есть "отслеживать".

Ограничимся пока пятью темами, которые абсолютно не исчерпывающи, но указывают на какие-то интересные в 2021 году темы (и сознательно исключим любые выходы в AGI, ограничившись только сугубо вычислительными аспектами AI):

1. Operations research и механизмы внимания, экономика мышления/вычисления:
-- внимание как механизм планирования для загрузки редкого ресурса-вычислителя
-- внимание может быть многоуровневым (системные уровни) и мультидисциплинарным (inductive bias по дисциплинам)
-- никто не сказал, что вычислитель один, а не их ансамбль с оптимизацией по вниманию (и внимание включено в innate priors/"неявное внимание, встроенное в алгоритм" как общим условиям вычисления и inductive bias/"обобщающие предвзятости" как выделяемые вниманием фичи в рамках общих условий).
-- lean вычисления, agile вычисления (вообще, взять всю книжку Reinertsen и сделать наоборот: идеи из операционного менеджмента вернуть в computer science -- ибо книжка Reinertsen сделана как раз обратным способом, идеи из computer science и смежных дисциплин -- в операционный менеджмент).

2. Мультифизическое моделирование.
Тут много самого разного, например differentiable programming как обобщение класса моделей: берём лучшие идеи из deep learning (automatic differentiation, optimization, GPU acceleration) и несём в более широкий класс моделей (не слоёные/глубокие, а произвольные. Типа как вместо языка дифуров системной динамики переходим к произвольным дифурам, как в Modelica). Понятно, что в deep learning рассматриваются универсальные аппроксиматоры, но если хотим объяснения, то лучше бы говорить о других моделях (в том числе получаемых discovering symbolic models методами). И тут же про всякое "другое моделирование", например physics informed neural networks (https://www.youtube.com/watch?v=SEhMWkgcTOI), universal differential equations (https://arxiv.org/abs/2001.04385), NeuralSim (усиление имитационного моделирования нейросетями, https://arxiv.org/abs/2011.04217). Это, конечно, верхушка айсберга. Ещё можно глядеть материалы про digital twins в связи с математикой и computational/computer science-- https://ailev.livejournal.com/1549559.html

3. Активный вывод и принцип свободной энергии.
Active inference (a first principle account of how autonomous agents operate in dynamic, non-stationary environments, https://arxiv.org/abs/1909.10863) и free energy principle (развивает Karl Friston). И там много чего интересного дальше, например, Narrative as active inference, https://psyarxiv.com/47ub6/, Is the free-energy principle a formal theory of semantics? -- https://arxiv.org/abs/2007.09291.

4. Эпистемология, объяснения
Алгоритмика объяснений -- https://arxiv.org/abs/2102.02201, https://arxiv.org/abs/2012.09318 (объяснения по Дойчу, приложимые к самому AI), математика как вероятностная наука https://arxiv.org/abs/2012.08298 (on our model, whether or not a given formula is deemed a theorem in some axiomatic system is not a matter of certainty, but is instead governed by a probability distribution), символы в связи с поведением, а не вычислениями -- https://arxiv.org/abs/2102.03406, и те самые "обобщающие предвзятости"/inductive biases для познания высокоуровневого мышления -- https://arxiv.org/abs/2102.03406.

5. Неклассические неквантовые вычисления.
Уже выходят статьи типа Quantum Computing without Quantum Computers: Database Search and Data Processing Using Classical Wave Superposition, https://arxiv.org/abs/2012.08401 (in some cases the classical wave-based approach may provide the same speedup in database search as quantum computers), thermodynamics computing https://arxiv.org/abs/1911.01968, и много подобного (особенно много, конечно, занимаются оптическими вычислениями). Хотя это всё сегодня не мейстрим (а мейнстрим сегодня именно "квантовые вычисления", о которых поэтому особо и не пишем, о них напоминать не нужно, они сегодня сами лезут изо всех утюгов), нужно как-то прислеживать, что ещё происходит в области физики для новых типов хардвера. Интерес, конечно, "академический" -- но нам как раз для учебных целей это и нужно, для понимания "вычислений" как таковых.
2019

Что случилось с adaptive case managemеnt? Он в порядке, но теперь называется low code.

Пик публикаций по adaptive case management (ACM) случился где-то в 2010-2013 годах. Тогда некоторые люди из BPM заявили, что им больше нравится case management, но не простой (как у медиков), а в котором короткие процессы-шаблоны/workflow пишутся не программистами, а самими занимающимися кейсами сотрудниками. Таких инициатив было несколько, в том числе dynamic case management и ряд других, сутью которых было обобщение case management для медицины и для судебной системы как минимум для всех социальных сервисов, где какому-нибудь муниципалитету нужно что-то делать для гражданина по его нестандартному обращению -- от открытия кейса до его закрытия. Я сам написал об этом в 2011 году https://ailev.livejournal.com/946134.html, а конкурсы софта для поддержки ACM продолжались по факту до 2016 года -- http://www.adaptivecasemanagement.org/AboutACM.html. Вот типичная картинка 2011 года для "спектра бизнес-процессов" от структурированных классических BPM до адаптивного case management (картинка папки/file там не случайна, судебное "дело" -- это ровно оно, картинка из презентации Sandy Kemsley "Case management and BPM" на конференции BP Trends в мае 2011):


Главным тут было то, что признавался факт нахождения во внимании работ, связанных с изменением состояния какого-то артефакта -- эти работы и были кейсом/case, называемом по его рабочему продукту, меняющему состояния по мере выполнения работ. Изюминкой было то, что заранее работы неизвестны (как в судебных делах, ход работ определяется вновь открывающимися обстоятельствами дела/case, или как в больнице каждый новый анализ может дать материал для изменения плана лечения). Вот что писал Dana Khoyi в главе 6 книжки Mastering the Unpredictable (2010, (https://yadi.sk/i/7mmdxQ9vonAbVw) про выделение продуктов как объектов внимания в управлении работами для этих продуктов:
For the employee onboarding process, our brainstorming session resulted in the following list of business entities:
Сandidates -- These cases represent the people who are under consideration for positions.
Managers -- These cases represent the positions to be filled.
References -- These cases represent the references supplied by candidates.
Interviews -- These cases represent interviews that have occurred.
Recruiters -- These cases represent the recruiters that supplied candidate.
These business entities will be represented as cases in the ACM [adaptive case management] system"
OMG даже выпустило стандарт описания кейсов CMMN (case management model and notation) как часть своего набора стандартов для BPM (BPMN для "обычных процессов", CMMN для кейсов, DMN для business decisions and business rules), https://www.omg.org/cmmn/. Вот тут диссертация 2017 года, где CMMN и его основания хорошо описаны -- Exploring Complexity Metrics forArtifact-Centric Business Process Models, Exploring Complexity Metrics forArtifact-Centric Business Process Models, https://core.ac.uk/download/pdf/95521636.pdf

А потом где-то с 2017 года вдруг как отрезало, массовые публикации именно по ACM сошли на нет. Что случилось?

9 июня 2014 года агентство Forrester Research выпустило отчёт For Application Development & Delivery Professionals. New Development Platforms Emerge For Customer-Facing Applications. Firms Choose Low-Code Alternatives For Fast, Continuous, And Test-And-Learn Delivery, где сказало Hand-coding is too slow to develop and deliver many of the applications that companies use to win, serve, and retain customers. Some firms are turning to new, "low-code" application platforms that accelerate app delivery by dramatically reducing the amount of hand-coding required -- https://www.forrester.com/report/New+Development+Platforms+Emerge+For+CustomerFacing+Applications/-/E-RES113411. Так появился термин low code development platform, https://en.wikipedia.org/wiki/Low-code_development_platform. Обратите внимание, что это определение точно говорит, что изо всех систем поддержки case management именно adaptive case management, где community templates делают сами сотрудники -- это low code development platform для case management (а они себя позиционировали как хитрый случай business process management, ибо в любом кейсе находились workflow, повторяющиеся деятельности).

Итого на момент 2017 года мы имеем "взлетевший" термин low code и системы adaptive case management, которые трудно на словах отличить от любых других. Выход был найден: ACM просто переименовали в low code, сделали rebranding. Ключевой текст, в котором прямо это описано -- https://www.businessprocessincubator.com/content/opentext-process-suite-becomes-appworks-low-code/, где говорится, что в 2017 году OpenText Process Suite becomes AppWorks Low Code. Архитектор приложения там тот самый Dana Khoyi, один из соавторов "Mastering the unpredictable". Приложение AppWorks Low Code поддерживает три способа управления работами (three ways of managing work):
-- Lifecycle, which is a state machine-oriented view (i.e., milestones and the actions required to move between states) for a simple case workflow [вот тут и был классический adaptive case management: упор на практики (lifecycle) работы с рабочими продуктами (case) и simple case workflow с возможностью записи их самими сотрудниками без программистов]
-- BPM, for a full drop to the BPMN editor for complex process flows [классическое управление процессами]
-- Action flow, which is a simple sequence flow [low code для классического BPM]

Так что понятно, почему конкурс движка для ACM в 2017 году был объявлен, но не завершён: прошёл ребрендинг направления и часть основателей ACM стали лидерами Low Code!

И что с этим Low Code? Основная идея low code была классической для программистов, пытающихся что-то втюхать менеджерам: мы вам нарисуем простую картинку вместо сложного программного когда, и всё отлично заработает. У меня на эту тему целая книжка, "Визуальное мышление. Доклад о том, почему им нельзя обольщаться" (https://ridero.ru/books/vizualnoe_myshlenie/). Для простейших случаев картинки работают, и менеджмент покупается на эффектные демо. А дальше проблема: картинки с ростом объёма приложения становятся дико проблемными в сопровождении -- в них ни найти нельзя место, которое менять, ни сравнить версии, ни внести корректно изменения. Поэтому low code выросло как отдельное направление с хорошими продажами (убедительно на демо-примерах, как всё визуальное! утопия отлична в рассказах о ней!), но плохой работой. Подробности этих ужасов можно почитать вот в этом тексте https://habr.com/ru/company/haulmont/blog/483258/ (и там много свидетельств в комментах). А ещё CMMN проиграл BPMN -- несмотря на заверения, что кейсы невыразимы в императивном языке, вот подробности: https://camunda.com/blog/2020/08/how-cmmn-never-lived-up-to-its-potential/. С картинками всё плохо, но в самой идее Low Code всё хорошо, и есть шанс, что под раскрученное имя будет таки что-то сделано интересное без картинок. И нужно не забывать, что появляется новая "звезда экрана", Robotic Process Automation (RPA), и многие слова, которые там говорят, удивительно совпадают со словами, которые говорят люди из Low Code/No Code.

Поэтому остались:
-- управленческая концепция работы с кейсами (framework/подход, дисциплина менеджмента, набор объектов внимания для управления работами) и поддержки этого подхода софтом, общая для медицины, судебных дел/кейсов, работы в муниципалитетах, работы с инцидентами в help-desk и т.д.. Ровно artifact-centered подход к описанию работ против activity-based и communication-based из отличного отчёта Cordys 2009 года https://yadi.sk/i/XqhqfPfmjBtIaw. Более-менее современный обзор см. в диссертации Shaowei Wang 2017 года, https://tel.archives-ouvertes.fr/tel-01823797/document. Как и в случае с life cycle идеи life cycle management и идеи product life cycle management systems (ныне digital twins и digital thread, https://ailev.livejournal.com/1550931.html ) тесно переплетены и софт ACM трудно отличить от самого подхода ACM. Подход живёт, с софтом некоторые проблемы, поэтому и подход стал реже упоминаться, вендоры софта его меньше пиарят.
-- мощное движение low code (далее с требованием no code) и огромным количеством софта, https://en.wikipedia.org/wiki/Low-code_development_platform, https://www.softwaretestinghelp.com/low-code-development-platforms/. Упор тут на программирование, а что программируются workflows в кейсах -- вот это обсуждается мало, low code обсуждает софт/кодирование, а не набор объектов внимания для управления работами.
-- поставщики софта, настаивающие на сохранении гордого имени adaptive case management/dynamic case management, они за три года с 2017 никуда не делись, не все перековались в части имени подхода в low code, чтобы слиться с мощным мейнстримом: https://www.isis-papyrus.com/adaptive-case-management, https://kissflow.com/case/adaptive-case-management-software/, https://www.pega.com/adaptive-case-management и т.д.. Работы по ACM продолжают выходить, просто их не так много и они не в мейнстриме.
-- классический BPM с BPMN 2.0 в качестве основного языка, но также и complex event processing (https://en.wikipedia.org/wiki/Complex_event_processing) -- но поглядите google trends, они где-то с 2009 года подрастеряли в популярности (а вот low code development platform на хорошем взлёте).
-- взлетающий RPA, который всё то же самое, но новыми словами и немного новым инструментарием (включая, например, AI и "программирование запросов на естественном языке голосом").
* * *
Это я продолжаю обновлять слайды для "Системного менеджмента 2021", но там на слайд много ссылок не поместишь, решил сделать ещё и пост. В менеджменте всё больше связано с IT, а всё связанное с IT довольно быстро скисает. В 2021 году уже всё другое, на знаниях 2017 года уже не выедешь: хотя все идеи остались более-менее теми же самыми, изменились слова, которыми мы их обсуждаем. Это произошло и с цифровой нитью (которая была интеграцией данных жизненного цикла, https://ailev.livejournal.com/1550931.html), и с цифровой трансофрмацией (которая была оргразвитием и автоматизацией, https://ailev.livejournal.com/1497402.html), и со многим другим. При этом мозги людей меняются медленно, и одновременно живут все слова, все идеи -- и старинные, и старые, и новые. При этом слова могут даже забываться, а идеи -- выживать ("web 2.0" уже давно никто не произносит, а вот социальные сети отлично живут -- это ж ровно оно, user generated content). С adaptive case management происходит примерно это же. Термин могут забывать, но идея вполне жива.

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10220288576138604
2019

Кругозорные витамины для жизненного опыта (common sense knowledge graphs для large language models)

Второе пришествие здравого смысла/common sense/кругозора в AI
Кругозором мы называем то, что в AI издавна называют common sense и плохо переводят как "здравый смысл". Нет, речь идёт о наборе фактов, которые уже есть у интеллекта и которые используются при мышлении. Классический пример -- это "любой человек знает, что из перевёрнутого стакана вода выливается", и таких знаний у людей огромное количество. У компьютера таких знаний нет, поэтому чисто логический вывод в конкретных ситуациях не работает: информация о ситуации у компьютера обычно неполная, но люди недостающую информацию легко достают из своего необъятного кругозора (а дети имеют кругозор поменьше, и поэтому они не так умны). И тут начинаются проблемы:
-- кругозор необъятен, и его непонятно как получить вручную. Компания CYC просадила огромное количество денег на создание своей базы данных. И продаёт теперь лицензии на логический/дискретный/символьный кругозор, собранный вручную по $1млн.
-- кругозор необъятен, и поэтому логический вывод на нём вычислительно труден
-- кругозор состоит из бесчисленного количества исключений. Так, тот самый стакан с водой, если в центрифуге с вертикальной плоскостью вращения, то скорей стекло лопнет, чем вода выплеснется из него в тот момент, когда он оказывается "перевёрнутым". Или если вода в нём замёрзла, то она не выльется. Или если на стакане крышка. И всё это нужно учитывать в выводе, это defeasible reasoning (опровержимые рассуждения, https://plato.stanford.edu/entries/reasoning-defeasible/), и для работы с такими рассуждениями нужны не просто логики, а немонтонные логики, https://plato.stanford.edu/entries/logic-nonmonotonic/, позволяющие опровержение/retraction вывода. Вот эта "опровержимость" хорошо иллюстрируется моими замечаниями к решению тренажёрных задач (есть раздел учебника на эту тему), где инженеры вместо обсуждения наиболее вероятной ситуации обсуждают ситуацию с минимальной вероятностью, но формально опровергающую задуманный ответ. С естественным языком обычно всегда можно найти какие-нибудь маловероятные исключения и проблемы, редко встречающиеся, но делающие предположение формально не истинным (если хотя бы иногда не истинно, то в формальном исчислении ведь это просто "не истинно" -- доказательство от противного всегда сработает, достаточно предъявить один пример невыполнения правила!). И весь этот кругозор в конечном итоге привязан к контрфактическим рассуждениям, причинному выводу.
-- по факту речь идёт о формальной системе в theory theory, "онтологии". Знание о какой-то ситуации скорее всего будет в другой формальной системе, и общего вывода на этих системах не сделаешь.

Идея с кругозором поэтому осталась маргинальна, CYC с его дико дорогим и неуклюжим проектом уехал на обочину прогресса, и финансирование подобных проектов было прекращено, научное сообщество посчитало это полным тупиком, заниматься common sense стало неприлично, как до 2012 года заниматься нейронными сетями.

Но нейронные сети с 2012 года уже были, а с 2017 года в них на первый план вышли нейросетевые языковые модели (начиная с модели BERT архитектуры Transformer), в которых:
-- есть модель собственно языка, поэтому вход-выход этой модели не в виде ужасных формул (на входе тексты, на выходе тексты. И ещё можно говорить о "визуальных языках", рассматривать и картинки и целые ситуации). Тут решаются проблемы перевода, в том числе проблемы перехода от дискретных "словесных" (из символов/слов) к непрерывным репрезентациям (я писал про representational learning в 2015 -- https://ailev.livejournal.com/1045081.html). Понятия живут в непрерывных представлениях, а слова их представляют неточно, для перевода в слова делается discrete sampling -- иногда одно слово берём, иногда три для выражения понятия, иногда целую историю рассказываем. Но совмещать онтологии в таком пространстве можно, все построения Хофштадтера про "аналогии" работают! И даже есть что-то похожее на способность рассуждать, хотя с этим совсем непонятно: достаточно большие нейросетки типа GPT-3 со 175млрд. параметров или вновь появившаяся Switch Transformeк с 1.6 триллионами параметров (https://arxiv.org/abs/2101.03961) явно могут что-то выводить, но не очень понятно пока что и как.
-- есть знания о мире, а поскольку обучение идёт по какому-то гигантскому корпусу текстов (или текстов с картинками, или даже просто картинками), описывающих что-то в мире. Можно считать, что решена проблема кругозора (вот я обсуждал их связь с кругозором в 2018, https://ailev.livejournal.com/1449229.html).
Но не тут-то было. Нейросетевые языковые модели оказались тупы, причём очень похожим способом на тупость людей, у которых нет "машинки типов" (писал про неё https://ailev.livejournal.com/1532144.html -- машинка типов вскрывает нелепости в тексте). В кругозоре языковых моделей чего-то не хватает крайне важного, они генерируют легко как красивые художественные тексты, так и полную ахинею. Вот Евгений Пескин привёл пример диалога, типичный для людей и нейросеток, у которых нет этого контроля типов, нет учёта контекста социального взаимодействия/social-interaction с намерениями и какой-то связной онтологией для ситуации:
- Девушка, дайте мне таблетку.
- Вам какую?
- Белую.
- Послушайте, это аптека. У нас много белых таблеток.
- Одну дайте.
Этим вопросом опровержимого вывода и кругозора/common sense занялась Yejin Choi (https://homes.cs.washington.edu/~yejin/, https://arxiv.org/search/?query=Yejin+Choi&searchtype=all&source=header), у которой научная судьба похожа на судьбу выбравших нейронные сети "когда это ещё было не модно": ей все говорили, что у неё не будет денег и научных результатов с этим провальным "здравым смыслом", а она таки занялась проблемой, ибо:
-- вычислительные мощности выросли
-- появились непрерывные представления понятийных пространств (в том числе такие, как большие языковые модели, large language models типа BERT)
-- можно использовать не убогое формальное представление ситуаций, а полноценное языковое (ибо нейросетка хорошо работает с языком)

Команда Yejin Choi получила отличные результаты, которые можно посмотреть в ролике https://www.youtube.com/watch?v=h2wzQKRAdA8 и работах https://arxiv.org/abs/2101.00297, https://arxiv.org/abs/2012.08012, https://arxiv.org/abs/2010.12884, и особенно https://arxiv.org/abs/2010.05953.

Для вывода в AI вместо формально-логических триплов нужно использовать полноценный естественный язык
Первый вывод в том, что нужно использовать естественный язык для представления информации о common sense, ибо пространство понятий непрерывно, и никакие символы-термы не передают понятия точно (categories/concepts vastly outnumbered words and require free form open text description). Вывод в таком непрерывном бесконечном пространстве становится с этого момента generative as opposed to categorization/discriminative task -- ибо пространство вывода/inference/reasoning бесконечно, мы не выбираем результат рассуждения из ограниченного их набора, а порождаем результат мышления. Порождение идёт через абдукцию (поиск минимального объяснения к частичному наблюдению, и обычно требует дополнительной внешней информации, занимался этой абдукцией Charles Sanders Peirce, https://plato.stanford.edu/entries/abduction/peirce.html, и тут John Sowa и Yejin Choi удивительно единодушны). Тут можно обсуждать о том, как вообще делается вывод в нейросетях. Choi в своих работах обсуждает алгоритмы neural backpropagation (алгоритм DeLorean), search with logical constraints (алгоритм NeuroLogic), distributional neural imagination (reflective decoding). И таких работ по выводу в бесконечных пространствах понятий, которые можно выразить в языке, довольно много. Но всё одно там работает "машинка типов": logical constraints, правила, формулируются через and и or, это ж всё равно логический язык! Хотя речь в defeasible reasoning идёт не о строгих доказательствах (вывод не доказательный, non-demonstrative), а просто об "усиленном рассуждении" (ampliative reasoning).

Естественный язык недоспецифицирован, и это важно (замечу, что из онтологов практически то же самое говорит John Sowa, и он же говорит о необходимости выражения знаний на естественных языках, но далее он же спокойно говорит о формально-логических построениях в языке логики первого порядка/common logic, а вот Yejin Choi сразу говорит, что этих логических представлений и не нужно, естественный язык лучше). И дальше в тех местах, где люди обычно говорят "факты" или "отношения" или "триплы", Choi сотоварищи говорит сразу о правилах/rules и об элементарных выводах/inferences, которые могут быть использованы или опровергнуты/retract в ходе опровержимых рассуждений/defeasible reasoning.

Кругозорные графы знаний (common sense knowledge graphs) на естественном языке: без них большие языковые модели глупы
Второй вывод -- это то, что важных для вывода "отношений", "элементарных выводов" кругозорного уровня нет в исходных текстах, они оттуда не вытаскиваемы! Какие это отношения? Указывающие прежде всего на прагматику (чего обычно хотят люди, на что направлена коммуникация), на события (например, возможные препятствия к реализации намерений) и физический мир (использование объектов). А остальное? А про остальное есть надежда, что может быть вытащено из корпуса текстов (хотя опять же, исследования тут только-только начинаются).

Choi предлагает: давайте а) триплы просто представим как входной текст для обучения нейросетевой языковой модели, просто вот так вытянем их всех в линейку и скормим так же, как основной огромный корпус текстов. В модели кругозорного графа знаний/common sence knowledge graph/CSKG Atomic-2020 1.33млн. трипловых высказывания по 23 типам отношений, в виде текста это очень немного (явно завышенная оценка -- 100Мбайт) по сравнению с, например, 750GB текстов в Colossal Clean Crawled Corpus, на котором обучалась языковая модель Switch Transformer Гугля. Так сказать, "не еда, а витаминчики -- нужно их мало, но без них цинга и смерть". И вот тут оказывается, что "знаниевые витаминчики" бывают разными, эти CSKG отличаются друг от друга по типам представленных отношений существенно. Витаминчики для персональных ситуаций могут существенно отличаться от витаминчиков для обсуждения производства. Вот картинка из https://arxiv.org/abs/2010.05953, показывающая разнообразие CSKG по относительному составу входящих в них отношений:


А вот пример этих типов "триплов":


И вот когда вы набираете "витаминчиков" в том числе по социальным взаимодействиям, то можете дальше учитывать и моральные и этические соображения. Так что по этой линии выходят ещё и приложения к рассуждениям на темы морали и этики https://arxiv.org/abs/2011.00620, https://arxiv.org/abs/2008.09094. Машинки строгих выводов на строгих правилах не работают, ибо правила обычно сильно противоречат друг другу в реальных ситуациях, оказываются недоспецифицированными. Когда их начинаешь конкретизировать, то там сплошные противоречия и нюансы, но нужно как-то рассуждать на этом материале. Вот добавка этического и морального кругозора (descriptive ethics, https://en.wikipedia.org/wiki/Descriptive_ethics в отличие от normative через кем-то определённые правила ethics) позволяет тут сдвинуться с места и что-то думать про этику и мораль. Вывод в сложных моральных ситуациях (в "витаминчиках морального кругозора" 300тыс. "правил") оказывается вычислительно трудным. Но если работать не в дискретной строгой логике, а "аппроксимировать", "порождать решение" в непрерывном пространстве, а не выбирать единственно верный ответ, то всё вполне работает.

Очень далёкая аналогия тут -- это в части трудности точных вычислений нестабильности планетных орбит. Но если взять нейронную сеть (свежий пример: https://arxiv.org/abs/2101.04117), то можно получить приближённое решение задачи, которое оказывается со всех сторон (точность, трудоёмкость вычислений) на порядки лучше, чем попытки вычислить точно. Если "слишком много всего учитывать" и этот учёт запутанный, то приблизительные решения в непрерывных представлениях оказываются легче достижимыми, чем в дискретном аналитическом представлении.

Это всё делает Allen Institute, поэтому "кругозорные витаминчики" доступны в open source: https://mosaickg.apps.allenai.org/ (хотя для атласа кругозорных отношений/atlas of commonsense relations Atomic-2020 ничего пока не было опубликовано, для более ранних работ наборы данных все опубликованы уже, так что ждём публикации окончательных работ, а не препринта в arxive, и дальше публикации датасета).

Так что CSKG/common sense knowledge graphs рекомендуют использовать как витаминчики, которые исследования/self-supervising learning по корпусу текстов сами выделить не могут, и поэтому предлагается их просто добавлять в концентрированном виде, "без воды" (как большой такой текст, полученный конкатенацией высказываний о триплах отношений). Где берём? Краудсорсинг, "механический турок", толока. Дорого?! Но тут идёт замечание, что это копейки по сравнению с обучением основной языковой модели на гигантских корпусах текстов, а результат получается ошеломительный: neural knowledge model Comet-Atomic2020 successfully transfers declarative knowledge to beat GPT-3, the largest pre-trained language model, in spite of using 400x fewer parameters.

Понятно, что эти "кругозорные витаминчики" совершенно не мешают, а только помогают потом настроить предобученную по корпусу текстов и кругозорному графу знаний языковую модель. А потом её ещё можно донастроить по какому-нибудь zettelkasten -- и если это личный экзокортекс, то получить личного помощника, а если это проектный экзокортекс (у нас ведь проектная команда вполне себе мыслит/вычисляет), то получить коллективного помощника. Этот помощник как минимум сможет содержательно отвечать на какие-то вопросы с учётом содержания zettelkasten, генерировать какие-то осмысленные тексты и предположения там, где "просто преобученная языковая модель плюс подстройка под предметную область" не справляется.

Я писал в "Предобучи, потом подстрой/pretrain then finetune" о том, что прикладное обучение будет делаться после обучения трансдисциплинам для появления какого-то кругозора, https://ailev.livejournal.com/1485511.html. Обучение людей и нейронных сеток вполне можно обсуждать как в чём-то похожие, и способы обучения брать из AI назад в педагогику/хьютагогику (https://ru.wikipedia.org/wiki/Эвтагогика )/андрагогику. Работы Choi указывают на развитие этой идеи: она считает, что нейросетки нужно учить не только давая доступ к богатому на объекты и действия миру, но ещё и так же, как и людей -- через чтение учебников (а не художественной или случайной литературы), проведение тьюториалов (а не путём "проблемного обучения", когда дают решить задачу, решение которой давно известно), то есть давая знания в декларативной/"объявительной" форме. Весь вопрос, какие именно это знания! Добавлять нужно те знания, которые трудно вытащить самому из окружающей среды. Например, знания о машинке типов (что можно вот так проверять тексты, вот так относиться к словам).

S1 и S2 это про осознанность, а не про распределённое против символического или про формальное против неформального
Третий вывод -- это то, что "автоматическое мышление" S1 нужно рассматривать по Канеману вместе с восприятием (object recognition, image segmentation), ибо нарезка мира на объекты идёт из восприятия. Этой нарезке на объекты нужно учить. И это знание об объектах тоже нужно давать декларативно/обучением, а не только надеяться на то, что правильные объекты будут выделены вниманием в ходе исследований. Нет, предыдущие усилия в исследованиях нужно брать -- и скармливать ученикам (тут мне уже без разницы, кремнивые эти ученики или мясные) "без воды" как материал для опровержимого и контрфактуального вывода. Но не в виде логических утверждений, а в сформулированном на естественном языке виде. Хотя да, люди учебник прочтут, но этот же материал в виде "естественноязыковых триплов" (то есть триплов не в RDF) не прочтут. И людям ещё потребуется немного поработать с этим материалом, чтобы его усвоить. Но речь идёт о целенаправленном процессе обучения, без надежды, что "поживёт, наберётся опыта". "Из опыта" объекты для S1 не берутся.

А дальше Choi с Kahneman хором (Канеман это делал несколько раз, последний вот тут, на AI Debates 2 в декабре 2020: https://www.youtube.com/watch?v=2zNd69ZGZ8o) уточняют про S2:
-- неверное понимание, что S1 это про распределённое представление, а S2 про символьное/язык. S1 тоже знает про язык, интуитивные мысли -- они вполне в языке! S1 делает львиную долю работы по выводу! Байесовский вычислитель в S1, и он отлично работает с понятиями! Другое дело, что понятия там в непрерывном пространстве и выражаются естественным языком. Вот это "понятийное мышление в бесконечном пространстве значений" естественного языка -- это ключ, оно необходимо. Язык есть, но он используется как язык в целом, а не отдельные слова или словосочетания или даже графы ситуаций типа фреймового представления знаний Марвина Минского (Choi подчёркивает вот этот факт: число выражаемых языком понятий бесконечно больше числа используемых в языке слов и устойчивых словосочетаний). И в S1 ни один вывод не верен абсолютно, выводы на этом понятийном киселе причинны и вероятностны по природе, а при добавлении контекста ("новых привходящих") все результаты вывода вполне могут быть объявлены враньём (в формальных онтологиях тут возникает проблема ontology revision -- менять/согласовывать придётся все знания, а не только текущий вывод. Даже использование микротеорий тут помогает мало). S1 держит представление мира, и оно каким-то образом имитационно моделирует мир (simulation of the world). Но оно отслеживает невязки (что укладывается в "нормальное", и что расходится с "нормальным", удивляет -- расхождение симуляции и реальности). Контрфактуальное мышление, причины и следствия, а ещё оценка эмоций и намерений, вплетение прагматизма, нацеленности на какой-то результат в деятельности -- это S1 мышление.
-- S2 это про "намеренное выполнение каких-то вычислений", это про надзор за вниманием (сознание, kahneman использует слово explicit в противовес implicit в S1). Нет, ключевое различие для Канемана -- это something that happens to you (S1) and something that you do (S2), и это всё внеязыковое или языковое тут уже неважно. Важно тут: для чего это мы напрягаемся какие-то вычисления/мышление делать, а не довольствуемся тем, что просто "случилось"? Для социальности, для коммуникации (включая коммуникацию с собой): только когда сталкиваемся с другими (или хоть и собой, но осознанно) мы занимаемся аргументацией, контрфактуальностью, удерживанием длинных цепочек причинных связей (то есть объяснениями), учётом этики, морали и вообще социальных взаимодействий.

По первому пункту ("S1 про богатое концептуальное представление, в том числе и естественный язык") я всегда говорил, что понятия могут быть представлены и ощущениями, и выражены синестезийно (это мы регулярно обсуждали в рамках разговоров о телесном мышлении, TAE и всём подобном, а также при обсуждении материала книжки "Визуальное мышление", https://ridero.ru/books/vizualnoe_myshlenie/).

Но вот эти уточнения про S2 удивительно похожи (вот прямо все слова совпадают) про дискуссию о сознании и внимании, и именно на это обратил в какой-то момент внимание Виктор Агроскин (https://vvagr.livejournal.com/2379034.html и видео семинара по трёхчастной модели сознания Graziano https://www.youtube.com/watch?v=lyOQhPlSxgI):
-- тоже упоминание о коммуникационном характере (при этом коммуникация может быть и с собой! но языковый "интерфейс" есть и в модели Graziano), значимости аргументации "для других", для себя же достаточно "ощущения правоты" от S1, незачем обращаться к трудному S2
-- удержание внимания при захождении в тупики, backtracking в рассуждениях, модель самого мышления (работа с контрфактуальностью и опровержимостью).
-- использование extended cognition для удержания внимания, а также подхват в мышление внешних вычислителей (коммуникация с другими)

Так что S1 выходит как "неосознанное/автоматическое/основное мышление" (и сопричастное ему восприятие, которое у Канемана рассматривается рядом!), а S2 -- мышление в рамках осознанности. А схема формальности оказывается про другое, про уход от естественного языка, про representation sampling -- переход от непрерывного пространства понятий к дискретной выборке из его точек. Но мышление про эти выборки из точек обсуждается отдельно в части S1 и S2 -- как неявное/implicit или явное/explicit, это совсем другая шкала. Поэтому про "спектр формальности мышления" нужно материал уточнить.

А ещё нужно учитывать, что для обучения хорошо бы использовать качественные данные: ибо обученная по помоечным датасетам сетка делает затем помоечные выводы (это было проверено работой . Если вы обучаете свою мокрую сетку по текстам "из этих ваших интернетов", а не по научной литературе и не по учебникам, то выводы у неё тоже будут вполне помоечными -- и это будет вне вашего внимания, вы этого не заметите. Поэтому учиться лучше бы не в "университетах жизни" (хотя и это нужно), но и просто в университетах, где хоть какой-то шанс, что тебе дадут качественных "знаниевых витаминчиков" для обучения, а не огромное количество фантазийных текстов непонятного качества и направленности для "набора опыта из жизни".
2019

Цифровой -- это новый информационный, цифровая нить -- это новая интеграция данных

Цифровая трансформация, инженерия, модель, тень, нить и так далее
В языке медленно, но верно слово цифровой/digital заменяет слово информационный/information. Где лет десять назвали бы "информационный", сегодня называют "цифровой". Означает ли это хоть что-нибудь? Нет, ничего особенного, кроме как вы будете попадать в правильные строчки бюджетов, если будете следовать моде. Под "организационные изменения" и даже "организационную трансформацию", равно как и под "автоматизацию/компьютеризацию" деньги не дадут, а вот под "цифровую трансформацию" -- пожалуйста. Ещё объяснят, что это ж вы будете думать и о людях, и о компьютерах, и о бизнес-моделях, как будто это в голову не придёт при использовании более старых терминов для того же (подробней я писал об этом год назад в "Об цифровую трансформацию: то же оргразвитие, и даже не в профиль", https://ailev.livejournal.com/1497402.html, там был и слоган про "больше buzzwords богу buzzwords"). Но новых "цифровых" терминов в коропоративной цифре (раньше бы сказали "айти", но поддамся тренду) к началу 2021 года резко набежало, давайте с ними разберёмся.

Речь пойдет о digital transformation, digital engineering, digital engineer, digital twins, digital model, digital shadow, digital thread, SDM (simulation data management), model-based engineering, model-based systems engineering, digital mission engineering, и тут давайте пока остановимся (игнорируя всякие маркетинговые терминологические затеи одной фирмы, типа specification data management, который формулируется как "высокоуровневый PLM", https://specright.com/blog/specright/whats-the-difference-between-product-lifecycle-management-and-specification-data-management/).

Сразу оговорка: о значении этих терминов в мире так и не договорились. Поскольку нет ни одного законодательного органа одной страны, ни одного комитета по стандартизации, ни одного факультета в каком-то университете, где приватизировали бы язык, есть множество документов, в которых даются самые разные толкования этим терминам. А ещё язык живёт независимо от всех этих официальных документов и словарей, и люди в самых разных фирмах используют эти слова уж как бог на душу положит. И помним, что словарные значения -- это значения вне контекста какого-то проекта, а в конкретных высказываниях у всех этих слов появляется ещё и уточнённый контекстом смысл. Но не всё так плохо: несмотря на дикий разнобой в значениях можно понять, о чём идёт речь. Уж точно не о сыроварении и не о бирюзовых организациях! Нельзя сказать, что "эти термины вообще ни о чём".

С цифровыми двойниками мы разобрались ("Цифровые двойники: физика ведёт математику, математика ведёт компьютерную науку", https://ailev.livejournal.com/1549559.html). Цифровые двойники/digital twin -- информационные/цифровые модели aka виртуальные системы для киберфизических систем (реальных экземпляров hardware), существующие на всём протяжении их жизненного цикла, особенно включая эксплуатацию.

Если мы провалимся на системный уровень выше, то получим сеть цифровых двойников/digital twins network. Если провалимся на уровень ниже, то получим целый ряд моделей как по разным viewpoints на стадии эксплуатации, так и по жизненному циклу (все эти механические, электрические, тепловые и прочие модели).

Цифровая инженерия: делаем цифрового двойника и связываем его цифровой нитью
Цифровая нить/digital thread -- это технология (инструменты и практика федерирования-объединения-интеграции данных, обычно на основе так называемых семантических моделей данных/semantic data models, тысячи их), связывающая между собой все эти отдельные модели, а также цифровые двойники окружения и физического двойника. Инженер старой закалки скажет "интеграция данных жизненного цикла" и помянет множество PLM (а если это не машиностроение, то помянет "корпоративную шину данных"), менеджер новой закалки скажет "цифровая нить" и помянет PLM, ERP, EAM и даже CRM (и вообще всё остальное). И, поскольку "цифровой -- это новый информационный", то заметят, что для какого-нибудь здания или моста кроме BIM/building information model цифровая нить добавит к цифровому двойнику данные дронов, сенсоры интернета вещей и какой-нибудь искусственный интеллект обнаружения аномалий для ремонта по состоянию. А разве это не предусматривалось концепцией BIM? Предусматривалось, но тогда и деньги были бы прежние. А цифровая нить -- это новый бюджет, новые слова для новых денег! Скажем, вы просите денег на интеграцию данных жизненного цикла, какие слова будете говорить? А тут говорят так: Digital thread -- golden thread of information that runs right throuht the life cycle of a project, the thread that grows and gathers more strands until it develops the heft and weight of a digital twin (https://www.raconteur.net/technology/digital-engineering-what-is-it-and-why-you-need-to-know-about-it/). Инженеры старой закалки продолжают говорить "управление информацией" или "управление данными", их эта менеджерская поэзия не увлекает. Так, если нужно сшить между собой мультифизическую модель (модели нескольких физик -- механическую модель, электрическую модель, тепловую модель, акустическую модель и т.д.), то инженеры будут говорить управление данными имитационного моделирования/SMD/simulation data management, а менеджеры старой закалки предпочтут говорить управление информацией (имитационного/мультифизичного) моделирования/simulation information management (но говорят так довольно редко, менеджеры до этих тонкостей уже не доходят, они больше про "нить").

Цифровая инженерия/digital engineering -- это создание цифрового двойника путём сплетения цифровой нитью различных его моделей, экземпляра его физического двойника и цифровых двойников окружения. Цифровой инженерией занимается цифровой инженер/digital engineer, и сразу признаётся, что знания цифрового инженера должны быть настолько широки (вся просто инженерия и всё просто айти), что его роль выполняется обычно большими командами.

Если цифровая нить не привязывает экземпляр цифровой модели цифрового двойника к физическому двойнику (экземпляру киберфизической системы, чей двойник), то это просто цифровая модель/digital model, данные к ней и из неё попадают "вручную", асинхронно. Если цифровая нить привязывает физического двойника к модели, и модель обновляется автомагически, то это будет цифровая тень/digital shadow. И только если цифровая нить привязывает не только физического двойника как источника калибровочной информации для модели, но и модель как источник калибровочной информации для физического двойника -- вот тогда это полноценный цифровой двойник/digital twin. И помним, что формально для ответов на вопросы "а что если..." можно породить несколько digital siblings (ибо они не будут соответствовать полностью физическому двойнику, их не любят называть цифровыми двойниками, но признают кровное родство).

Вот в этой картинке (из https://www.cadmatic.com/en/resources/blog/digital-model,-digital-shadow,-or-digital-twin-%E2%80%93-what-is-at-the-core-of-data-driven-shipbuilding/) пунктирная нить означает ту самую цифровую нить:

Вот типичное софтовое предложение для организации цифровой нити, найдите хоть одно отличие от предложений по организации PLM и интеграции данных жизненного цикла: https://prostep.us/cpmn/apidt/digital-thread-and-digital-twin-solutions/ (и да, это предложение от фирмы, которая традиционно занималась тематикой PLM, а дальше просто переписала свои тексты с использованием модной лексики).

Вот картинка новой V-диаграммы от Boeing, в которой поминается ещё один синоним для цифровой инженерии: моделеориентированная инженерия/model-base engineering/MBE, и теперь это не V, а MBE-ромб/diamond, с 2018 (https://www.incose.org/docs/default-source/midwest-gateway/events/incose-mg_2018-11-13_scheurer_presentation.pdf):

В этой диаграмме к традиционной V-диаграмме физической системы/двойника добавлена симметричная Λ-диаграмма цифрового двойника, а серединка отдана цифровой нити (вместо показа традиционных для этой диаграммы проверок и приёмок).

MBE любят в NIST и туда включают модели требований, архитектуры мультифизику и всё остальное, в отличие от INCOSE, которая любит MBSE/model-based systems engineering/моделеориентированную системную инженерию с акцентом на модели требований и архитектуры и меньшим акцентом на мультифизику -- но в INCOSE тоже переобуваются на ходу, и ветер там дует с военной стороны (см., например, как определяют digital engineering в SEBoK, https://www.sebokwiki.org/wiki/Digital_Engineering -- прямо ссылаются на DoD и в тексте, и в литературе).

Цифровая трансформация/digital transformation -- это прежде всего постановка практики цифровой инженерии, переход к тому, чтобы физические двойники (предприятие в ходе его работы, пациенты в ходе операции, здания в ходе эксплуатации, самолёты в полёте) управлялись со стороны своих цифровых двойников. Если этого нет, а просто вы ставите какую-то ещё одну базу данных и ещё одну систему аналитики, вроде как можете говорить о big data всём таком прочем модном, можете добавлять что-нибудь про цифровую тень но слово "цифровой" для такой трансформации говорить должно быть неудобно. Но с этим, конечно, никто не считается.

Военная цифровая инженерия
Как всегда, волну новой терминологии оседлали военные, прежде всего США. Они сходу объявили, что у них теперь цифровая инженерия, а в ней цифровая инженерия (военных) миссий/digital mission engineering -- удостоверение того, что вся инженерная работа как-то повлияет на результативность военных миссий. Если вы начнёте искать в сети всю эту цифровую терминологию, то найдёте много военного (они хорошо разрабатывают регламенты, стандарты и прочее подобное, что в нормальном бизнесе аккуратно срезается lean-подходом) -- так что аккуратней с источниками. Вот вам ссылки на тексты военных, прелесть ведь как всё структурировано, но не факт, что именно в этом виде оно будет хорошо работать в коммерческом секторе (факт, что не будет):
-- "What Is Digital Engineering and How Is It Related to DevSecOps?", ноябрь 2020, https://insights.sei.cmu.edu/sei_blog/2020/11/what-is-digital-engineering-and-how-is-it-related-to-devsecops.html (помним, что DevSecOps -- это те же DevOps, только с добавкой безопасности. Это ж военные!). При этом чётко говорится, что это всё для спасения жизней в том числе разработчиков и испытателей (во время испытаний F100 в 50-е погибли 324 пилота и потеряно 889 самолётов, https://en.wikipedia.org/wiki/North_American_F-100_Super_Sabre, а "цифровые испытания" позволяют сократить потери в подобных проектах).
-- "Digital Engineering Metrics. Supporting Technical Report SERC-2020-SR-003", июнь 2020, https://sercuarc.org/wp-content/uploads/2020/06/SERC-SR-2020-003-DE-Metrics-Summary-Report-6-2020.pdf (в этом отчёте старинное MBSE/model based systems engineering из INCOSE используется как синоним с Digital engineering, хотя MBSE это только часть digital engineering, ибо в MBSE обычно поддержка работы с требованиями, архитектурой и планами испытаний, а в digital engineering ещё и non-architectural part of design как минимум, плюс ремонт и обслуживание на стадии эксплуатации, во время работы digital twin. И это ж военные и государственные: если вы хотите попросить приличных денег за цифровую инженерию, то вам сюда: десятки метрик для оценки этой самой цифровой инженерии! KPI получите в количестве, никаких денег не хватит, чтобы их выполнять и по ним отчитываться! И упор тут именно на digital transformation: как определить, идёт трансформация, или таки не очень. Но если вам вдруг выпало заняться информатизацией, тьфу, цифровизацией, тьфу, цифровой трансформацией в части постановки цифровой инженерии, то это хорошие чеклисты: о чём нужно подумать -- но ни в коем случае не делать всё сразу, ибо тогда точно не сделаете, но зато освоите много денег, по круглой сумме за каждую метрику. Вот прямо берёте метрику и заключаете какой-нибудь договор на её реализацию с кем-нибудь, будет не хуже, чем в армии США).
-- digital mission engineering, https://www.agi.com/digital-mission-engineering (больше всего тут материалов от AGI, an ANSYS company -- поставщик софта для системной инженерии в военных применениях, вот и смотрите материалы на этой странице). Можно ли это применить гражданским? Ну, считайте, что речь идёт о нацеленности всей инженерии на эксплуатацию в условиях разнородного окружения целевой системы.

Смотреть новости по всему этому богатству цифровой инженерии можно на порталах https://www.plmportal.org, https://www.digitalengineering247.com, на немецком https://www.digital-engineering-magazin.de/. А что со старинными названиями? Например, "автоматизация"? Тоже всё найдёте, https://www.automation.com/ -- ресурс международного общества автоматизации. Ну, вы поняли: где раньше занимались PLM, автоматизацией, САПРами, инженерным моделированием, там и продолжают заниматься. Но слов стало больше, и ресурсов стало больше. Ну, и старые слова тоже вполне живут, люди-то никуда не делись. По последней ссылке вы найдёте и smart manufacturing (Industry 4.0), и integrated manufacturing business operations, и IIoT/Industrial Internet of Things.

Для не-заводов всё тоже цифровое, но единства в терминологии ещё меньше
У банка, страховой компании, вуза, логистической компании и многих других нет PLM, но цифровая трансформация есть. У нас для них советы:
-- иметь таки для их целевых систем цифровых двойников, а для этого целевую систему придётся таки найти в физическом мире как физического двойника.
-- считать, что прохождение кейсов по проектированию, как бы "изготовлению" и как бы "эксплуатации" (как это у них называется? у всех ведь по разному) -- это цифровой банкинг, цифровое образование, цифровое страхование и т.д.. Тем более что все эти слова есть (и означают в том числе уход в онлайн плюс ту же автоматизацию и биг дату с data-driven enterprise, тьфу, это ж теперь цифровая трансформация!).
-- смело пересказывать тексты и идеи промышленников, заменяя слова, там ведь всё то же самое. Не забывайте только вставлять слова про privacy, safety и security, хотя и у промышленников compliance через слово. С другой стороны, там везде и своих слов хватает. Но если вам приходится работать и с промышленными предприятиями, и банками, то лучше бы как-то экономить мышление и научиться думать о самой разной цифровой трансформации одинаково.

Обычно непромышленные организации идут впереди промышленных, у них что сейчас происходит с цифровизацией? Ну, hyperautomation/AI-Transformation/Digital Process Automation/Intelligent process automation (и ряд других терминов от разных лавок, пока совсем-совсем не договорились, вот обзор терминологии: https://research.aimultiple.com/hyperautomation/ (там полный винегрет изо всех идей, абсолютно разноуровневый). Отличается всё это от цифровой инженерии только тем, что явно и специально поминается через слово искусственный интеллект и машинное обучение, но не говорится о том, куда этот интеллект употребляется (а тут как с людьми и употреблением естественного интеллекта: нельзя ничего сказать, использовать-то можно везде!). В инженерии проще: объявляем эти "искусственные интеллекты" просто какими-то отдельными моделями/вычислителями и вплетаем их цифровой нитью в состав цифрового двойника. А что тогда RPA? Ну, это инструментарий цифровой нити, который может связать и текущий корпоративный софт, и вплести в него а хоть и людей. Интерфейсы к живым людям в PRA тоже есть, Текущий RPA состоит из набора коннекторов к софту, набора коннекторов к человеку (все эти распознавания речи), плюс BPM-движка (можно думать, насколько там близко к case management -- они ж себя процессниками считают, и языки там типа CMMN есть, хотя пока выглядит как "голимый недоBPMN". Но это ж ровно то же самое, что PLM, только данные берём не сапровские, и не только через API, но и через формы, и непосредственно от живых людей!

Так что терминологию цифровизации/цифровой трансформации для всех этих разных предприятий меняем, а мышление -- нет. Оно продолжает быть системным и вычислительным, трансдисциплинарным.

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10220193584883882, обсуждение в чате блога -- с https://t.me/ailev_blog_discussion/5866
2019

Уровни Марра и первые принципы: это всё системное мышление

Sutton напомнил в дебатах по AI 2020 (пока наиболее подробное изложение в https://www.zdnet.com/article/ai-debate4-2-night-of-a-thousand-ai-scholars/, выступление Sutton в https://www.youtube.com/watch?v=hcJNFdZit-Q) про необходимость вести обсуждение чего бы то ни было в рамках концептуальных подходов (https://en.wikipedia.org/wiki/Conceptual_framework, иногда ссылаются на просто подход/framework, в том числе системный подход именно таков -- набор концептов для рассмотрения сложных ситуаций), а не как попало. Подходы обращают внимание на важное, позволяют структурировать обсуждение.

Для обсуждения искусственного интеллекта Sutton предложил использовать "уровни анализа" Марра для вычислительной системы (первая версия Marr and Poggio 1976 с четырьмя уровнями, https://www.researchgate.net/publication/37596647_From_Understanding_Computation_to_Understanding_Neural_Circuitry, вторая с тремя уже классическими -- 1982 год, https://web.stanford.edu/class/psych209a/ReadingsByDate/01_07/Marr82Philosophy.pdf, в Сети анализов этой работы более чем достаточно). Даю по работе Levels of Analysis for Machine Learning от коллег Sutton в DeepMind, https://arxiv.org/abs/2004.05107):
-- Computational level.What is the goal of a system, what are its inputs and outputs, and what mathematical language can be used to express that goal?
-- Algorithmic or representational level. What representations and algorithms are used to achieve the computational-level goal?
-- Implementation level. How is the system implemented, either physically or in software?

А вот как это изложил Sutton в своём слайде в дебатах:

Эти "уровни анализа вычислительных систем" всем показались очень удачными, и им пошли давать разные толкования, и продолжают давать толкования до сих пор. Но раньше этих попыток было ещё больше, см., например, https://www.albany.edu/~ron/papers/marrlevl.html, 1991, где сразу указывается: In recent work in the theoretical foundations of cognitive science, it has become commonplace to separate three distinct levels of analysis of information-processing systems. David Marr (1982) has dubbed the three levels the computational, the algorithmic, and the implementational; Zenon Pylyshyn (1984) calls them the semantic, the syntactic, and the physical; and textbooks in cognitive psychology sometimes call them the levels of content, form, and medium (e.g. Glass, Holyoak, and Santa 1979).

Важно тут указать, что предполагается рекурсивное применение этого фреймворка, то есть не только для вычислительной системы, но и для её подсистем (это, например, явно обсуждается с примером в https://arxiv.org/abs/2004.05107).

Я предлагаю считать, что удачность выделения этих уровней -- это просто использование системного подхода в вычислительном мышлении, и не более того (системный подход в вычислительном мышлении я обсуждал в https://ailev.livejournal.com/1544639.html):
-- вычислительный уровень -- это предложение обсудить функциональность вычислителя, формализм обсуждения потребностей и требований (и это требует разговора на языке надсистемы)
-- алгоритмический или репрезентационный уровень -- это уровень обсуждения функциональности вычислителя (в смысле из "Программирования для математиков" Кушниренко и Лебедева, первые два раздела первой главы -- https://yadi.sk/i/virGAvARqqtMhQ, хотя для случая неимперативного программирования и тем более вычислений в распределённых представлениях нельзя применить тамошние идеи "в лоб", но если речь идёт о полнотьюринговых вычислениях, а все они таковы, что обсуждается у того же Дэвида Дойча, то различение "исполнитель-выполнитель" может оказаться очень полезным. Аналогичные различения пытался ввести Алан Кей как chain of meanings. А для самого Марра обсуждают, что он вводит computational pipelines).
-- уровень реализации -- это уровень обсуждения конструкции вычислителя, что там в физике будет эффективно реализовывать вычисление (в терминах Кушниренко-Лебедева это обсуждение выполнителя для данного исполнителя).

То есть речь идёт о том, чтобы обсудить надсистему (какое вычисление требуется для надсистемы), затем архитектуру вычислителя/вычислительной системы. А при обсуждении архитектуры вычислителя речь пойдёт о его частях, и всё обсуждение нужно будет повторить.

Итого: если вы будете использовать вычислительное мышление, основанное на системном мышлении, то дополнительной необходимости говорить об "уровнях анализа Марра" не нужно, это у вас будет "из коробки". Вы и так не забудете обсудить постановку задачи на вычисление и формализм постановки задачи (потребности и требования -- ещё и в их различении!), затем обсудите архитектуру (алгоритмы и представления данных, а также аппаратуру или софт, их эффективно реализующие). И будете использовать такое рассмотрение на многих уровнях вверх и вниз от границы вашего целевого вычислителя.

Осталось понять, что же говорил Sutton, зачем ему был нужны эти уровни анализа? Sutton обратил внимание на отсутствие высокоуровневых обсуждений (универсальных алгоритмов уровня когнитивных фреймворков, вычислительная надсистема над традиционно понимаемом "компьютере простых алгоритмов") и отсутствии формализации разговора об этих вычислениях. Его волнует отсутствие обсуждения обучения с подкреплением (именно reinforcement learning он считает хорошим кандидатом на универсальный алгоритм "computational level" для AI, другие для него менее хороши -- predictive coding, bayesian inference), формализации постановки задачи на эту универсальность. А то, что там где-то внутри для обучения с подкреплением используются алгоритмы градиентного спуска и распределённые представления в нейросетях -- это уровнем ниже, хотя на эту тему очень много выдающихся работ. Я бы переформулировал, что Sutton говорит: "если ты не знаешь, какой вычислитель ты делаешь -- никакая алгоритмика внутри этого вычислителя тебе не поможет". Да, если целевая система не выявлена, мы не можем предложить её архитектуру. Это стандартное рассуждение системного мышления.

И такого много: самые разные удачные "приёмы мышления" оказываются просто частями системного мышления. Прошлый раз этот феномен мы видели на примере "первых принципов" (цитирую свой сентябрьский текст 2020, https://ailev.livejournal.com/1536680.html):
Разборка с "мышлением из первых принципов" показала, что ничего там особо интересного, увы, нет. Это всё придумал Аристотель, выразившись крайне невнятно про разбиение на части в духе ранних версий системного подхода (неважно какие части, главное до дна, где вы полностью уверены в утверждениях -- это и будут первые принципы). Дальше, как и в системном подходе, всё зависит от того, что вы считаете частями. Версия Элона Маска оказывается одной из самых продуктивных -- но в переводе с аристотелевских иносказаний на современный означает выход в физический мир (он прямо указывает на физику как основание для мышления) и попытка альтернативного модульного синтеза при сохранении функции в надсистеме. Попытки использования типовых архитектур он называет мышлением по аналогии, а предложение новой конструкции на низких системных уровнях для реализации высокоуровневых функций -- это и есть мышление из первых принципов. Тот же ТРИЗ занимается тем же самым, только называет это по-другому. Системные архитекторы всего мира (которые разрабатывают новые архитектуры, а не переиспользуют старые -- то есть мыслят не по аналогии, как об этом говорит Элон Маск) тоже занимаются этим. Вот парочка ссылок, там всё понятно: https://fs.blog/2018/04/first-principles/, https://jamesclear.com/first-principles. Линия с выходом на принятие формул всерьёз (это я продолжаю упоминать Дэвида Дойча) и впрямь связана с теми самыми широко понимаемыми первыми принципами как опору на утверждения, которые нам известны и в которые мы верим, но нам вполне хватит понятий системного мышления, чтобы поддерживать этот разговор о "делении на части, о которых уже хорошо известно". Мы хотя бы знаем, как делить на части: функционально, конструктивно, по местам, разными другими хитрыми способами, а также на много уровней вниз и ещё и со сборкой вверх всеми этими способами. Аминь, тема с инженерией из первых принципов оказалась закрыта -- это просто термин для обозначения предложения first in a kind архитектур, новых способов организации/структурирования вещества для выполнения какой-то функции. Это как раз про получение той самой архитектурной идеи, которая переведёт мечту в проект, или предложит такой проект, который не стыдно назвать мечтой.
Человеческое знание не просто может быть, а прямо таки должно быть компактифицировано. Вместо сотен и сотен "удачных идей" мы получим небольшой набор трансдисциплин, который заменит их все. Системное мышление как раз такая компактифицирующая дисциплина. Овладейте системным мышлением, и вам не нужно будет специально изучать "мышление из первых принципов" и "марровские уровни анализа вычислительных систем". А заодно поймёте разницу между потребностями и требованиями (а кто не обратил внимание, обратите: на вычислительном уровне подхода Марра я говорю о потребностях и требованиях, а не просто о требованиях. Почему? Ответ в курсе системного мышления -- https://system-school.ru/systems-thinking, чат поддержки книги/курса https://t.me/systemsthinking_course.
2019

SuperGLUE таки был взят в 2020

Тест SuperGLUE уже был пройден нейросетками T5 от Google и DeBERTa от Майкрософт лучше, чем людьми (https://super.gluebenchmark.com/leaderboard):



Это, кстати, произошло ещё в прошлом году (за 12 часов до нового года): https://twitter.com/sleepinyourhat/status/1344382025986437122.

Опять придётся делать новый набор тестов на понимание языка, старые "трудные для машины" тесты оказались трудней для людей, чем для машин. Вот небольшой обзор состояния понимания естественного языка (NLP/NLU) в 2020 -- https://medium.com/towards-artificial-intelligence/mini-nlp-cypher-mini-year-review-7917e12fb2e5

И никто уже такому не удивляется. Подумаешь, десяток трудных тестов на понимание естественного языка компьютер проходит лучше, чем человек! Кого этим сегодня удивишь?!

SuperGLUE создали в начале 2019, потому что тест GLUE перестал казаться трудным. Ожидали, что он продержится лет пять-шесть. Хватило двух лет.


UPDATE: пост майкрософт, https://www.microsoft.com/en-us/research/blog/microsoft-deberta-surpasses-human-performance-on-the-superglue-benchmark/, общие комментарии -- https://venturebeat.com/2021/01/06/ai-models-from-microsoft-and-google-already-surpass-human-performance-on-the-superglue-language-benchmark/
UPDATE: обсуждение в фейсбук -- https://www.facebook.com/ailevenchuk/posts/10220137563443381
2019

Цифровые двойники: физика ведёт математику, математика ведёт компьютерную науку

Понятие цифрового двойника
Цифровые двойники/digital twin -- информационные/цифровые модели aka виртуальные системы для киберфизических систем, существующие на всём протяжении жизненного цикла, особенно включая эксплуатацию. Их идея появилась в рамках концепции систем PLM (product lifecycle management systems), хотя и без названия "цифровой двойник". А началось это всё с именно "двойником", а не PLM с физического "двойника" космического корабля в NASA (когда один корабль летел -- эксплуатировался, а на все действия штаба отрабатывались на его находящейся на земле физической копии). Так что "цифровой двойник" -- это примерно то же, что "PLM с акцентом на эксплуатацию".

PLM системы, как оказалось на практике, а не в академических работах про "как должно быть", не использовались даже на стадиях изготовления и проверки, и уж тем более на стадии эксплуатации. На этих стадиях работали совсем другие системы: для изготовления/строительства это были обычно разные системы операционного менеджмента (чаще всего проектного управления) с использованием 3D моделей, например, Synchro или Navisworks, а на стадии эксплуатации это были AMS (asset management system), например, Maximo. Произносились хорошие слова типа "сначала нужно построить виртуальную атомную станцию в компьютере, а уже после успеха в этом -- настоящую физическую станцию". Но это было про "построить", а до эксплуатации дело не доходило, в системной инженерии очень медленно мышление с опорой на системное моделирование выходило на полный жизненный цикл системы "от замысла до вывода из эксплуатации", а не короткий жизненный цикл проекта разработки/проектирования, иногда даже без включения стадии изготовления (это же мог быть уже другой проект, зачем о нём беспокоиться?!). Первым инженерным стандартом с требованием учёта полного жизненного цикла стал ISO 15288:2003, и даже к V-диаграмме хвостик эксплуатации (так, что она стала похожа на √¯¯-диаграмму) пририсовали относительно недавно.

Системные инженеры всегда удивлялись, что когда они приходили к owners/operators (эксплуатационщикам) с системными моделями целевой системы в использованной на стадии проектирования PLM (даже с поправками as built, сделанными в модели), то на эксплуатации их никто не ждал с распростёртыми объятиями. Ибо у эксплуатационщиков были совсем другие нерешённые задачи, и модель системы в PLM плохо подходила для решения этих задач -- проблема была не в нахождении расчётных параметров, а в понимании реально измеренных параметров системы. Но потихоньку ситуация изменилась, и появился термин цифрового двойника, указывающий на специфику моделирования именно на стадии эксплуатации. А через некоторое время появились и специализированные системы, уже отличающиеся от чистого asset management, и нацеленные на системное моделирование на стадии эксплуатации (типа https://venturebeat.com/2020/12/08/microsoft-launches-azure-digital-twins-in-general-availability/).

Концепт цифрового двойника как используемой на стадии эксплуатации виртуальной мультимодели стремительно приживается в инженерии, образовании, медицине, градостроении, и далее везде. Но мы пройдём уже знакомым путём системной инженерии, просто продолжая линию рассуждений о PLM-системах в их развитии до охвата и стадии эксплуатации тоже. "Знакомый путь" -- это тот же путь, который мы проходили, беря понятия системного мышления не из менеджмента или биологии, а из системной инженерии. Опыт показывает, что тщательно проработанный системными инженерами набор понятий учитывает и системное мышление, а ещё опирается на физическую реальность и естественные/экспериментальные науки (везде, где это можно), и избегает художественных описаний выдуманного мира, каковые описания нередко случаются у не-инженеров. Так, в PLM-системах речь идёт не просто о какой-то мультимодели (какой-то набор множества связанных моделей, и мы даже не знаем, каких), но о системной модели (моделирование ведётся обязательно на нескольких системных уровнях, обязательно включает и функциональное моделирование "мультифизики", и конструктивное с выходом на BOM/bill of materials, и компоновку/размещение с выходом на 3D модели -- иначе это не системное моделирование, и его недостаточно для инженерной работы). И да, это модели инженерии-в-большом (то есть поддержка коллективных проектов, подробней см. текст 2010 https://ailev.livejournal.com/851977.html и выход на онтологическую инженерию-в-большом в тексте 2018 https://ailev.livejournal.com/1447922.html).

Эти инженерные цифровые двойники, наследующие все наработки по линии развития PLM-систем, представляются как кибер-части киберфизической двойни/cyber-physical twins (физический двойник и цифровой двойник неразрывно связаны в "двойню"), где обязательно присутствуют:
-- физическая сущность (cyber-physical system/physical entity) в её окружении. Двигатель или целый самолёт, станок или целый завод -- эти чаще всего. Это product в product life cycle management systems.
-- цифровая сущность (digital entity), работающая имитационная модель физической сущности и её окружения. Это программа в физическом вычислителе, а не просто описание модели, код модели. Помним, что модель исполнима -- только иногда её исполняет/интерпретирует компьютер, а иногда смотрящий на описание модели человек.
-- цифровые siblings/братья/сёстры как модели для сценариев what if (то есть они не отражают актуальную физическую сущность!), что входит в их состав нужно обсуждать отдельно. Тут без обсуждения причинного вывода и контрфактуальности не обойдёшься (https://ailev.livejournal.com/1435703.html).
-- база данных с объединённой информацией от датчиков физической сущности и выходов имитационной модели, "исторические данные". Выделена отдельно, чтобы подчеркнуть пассивную природу "данных модели" (данные одни, алгоритмы обработки разные)
-- различные сервисы, работающие над базой данных и всем остальным (аналитика, презентации, включая VR для рассматривания цифрового двойника в его мире). Это и есть алгоритмы, работающие над данными, причём упор не на алгоритмы, делающие вычисления цифровой сущности.
-- соединения (работают в обе стороны) между всеми сущностями. В том числе "интеграция данных жизненного цикла" сюда (в том числе алгоритмическое обеспечение соединений, типа поддержания соответствия между моделью и физической системой путём коррекции как параметров и структуры модели, так и состояния физической системы).

Вот картинка из https://booksc.org/book/70499816/7da9d3 для любящих объяснения "на пальцах" (хотя в картинке и нет siblings):


Физическое моделирование как главное в цифровых двойниках
Центральная дисциплина в digital twin -- физическое моделирование динамической (меняющейся во времени) системы, это хорошо видно в самых разных обзорах (вот тут их несколько, https://yadi.sk/d/yzpBuICd0YJevA). Зачем вообще моделировать физического двойника (в оригинальных работах используют слово twinning -- "задваивать")? Для его оптимизации: максимизации достижения предпочтений в concerns качества (ilities, список из работы https://yadi.sk/i/SDK1wRcUg7aDjA -- хоть и не совсем ортогональный, все эти dependability и availability, существенно пересекающиеся в их описаниях):


Традиционно в PLM выделяли следующие виды моделей, и все они остаются актуальными для цифровых двойников:
-- 3D-модель (формы, shapes), к которой привязываются все остальные модели
-- физическая модель (обычно трёхмерные расчёты: прочности прежде всего, деформации, теплопроводности и теплостойкости и т.д.)
-- функциональное моделирование ("одномерные": мощность мотора или генератора, производительность станка и т.д.)
-- логические модели (правила, ограничения и т.д. -- прежде всего тут находятся правила как выходы одних моделей маршрутизировать ко входам других моделей, чтобы получилась мегамодель, отвечающая на вопросы. Интеграция данных жизненного цикла, онтологии, системность и многомасштабность -- тут).

Дальше вся дискуссия про digital twins оказывается дискуссией по основным проблемам инженерного моделирования: 3D моделирования (и инструментарий тут -- CAD), 3D физика (и инструментарий тут какой-нибудь ANSYS), и "одномерные модели".

Плюс вопросы обеспечения соответствия изменений физической системы и её модели в реальном времени -- это добавляется по сравнению с "просто системным моделированием, как в PLM". Но для обсуждения этих вопросов, специфичных именно для digital twins есть огромные заделы (типа data assimilation -- подстройка моделей погоды под актуальные данные для получения прогноза, https://en.wikipedia.org/wiki/Data_assimilation. Методы оказались там вполне подходящие для подстройки необязательно моделей погоды, но и более-менее произвольных моделей. И таких подходов к ассимиляции/assimilation есть множество, типичная работа тут "Continuous calibration of a digital twin: comparison of particle filter and Bayesian calibration approaches", https://arxiv.org/abs/2011.09810. Assimilation of continuously streamed monitored data is an essential component of a digital twin; the assimilated data are used to ensure the digital twin is a true representation of the monitored system. One way this is achieved is by calibration of simulation models, whether data-derived or physics-based, or a combination of both. Traditional manual calibration is not possible in this context hence new methods are required for continuous calibration.

Но обратимся хотя бы к классике инженерного моделирования, даже не выходящего в специфику ассимиляции как согласования модели и её актуального состояния. Какие там были продвижения? Инженеры же давно делали на стадии проектирования какие-то модели системы и её окружения, задолго до того, как эти модели начали использовать во время эксплуатации и они были обозваны "цифровыми двойниками".

Прежде всего инженеры в ходе проектирования обсчитывали принципиальные и технологические схемы, иногда называя это одноразмерным/1D моделированием, чтобы противопоставить трёхмерному прочностному и тепловому моделированию -- речь-то идёт о функциональных описаниях, и тут у математиков, системных инженеров, программистов и всех остальных терминология существенно различается. Это как раз наша задача ввести какой-то общий язык описания этого моделирования и этих вычислений, для чего и копаем digital twins в порядке обсуждения вычислительного мышления ("Вычислительное мышление, декабрь 2020: думаем о современных digital twins", декабрь 2020 -- https://ailev.livejournal.com/1546514.html).

Computer science в поддержку моделирования: хитрая физика ведёт к хитрой математике, которая ведёт к хитрым языкам, которые ведут к хитрым компиляторам
Традиционно инженеры пользовались MatLab (более удобен для вычислительных задач, чем Фортран) и SimuLink для создания имитационных моделей, программные среды для вычислений с ODE (odinary differential equations in state space form -- дифференциальные уравнения для пространства состояний входов и выходов). Это стало мейнстримом, но оказалось, что сопровождать модели в такой форме невозможно: для типовых случаев нельзя сделать библиотеки отдельных функциональных элементов, которые присутствуют в системе, и приходится каждый раз понимать, куда и как вписать очередное уточнение модели, или куда и как вписать очередное изменение модели.

Потому моделированию в ODE было противопоставлено акаузальное моделирование/acausal modeling с использованием DAE (differential algebraic equations) с алгебраическими переменными, которым a priori не могло быть придано никакого входного или выходного статуса -- порядок вычислений не мог быть предсказан, ибо непонятно заранее, где у какого-то резистора вход, а где выход в составе модели.

Но как же проходит такой трюк с переходом от ODE к DAE? А вот так: разные уравнения собираются в большую систему из сотен, или даже тысяч (а в последнее время речь идёт и о миллионах) дифференциальных уравнений, и дальше решением этой огромной системы уравнений занимается компьютер (или даже суперкомпьютер, если система реально большая). Вот сравните удобство для инженеров моделирования электрического мотора с учётом инерции его вращения при представлении модели в DAE и ODE формах (https://www.researchgate.net/publication/336846217_Multi-Mode_DAE_Models_-_Challenges_Theory_and_Implementation):

This should not come as a surprise, as the first principles of physics naturally lead to considering acausal models such as the one in Fig. 1-left. Consider, for example, the case of electric circuits. So-called circuit laws such as Kirchhoff laws, are naturally expressed as balance equations: the algebraic sum of currents in a network of conductors meeting at a point is zero; or, the sum of all the voltages around a loop is equal to zero. Similarly, some components (such as, e.g., resistors or capacitors) come with no input/output prespecified orientation. A same circuit can be assigned different input/output status for its variables, depending on which ones are declared as sources. The same situation arises in mechanics or in thermodynamics. И кроме того, Adding one more physical component is straightforward in the schematic, whereas it may need a complete redesign in the block diagram.

И в итоге были предложены специальные акаузальные (не требующие учёта порядка влияния друг на друга элементов через входы и выходы) языки программирования и вычислительные среды для них. Компания MathWorks к SimuLink с его ODE добавила SimScape с DAE, компания Siemens предлагает Amesim, но де-факто стандартом и экспериментальной средой для отработки новых идей стал язык акаузального имитационного моделирования мультифизики Modelica (https://modelica.org/), для которого было разработано полдюжины компиляторов самыми разными фирмами и университетами.

Modelica с годами распухала: кроме мультифизики в него был добавлен аппарат моделирования машины состояний, и стало возможным выражать на нём и логику управления (кибер-часть).

А поскольку разнородных средств физического/имитационного моделирования оказалось очень много, для объединения самых разных моделей на уровне обмена данных между их входами и выходами был предложен стандарт FMI (functional mock-up interface, https://fmi-standard.org/ -- поддерживается более чем 150 программными инструментами для моделирования).

Но и DAE/acausal моделирование оказалось с проблемами. Главная проблема тут -- невозможность использования Multi-Mode DAE Models (mDAE). "Multi-mode" -- это моделирование режимов, связанных с разными структурами одной и той же системы. Если у вас летит ракета с тремя ступенями, потом с двумя, потом с одной ступенью -- моделировать это нужно по-разному, это же будут лететь совсем разные ракеты, у которых только название общее, а физика совсем разная! Если у вас моделируется атомный реактор в ходе его нормальной работы, то там одна физическая модель. А если он уже начал плавиться -- то моделировать его плавление нужно по-другому, прошлая модель реактора не будет работать. Это явление носит разные имена, Multi-mode DAE models только одно из них, в математике и физике используют и другие, например, VSS (variable structure system, https://en.wikipedia.org/wiki/Variable_structure_system -- и они тоже имеют много разных подвариантов, "частных случаев"). Есть и другие имена, разные группы исследователей приходят к этой проблеме учёта изменения структуры модели вслед за структурой моделируемой физической системы в разных исследовательских ситуациях и подчёркивают в имени разные аспекты проблемы. Математика mDAE хитра, и языки акаузального физического моделирования и их компиляторы должны учитывать эту хитрость математики, иначе результаты моделирования будут кривые. Вот одна из работ 2020 года, проясняющая трудности: The Mathematical Foundations of Physical Systems Modeling Languages, https://arxiv.org/abs/2008.05166. Трудности там демонстрируются на вот таком простом примере, с которым не справляются нынешние компиляторы Modelica, и дело там не только в computer science (плохом языке моделирования и плохом его компиляторе), но и в математической-физической стороне вопроса:


После того, как разобрались с физикой и описывающей её математикой, подключается computer science, ибо нужно теперь создать язык с нужной для этой математики операционной семантикой и (оптимизирующий!) компилятор для него. Это оказывается в случае mDAE не так легко, ибо уже не хватает уровня продвинутости человечества в computer science. Исследования (computer science) и разработки (software engineering) для акаузального мультифизического моделирования идут по вот этим основным линиям:
-- реализация mDAE DSL для хорошего языка вычислительной математики, а именно Modelica в Julia (я предположил такое развитие событий в 2015 и дал языку имя Mojulica, http://ailev.livejournal.com/1168256.html, но уже в 2017 году актуальная реализация появилась и по тому же принципу получила более короткое имя Modia, я написал тогда небольшой обзор https://ailev.livejournal.com/1366789.html -- важно было, что для этого пришлось чуть-чуть доработать и сам язык Julia, и способ моделирования при помощи DSL в этом языке -- появился макрос @model). Эта линия продолжается, и наиболее актуальное описание происходящего -- работа https://www.researchgate.net/publication/336846217_Multi-Mode_DAE_Models_-_Challenges_Theory_and_Implementation.
-- реализация расширенного до уровня mDAE компилятора Modelica прямо на Julia (просто чтобы сохранить legacy: сохранить стандарт на язык, в котором уже наработано некоторое количество физических моделей), это вот тут: https://www.researchgate.net/publication/345243619_Towards_an_Open-Source_Modelica_Compiler_in_Julia. Пишем на Modelica, но внутри работает Julia (и если что не так, или нужно подкрутить солверы дифференциальных уравнений -- придётся работать на двух языках).
-- множество независимых инструментов для самых разных языков акаузального mDAE-моделирования, в том числе примером тут служит написанный на OCaml софт IsamDAE (https://team.inria.fr/modeliscale/isamdae-an-implicit-structural-analysis-tool-for-multimode-dae-systems/), именно его разрабатывали авторы анализа The Mathematical Foundations of Physical Systems Modeling Languages, https://arxiv.org/abs/2008.05166.

В какой-то мере этот тренд с использованием "языка" mDAE вместо ODE для физического моделирования похож на создание разных языков программирования для решения expression problem в самой computer science (https://en.wikipedia.org/wiki/Expression_problem, https://eli.thegreenplace.net/2016/the-expression-problem-and-its-solutions, объяснение "на пальцах" https://arstechnica.com/science/2020/10/the-unreasonable-effectiveness-of-the-julia-programming-language/). Суть этой expression problem ровно в том же: разработка библиотек универсальных вычислительных элементов требует от языков программирования и реализующих их компиляторы возможности добавлять новые объекты для старых операций и новые операции для старых объектов, чтобы не нужно было переписывать весь код программы. В mDAE против ODE так же, только мы протягиваем обсуждение программных объектов и операций до моделируемых физических сущностей: или ты делаешь язык, на котором разные функциональные объекты описываются разными наборами уравнений, и просто добавляешь эти модели друг ко другу, или в языке у тебя такой возможности нет. Если не решил эту "model expression problem", то тебе нельзя сделать стандартные библиотеки, оформляющие стандартные поведения функциональных объектов. Знания моделей становятся плохо переносимыми между моделями, модели плохо модифицируемыми -- каждый раз при внесении изменений нужно переписывать и перекомпилировать всю модель.

Основные проблемы физического моделирования дифференциальными уравнениями:
-- композиция моделей (прежде всего разнофизичность моделирования, и expression problem и mDAE про это, но есть ещё и многомасштабность моделирования: объединение моделей разных системных уровней, разных масштабов времени, тут тоже свои математические и выразительные трудности в языках программирования, https://en.wikipedia.org/wiki/Multiscale_modeling -- и там тоже проблемы с ODE против DAE, плюс много чего собственного, и для этого тоже может потребоваться учёт в языках программирования/моделирования. Увы, языки программирования/моделирования не системны/многомасштабны "из коробки")
-- невязка характеристик физического и цифрового двойников, и методы, подобные data assimilation тут только часть проблемы. Так, в вычислениях тут важно real time, и поэтому возникает вопрос в том числе и о месте вычислений: edge computing, data centers и широкополосные протоколы связи типа 5G или наоборот, узкополосные с небольшим потреблением энергии из IoT. Ресуры можно экономить, заменяя "честный симулятор-на-дифурах" нейронной моделью, которая хорошо аппроксимирует этот симулятор, но требует на пару порядков меньше вычислительных ресурсов для своей работы. Типичная из подобных работ по нейросимуляции, выучиваемой по результатам классической алгоритмической симуляции -- https://arxiv.org/abs/2010.03409, Learning Mesh-Based Simulation with Graph Networks. Our results show it can accurately predict the dynamics of a wide range of physical systems, including aerodynamics, structural mechanics, and cloth. The model's adaptivity supports learning resolution-independent dynamics and can scale to more complex state spaces at test time. Our method is also highly efficient, running 1-2 orders of magnitude faster than the simulation on which it is trained).
-- недостаток вычислительных ресурсов в моделировании, при этом речь даже не идёт специфически об асиммиляции и непрерывной калибровке, а просто об уменьшении стоимости вычислений. No free lunch theorem гласит, что нет универсально быстрых алгоритмов: алгоритм, хороший для одной задачи будет плох для другой, и наоборот. Обсуждение качественного имитационного моделирования обычно связывают с суперкомпьютерами. И для удешевления и ускорения моделирования нужно делать прорывы в алгоритмике, менять физику компьютера (например, переходить к оптическим или квантовым вычислениям).

Основная мысль тут для широкой публики (то есть мысль, которую нужно знать всем культурным людям) -- это наличие цепочки:
-- описание хитрого поведения системы, то есть физическое описание динамики системы требует хитрой математики. Тут можно вспомнить ломоносовское "Математика царица всех наук, но служанка физики", и я напомню уже очень древний текст http://imperium.lenin.ru/~verbit/MATH/programma.html, раздел "почему эта программа такая, а не другая", а также огромнейшие дискуссии у меня в ЖЖ в 2009 году по поводу инженерного статуса математики -- http://ailev.livejournal.com/668305.html и https://ailev.livejournal.com/669463.html. В этих дискуссиях в ЖЖ я задаюсь методологическими вопросами о целях математики: "призываю математиков почувствовать себя не столько "исследователями", сколько инженерами (с учетом того, что в работах настоящих инженеров исследований и изысканий хоть отбавляй)", то есть не просто "искать", но "целенаправленно искать в интересных для деятельности направлениях". Из более свежего по этому направлению связи математического описания и физики -- обсуждение статуса математики David Deutsch. Он считает физику наукой о поведении объектов реального мира, а математику как науку о поведении объектов мира абстракций, computer science оказывается при этом экспериментальной наукой о доказательствах. Математика базируется на доказательствах/выводах/inference/вычислениях, которые делаются физическими вычислителями, и правильность теорий о том, какие могут быть эти доказательства на этих физических вычислителях, чтобы мы могли им доверять, определяется экспериментально. Напомню ссылку на книгу Дойча об этом: https://yadi.sk/i/SjpWiPqM4PQQSg
-- хитрая математика и алгоритмы солверов для этой хитрой математики для хитрой физики требуют хитрых языков моделирования, а для хитрых языков моделирования требуются хитрые компиляторы для разных типов физических вычислителей, это совпадает с традиционным пониманием computer science как связывающей математику с эффективным (пор ресурсам и времени) физическим вычислением.

Когда директор стадиона обсуждает цифрового двойника для своего стадиона, хорошо бы, чтобы он понимал SoTA в области моделирования. А то ему теоретики-математики без понимания сути computer science намоделируют так, что мало никому не покажется -- моделирование тут похоже на безопасность, про него ведь можно легко сказать "моделирования много не бывает", и тогда оно может съесть все деньги и ничего не дать взамен, как и излишняя безопасность. Лекарство легко может стать болезнью.

Алгоритмика мышления как исследований и вывода: моделировать может вычислитель
Но есть и альтернативное моделирование "от данных", когда физика неизвестна и люди не могут написать нужные системы дифференциальных уравнений. Тогда данные экспериментов исследуются алгоритмом (а не людьми) на предмет отражения ими какой-то неизвестной физики, а соответствующее знание физики и особенности поведения киберфизической системы отражается в распределённом представлении (machine learning, representation learning, deep learning -- https://ailev.livejournal.com/1045081.html). Берём универсальный аппроксиматор (глубокую нейронную сеть, например), и реализуем модель физической системы как неизвестную функцию, восстанавливаемую по имеющимся историческим данным.

Но и тут возможны варианты. Так, один из вариантов исследования физики компьютером -- это differentiable programming/дифференцируемое программирование. Киберфизическая система требует оптимизации, для этого мы оптимизируем для начала её описание/модель, эта модель требует дифференцируемости для возможности применить алгоритмы оптимизации, а дифференцируемость диктует то, как должен быть устроен язык и его компилятор -- и это уже вопросы к computer science. Получается, что computer science обслуживает инженерное моделирование и по этой линии обеспечения дифференцируемости. Затем в инженерии идёт переход к идее "дифференцируемое всё" как ещё один вариант моделирования как предварительного шага к последующей оптимизации, производимой на модели (обзор был в "Дифференцируемое всё: от чёрно-белой картины мира к рябенькой", 2019 год, https://ailev.livejournal.com/1464563.html, и там говорится в том числе и о differentiable architecture, сама архитектура оказывается моделируемой не дискретными "инженерными решениями", а непрерывными представлениями, на которых можно вычислять архитектурный оптимум).

Дифференцируемость кода произвольных функций задаёт весьма специфические требования к языку программирования, и тут в лидерах сегодня Swift и Julia (и обсуждается даже дифференцируемое квантовое программирование на Julia -- https://julialang.org/blog/2019/12/yao-differentiable-quantum-programming/, или классические алгоритмы машинного обучения типа XGBoost, которые делаются дифференцируемыми -- https://juliacomputing.com/blog/2020/02/ad-xgboost/).

Подход, когда моделирование выполняется не человеком, а универсальным алгоритмом (использование AI в инженерном/физическом моделировании) относительно прост, вычислительно эффективен, и при этом ещё и экономит человеческие усилия по моделированию. Против этого подхода главное возражение в отсутствии моделирования-как-объяснения. Дифференциальные уравнения позволяют как-то объяснять поведение системы (хотя тут тоже возникает много вопросов), а вот нейросетка -- это чисто предсказательная модель, применение которой весьма ограничено. Подробному рассмотрению того, чем же отличаются предсказательные модели от объяснительных (связывающих причины и следствия какой-то логикой) посвящено довольно много литературы:
-- критика со стороны авторов причинного вывода, прежде всего Judea Pearl, в том числе в The Book of Why https://yadi.sk/i/oKRCcoJVeH_q_g, но и не только. Вот последнее выступление Pearl, где он вводит понятие deep_understanding/глубокое_понимание и описывает происходящее с причинным выводом как "одомашнивание": дикие нерешаемые раньше проблемы объяснений становятся сегодня домашними и не страшными -- http://causality.cs.ucla.edu/blog/index.php/2020/12/28/edited-script-of-j-pearl-talk-at-montreal-ai-debate-2/.
-- критика со стороны эволюционной эпистемологии, и тут Дойч с его "Началом бесконечности", https://yadi.sk/i/SjpWiPqM4PQQSg, где он прямо указывает на computer science как науку о доказательствах, и необходимость доказательств для хороших объяснений.
-- тут генерация физических гипотез из экспериментальных данных (идёт поток статей про "обычную науку без учёных" -- дистилляция нейронных сетей в алгебру, переоткрытие "из данных" законов ньютоновской механики, гамильтониана и т.д., подробней в https://ailev.livejournal.com/1526085.html, где даётся ссылка на работу https://arxiv.org/abs/2006.11287 (разбор статьи вот тут: https://www.youtube.com/watch?v=LMb5tvW-UoQ).

По большому счёту именно тут идёт речь об универсальных алгоритмах, именно тут принято обсуждать "искусственный интеллект", поскольку речь идёт о вытаскивании абстракции из конкретных фактов/наборов данных о системе -- и дальше эта абстракция уже позволяет решать какой-то класс задач, "провели исследование, а затем просто делаем выводы по конкретным запросам".

Disclaimer: что не сказано, то просто не сказано, в коротком тексте всего не упомянешь
И, конечно, всё тут написанное ни в коей мере не исчерпывает ни тему математического моделирования физических систем (я даже governing equations тут не помянул ни разу!), ни тему связи модели и системы (эпистемология: как мы знаем, что эта модель и впрямь что-то важное отражает в системе), ни тему siblings как подтемы digital twins (в том числе обсуждение для этих siblings "лестницы каузальности", предложенной Judea Pearl и развиваемой дальше в работах типа "On Pearl’s Hierarchy and the Foundations of Causal Inference", https://causalai.net/r60.pdf), ни тему интеграции данных разных моделей, в том числе разных моделей по ходу жизненного цикла (онтологическая интеграция данных, софт типа Simantics как "онтологический интегратор симуляторов", https://www.semantum.fi/solutions/seas/ в digital twins такое указывается напрямую: https://www.semantum.fi/solutions/SemantumDigitalTwin/, и такого софта ведь много!), ни многих других проблем, традиционно обсуждаемых в проблематике digital twins.

Как всегда, "что не сказано, то просто не сказано, это не значит, что "не учли, не подумали"" -- помним о библиотечке обзоров digital twins https://yadi.sk/d/yzpBuICd0YJevA и при желании идём разбираться туда, там тысячи страниц свежих текстов. Просто в одном коротком тексте можно поднять только несколько проблем. В текущем тексте поднята только узкая тема связи физики, математики и computer science: физического моделирования -- его математики (линия моделирования физики дифурами людьми, линия поиска дифуров компьютером) -- его computer science и software engineering как создания языка программирования и его компилятора для физического же вычислителя (в конечном итоге одна физическая система-вычислитель/виртуальная модель моделирует другую целевую киберфизическую физическую систему -- всё физично и реально, абстрактные объекты математики там спрятаны где-то посредине).

UPDATE: обсуждение -- https://www.facebook.com/ailevenchuk/posts/10220129377358734
2019

Обзор обзоров по универсальным алгоритмам (AI) и универсальной интеграции моделей (digital twins)

В вычислениях мы условно выделили два направления: "чистое мышление" и "прикладное мышление/". Чистое мышление выполняется интеллектом, а прикладное -- прикладным вычислителем/приложением. Это чуть подробней разобрали с акцентом на мышление в https://ailev.livejournal.com/1547260.html "Мышление/learning и трансдисциплины, мыследействование/inference (привет СМД-методологам)". Терминологию тут, конечно, нужно ещё править, тем не менее различение про learning - inference, intelligence - application, thinking -- computation/inference представляется важным (при полном понимании, что в информатике всегда алгоритмы вытягиваются в chains of meanings, одни алгоритмы работают с другими -- вызывают их, трансформируют их, порождают их, макроподставляют их в себя и т.д.).

Вот как я разворачиваю это различение в более традиционный разговор про кремниевые/оптические/квантовые вычислители (хотя это не исключает и разговора про нейроморфные мокрые вычислители, типа мозга -- но в тамошние механизмы уровня алгоритмов мы не лезем, а прикладной уровень мышления мы разобрали в тексте по предыдущей ссылке):
-- алгоритмика прикладных вычислений как прикладного_мышления/мыследействования/inference, и тут работает главным образом "алгоритмика Кнута", используемая для оптимизаций. Уникальные алгоритмы выполнения разных хитрых операций вывода (императивного, функционального, логического, реляционных запросов и т.д.). Представление тут -- простые структуры данных для разных физических вычислителей, поддерживаемые аппаратно: целые, плавающие, удобные операции для организации из них очередей/магазинов, списков, матриц и прочей классики, кубиты сюда тоже относим как тип данных, лежащий в основе структур данных, над которым идут машинные операции квантовых компьютеров, а также "синапсовые связи" в нейроморфных вычислителях. Запись этих алгоритмов идёт на символьных языках программирования/моделирования/представления_знаний. Программы на этих языках составляются либо людьми, либо алгоритмами AI и затем компилируются в машинное представление (даже прикладные алгоритмы нейронных сеток компилируются!), царём горы является эффективность. Это классическая computer science, без AI.
-- алгоритмика AI, "алгоритмика Домингоса" как методологическая/чистого_мышления/обучения/learning, на выходе которого будет прикладной алгоритм для inference. Тут основное внимание уделяется поиску универсального алгоритма-аппроксиматора (The Master algorithm), который при его обучении порождает прикладной алгоритм. Речь идёт об интеллекте, и царём горы становится универсальность -- на первое место выходят универсальные структуры представления знаний как в локальных/символистских, так и распределённых/коннективистских представлениях, известных как knowledge representations. Часто поэтому тут говорят не просто о learning, а именно о representation learning (вот мой текст ещё 2012 года -- я тогда это счёл самым важным в deep learning как новом подходе к AI, а оно и сейчас рулит, https://ailev.livejournal.com/1045081.html). Proper definition of AI concerns knowledge representation and reasoning, autonomous multi-agent systems (вот тут всплывает коммуникация агентов по поводу их действий в мире и моделей -- в схеме-трёхслойке ведь кроме прикладных вычислений/мыследействования есть ещё и мысли-коммуникация, "авторская орфография сохранена"), planning and argumentation (а почему они вместе?!), as well as learning (интеллект, а не вывод).

Вот несколько обзоров, по которым можно работать с SoTA по линии универсального алгоритма для representation learning (хотя так это уже давно никто не называет):
-- https://arxiv.org/abs/2011.15091, Inductive Biases for Deep Learning of Higher-Level Cognition -- про небольшой набор принципов (inductive biases), которому должен удовлетворять The Master Algorithm. Текущий список этих inductive biases включает distributed representations, convolution, deep architecture, graph neural networks, recurrent nets, soft attention, и обзор пытается предположить, что там есть ещё и куда смотреть дальше.
-- https://arxiv.org/abs/2012.05876 про третью волну neurosymbolic AI, где говорится о необходимости иметь и локалистские и коннективистские представления. Neurosymbolic AI is well placed to address concerns of computational efficiency, modularity, KR + ML and even causal inference. И тут же через пять дней после появления этого обзора выходит работа DeepMind, где показывается, что коннективистское представление нейронной сети бьёт в visual domain нейросимволическое: "Object-based attention for spatio-temporal reasoning: Outperforming neuro-symbolic models with flexible distributed architectures", https://arxiv.org/abs/2012.08508, так что вся эта история далеко не закончена. И, конечно, "самый универсальный алгоритм" MuZero, который играет на сверхчеловеческом уровне в игры, правил которых он не знает: https://www.nature.com/articles/s41586-020-03051-4 (это не обзор, а "просто работа", но очень крутая -- вышла 23 декабря 2020, хотя MuZero был предварительно анонсирован ещё в прошлом году. Вот блог-пост от DeepMind про MuZero: https://deepmind.com/blog/article/muzero-mastering-go-chess-shogi-and-atari-without-rules. MuZero’s ability to both learn a model of its environment and use it to successfully plan demonstrates a significant advance in reinforcement learning and the pursuit of general purpose algorithms).
-- https://arxiv.org/abs/1906.08870, "2019 Evolutionary Algorithms Review". In this review, we explore a new taxonomy manage the control of the environment with limiters, the ability to explain and repeat the search process, the ability to understand input and output causality within a solution, the ability to manage algorithm bias due to data or user design, and lastly, the ability to add corrective measures. И ещё обзор литературы по генетическим алгоритмам: "Qualities, challenges and future of genetic algorithms: a literature review", https://arxiv.org/abs/2011.05277, This review intends to summarise the key qualities, current challenges and future perspectives faced by the GA technique. Their implicit parallelism and evolutionary operators allow an optimal balance between exploration and exploitation. They thrive in identifying good solutions in large, rugged search spaces. They have desirable convergence properties, offer high flexibility, and impose very few assumptions on the nature of the solutions being evolved. They allow a realistic modelling of evolutionary systems and innovation dynamics. Often criticised for their computational complexity, Gas' computational efficiency is a first challenge to address to handle dynamic or more complex problems, likely with further use of parallelism and GPU computing.
-- внимание и сознание: стандартная модель сознания Graziano et al, https://booksc.xyz/book/77159558/f47955, обзор Understanding Attention: In Minds and Machines, https://arxiv.org/abs/2012.02659.
-- попытки реализации универсальной архитектуры в нейроморфном оптическом процессоре: https://arxiv.org/abs/2011.00111, Photonics for artificial intelligence and neuromorphic computing, обзор многочисленных работ в этом направлении. И обзор Variational Quantum Algorithms в качестве универсального обучаемого квантового алгоритма, https://arxiv.org/abs/2012.09265.

Другая линия -- это алгоритмика зависимости моделей от времени. Тут два направления:
-- Lifelong learning, где обсуждается непрерывная коррекция прикладных алгоритмов в ходе их выучивания, и коррекция эта идёт по самым разным причинам. Пример для обработки естественного языка: https://arxiv.org/abs/2012.09823, Continual Lifelong Learning in Natural Language Processing: A Survey. Continual learning (CL) aims to enable information systems to learn from a continuous data stream across time. However, it is difficult for existing deep learning architectures to learn a new task without largely forgetting previously acquired knowledge. Furthermore, CL is particularly challenging for language learning, as natural language is ambiguous: it is discrete, compositional, and its meaning is context-dependent. In this work, we look at the problem of CL through the lens of various NLP tasks.
-- digital twins, где обсуждается универсальная интеграция виртуальных/информационных моделей какой-то системы, которая успевает поменяться по ходу моделирования. Поэтому итоговую мегамодель нужно всё время обновлять, а ещё нужно заглядывать в многовариантное будущее (моделирование "а что, если...") с учётом текущего дрейфа параметров воплощения системы. Там совсем другие темы: многомасштабное (т.е. системное, на многих системных уровнях) моделирование, численные алгоритмы, временные ряды и их аппроксимация, интеграция данных за пределами жизненного цикла design and construction time. Обзорных работ там множество, я положил некоторое количество обзоров (главным образом из arxiv) в https://yadi.sk/d/yzpBuICd0YJevA (это одна ссылка, но там почти два десятка небезынтересных работ -- и почти каждая из них включает reference architecture для digital twins и обсуждение алгоритмики моделирования). Подробней мотивировку о месте digital twins как прикладном уровне в платформенном стеке вычислительного мышления (уровень интеграции данных жизненного цикла, уровень интеграции прикладных алгоритмов) я дал в "Вычислительное мышление, декабрь 2020: думаем о современных digital twins", https://ailev.livejournal.com/1546514.html. Есть такое ощущение, что физическое моделирование и его поддержка (традиционный предмет computational science в её отличии от computer science) идёт сюда, оставляя в computer science главным образом дискретную алгоритмику localist representations.