Основная проблема в инженерии путём генерации новых архитектур нейронными сетями в том, что архитектура должна давать вариант многоуровневой оптимизации конфликтов между системными уровнями, при этом нейросеть обычно не может сгенерировать оптимизацию, которая выходит за рамки тех примеров, которые ей показывали в ходе обучения. А эволюционный алгоритм принципиально может. Поэтому статья предлагает оставить снаружи эволюционный алгоритм, принципиально дающий новизну решений за пределами того, что уже видела нейронная сеть, но вставляем внутрь «умный мутационный оператор» на основе нейросети, который предлагает потенциально не смертельную мутацию. Помним, что в работах по эволюции как многоуровневой оптимизации подчёркивалось, что всё в ходе эволюции давно уже квазиоптимизировано, какие-то локальные оптимумы для минимума свободной энергии целевой системы достигнуты, поэтому большинство случайных мутаций будут смертельными (выходим за рамки локального оптимума в менее благоприятные зоны), немного их будут нейтральными (находим другой квазиоптимум, они очень близки обычно), редко что-то приводит к маленькому улучшению текущего локального оптимума, и совсем уж редко что-то радикально приближает к обычно недостижимому глобальному оптимуму.
Если в основу эволюции брать не проверки по большому объёму бессмысленных смертельных мутаций, а проверки по менее большому объёму заведомо более осмысленных предложений, эволюция в целом пойдёт быстрее. Статья демонстрирует это на примере эволюционного алгоритма для генерации программного кода, порождаемого нейросетью ровно как это делают системы подсказок для кода программ: GitHub Copilot и Amazon CodeWhisperer. Если грубо, то статья предлагает вместо случайных перестановок текста в генетических алгоритмах использовать подсказки всех этих Copilots и CodeWhisperers[12 - https://techcrunch.com/2022/06/23/amazon-launches-codewhisperer-its-ai-pair-programming-tool/ (https://techcrunch.com/2022/06/23/amazon-launches-codewhisperer-its-ai-pair-programming-tool/)]. И там же даётся ещё много разных других способов ускорить эволюцию (ибо много ещё мест, где «универсальный аппроксиматор/оптимизатор» типа нейронной сетки можно задействовать в эволюционном алгоритме).
Если представить, что у всех инженеров в голове есть вычислители этих самых «умных мутаций» и других оптимизационных вставок в эволюционный алгоритм, да ещё в последнее время эти «вычислители в голове» умощняются компьютерами и средствами компьютерной связи для объединения вычислений многих людей и компьютеров, то мы смело можем считать инженеров всей Земли ускорителями эволюции. Мы берём инженеров вместе с их моделерами и заводами: моделеры документируют мутации, а заводы производят какие-то продукты, которые потом «пробуются жизнью на соответствие среде», некоторые из них оказываются удачны настолько, что предложенные в них «мутации» оказываются достойными повторения. А поскольку в нашем подходе инженеры – это те, кто что-то делают/практикуются/трудятся, то всё человечество оказывается мощным вычислителем-ускорителем эволюции, то есть работает на то, чтобы минимизировать негативные сюрпризы от окружающей среды, это и есть «изменение жизни к лучшему». Сложность окружающего мира продолжает расти, но уже не только за счёт классической биологической эволюции, но и за счёт технологической эволюции, которую производят люди, и которая просто часть общей «физической» эволюции.
Итак, если инженеры угадали техническое решение, то «бинго, вымри твой вид продукта сегодня, а мой вид завтра». Если не угадали, то будет наоборот: финансирование работ тех, кто не угадал, будет прекращено. В эволюции биологической вид вымирает, и эта неудачная ветвь просто прекращает существование. В технологической эволюции ничего страшного не происходит: все люди и их компьютеры обычно остаются живыми и просто производят следующий вариант «умной мутации техносреды», пробуют что-то ещё.
Так что для уменьшения бизнес-неудач остаётся поднять вероятность угадывания хороших концептуальных (найти аффорданс/affordance: как какую-то функцию реализовать каким-то объектом из окружения, решения по концепции использования и концепции системы) и архитектурных решений (способ разбиения конструктивных объектов на части-модули и организация взаимодействия их такие, что архитектурные характеристики становятся «наименее плохие из возможных») как «умных мутаций», и это ровно то, что должны бы делать нейросетки: 1. Для языковых моделей типа T5 или GPT-3 поднимать степень осмысленности того, что они выдают в ответ на какие-то промпты/prompt[13 - https://en.wikipedia.org/wiki/Prompt_engineering (https://en.wikipedia.org/wiki/Prompt_engineering)], то есть улучшать и нейросети и способы генерирования промптов как запросов к нейросети на продолжение промпта (принцип работы моделей типа T5: они просто продолжают какую-то строку-промпт, например промпт «2x2=» наверняка получит своим продолжением «4») и 2. учитывать для генерации «не совсем случайной мутации» максимум информации о мире. Ровно это и происходит: большие модели, выдающие эти самые мутации, могут использовать знание о мире, которое воплощено не только в инженерных кодах, компьютерных программах или информационных моделях (корпусная инженерия[14 - https://ailev.livejournal.com/1009201.html (https://ailev.livejournal.com/1009201.html)]), но и в просто текстах на естественном языке, а также фотографиях и других изображениях[15 - Например, вот такие работы по мультимодальным вычислениям в нейронных сетях – Allen AI & UW Propose Unified-IO: A High-Performance, Task-Agnostic Model for CV, NLP, and Multi-Modal Tasks, https://arxiv.org/abs/2206.08916 (https://arxiv.org/abs/2206.08916)] и даже геноме человека[16 - GENA_LM – первая в мире языковая модель ДНК, обученная на самой полной версии генома человека (T2T-CHM13), которая была опубликована в конце марта 2022 года, https://huggingface.co/AIRI-Institute/gena-lm-bert-base/ (https://huggingface.co/AIRI-Institute/gena-lm-bert-base/), https://github.com/AIRI-Institute/GENA_LM (https://github.com/AIRI-Institute/GENA_LM)], 3. Не останавливаться в своих попытках на первой же, а продолжать (непрерывная инженерия), пока позволяют ресурсы.
Дальше можно думать о том, чтобы запускать алгоритмы «умной мутации», то есть алгоритмы архитектурных решений для того, чтобы улучшать и эволюционные алгоритмы, и для того, чтобы улучшать мутационный оператор, и для того, чтобы улучшать моделирование мира для определения того, выживет ли индивид с фенотипом, определяемым мутацией в генотипе, в виртуальном мире, чтобы уменьшить время экспериментирования и ресурсы, требуемые для проверки выживаемости в физическом мире. Тут есть и альтернативные подходы, которые прямо говорят о генерации каких-то оптимальных архитектурных технических решений, без связи этого с идеями эволюции (то есть рассматривается один жизненный цикл, а не то, что параллельно идёт конкуренция с другими проектами, которые предлагают другие варианты архитектурных решений какой-то проблемы). Скажем, можно «смягчать»/relax формулирование архитектурных проблем из языка дискретных решений так, чтобы получать набор вроде бы непрерывных, то есть дифференцируемых функций, искать архитектурный оптимум на них нейросетевыми или даже какими-то другими алгоритмами, а потом возвращать в дискретную область архитектурных решений для формулирования ответа на вопрос об оптимальной архитектуре[17 - https://ailev.livejournal.com/1464563.html (https://ailev.livejournal.com/1464563.html)].
Этические/политические проблемы естественной эволюции, которые можно решать инженерно
При таком подходе к архитектурной работе в инженерии как оптимизации конфликтов системных уровней в ходе эволюции появляется возможность по-новому взглянуть на старые этические/политические проблемы. Скажем, если мы применим «умные мутации» к человеческому геному, то получим евгенику[18 - https://ru.wikipedia.org/wiki/Евгеника (https://ru.wikipedia.org/wiki/%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%BA%D0%B0)] средствами генетической инженерии. Далее можно задать вопрос: сколько людей в идущей в том числе и сейчас биологической эволюции человека умрёт до появления «усиленной версии человека будущего» в ходе естественных случайных мутаций, и сколько людей умрёт в ходе вот такой «инженерной эволюции», где мутации будут предлагаться на основе какой-нибудь языковой модели генома на базе нейронной сети? Ведь вся суть предложений «смарт мутаций» как раз в том, чтобы уменьшить порождение потенциально вымирающих от несоответствия/misfit окружающей среде индивидов, которым суждено быть просто «неудачными ветвями эволюции»! Это алгоритмы увеличения количества живых, которые будут более живучи в мире, но при этом минимизирующих количество мертвецов, на которых пробовали разные мутации. Эволюция человека тут просто предельный случай, который сразу поднимает жёстко сформулированные этические вопросы жизни и смерти. Можно выделить два предельных мнения:
• «Руки прочь от естественной эволюции, что-нибудь повредите, всякие генетические инженерии и социальные инженерии опасны!», – это подход охранителей с их скрепами. Они достаточно сильны, в США недавно принято судебное решение как раз в области ограничения естественных влияний на рождение людей, а именно, запрет абортов[19 - https://www.nbcnews.com/politics/supreme-court/supreme-court-wipes-away-constitutional-guarantee-abortion-rights-over-rcna18718 (https://www.nbcnews.com/politics/supreme-court/supreme-court-wipes-away-constitutional-guarantee-abortion-rights-over-rcna18718)].
• «Вы что, сдурели оставлять всё естественной эволюции, у неё ж на поиски решения уйдёт миллион лет и миллиард смертей! А то и вообще всё сдохнет, это ж эволюция! Срочно зовите инженеров!», – эту точку зрения представляет, например, John Doyle[20 - https://ailev.livejournal.com/1622346.html (https://ailev.livejournal.com/1622346.html)].
Генная инженерия поэтому сразу сталкивается с подобными вопросами, иногда это называют «биоэтика». Но вот эволюция той же нейронной сетки тут пример поближе к «обычной инженерии», но и тут могут быть вопросы (например, «можно ли выключать нейронную сеть, если мы заметили, что у неё есть сознание?»), или эволюция робота (и вопросы свободы воли робота), или эволюция атомных реакторов («безопасность человечества против доступа к дешёвой электроэнергии»).
Ещё жёстче стоит вопрос при выходе на уровни социальной инженерии, и тут уже работать могут не судебные механизмы против отдельных людей, а военные механизмы против больших групп людей (да, автор понимает, что привлечение примеров из политики может существенно отвлечь внимание и ему знаком текст «Политика – убийца разума»[21 - https://lesswrong.ru/w/Политика_убийца_разума (https://lesswrong.ru/w/%D0%9F%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%83%D0%BC%D0%B0)], но надеется на то, что из примеров будет вычитываться не собственно политика и политические решения по конкретным кейсам, а будет вычитываться применение принципов инженерии к сообществам, обществам, человечеству). Так Касым-Жомарт Кемелевич Токаев (президент Казахстана) сказал[22 - https://tass.ru/mezhdunarodnaya-panorama/14956829 (https://tass.ru/mezhdunarodnaya-panorama/14956829)]: «Подсчитано, что если право наций на самоопределение в реальности будет реализовано, то вместо 193 государств, входящих в состав ООН, на земле возникнет более 500 или 600 государств, конечно же, это будет хаос. По этой причине не признаем ни Тайвань, ни Косово, ни Южную Осетию, ни Абхазию. И, по всей видимости, этот принцип будет применен в отношении квазигосударственных объединений, коими, на наш взгляд, являются Луганск и Донецк».
Тут даже неважно, если дать право людям на свободную сецессию[23 - https://ru.wikipedia.org/wiki/Сецессия (https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%86%D0%B5%D1%81%D1%81%D0%B8%D1%8F)], будет ли 500—600 государств, а не 3500. И почему сегодня в мире не хаос, когда всякие спорные полугорячие точки вроде Тайваня, Северного Кипра и так далее (включая потенциально страну басков, время от времени желающий отделиться Техас и сотни других регионов) можно войной или мирно забирать в другие страны, или наоборот, не отпускать, если считать их сепаратистами, или же считать «борцами за независимость» или «возвращающимися в родное старое государство» и это не ведёт к хаосу, а каким-то чудом его предотвращает, а 600 государств вдруг будут хаосом, если отпускать без войны. Война уничтожает людей, но мирное изменение границ государств само по себе не уничтожает людей, и уж точно не приводит к «хаосу», просто чьи-то амбиции по рулению себе подобными ущемляются, а чьи-то нет. Хаос возникает именно от войны, в том числе военного и изменения границ, и военного неизменения границ. Нужно чётко понимать, что при изменении границ нужно обсуждать проблемы разных системных уровней. Когда-то Россель, будучи губернатором Свердловской области, высказал те же аргументы Ельцину по поводу автономии для области, что Ельцин высказывал Горбачёву для автономии РСФСР от СССР. Абсолютно те же аргументы, но Росселю и его сторонникам автономизироваться никто не дал, а Ельцин у Горбачёва и СССР в точно такой же ситуации выиграл. Нужно понимать, что это всё попытки инженерной деятельности, по изменению устройства общества. Принципы, которые учитывают одноуровневую оптимизацию (границы государств, например, и только), а не многоуровневую (структуры уровня мельче государств и уровня крупнее государств) плохие, они не ведут к изменению жизни к лучшему, они не дают многоуровневой оптимизации. Они пытаются содействовать выигрышу какого-то одного уровня в межуровневых конфликтах. Но это невозможно, ибо эволюция стремится к нахождению многоуровневого оптимума, а не одноуровневого.
В случае границ государств как оформляющих границы разных общественных организованностей (обществ с разной одинаковостью его членов) нужно помнить о неустаканенностях/frustrations таких же, какие наблюдаются в спиновых стёклах[24 - https://en.wikipedia.org/wiki/Geometrical_frustration (https://en.wikipedia.org/wiki/Geometrical_frustration) – и обязательно смотрите там видео Frustrated magnetism in solids, ибо нужно понимать динамику происходящего, она лучше даётся в видео.].
В учебнике «Практическое системное мышление» это рассказывается подробнее, даются ссылки на литературу по эволюции (например, почему существует множество похожих по качеству решений оптимизационной проблемы, и легки переходы между состояниями системы, соответствующими этим решениям[25 - https://www.pnas.org/doi/10.1073/pnas.1807890115 (https://www.pnas.org/doi/10.1073/pnas.1807890115)]). При этом остановить историю не получится, социальная инженерия непрерывна: «добиться достижения цели» нельзя, ибо сама цель непрерывно движется, и обстоятельства её достижения меняются, а ещё системы неэргодичны, у них есть память и нельзя просто «вернуть всё назад», поддерживать равновесие, гомеостаз. Развитие не гомеостатично, эволюция это не гомеостаз (хотя удерживание какой-то границы между отдельной системой и её окружением и можно с трудом назвать гомеостазом, но акцента на изменениях в подстройке к происходящему и убеганию от ожидаемых опасностей в будущем больше, чем акцента на неизменности, на которой центрируется гомеостаз).
Так что в инженерии можно действовать методом чисто эволюционным: проб и ошибок, и в социальной инженерии тоже так можно делать. Но ценой этого будет много смертей, и хорошо если это будут смерти фиктивных сущностей (скажем, если умрёт государство, то некоторым людям будет просто очень-очень обидно, но если умрёт множество людей вместе с государством, то это уже не «просто обидно», это невосполнимые потери). Если нет нормальной объяснительной контрфактуальной порождающей теории/модели, то ничего сделать в политике нельзя: любой пробегающий мимо специально обученный риторике как убедительной речи «пропагандист» даст более яркую картинку, и уведёт за собой толпу людей. Часть толпы, правда, останется. А ещё часть разбредётся. Без SoTA теории в политику как социальную инженерию идти нельзя, как и в любую инженерию. Нужны сущностные аргументы, а не просто «пропаганда» и «яркий образ». Дело тут даже не в строгости логики (можно обсуждать, какой логики: булевой, байесовской или квантовоподобной, этим занимается фундаментальная дисциплина рациональности[26 - https://ailev.livejournal.com/1619025.html (https://ailev.livejournal.com/1619025.html)]), но хоть какой-то объяснительной теории того, что происходит. Если такой теории нет, то мы имеем дело с безжалостной естественной эволюцией, она принесёт нам много нового интересного, но это будет долго и дорого, никакое лыко не будет в строку. При этом если есть труды типа тех же трудов Ванчурина-Кацнельсона-Вольфа-Кунина, то текущие политические теории о той же сецессии нужно признать прокритикованными (они объясняют меньше и хуже, чем новые теории). И честно вести другую политику.
Основная идея в том, что при многоуровневой организации общества (хоть сколь-нибудь устойчивые структуры разных уровней размера, составленные из людей и их вещей, включая землю и недра) неизбежны конфликты между целями разных уровней, а главная цель – «сохраниться, чтобы не съели и не умерли от голода, холода и болезней», и делать это с минимальными усилиями. Чистая физика-математика, а не идеалы из какого-то «исторического прошлого».
Есть множество субоптимальных решений, которые примерно одинаково неоптимальны, пока не появляется (редко!) какое-то крупное новшество, обычно приводящее к появлению нового системного уровня (типа одноклеточные стали многоклеточными, а многоклеточные образовали популяции с двумя полами). Это означает, что есть огромное количество разных конфигураций «стран» с самыми разными вариантами границ между ними и устройством жизни в этих странах, и эти варианты конфигураций деления мира на страны все будут примерно одинаковы в части успешности межуровневых конфликтов – хоть этих стран будет как сейчас 193, хоть 600 или даже 3500.
Ситуация может резко поменяться, если будут изобретены какие-то новые типы межстрановых объединений (так, Единая Европа, НАТО, ОДКБ тут примеры попыток социальной инженерии этого межстранового уровня, но можно думать и о других вариантах конструкции межстрановых объединений), новых типов стран (федеративное и конфедеративное государство когда-то было таким новым типом, тоже признающим, что оно состоит как целое из частей) и новых типов частей стран (областей, графств, штатов или как они там могут называться). Более того, никакое одно решение одного уровня не пройдёт, чтобы границы стран можно было переустраивать без смертей, нужны решения на всех уровнях сразу.
Конечно, президент «страны» плевать хотел на президента «графства», это ж понятно – он это просто по должности должен делать, защищать интерес этого уровня, «держать и не пущать», а также «строить империю, собирать земли». Но иногда графство/область вдруг начинает дружить «через голову» с другими президентами стран и даже страновыми объединениями, тогда страновое объединение уже выращивает свою бюрократию и плевать хотело на того президента, который против. Всё это непрерывно перемешивается и обладает памятью, как спиновые стёкла: возврата назад в какие-то прежние границы регионов и в теории не бывает, и в истории наблюдаем ровно это. Нужно крепко думать над словами тех, кто хочет стабилизировать неустроенности/неустаканенности/frustrations, обзывая их чистым хаосом, а не проявлением общих эволюционных законов. Если «заморозить границы по их сегодняшнему состоянию», то жди беды рано или поздно.
Какие могут быть инженерные решения? Демократия – это пока ещё относительно плохой и плохо проработанный, но всё-таки способ бескровной смены правителя. Без неё диктатора можно было бы менять только убийством диктатора и его сторонников. А при демократии при голосовании сразу видно, много ли сторонников, и поэтому никого убивать не надо, можно позволить всем жить. На уровне стран могла бы быть какая-то подобная процедура, и следы этой процедуры даже обговариваются, это идеи сецессионных или объединительных референдумов. Но дальше, как всегда, есть противники самих этих референдумов (и они же могут себя считать сторонниками демократии, не забываем, что у агентов разных системных уровней будут разные интересы).
По факту вся инженерия (как классическая, так и просто создание и изменение самых разных систем в части попыток изменить мир к лучшему) оказывается ускорением эволюции жизни как таковой. Инженерия тут просто увеличивает вероятность неумирания биологической жизни (как минимум, homo sapiens) при резких негативных изменениях в окружающей среде: люди выживают сегодня в ситуациях, где ещё сто лет назад точно бы умерли, их изделия инженеров и от болезней вылечивают, и от голода спасают, и от холода, и (после распространения кондиционирования воздуха) от жары.
В техноэволюции (и тем самым общей эволюции) активно участвуют не только инженеры классические (изобретатели архитектурных новаций в киберфизических системах), но и основатели/founders предприятий, которые строят предприятие на основе какой-то «предпринимательской гипотезы», ибо эта гипотеза как раз и есть предложение «умной мутации»: новый продукт, который сможет хорошо размножиться/реплицироваться в окружающей его среде. Предпринимательские гипотезы выдвигаются и маркетологами, и простыми людьми, которые строят свои действия на догадках о том, как изменить свои модели мира, модели себя, а также изменить мир и себя для того, чтобы избежать неприятных последствий. Некоторые из этих предпринимательских гипотез оказываются настолько интересными, что они реализуются хотя бы единожды, а некоторые настолько интересные, что их реализацию пробуют реплицировать/размножить. Так что вся инженерия оказывается частью «умной эволюции», а концепция использования (предпринимательская гипотеза), концепция системы, архитектурные решения оказываются «умными мутациями», причём важно отслеживать не только каждую такую мутацию, но и «умную эволюцию»/развитие: длинные цепочки во времени с опробыванием множества мутаций и получения быстрой обратной связи, и ещё как-то пытаться учитывать сложное взаимодействие этих мутаций друг с другом.
Если выйти на уровень социальной инженерии, то плохое понимание эволюционных процессов также ведёт к войнам в буквальном смысле слова, а это плохая инженерия.
Взгляд на системную инженерию как часть «умной эволюции» упирается в пока ещё недостаточное понимание современной науки, что такое системное мышление и откуда физически берётся эмерджентность и как она может быть описана традиционными для физики математическими средствами. Уже понятно, что:
• все описания эволюционирующего мира оказываются квантовыми в том смысле, что физические процессы излагаются как информационные (если можем что-то изменить при взаимодействии, то система генерирует ноль или единицу, квант/бит информации, это и есть «новая квантовость»[27 - первый абзац в https://ailev.livejournal.com/1621262.html (https://ailev.livejournal.com/1621262.html)] как информационный взгляд на физику, а не как особенности физики микромира с «квантовыми явлениями»).
• мы имеем дело с одними системами, которые являются моделями других систем, то есть их описаниями (ДНК – это описание организма, и даже мини-популяции, нужной для репликации фенотипа – мужчин и женщин). То есть работа с описаниями-репликаторами оказывается тесно связана с физикой как мы обычно это себе представляем (а физика теснее связана с информатикой, чем раньше казалось тем же физикам).
• в информационных системах количество неожиданно переходит в качество, то есть эмерджентность возникает при количественном росте вычислителя. С этим вообще малопонятно, что делать, просто дадим ссылки на литературу[28 - Очень интересные исследования про порог эмерджентности при масштабировании в обучающихся/эволюционирующих системах, и помним, что нейросети, термодинамика, эволюция имеют общую теорию/математику (в курсе «Практическое системное мышление» про это рассказывается и даются ссылки на работы Ванчурина-Кацнельсона-Вольфа-Кунина): Emergent Abilities of Large Language Models, резкие пороги в работоспособности нейросетей в зависимости от числа вычислений, размеров и прочего масштабирования, https://arxiv.org/abs/2206.07682 (https://arxiv.org/abs/2206.07682) гифка дерева возможных приложений у сети с масштабируемостью (пороги возможностей с ростом числа параметров сетки): https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html (https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html) резкое появление самых разных свойств у случайных графов (порог эмерджентности при росте связности графа): https://www.quantamagazine.org/elegant-six-page-proof-reveals-the-emergence-of-random-structure-20220425/ (https://www.quantamagazine.org/elegant-six-page-proof-reveals-the-emergence-of-random-structure-20220425/)].
• Без обсуждения трёх масштабов времени (жизнь как «эксплуатация», мутации и разворачивание генотипа в фенотип как «разработка и изготовление») и результат множества мутаций (эволюция видов как «непрерывная инженерия», «развитие технических систем») никаких рассуждений проводить нельзя.
Чтобы разбираться дальше, потребуется хорошенько разобраться со всем интеллект-стеком, всем набором фундаментальных дисциплин: там и про эволюцию, и про этику, и про инженерию, и про «движущую силу эволюции» как те самые конфликты между системными уровнями, и про многое другое. Учитесь, а не то вас достанут или (генные или социальные) инженеры, или эволюция. И даже союзы в последней фразе нужно менять с «или» на «и» – и непонятно ещё, какой вариант будет хуже. Или лучше.
Специализация/конкретизация практик системной инженерии
Понимание системной инженерии можно разбить на три основных уровня прикладности/специализации/конкретизации (не путать с системными уровнями), каждый из которых можно далее разбивать на подуровни.
1. Уровень специализации безмасштабной системной инженерии
Этому уровню и посвящён наш курс/книга. Он приложим ко всем масштабам системноинженерного стека и описывает многоуровневую работу системного инженера. Если вы хотите проложить трамвайный маршрут по городу, вам придётся как инженеру учитывать и общественное мнение, и особенности городского планирования и налаживания пассажиропотока, и особенности электротранспорта и его технической инфраструктуры, и особенности вагонного парка, включая отслеживание трендов по беспилотному транспорту (включая особенности беспилотности рельсового транспорта, который не может «уклониться» от внезапно появившегося сбоку препятствия). Это типичная задача системного инженера (это роль, исполняется человеком или организацией из многих людей), который будет работать с самыми разными прикладными инженерами (роль, будет исполняться человеком или организацией из многих людей) для этих самых разных предметным областей. Системный инженер будет выстраивать проектную коммуникацию для согласований по всем этим вопросам.
На этом уровне вы будете отслеживать объекты внимания в проекте на основе обобщённой схемы альф инженерного проекта из OMG Essence так, как она показана в курсе методологии. Именно так в общем случае и организована деятельность по изменению мира, с учётом довольно длинных цепочек (на самом деле, конечно, деревьев, а не линейных цепочек) создания:
Система тут – просто «целевая система», без особой конкретизации, описание системы (включая «метод её работы», описание практики функционирования, хотя об этом довольно трудно говорить для «неживых» или «социальных» систем, но довольно просто для личностей и организаций), а описание проекта включает метод работы организации проекта. Даже такое общее представление о проекте изменения мира к лучшему позволяет точнее планировать (включая и agile «планирование на лету») и вести многомасштабный инженерный проект. Многомасштабный – это признание того факта, что вам не удастся охватить своим проектом улучшение мира на многих масштабах, и придётся ограничиться несколькими масштабами из всех эволюционных. Но не одним!
Ещё эту диаграмму лучше бы считать
• или диаграммой общего жизненного цикла, надолго застревающей на состоянии воплощения системы «80% сделано» (и каждый день там будет что-то доделываться новое и что-то удаляться из уже не нужного, а ещё рекомендуемый норматив времени на работу с так называемым «техническим долгом»[29 - https://en.wikipedia.org/wiki/Technical_debt (https://en.wikipedia.org/wiki/Technical_debt)] – 20%, так что в любой момент времени оказывается, что готово только 80%, а ещё 20% нужно «отдать должок»). В жизни часто всё ещё менее однократно: представьте себе, что вы готовите круглосуточный шведский стол в курортном пансионате (не только подачу в этом стиле[30 - https://www.hospitality-school.com/buffet-meaning-table-setting/ (https://www.hospitality-school.com/buffet-meaning-table-setting/)], но вместе с работой кухни, «под ключ». Ни в один момент времени вы не можете сказать, что закончили работу: что-то подъели, и нужно приготовить дополнительную порцию, что-то наоборот, испортилось несъеденное, и нужно убрать. А ещё нужно планировать сезонную смену меню, отвечать на жалобы тех, у кого болит живот (ни у кого не болит, а вот у этого одного заболел!) и кто нашёл жучка в тарелке (никто не нашёл, а вот этот один нашёл!) и следить, чтобы не уносили слишком много еды с собой. Это явно не описывается движением кейса «шведский стол» к приёмке-сдаче системы. Закрытие кейса – это будет как раз неуспех! Трудно представить, но операционная система Windows это примерно такой же «шведский стол». И к этой модели стремится огромное число других систем. Даже если вы делаете революцию в обществе, это тоже будет только «открыть двери накрытого шведского стола», а потом этот кейс нельзя будет считать закрытым, закрыть после этого двери – это неуспех проекта, аварийная ситуация.
• или диаграммой, описывающей кейс одной фичи, на каждом звене цепочки создания. Это много ближе к современному прочтению такой диаграммы. Кто-то что-то захотел изменить в системе, описал это, воплотил в жизнь, ввёл в эксплуатацию. Продолжаем и продолжаем. То есть в случае шведского стола это «давайте заменим крем в эклерах, будет и вкуснее, и дешевле, и готовить его быстрее». Lead time тут будет от появления этой идеи до момента, когда первый клиент откусит эклер с новым кремом, только в этот момент «ввели новую фичу в эксплуатацию».
Мы ещё много раз вернёмся к этой идее шведского стола как современной метафоре разработки. Уровень специализации безмасштабной системной инженерии как раз и нужен для того, чтобы вы понимали одинаковость инженерии шведского стола, инженерии ракет, инженерии корпоративного софта, генной инженерии, инженерии сообществ. Вот это всё нужно сделать, пополнить, проследить, чтобы не было просрочено, что-то доохладить, что-то держать горячим, а ещё нужно сделать так, чтобы всем желающим хватило, чтобы не нужно было долго ждать, и затем ещё быстро убрать объедки, не забывая при этом про улучшение раскладки и найм персонала. Это и есть современная инженерия, нацеленная на непрерывный ввод в эксплуатацию, continuous delivery:
2. Уровень специализации инженерии систем одного системного уровня.
В многомасштабном проекте, тем не менее, на каждом системном уровне нужно каким-то образом вести свой локальный проект создания успешной системы, использующий практики системной инженерии с их особенностями для объектов данного уровня. Воплощение системы оказывается или веществом, или киберфизической системой (или её частью, например, компьютерным софтом), или личностью (или её частью, например, мастерством), или организованной группой людей (организацией или её частью, например, департаментом), и так далее.
Безмасштабная и непрерывная системная инженерия при этом уточняется и по факту становится прикладной (к определённому масштабу систем, но всё-таки непрерывной) инженерией. Так, классическая системная инженерия – это (прикладная) инженерия киберфизических систем, развивавшаяся главным образом на примере информационных систем (компьютеры и операционные системы), аэрокосмических систем (гражданская и военная авиация и ракетная техника) и других транспортных систем (автомобили, поезда, военный транспорт). Или программная/software инженерия, занимающаяся информационными системами как компьютерными программами (без включения аппаратуры в программно-аппаратном комплексе). Или инженерия предприятия, часто понимаемая как менеджмент (с операционным менеджментом как эксплуатационной инженерией).
Все эти отдельные виды (прикладной) инженерии имеют свою специфику, свои учебные курсы, но все следуют одному и тому же образцу/нормативу инженерного действия, взятому из безмасштабной системной инженерии. Хотя исторически было ровно наоборот: это безмасштабная системная инженерия была сформулирована главным образом на базе инженерии киберфизических систем, когда пришлось включать в эту инженерию людей, заниматься системноинженерным менеджментом и поэтому формулировать инженерную практику в наиболее общем виде. Но потом эти общие безмасштабные идеи из системной инженерии/systems engineering пошли в самые разные прикладные инженерии систем/engineering of systems.
Скажем, если взять целевой системой мастерство как часть личности, то можно представить себе модификацию системной схемы проекта для проекта учебного курса:
В этой схеме уже не абстрактное «воплощение системы», а конкретизированное «мастерство», не абстрактная «организация проекта», а «поток курса», не просто «описание, включающее метод работы в проекте», а «описание курса, включающее методические рекомендации».
Этот проект создания мастерства может быть как частью какого-то многомасштабного проекта (например, вы хотите в проекте создания предприятия как проекте создания системы уровня организации научить людей работать по-новому, то есть внести в головы людей какое-то мастерство работы на новом типе станков или новым программным обеспечением, то есть хотите предпринять проект создания системы уровня части личности сотрудника). Системный инженер должен провести безмасштабное рассуждение, чтобы увязать эти проекты разных уровней. Понятно, что человек в роли такого системного инженера будет рассуждать на языке системной инженерии, общем для всех проектов создания чего бы то ни было.
Опять же, схема должна рассматриваться двумя путями:
• Создание целевого мастерства как чего-то конечного (при полном понимании, что конечным оно никогда не будет, всё время надо будет чему-то доучиваться, что-то переучивать, а что-то срочно забывать как «уже не SoTA»). В этой модели «готового мастерства» не бывает, но оно вполне себе может одновременно и разрабатываться (пишутся новые материалы курса), и изготовляться (будет идти обучение), и эксплуатироваться (обученный мастер будет вести ра
• Создание одного конкретного умения в рамках полного мастерства, одной «фичи» мастерства. Придумали чему-то конкретному научить – и научили, «ввели кусочек мастерства в эксплуатацию». И это введение в эксплуатацию разных новых и новых фич будет происходить долго-долго в ходе проекта, «непрерывный ввод в эксплуатацию».