Многоуровневые организации и многоуровневые архитектуры. Слова-термины важны, и не важны.
Многоуровневые системы и многоуровневые их описания Обсуждали примеры использования железа для edge AI (с https://t.me/hw_ml/8015), ибо вроде как разговаривать с LLM на таком железе не получится -- но кому-то оно нужно? Для чего нужно? Быстро сортировать объекты на годные-негодные, опасные-неопасные, классификационные задачи? Нет, необязательно классификационные, там вполне могут быть и не быстрые классификаторы и не махонькие LLM. Я думаю, что "мелкое железо" нужно прежде всего для управления/control, решения парадокса Моравека. В частности, там Software 2.0, дифференцируемое всё, https://arxiv.org/abs/2403.14606. А теория, показывающая необходимость множества контроллеров разного уровня, в том числе мелких "низовых" контроллеров как раз для таких схем -- это https://arxiv.org/abs/2401.15185, "Towards a Theory of Control Architecture: A quantitative framework for layered multi-rate control", там показывается, что размеры в системах управления просто обязаны быть разными, иначе не получишь качественного управления. Там в соавторах и John Doyle, на работы которого десятилетней давности по системному синтезу контроллеров я много раз давал ссылки (например, вот -- https://ailev.livejournal.com/1622346.html, это 2022). Если хочется "быстро и точно", то должно быть несколько уровней управления и несколько уровней размеров и характеристик самой управляемой системы -- иначе будет или "быстро и неточно", или "не быстро, хотя точно".Ключевое тут -- слово layered, ибо речь идёт о послойной организации управления для различных системных уровней. На фондовом рынке сейчас обсуждают как раз судьбу NVIDIA — она заявила, что мощно идёт в робототехнику, а не только в датацентры. "Вау!", сказали инвесторы. И вот тут надо понять, почему. Для робототехники у NVIDIA не один чип и один "суперкомпьютер на маленькой плате", а целая линейка таких. Скажем, Jetson Orin Nano series — "Up to 40 TOPS, 7-15W, 70mm x 45mm, Starting at 199 USD, Available now" это вроде "дорого-богато" и очень толсто, для быстро бегающего кофейника (всё-таки для разговаривающего кофейника нужна немного другая аппаратура). Зато "вам не надо менять ни строчки, если вы захотите чего-то помощнее" и "вам не надо учить ничего заново, если выберете эту плату" — https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/ (и рынок смотрит не на характеристики платы, а на итоговые характеристики команды, которая выбрала эту плату. Всё-таки в бизнес-учебниках сейчас рассказывается про evolvability, как раз про это пишу в курсе "Системная инженерия" вот прямо сейчас). Но общий разговор про то, что Software 2.0 про дифференцируемые программы, где нейросетки — частный случай, он остаётся. Железо нужно и мелкое тоже, конечно — как минимум, для систем управления, робототехника. Если хочется сделать сложную систему управления, то делать её разные уровни на зоопарке аппаратуры и софта — так себе идея. Поэтому китайцы китайцами, а NVIDIA с её "линейкой" Jetson вполне может вырулить. Так, Jetson AGX Orin series — Up to 275 TOPS, 15-60W,100mm x 87mm, Starting at 899 USD, Available now. И в промежутке там к Nano есть ещё Jetson Orin NX series. Ключевое в предложении NVIDIA: "вы сохраняете все вложения в разработку софта, когда переходите с одного нашего железа на другое -- как в плане размера в продуктовой линейке, так в плане новых моделей. Поэтому с нами безопасней, меньше рисков промахнуться". Неудивительно поэтому, что "знаменитые китайские роботы" используют NVIDIA Jetson Orin -- например, именно их использует Unitree, текущий лидер робототехники. Вот его знаменитый G1, там прямо указано, что мозги там -- NVIDIA Jetson Orin (не указано, какая именно модель, но в этом и фишка: софт на разных моделях один и тот же, а ещё софт ровно тот же на симуляторах в датацентрах -- и вот тут уже поставщикам мелкого железа одного масштаба крыть нечем!), https://www.unitree.com/g1.Важнейшее свойство учёта безмасштабности -- это "не меняем ни строчки в математике, но занимаем разные экологические ниши на разных системных уровнях многоуровневых систем управления". Одна математика на всех уровнях, но разная скорость её работы и разные характеристики скорости-точности на каждом уровне, разные объекты управления. Так что NVIDIA целится в занятие всех возможных ниш, а не занятие одной ниши. Нельзя рассматривать одиночный одноуровневый продукт, по принципу нельзя, нужно какое-то многоуровневое рассмотрение, закрывающее диапазон шкал и характеристик. В "Theory of Control Architecture: A quantitative framework for layered multi-rate control" прямо постулируется, что это подход/методология/framework для многоуровневого/рекурсивного/ренормализованного универсального описания архитектуры, причём утверждается, что это для естественных и engineered/искусственных/инженерных систем. Вот абстракт: This paper focuses on the need for a rigorous theory of layered control architectures (LCAs) for complex engineered and natural systems, such as power systems, communication networks, autonomous robotic
Обсуждали примеры использования железа для edge AI (с https://t.me/hw_ml/8015), ибо вроде как разговаривать с LLM на таком железе не получится -- но кому-то оно нужно? Для чего нужно? Быстро сортировать объекты на годные-негодные, опасные-неопасные, классификационные задачи? Нет, необязательно классификационные, там вполне могут быть и не быстрые классификаторы и не махонькие LLM. Я думаю, что "мелкое железо" нужно прежде всего для управления/control, решения парадокса Моравека. В частности, там Software 2.0, дифференцируемое всё, https://arxiv.org/abs/2403.14606. А теория, показывающая необходимость множества контроллеров разного уровня, в том числе мелких "низовых" контроллеров как раз для таких схем -- это https://arxiv.org/abs/2401.15185, "Towards a Theory of Control Architecture: A quantitative framework for layered multi-rate control", там показывается, что размеры в системах управления просто обязаны быть разными, иначе не получишь качественного управления. Там в соавторах и John Doyle, на работы которого десятилетней давности по системному синтезу контроллеров я много раз давал ссылки (например, вот -- https://ailev.livejournal.com/1622346.html, это 2022). Если хочется "быстро и точно", то должно быть несколько уровней управления и несколько уровней размеров и характеристик самой управляемой системы -- иначе будет или "быстро и неточно", или "не быстро, хотя точно".
Ключевое тут -- слово layered, ибо речь идёт о послойной организации управления для различных системных уровней. На фондовом рынке сейчас обсуждают как раз судьбу NVIDIA — она заявила, что мощно идёт в робототехнику, а не только в датацентры. "Вау!", сказали инвесторы. И вот тут надо понять, почему.
Для робототехники у NVIDIA не один чип и один "суперкомпьютер на маленькой плате", а целая линейка таких. Скажем, Jetson Orin Nano series — "Up to 40 TOPS, 7-15W, 70mm x 45mm, Starting at 199 USD, Available now" это вроде "дорого-богато" и очень толсто, для быстро бегающего кофейника (всё-таки для разговаривающего кофейника нужна немного другая аппаратура). Зато "вам не надо менять ни строчки, если вы захотите чего-то помощнее" и "вам не надо учить ничего заново, если выберете эту плату" — https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/ (и рынок смотрит не на характеристики платы, а на итоговые характеристики команды, которая выбрала эту плату. Всё-таки в бизнес-учебниках сейчас рассказывается про evolvability, как раз про это пишу в курсе "Системная инженерия" вот прямо сейчас). Но общий разговор про то, что Software 2.0 про дифференцируемые программы, где нейросетки — частный случай, он остаётся. Железо нужно и мелкое тоже, конечно — как минимум, для систем управления, робототехника. Если хочется сделать сложную систему управления, то делать её разные уровни на зоопарке аппаратуры и софта — так себе идея. Поэтому китайцы китайцами, а NVIDIA с её "линейкой" Jetson вполне может вырулить. Так, Jetson AGX Orin series — Up to 275 TOPS, 15-60W,100mm x 87mm, Starting at 899 USD, Available now. И в промежутке там к Nano есть ещё Jetson Orin NX series.
Ключевое в предложении NVIDIA: "вы сохраняете все вложения в разработку софта, когда переходите с одного нашего железа на другое -- как в плане размера в продуктовой линейке, так в плане новых моделей. Поэтому с нами безопасней, меньше рисков промахнуться". Неудивительно поэтому, что "знаменитые китайские роботы" используют NVIDIA Jetson Orin -- например, именно их использует Unitree, текущий лидер робототехники. Вот его знаменитый G1, там прямо указано, что мозги там -- NVIDIA Jetson Orin (не указано, какая именно модель, но в этом и фишка: софт на разных моделях один и тот же, а ещё софт ровно тот же на симуляторах в датацентрах -- и вот тут уже поставщикам мелкого железа одного масштаба крыть нечем!), https://www.unitree.com/g1.
Важнейшее свойство учёта безмасштабности -- это "не меняем ни строчки в математике, но занимаем разные экологические ниши на разных системных уровнях многоуровневых систем управления". Одна математика на всех уровнях, но разная скорость её работы и разные характеристики скорости-точности на каждом уровне, разные объекты управления. Так что NVIDIA целится в занятие всех возможных ниш, а не занятие одной ниши. Нельзя рассматривать одиночный одноуровневый продукт, по принципу нельзя, нужно какое-то многоуровневое рассмотрение, закрывающее диапазон шкал и характеристик.
В "Theory of Control Architecture: A quantitative framework for layered multi-rate control" прямо постулируется, что это подход/методология/framework для многоуровневого/рекурсивного/ренормализованного универсального описания архитектуры, причём утверждается, что это для естественных и engineered/искусственных/инженерных систем. Вот абстракт: This paper focuses on the need for a rigorous theory of layered control architectures (LCAs) for complex engineered and natural systems, such as power systems, communication networks, autonomous robotics, bacteria, and human sensorimotor control. All deliver extraordinary capabilities, but they lack a coherent theory of analysis and design, partly due to the diverse domains across which LCAs can be found. In contrast, there is a core universal set of control concepts and theory that applies very broadly and accommodates necessary domain-specific specializations. However, control methods are typically used only to design algorithms in components within a larger system designed by others, typically with minimal or no theory. This points towards a need for natural but large extensions of robust performance from control to the full decision and control stack. It is encouraging that the successes of extant architectures from bacteria to the Internet are due to strikingly universal mechanisms and design patterns. This is largely due to convergent evolution by natural selection and not intelligent design, particularly when compared with the sophisticated design of components. Our aim here is to describe the universals of architecture and sketch tentative paths towards a useful design theory.
Понятно, что в Theory of Control Architecture речь идёт о многоуровневой/многослойной теории, layered control, layered architecture, хотя эти же люди говорили ещё в 2019 году другие слова -- system level (controller) synthesis (это работы John Doyle, https://scholar.google.com/citations?hl=en&user=C6DtGmMAAAAJ&view_op=list_works&sortby=pubdate). И, конечно, эти авторы вполне себе работают с эргодическими системами и эмерджентностью (это работы Nikolai Matni, https://scholar.google.com/citations?hl=en&user=ZDPCh_EAAAAJ&view_op=list_works&sortby=pubdate -- и там легко находится "State space models, emergence, and ergodicity: How many parameters are needed for stable predictions?", https://arxiv.org/abs/2409.13421, там физическое рассмотрение на основе математики нейронных сетей).
Конечно, для каждого уровня будут адаптации и специализации, но общий ход рассуждений остаётся одним и тем же для каждого из уровней и понимания, как там всё (отдельный вопрос -- что именно) укладывается в эти уровни. Зачем это надо? Кто видит эту многоуровневость мира -- тот этим миром правит. Скажем, NVIDIA приводилась мной в пример ещё в 2018 году как компания системных мыслителей, ибо там вообще все презентации и коммуникации велись через предъявление этой многоуровневости (вот текст об этом: https://ailev.livejournal.com/1416697.html). Тогда ведущая роль NVIDIA была ещё малозаметна для публики, многие ещё путали NVIDIA с поставщиком видеокарт для компьютерных игр, а ведь это было всего семь лет назад! А сейчас это лидер рынка аппаратуры для AI, и для меня этот рыночный успех -- закономерен, ибо компания демонстрировала мышление системных инженеров. Помним, что деньги приходят на более высокий системный уровень, а инновации (эволюционные novelties) приходят сбоку на низкие системные уровни. И эта эволюция происходит на каждом уровне.
Подходы к многоуровневости объектов
Выше -- это одно из многоликих проявление системного подхода, причём первого поколения:
-- рассказывается о чём-то многоуровневом, причём подчёркиваются универсалии каждого уровня и подход к описанию всех уровней вместе (безмасштабность описания каких-то единиц, тут это контроллеры -- функциональные из теории и "железные" из продуктовой линейки NVIDIA)
-- не рассказывается о создателях (хотя это и не совсем так, причём речь тут не о NVIDIA. Речь идёт о создателях, которые должны будут освоить или один метод разработки для NVIDIA для всех уровней/масштабов железа и софта -- или зоопарк методов разработки для зоопарка разного железа и софта на разных уровнях/масштабах)
-- не затронуты вопросы эволюции (скажем, dynamic fitness landscape, "кто был никем, тот станет всем", и наоборот)
И даже в части первого поколения дырки: не указаны различения в многоуровневости фундаментальной (функциональной, конструктивной, пространственной, временно́й/эволюционной) и всяких гибридов (типа стоимостного) Какое там разбиение? Это слои разбиения или уровни -- вроде бы слои и уровни синонимы, или всё-таки есть оттенки смысла? Вроде бы разбиение должно быть иерархично, но там же сети отношений объектов каждого уровня? А какие там объекты на этих уровнях? Их ведь много, там тоже "синонимы с нюансами" (отсылка к одному и тому же понятию, но с попыткой привлечь внимание к какому-то аспекту, интересам какой-то роли. И, конечно, термины все эти путаются, они многозначны и одна школа мысли может применить те же слова для совсем других значений):
-- ренормализация (применение одного и того же формализма, одной и той же математики на каждом уровне)
-- рекурсия (системная инженерия, там "рекурсивное применение метода на каждом системном уровне")
-- фрактальность (самоподобие уровней)
-- безмасштабность (отсутствие специфики для какого-то масштаба объектов)
(эти же люди говорили ещё сам Doyle раньше предпочитал говорить о system-level approach of системном синтезе, где на многоуровневость указывало слово "системный"). Какие вообще есть теории описания многоуровневости в науке и инженерии? Что там за таймлайн этих теорий -- что там устарело, а что свежо и отвечает на критику?
В разных теориях, конечно, разные слова-термины. Как понять, когда разными словами говорят об одном и том же, есть ли какой словарик "синонимии с нюансами"?
Конечно, тут больше интересует вопрос фундаментальных безмасштабных многоуровневых теорий: знание принципов освобождает от знания фактов, поэтому немного теории заменяет довольно много разбирательств с конкретными проектами, которые опираются на эти теории.
Теории многоуровневости: системный подход в его множестве обличий
Как у нас называются многоуровневые сущности? Очень по-разному:
-- системы, иногда холоны: имеют границу и окружение, основное отношение часть-целое. Систем предлагается огромное количество, например, древние автопоэтические системы малоотличимы от агентов.
-- агенты, упор на автономность, в том числе устойчивость к распаду. Варианты тут в количестве, например, из active inference -- предсказательная самоподдержка (пластичность по отношению к изменениям в себе и окружении, с эволюционным масштабом тут сложно)
-- ренормализованные нейроны, упор на применимость математики машинного обучения, этим занимаются и в группе Ванчурина, и в группе John Doyle (работа https://arxiv.org/abs/2409.13421 как раз оттуда)
-- IPU (information processing units), синоним ренормализованных нейронов -- термин был выбран, чтобы биологи не путали ренормализованные нейроны из машинного обучения с мокрыми нейронами живых существ), это тоже из работ Ванчурина и Кацнельсона с биологами, https://www.pnas.org/doi/10.1073/pnas.2120037119
-- репликаторы, эволюционные единицы отбора -- упор на то, что все они меняются в ходе эволюции, это пошло с Dawkins и его "эгоистичного гена", а потом подхвачено в части многоуровневости в работах eco-evo-devo (extended evolutionary synthesis)
-- наблюдатель (observer, participatory observer), в некоторых интерпретациях квантовой механики -- но там тоже многоуровневость.
-- создатель/constructor, акцент на неизменность-неразрушаемость при выполнении операций с окружением (что очень похоже на агента, но акцент не на автономность, а на готовность к повторению операций, неразрушимость во взаимодействиях).
-- ренормализованные сущности/entities, подчёркивают идею инвариантности к шкале, уровню гранулярности и использованию одной и той же математики для описания явлений на разных уровней.
-- узлы/nodes, подчёркивают идею сети отношений на каждом уровне/слое.
По большому счёту, это всё отсылки на один и тот же концепт, "синонимы с нюансами" -- разные термины подчёркивают разные аспекты описания, разные акценты.
Большинство теорий при этом не различает функциональную и конструктивную декомпозицию/синтез -- при этом подразумевается, что в этих то ли уровнях, то ли слоях (чаще всего это синонимы, выбор их произволен) какие-то функциональные или конструктивные сети, где отношения между объектами образуют сети, называемые часто:
-- организацией, если речь идёт о функциональных отношениях (потоки и порты). Скажем, "Discrete IPUs (that is, self- vs. nonself-differentiation and discrimination) exist at all levels of organization" из той же работы Ванчурина со товарищи https://www.pnas.org/doi/10.1073/pnas.2120037119. Организация указывает каким процессом функциональные части системы склеиваются в функциональное, стабильное (и часто -- эволюционирующее) целое. Границы тут не очень важны.
-- архитектурой (изредка -- структурой), если речь идёт о конструктивных отношениях (физические взаимодействия и интерфейсы), а в случае экземпляров -- это конфигурация. Архитектура -- это про то, как именно модули-части собираются в целое, взаимодействуя через свои границы по интерфейсам. Границы тут как раз важны.
-- компоновкой, если речь идёт о пространственных отношениях и прилеганиях в пространстве
-- стадийностью, если речь идёт о временно́й/эволюционной структуре
-- ... и там ещё много всякого, в том числе гибриды типа "стоимости", которая тоже многоуровнева, но цепляет самые разные другие многоуровневые представления.
Слова-термины важны, и не важны.
Если понимаешь идею безмасштабного/рекурсивного/многоуровневого/фрактального/ренормализованного/системного (и так далее!) описания мира -- разберёшься с любыми терминами.
Так, "организация -- это функциональная многоуровневость, а архитектура -- это конструктивная многоуровневость" --это просто "частые значения". Но употреблять в этих значениях слова-термины "организация" и "архитектура" будут отнюдь не всегда: влёгкую будут называть функциональные структуры с dataflow и портами (без интерфейсов!) архитектурой (скажем, "архитектура нейронной сети" -- старое значение слова "архитектура"), а организацией -- какую-нибудь сеть модулей-на-интерфейсах.
И ещё надо понимать, что "организация" и "архитектура" -- это не исчерпывающий список терминов для указания на многоуровневую сетевую структуру. Там будет и "конфигурация" (отнюдь не экземпляров модулей), и топология, и даже "композиционная структура". Эволюция чаще всего обсуждается как эволюция функциональных объектов, но и тут надо быть настороже: если говорим о версионировании или переконфигурировании, то это обычно обсуждение эволюции архитектуры. Не факт, что хоть кто-то задумался о выборе слова "организация" при написании вышеупомянутой фразы "Discrete IPUs (that is, self- vs. nonself-differentiation and discrimination) exist at all levels of organization", но интуитивно понятно, что речь идёт о функциональном описании -- при этом назначение/purpose подозрительно напоминает описание системы, это же про границы между системой и окружением. Слова в тексты приходят "навеянные музыкой", общим культурным фоном. Каждый раз надо в каждом проекте и каждой теории разбираться с типами: о чём там говорится.
На картинке -- системы вроде на всех уровнях, но с нюансом: если это последний уровень в какой-то ветви иерархии, то это уже не система, а "системный элемент". Это ведущий стандарт классической системной инженерии. И если вы вдруг решите сделать этот элемент из двух частей, то придётся поменять тип с "системного элемента" на "систему". И это счастье, ибо раньше у вас это было деталью, подсборкой, сборкой, подсистемой, системой (и это даже не все предписанные уровни), при любом изменении организации и архитектуры приходилось переприсваивать типы объектов. Сама идея, что уровни по отношению "часть-целое" должны содержать какие-то единицы/units одного типа -- она в системную инженерию шла очень медленно, а до многих мест "просто инженерии" пока ещё вообще не дошла.
Какова ваша реакция?