Инженерия и эволюция
Как соотносятся инженерия и эволюция? Технический прогресс/техноэволюция, которая делается инженерами — это просто часть эволюции? Или это не эволюция, а просто инженерия, «метод работы таких создателей, как агенты-люди с приданными им компьютерами и роботами с AI»? Как об этом думать? Участвуют ли инженеры в эволюции, или они и есть эволюция, или эволюция сама по себе, а инженеры творят сами по себе, вне эволюции?
В рамках современных воззрений на эволюцию (прежде всего это так называемый расширенный синтез эволюционных теорий, extended evolutionary synthesis, EES[1]), речь идёт о продолжении эволюции — она одна и та же в биологии, в культуре, в технике, более того, она ещё и эволюционирует: методы эволюции развиваются в ходе самой эволюции. Биология, которая следует из такого понимания эволюции, получила название eco-evo-devo — это синтез eco/экологии (учёт влияния внешней среды), evo/эволюционной биологии (изучение происхождения видов) и devo (биологии развития — что происходит при развитии организмов из гаметы до взрослого организма, а также что происходит с организмом в ходе жизни).
Инженерам и менеджерам надо иметь представление о современных взглядах на эволюцию, они несколько раз менялись за последнее время, и они продолжают быстро меняться.
Так, сегодня в биологической эволюции гены не считаются уже главными эволюционными единицами, за ними эту роль потеряли COGs (clusters of orthologious groups) и другие группы гомологичных генов (то есть одинаковых генов, работающих в разных видах организмов[2]), теперь это GRN (gene regulatory networks)[3] — генные регуляторные сети, в которых кроме генов там много ещё чего, но акцент уже не на объекты, а на отношения — биологию там даже пытаются называть иногда «релятивистской». Оказалось, что свойства организма не полностью определяются его генами. Простейшая проблема была — это объяснить, как из одних и тех же генов во всех клетках почему-то в одном многоклеточном организме появляются такие разные клетки, как клетки печени, нейроны мозга и фагоциты иммунной системы. GRN хорошо показывали, как из одних и тех же генов в результате регулирования их экспрессии могут появляться совершенно разные белки. Но на следующем шаге пришлось отказаться и от того, что эволюционируют GRN как «главные единицы». Эволюционируют все уровни, одна и та же «математика эволюции» оказывается работающей на всех системных уровнях, на всех уровнях сложности.
Эволюция работает как многоуровневая динамически проходящая оптимизация всех объектов по отношению ко всем остальным объектам — и она хорошо описывается методами статистической физики, прежде всего ренормализацией[4]. Более того, растёт число работ, в которых показывается, что алгоритмы эволюции крайне похожи на то, что происходит в нейронных сетях[5]. Напомним, что в руководстве по методологии говорилось, что алгоритмика обобщается с алгоритмов как описания действий с информацией (вычислений) до алгоритмов как описания действий создателей/constructors (произвольных преобразований физического мира). Современный взгляд на эволюцию говорит, что на всех уровнях в эволюции есть репликаторы, которые конкурируют друг с другом в части роста собственного числа. Первыми такими репликаторами начали считать гены (genes)[6]. Потом заметили, что реплицируются и идеи — мемы (memes)[7]. Было много модификаций, например, David Deutsch подчёркивал, что важны не просто какие-то идеи, а идеи объяснений, а ещё был предложен «третий репликатор» кроме генов и мемов — темы (temes), как репликатор, копируемый техническими средствами (скажем, размножающийся компьютерный вирус)[8]. Эти нововведения коснулись и алгоритмики. Так, в числе эволюционных алгоритмов появился класс так называемых меметических алгоритмов[9] — расширение эволюционных алгоритмов оптимизации (мутации, стохастическое «блуждание»/поиск глобального оптимума) вставкой классических оптимизационных алгоритмов (какой-нибудь градиентный спуск, вычисление локального оптимума).
Сейчас уже более-менее консенсус, что эволюционируют объекты самых разных системных уровней, все они в какой-то степени «эгоистичные репликаторы»: вполне можно считать, что каждая из моделей того же смартфона «хочет размножиться числом поболее», а для этого постоянно модифицируется/модернизируется/адаптируется/эволюционирует, чтобы выжить в конкуренции с другими моделями. Точно так же можно считать, что не просто «гены человека хотят размножиться» (оказалось, что у человека очень много генов таких же, как у свиньи и мыши — даже не только обезьяны), но размножиться хочет и сам человек как физический объект.
В принципе, в биологии рассматривают сейчас две иерархии эволюционирующих уровней:
- наследуемых «идей» (условно говоря, функциональную, иногда по этой линии даже говорят «функциональная эволюция»[10]) как генеалогическую[11] по многим уровням репликаторов, которая легко путается с конструктивами как носителями информации этих идей, например, в значительной части работ по биологии «ген» и «геном» как все гены — это материальные носители информации, то есть молекулы с этой информацией, но в части работ — это информация безотносительно носителя. Вот стек уровней (конечно, там иерархия, или даже сеть, обсуждение трудности выражения функциональных описаний было в руководстве по методологии) эволюционирующих функциональных объектов, которые в конечном итоге ведут к выживанию, репликации (на разных уровнях! не только уровне генов!) и адаптации к среде в ходе выживания и репликации: сodons-genes**-COGs-GRNs-organelles-cells-tissues-organs-organisms-demes-species-clades/lineages-orders-classes-**phyla.
- воплощений идей, экологическую/конструктивную, по частям-целым, модульную, это про границы между системами и интерфейсы. И тут тоже путаница как модулей-носителей информации/репликаторов, так и модулей, описанных этой информацией/репликаторами. Вот эти уровни (помним про платформенные стеки, описаны в руководстве по системному мышлению): atoms**-molecules-proteins-cells-tissues-organs-organisms-populations-communities-**ecosystems.
Конечно, функциональные и конструктивные декомпозиции в системных иерархиях оказываются тесно переплетены, а в биологических системах наследуемые репликаторы как функциональные объекты ещё и могут считаться информацией (те же гены) и вписаны в конструктивы как носители описаний, и такое будет на всех конструктивных уровнях.
У биологов уже не принято говорить про уровень только генов, что «гены полностью описывают итоговый организм и даже популяцию» — нет, там всё много сложнее, «генетика определяет всё» осталось в прошлом веке. На первый план вышел вопрос не только о survival of the fittest, «выживание наиболее приспособленного», но и arrival of the fittest, каким образом эволюция дала вариант наиболее приспособленного, и внимание сейчас уже не только на классификации видов и описании их эволюции, но и на предсказание результатов работы эволюции.
Кого это всё интересует в инженерии? С того момента, как инженерия стала эволюционной, теория эволюции начала интересовать множество инженерных ролей. Так, руководство по методологии заканчивается изложением теории стратегирования, в которой утверждается, что «всё новое приходит сбоку». Речь идёт о новых идеях, новых устройствах — и мы понимаем, что всё это эволюционирующие объекты. В биологии на уровне генов в таких случаях говорят о «горизонтальном переносе генов» (то есть переносе генов не от генома предшествующего вида в следующий вид, который появился путём мутаций, но межвидовой перенос генов). Обобщённая стратегия, которая описывается как «прыгание по камушкам» (stepping stone) оказывается вариантом меметического алгоритма — большие мутации, stepping stone новых проектов оказываются частью исследований того, где может быть глобальный максимум (exploration), а ведение проекта в попытке получить побольше ресурсов — это оптимизация в районе локального максимума (exploitation). При этом понимаем, что вся эта картина «камушков в тумане» непрерывно меняется — эволюция идёт не в статическом многомерном fitness landscape[12], а в динамическом ландшафте приспособленности: расположение минимумов и максимумов меняется со временем: «вчера был треш, сегодня тренд», и наоборот «вчера был тренд, сегодня треш».
Оценкой приспособленности/fitness (насколько впишется система в какую-то экологическую/рыночную нишу) занята роль шумпетерского предпринимателя, в инженерии это роль визионера/visionary, она будет рассмотрена подробней дальше в нашем руководстве. Это означает, что для агента, который играет в разделении труда роль визионера, эволюционное мышление (мышление с использованием современной теории эволюции) — профильное. В менеджменте визионер — бизнесмен (он смотрит, вписывается ли в свою бизнес-нишу фирма, которую развивают в проекте фирмы, фирма — это его продукт), в обучении — культуртрегер (он смотрит, вписывается ли в культурную нишу мастерство, которому обучают в проекте).
То же можно сказать о роли архитектора системы: важнейшей архитектурной характеристикой системы оказывается «эволюционируемость», evolvability. И достигается это выбором модульности, modularity. Это ровно те же evolvability и modularity, что рассматриваются как важнейшие характеристики эволюционирующих биологических системы.
Обсуждение тех же организмов и видов различается: в генеалогии важны функциональные признаки/особенности/возможности/features/traits и связанное с ними поведение/processes (скажем, фенотипические признаки и адаптации разных уровней, например, уровня организма с его фенотипической пластичностью[13], или уровня вида/species), а в экологии — там сразу ход на масштабы и модульность. Конечно, всё это обсуждается совместно и нещадно путается как биологами, так и инженерами. Скажем, наследуемость идёт по функциональной линии, а материал воплощения этой наследуемости — по конструктивной линии. Поэтому очень и очень условно — но можно говорить о методологии (как раз она про функционал) как о генеалогической линии (мемы и темы — там, гены оставим биологии) в инженерии как важной для визионеров, а об экологической линии (модули воплощения и межмодульные интерфейсы) как важной для архитекторов. Форма следует функции, конструкция отражает метод, архитектура следует методологии. Но и наоборот тоже верно: методология учитывает архитектуру, если каких-то нужных модулей или нужных интерфейсов нет, то функция оказывается невозможна — нет произвола в работе методолога, нет произвола в работе эволюции, не любая точка пространства признаков/особенностей/возможностей достижима, и это верно для систем на всех системных уровнях, не только уровне целевой системы инженерного проекта или уровне организма в биологических исследованиях.
И ещё нужно помнить, что эволюционирует не только целевая система, эволюционируют ещё и системы графа создателей. Всё сложно, но инженер должен иметь какой-то общий паттерн рассуждения об эволюции/развитии систем. Теория эволюции в её самом общем виде оказывается важна для образования самых разных инженерных ролей.
Ходы от однократного «водопада» с его предписанными стадиями к «непрерывному всему» — это ходы к неизбежному описанию технологической эволюции, движение agile в конечном итоге оказалось описанием неизбежности эволюционной разработки.
Это не уникально для инженерии. Мы обсуждали в руководстве по методологии, что описание какого-то процесса как строгой последовательности шагов, ведущих к строгой последовательности смены состояний каких-то объектов, очень соблазнительно своей простотой. Есть только одна проблема: оно не работает, жизнь чаще всего устроена не пошагово, в ней нет чётко выраженных ступенек продвижения к успеху**.** И даже когда ступеньки вроде бы есть, последняя ступенька чаще всего оказывается не последней (поэтому очень модные раньше в менеджменте «ступени зрелости» не прижились: фирмы довольно быстро проходили все эти ступеньки, но жизнь-то на этом не заканчивалась — эволюция продолжалась, а ступеньки это уже не описывали).
Например, для процесса развития личности первые же попытки описания (исследовательские, влиять не пытались) были на описание личности в её конечной взрослой форме, аналог биологического «фенотипа». Затем появились ходы на devo, психологию развития личности — примитивные, без eco (влияния окружающей среды на развитие). Конечно, эти ходы на devo были такими же, как ранние ходы на devo в проектном управлении и инженерии: этапы/стадии/фазы развития с попыткой указать на результат достижения каждого этапа. Для проектного управления и инженерии такой ход подробно разбирался в руководстве по методологии. Практически все «теории стадий развития личности» (Piaget с когнитивным, Kohlberg с моральным, Erikson с развитием идентичности, Beck and Cowan с развитием приверженности ценностям, этих теорий огромное количество) развалились под гнётом самых разных аргументов — начиная с невоспроизводимости результатов экспериментов и плохой процедуры относимости к плохо определяемому понятию стадия/фаза/этап[14].
Следующие теории развития личности шли по той же линии, что и методологии инженерии, что и eco-evo-devo в биологии: упор на многоуровневость и многолинейность развития личности в ответ на самые разные внешние воздействия в самых разных контекстах (например, прихват новых мемов) и в ответ на внутренние какие-то размышления человека («подумал-подумал — и принял решение», в том числе под давлением каких-то генетически определённых склонностей, при всей условности «генетической определённости»). В стадийности развития личности вместо чёткой последовательности стадий начали указывать на нелинейную последовательность прохождения этих стадий, а также начали указывать на переплетённость когнитивных, моральных, социальных и прочих факторов вместо подстраивания развития по стадиям одной из тематических линий. Это во многом такой же переход от «водопада» к «непрерывному всему», в инженерии личности тоже победили идеи agile, личность теперь считается эволюционирующей и участвующей в общей эволюции — биологической, человеческой, культурной, технической. При этом отношение к инженерии личности двоякое: с одной стороны это инженерия (например, явное воспитание родителями, обучение в школе, самостоятельная «работа над собой» этой личности), то есть работа рациональных создателей, но с другой стороны — создателем личности выступает весь мир, в том числе значительная часть свойств личности определяется генетически как итог биологической эволюции. Это то же eco-evo-devo, только другими словами. Современные теории инженерии личности предусматривают какое-то «путешествие» личности в контактах с её окружением, идею путешествия мы разбирали в руководстве по методологии.
Сторонники популярных стадийных теорий развития личности сегодня могут говорить, что «эволюционно стадии предписаны, но они могут проходиться в разном порядке, проявляться в разное время». Эта оговорка по факту сводит «теорию» к обычной богатой метафорами классификационной схеме типа знаков зодиака и типов личности в соционике или оргдизайне, с примерно таким же уровнем обоснованности. Обычно в таких теориях и обоснованность отсутствует, например, в той же спиральной динамике, которая продолжает быть популярной. Кризис репродуцируемости и плохой методологии экспериментов проехался по всем этим теориям, там концы с концами в плане эмпирических обоснований не сходятся.
Как описывалось в руководстве по системному мышлению, во вселенной действует эволюционный физический процесс, который можно представить как (вполне деятельное, то есть физичное) оптимизационное обобщённое до изменения физического мира вычисление по какому-то алгоритму — этот алгоритм и есть алгоритм биологической, культурной, технической эволюции. Сам этот алгоритм тоже предмет эволюции, эволюция как процесс тоже развивается.
Какие цели эволюции, что она оптимизирует? Она реализует физический принцип минимального действия, который в данном случае трактуется как информационный: минимизация свободной энергии, что можно перефразировать как минимизация неприятного сюрприза, который агент/IPU/«ренормализованный/обобщённый нейрон»/создатель/репликатор (тут очень разная терминология для эволюционирующей системы) получит от окружающей среды (помним, что эта среда — системное окружение, в нём также эволюционирующие системы). Репликаторы в ходе эволюции усложняются, чтобы лучше бороться с энтропией, которая рано или поздно присылает какое-то существенное изменение внешних условий. Достаточно подумать о более длительных масштабах, нежели «догнали и съели» или «умер от голода»: удары астероида, взрывы сверхновых и т.д. Не вопрос, будет ли катастрофа. Вопрос в том, когда будет, и насколько удастся жизни проэволюционировать к этому моменту, чтобы не исчезнуть.
Пока достижений эволюции хватило примерно на 3.5 миллиарда лет репликации систем, похожих на клетки, но репликация людей пошла уже немного по-другому: они получились очень устойчивыми, и хорошо размножились. Население Земли сегодня составляет порядка 8 миллиардов человек[15]. Руководство по системному мышлению начинается как раз с того, что сравнивает массу всех людей с биомассой всех остальных видов, а также оценки массы преобразованной «неживой» части земли (автор тут задумчиво смотрит в окно и оценивает массу домов, домашней утвари, дорожных покрытий, производств, еды и отходов в радиусе 100 км вокруг себя, а живёт он в Москве).
В ходе эволюции появились такие репликаторы как клетки, появилось разделение на два пола (а для некоторых организмов, например, грибов, больше десятка тысяч полов[16]), появился стайный образ жизни (самец и самка — это два организма, популяция), появились особенности воспитания детей в порядке культурной эволюции, появилось поведения по созданию удобных для существования экологических ниш (вплоть до терраформирования: строительство плотин бобрами) и т.д.
Эволюция усложняет и усложняет репликаторы (они же — создатели/constructor в случае физической системы-репликатора, но помним, что репликаторами в теории эволюции могут считать мемы и темы — информацию) так, чтобы эти репликаторы были более и более устойчивы к воздействиям окружающей среды, чтобы были способны ко всё более длительному выживанию во всегда в конечном итоге враждебной среде. Муравейник потыкать палкой — он за ночь восстанавливается, но и если город потыкать какой-нибудь огромной палкой (печальные прецеденты с атомными бомбами, да и просто тысячами тонн взрывчатки были), то город тоже восстанавливается, причём масштабы этого «потыкать» несопоставимы. Город восстанавливается во много бо́льших масштабах, и речь идёт именно о количественных характеристиках: масса, энергия и скорость (учёт массы, преобразуемой за какую-то единицу времени).
Итак, эволюционный процесс имеет целью получить устойчивый репликатор (минимизация свободной энергии сводится тут к минимизации байесовского сюрприза от внешней среды — это и есть цель эволюции), который копируется и копируется, выживая всё лучше и лучше на всё новых и новых уровнях квазиустойчивости. При этом устойчивость к внешним воздействиям и адаптивность резко повышается время от времени за счёт роста сложности в больших эволюционных сдвигах: многоклеточные организмы, популяции, паразитизм и симбиотика (когда паразит и хозяин вдруг находят взаимную, а не одностороннюю выгоду. Когда-то наши митохондрии были паразитами в клетках). Не забываем при этом, что оптимизация эта не статична: что было оптимально вчера, станет неоптимальным завтра, и наоборот.
Между системными уровнями есть неизбежные конфликты, квазиоптимальных оптимизационных/архитектурных решений на предмет минимизации негативных сюрпризов от проявления этих конфликтов много и от этого возникает неустроенность как разнообразие самых разных вариантов вида и разнообразие множества более-менее похожих друг на друга видов (когда варианты уже сильно отличаются друг от друга), которые выживают примерно одинаково в текущих условиях. Это объясняет, почему у нас так много моделей автомобилей, смартфонов, холодильников, систем AI и т.д. — характеристики их выживаемости «в природе»/«на рынке» примерно равны, равно как и страны с постоянно меняющимися границами имеют более-менее одинаковые условия для жизни, они существенно отличаются только в деталях (чтобы понять, что отличия именно в деталях, достаточно сравнить страны с ними же, но в достаточно далёких моментах в истории, например со средневековьем или даже с каменным веком, разница сегодняшнего дня в части устойчивости к массовому вымиранию людей будет хорошо видна).
Иногда в ходе эволюции возникают существенные оптимизации, типа тех самых переходов от одноклеточных к многоклеточным, или появление хорошей цифровой памяти типа мозга с ручкой-бумажкой, или на следующем этапе типа компьютеров с интернетом. Это мы просто продолжаем пересказывать идеи работ группы Ванчурина-Кацнельсона-Вольфа-Кунина, опять отсылаем для более обстоятельного рассказа об эволюции к руководству по системному мышлению, подробности тут приводить не будем. Почему мы отсылаем к этим работам, а не к работам по биологической эволюции? Потому что нас интересует обобщённое описание, которое не только более-менее легко распространяется на культурную и техническую эволюцию как «понятный нарратив», но и имеет выражение в математике — а именно, рассказывается языком статистической физики. Инженеры захотят выйти на количественные описания эволюции физиками, чтобы получить возможности предсказывания результатов эволюции, хотя бы на коротких отрезках времени (скажем, как предсказывать погоду — на ближайшие два часа сегодня это легко, на неделю — вполне возможно, на пару месяцев вперёд — невозможно).
Эволюционный алгоритм можно ускорить через моделирование, то есть реплицировать на всех уровнях только важное, а потом эти уровни систем-репликаторов заставлять в самых важных аспектах проживать свою жизнь, доказывая свою живучесть, в компьютере (виртуальном достаточно большом мире, чтобы вмещать популяции и моделировать более-менее точно эффекты от взаимодействия популяций с окружающей их богатой средой, возможно содержащей и другие популяции). Если иметь достаточные вычислительные мощности, то делать это можно быстрее, чем проживать популяциям полную жизнь в реальном мире. Можно считать это «ускоренным воспроизведением», да ещё и параллельно можно пробовать множество разных вариантов, но опять же, если хватает вычислительных мощностей. Эволюция крайне затратна в вычислениях, а эти вычисления ещё и медленны — это главный недостаток эволюционных алгоритмов.
Переход к «проживанию модели в компьютере» — это вроде как уже инженерная работа, «применение вычислителей для генерации догадок о полезных мутациях, а потом фильтрации догадок об удачных мутациях». Инженерия тут в том, что физически создаётся вычислитель виртуального мира, а в нём создаются процессы «проживания» для моделей репликаторов/создателей/агентов/IPU (включая аналоги уровней «клеток», «организмов», «популяции», «экосистемы» — но помним, что в жизни этих уровней много больше, биология тут хороший пример) с потенциально интересными мутациями. Это отличный способ ускорить прогресс, но у него есть существенные ограничения: требуются немыслимо большие вычислительные мощности на моделирование N миров, в которых живут и размножаются организмы и популяции, на которых мы пробуем те или иные мутации. С этим боремся так: уменьшаем объём моделирования (скажем, пытаемся вычислить только догадку о мутации, но не моделируем выживание), увеличиваем доступную компьютерную мощь, увеличиваем эффективность эволюционного алгоритма в целом (качество генерирования догадок, точность моделирования и т.д.).
Например, в статье Evolution through Large Models[17], предлагается использовать внутри эволюционного алгоритма вместо случайных мутаций «умные», то есть «разработанные/вычисленные», а вместо человека-инженера, высказывающего догадки о полезных мутациях, использовать нейронную сетку большой языковой модели (модели языка и мира, выученной нейронной сеткой определённой архитектуры).
Основная проблема в инженерии путём генерации новых репликаторов нейронными сетями в том, что архитектура этих репликаторов должна давать вариант многоуровневой оптимизации конфликтов между системными уровнями, при этом нейросеть обычно не может сгенерировать оптимизацию, которая выходит за рамки тех примеров, которые ей показывали в ходе обучения. А эволюционный алгоритм принципиально может. Поэтому статья предлагает оставить снаружи эволюционный алгоритм, принципиально дающий новизну решений за пределами того, что уже видела нейронная сеть, но вставляем внутрь «умный мутационный оператор» на основе нейросети, который предлагает потенциально не смертельную мутацию. Помним, что в работах по эволюции как многоуровневой оптимизации подчёркивалось, что всё в ходе эволюции давно уже квазиоптимизировано, какие-то локальные оптимумы для минимума свободной энергии целевой системы достигнуты, поэтому большинство случайных мутаций будут смертельными (выходим за рамки локального оптимума в менее благоприятные зоны), немного их будут нейтральными (находим другой квазиоптимум, они очень близки обычно), редко что-то приводит к маленькому улучшению текущего локального оптимума, и совсем уж редко что-то радикально приближает к обычно недостижимому глобальному оптимуму.
Если в основу эволюции брать не проверки по большому объёму бессмысленных смертельных мутаций, а проверки по менее большому объёму заведомо более осмысленных предложений, эволюция в целом пойдёт быстрее. Статья демонстрирует это на примере эволюционного алгоритма для генерации программного кода, порождаемого нейросетью ровно как это делают системы подсказок для кода программ: GitHub Copilot и Amazon CodeWhisperer. Если грубо, то статья предлагает вместо случайных перестановок текста в генетических алгоритмах использовать подсказки всех этих Copilots и CodeWhisperers[18]. И там же даётся ещё много разных других способов ускорить эволюцию (ибо много ещё мест, где «универсальный аппроксиматор/оптимизатор» типа нейронной сетки можно задействовать в эволюционном алгоритме).
Это статья 2022 года, с тех пор было выяснено, что достаточно большие хорошо обученные сети могут предлагать решения проблем, которые эта нейросеть ещё не видела — в том числе и потому, что алгоритм нейросети в чём-то сам эквивалентен эволюционному алгоритму. Нас ждёт ещё много открытий на этом пути использования нейросетей для решения инженерных проблем, синтеза новых инженерных систем, которые раньше никто не видел.
Если представить, что у всех инженеров в голове есть вычислители этих самых «умных мутаций» и других оптимизационных вставок в эволюционный алгоритм, да ещё в последнее время эти «вычислители в голове» умощняются компьютерами и средствами компьютерной связи для объединения вычислений многих людей и компьютеров, то мы смело можем считать инженеров всей Земли ускорителями эволюции. Мы берём инженеров вместе с их моделерами и заводами: моделеры документируют мутации, а заводы производят какие-то продукты, которые потом «пробуются жизнью на соответствие среде», некоторые из них оказываются удачны настолько, что предложенные в них «мутации» оказываются достойными повторения. А поскольку в нашем подходе инженеры — это те, кто что-то меняют к лучшему в физическом мире, то всё человечество оказывается мощным вычислителем-ускорителем физической эволюции, то есть работает на то, чтобы минимизировать негативные сюрпризы от окружающей среды. Это и есть одна из трактовок для «изменения жизни к лучшему». Сложность окружающего мира продолжает расти, но уже не только за счёт классической биологической эволюции, но и за счёт культурной и технологической эволюций, которые выполняются сейчас людьми с их культурой и инструментами, и которые просто составляющие общей «физической» эволюции.
Итак, если инженеры угадали новое техническое решение, которое квазиоптимально приспособлено к сегодняшнему окружению, то «бинго, вымри твой вид продукта сегодня, а мой вид завтра». Если не угадали, то наоборот: финансирование работ тех, кто не угадал, будет прекращено. В эволюции биологической вид вымирает, и эта неудачная ветвь просто прекращает существование. В технологической эволюции ничего страшного не происходит: все люди и их компьютеры обычно остаются живыми и просто производят следующий вариант «умной мутации техносреды», пробуют что-то ещё.
Так что для уменьшения бизнес-неудач остаётся поднять вероятность угадывания хороших концептуальных (найти аффорданс/affordance: как какую-то функцию реализовать каким-то объектом из окружения, решения по концепции использования и концепции системы) и архитектурных решений (способ разбиения конструктивных объектов на части-модули и организация взаимодействия их такие, что архитектурные характеристики становятся «наименее плохие из возможных») как «умных мутаций», и предложение таких мутаций — это ровно то, что могут всевозможные Copilots для систем автоматизации проектирования, программирования, моделирования.
Дальше можно думать о том, чтобы запускать алгоритмы «умной мутации» и для того, чтобы улучшать и сами эволюционные алгоритмы: для того, чтобы улучшать мутационный оператор, и для того, чтобы улучшать моделирование мира для определения того, выживет ли индивид с фенотипом, определяемым мутацией в генотипе, в виртуальном мире, чтобы уменьшить время экспериментирования и ресурсы, требуемые для проверки выживаемости в физическом мире. Тут есть и альтернативные подходы, которые прямо говорят о генерации каких-то оптимальных технических решений, без связи этого с идеями эволюции (то есть рассматривается разовая генерация решения, а не то, что параллельно идёт конкуренция с другими проектами, которые предлагают другие варианты решений какой-то проблемы). Скажем, можно «смягчать»/relax формулирование проблем конструирования системы из языка дискретных решений так, чтобы получать набор вроде бы непрерывных, то есть дифференцируемых функций для характеристик системы, затем искать конструктивный оптимум на этих функциях нейросетевыми или даже какими-то другими алгоритмами, потом возвращать в дискретную область проектных/design решений для формулирования ответа на вопрос об оптимальной конструкции[19].
https://en.wikipedia.org/wiki/Extended_evolutionary_synthesis ↩︎
https://arxiv.org/abs/2410.02543, но ещё в 2021 году была предложена работа https://www.pnas.org/doi/full/10.1073/pnas.2120042119, в которой давалась таблица соответствия понятий термодинамики, биологической эволюции и машинного обучения. Число подобных работ растёт. ↩︎
https://en.wikipedia.org/wiki/Gene-centered_view_of_evolution ↩︎
https://nationalhumanitiescenter.org/on-the-human/2010/08/temes-an-emerging-third-replicator/ ↩︎
https://www.frontiersin.org/journals/cell-and-developmental-biology/articles/10.3389/fcell.2024.1485089/full ↩︎
https://faculty.fiu.edu/~pelaeznm/wp-content/uploads/2019/11/Critique-of-Stages.pdf ↩︎
https://www.the-scientist.com/this-fungus-has-more-than-17-000-sexes-69930 ↩︎
https://techcrunch.com/2022/06/23/amazon-launches-codewhisperer-its-ai-pair-programming-tool/ ↩︎