Агентная, распределенная/реактивная алгоритмическая парадигма

Раздел про алгоритмику курса “Интеллект-стек” упоминает про эту новую парадигму следующим образом:

Ещё одна заявка на «безнаградные» алгоритмы — это отсылка к понятиям predictive coding, active inference/деятельное обновление, а вместо «награды» агенты с такими алгоритмами стремятся к минимизации свободной энергии/free energy principle (помним, что «энергия» эта не из физики, а из математики для физики, как и «энтропия» в теории информации). Алгоритмы этого подхода (чаще всего его называют active inference, больше информации можно найти в общественной организации, координирующей самых разных исследователей этого класса алгоритма, Active Inference Institute), крайне элегантны (кратки и универсальны), но пока не продемонстрировали каких-то впечатляющих практических результатов по сравнению с другими видами универсальных алгоритмов.

Что они не продемонстрировали пока впечатляющих результатов – это правда. Тем не менее, я бы порекомендовал посмотреть это интервью Bert de Vries, где он подробно объясняет Active Inference подход именно как инженерную парадигму. Причем, Bert и интервьюеры это осознают: они явно сравнивают этот подход с “Software 2.0” by Andrej Karpathy. (Можно начинать смотреть с указанного таймкода, но него больше вода.)

Как преимущества агентной парадигмы по сравнению с “традиционной” алгоритмической парадигмой (Software 1.0) и Software 2.0 (DNNs, training data pipelines), Bert de Vries в основном напирает на гибкость и надежность: агенты могут продолжать выдавать разумные результаты, даже если “вылетают” какие-то подсистемы и источники данных, если вдруг села батарейка и надо радикально сократить энергозатраты вычислений (cost bounded cognition), или принять какое-то решение за меньший, чем предполагается обычно, интервал времени (time bounded cognition).

Следовательно, как главный “killer app” этой парадигмы он ставит на дроны, где эти характеристики важны, и, кажется, их трудновато воспроизвести с Software 2.0 парадигмой.

В то же время, кажется, что дроны – одновременно и чуть ли не единственное приложение (по крайней мере, в обозримом будущем/“камушках”), в котором гибкость и надежность делают разницу по сравнению с Software 2.0. Даже autonomous driving/автономное вождение, которое он постоянно вспоминает, вовсе не выглядит таким: если датчики авто внезапно вышли из строя, в 99%+ случаях авто может безопасно остановиться, в отличие от дрона, который в 90% упадет и разобъется. Впрочем, тут можно выдать аргумент про цену аварии: для дрона ожидаемая цена аварии довольно мала. Так как вероятность, что дрон упадет именно кому-то на голову, мала. А может, и не так уж мала, тут надо конкретно считать.

Космические приложения Free Energy Principle

В каком приложении и высокая ожидаемая цена аварии, и продолжать работать “хоть как-то”, на маленьком бюджете, с неполными данными, всегда лучше, чем полная остановка/поломка? В космических аппаратах! (И да, De Vries упоминает это приложение в интервью, но лишь вскользь. Думаю, ему бы стоило сделать на космических приложениях больший акцент.)

Модельная история успеха тут – аппарат Rosetta, который приземлился на комету Чурюмова - Герасименко с аварией, попал в тень, и поэтому его солнечные панели аккумулировали мало энергии, но все равно передавал какие-то снимки и данные обратно. Только хитрость тут в том, что история успеха случилась, потому что инженеры хорошо продумали систему управления и в аварийной ситуации приняли контроль на себя. То есть, Active Inference сработал не в аппарате, а в мозгах инженеров из группы управления миссией.

Миссия Rosetta стала историей успеха отчасти благодаря удаче (в момент аварии, аппарату не было критически важно принять правильные решения на временном промежутке меньшем, чем задержка в коммуникации с Землей). И конечно, в истории космонавтики было множество неудач, которые стоили сотни миллионов долларов.

Поэтому, в целом, космонавтика теоретически кажется очень интересной областью применения Active Inference агентов. Вопрос правда в том, через сколько десятилетий ее применение можно ожидать увидеть, учитывая заскорузлось космических агенств вроде NASA и Роскосмоса. Или тут можно устроить подрыв, в конвергенции с прорывом, который сейчас происходит в ракетостроении?

“Software 2.0” против Active (Bayesian) Inference, или против любых агентов (от термостатов до LLM-based)?

Надо отметить, что в тексте выше, да и в интервью, активно путаются и смешиваются два разных направления/dimension сравнения алгоритмических парадигм:

  • Классические точные алгоритмы/программы – не-байесовские DNNs – вывод и обучение на байесовских сетях (в основном, Active Inference); и
  • Классические структурированные алгоритмы/программы – “Software 2.0” с некими пайплайнами сбора данных, data engineering, обучения/MLOps, и пайплайнами/каскадами инференса – сети или среды с (независимыми) агентами, общающихся реактивно (reactive, actor paradigm), а не по строго определенным data/information pipelines/flows. На уровень ниже, агенты могут быть чем угодно – от тех же классических структурированных программ (такую архитектуру последние 20 лет безуспешно пытались продвигать создатели Akka Framework и сочувствующие) и экспертных GOFAI до DNNs (в ассортименте: от “autonomous particles” Ванчурина, к RL агентам, и до decision Transformers), Language Model agents (то есть, на основе “Software 3.0”/prompt engineering парадигмы, если угодно), и, наконец, Active Inference агентов.

Эта путаница отчасти оправдана, потому что разделить эти два направления/dimension сравнения не очень просто, так что тут есть некоторое онтологическое болото.

Тем не менее, я попытаюсь разделить.

Вот тут я делаю сравнение между небайесовскими и “не энергетическими” агентами, Energy Based Model (EBM) агентами типа Лекуновской JEPA, и Active Inference агентами (но там сырой черновик).

Агентная парадигма же в дополнение к каскадной и структурированной “Software 2.0” нужна потому, что она и только она позволяет адекватно моделировать системы, производящие вычисления по этой парадигме в реальном мире: группы “умных частиц”, такие как общества, сообщества, экономику, экосистемы, и т. д. Поэтому понимание агентной алгоритмической парадигмы важно, во-первых, чтобы лучше понимать собственно подобные физические системы, среди которых мы живем, а во-вторых чтобы делать для них digital twins и улучшать их координацию, о чем я упомянул в конце этого сообщения:

При этом, агенты могут быть построены по-разному: на основе больших языковых моделей, или “DNN с инвариантами” по Ванчурину, или как Active Inference вычислители, и т. д.

Практика “программирования”/дизайна/инженерии агентов через несколько лет

Bert de Vries в интервью рассказывает, как в агентной парадигме инференс перестанет быть проблемой для программистов, а главное будет – задание дизайн порождающей модели/generative model. При этом, он рассказывает, как легко это будет сделать с variational inference движком, но что-то мне подсказывает, что на основе тех же LLMs это можно будет сделать еще проще, и наступит это гораздо скорее.

Навскидку, методология этого “программирования будущего” будет ближе всего к области, которая сейчас называется mechanism design, и основана на следующих теориях и областях знаний:

  • Квантовая теория информации / quantum information theory
  • Какой-то вариант теории обучения, соответсвующий парадигме агентов (Active Inference, если это ActInf агенты, RL, Ванчуринская ML theory, и т. д.), или их теор-категорное обобщение, если предполагается использовать агентов разных типов (хотя непонятно, зачем в это лезть).
  • Теория игр
  • Современная теория управления - system level synthesis Джона Дойля
  • Информационная безопасность и криптография
  • Наверное что-то еще, что можно осознать, покопав работу Open problems in DAOs

А также черпать инсайты, уроки, эвристики, и референсные дизайны агентов и механизмов их взаимодействия из экономики, права, психологии, game design, биологии, социологии, (системного) менеджмента, и т. д.