Как связаны инженерия и теория эволюции: инженерия нейросеток как eco-evo-devo.
Две стороны одной сингулярностиЗнаменитый твит Альтмана про то, что мы находимся близко от сингулярности -- непонятно только с какой стороны, 4 января 2025, https://x.com/sama/status/1875603249472139576. Да, похоже, уже никто не понимает, что происходит -- ломка вообще всего, причём быстрая. Спозаранку по Москве сегодня Альтман написал про запуск o3 deep research -- "it can do a single-digit percentage of all economically valuable tasks in the world, which is a wild milestone" (https://x.com/sama/status/1886220904088162729), и уточнение про удешевление умственного труда: "50 cents of compute for 500 dollars of value", (https://x.com/sama/status/1886222189269065758). Мне не кажется, что это какое-то преувеличение. Вот как это работает: исследование про квас против кефира, o3-mini-high, это я задал сам -- https://chatgpt.com/share/67a196ab-329c-8013-b97f-f915a9af329b, а вот это -- o3 deep research (пример от Denis Sexy IT, https://t.me/denissexy/9430), https://chatgpt.com/share/67a090a0-f5f0-8010-a762-af37143f510d. Разница видна невооружённым глазом. Этот колокол прозвонил по всем белым воротничкам, им придётся на себе испытывать утверждение, что сумма работ на Земле не постоянная величина, работу нельзя отобрать -- люди придумывают себе новые занятия для всего того, что начали делать машины (большинство населения уже не крестьяне, большинство населения уже не фабричные рабочие, интересно как оно будет, когда большинство населения уже будет не клерками -- при этом я почему-то запинаюсь, когда про это говорят "умственный труд", я не замечал особого ума у клерков).Софтовая разработка тоже кардинально меняется, LowCode для клерков уже не фронтир, а Software 3.0 (когда общаемся с IDE на человечьем языке, а код copilot пишет сам) -- реальность, вот Karpathy пишет сегодня, что вообще уже голосом разговаривает со своим IDE, когда copilot пишет код -- https://x.com/karpathy/status/1886192184808149383. Но более убедительно об этом, конечно, говорит Satia Nadela: SaaS как бизнес-модель сдохла, ибо её суть -- добавить бизнес-логику и маленький UI к базам данных. Вот эта бизнес-логика и маленький UI уйдёт к агентам. Excel, PowerPoint, Word будут маленьким UI, а дальше сеть агентов, оркеструющих себя через интерфейсы друг ко другу, уладит все вопросы -- по задачам, которые на естественном языке поставит пользователь. В его представлении агент -- это 1. бесконечная (а не "на один чат") память, которая нужна, чтобы понимать контекст и предпочтения, 2. использование инструментов или действий/actions (умение обратиться к API) по просьбе (governable, чтобы пользователь мог надзирать за агентом, а не полная самодеятельность агента), 3. полномочия/entitelements, ибо надо таки наводить границы, доверять явно не всему. И это будет происходить на базе очень небольшого числа больших моделей, которых будет не так много (это говорилось ещё до R1) -- ибо с моделями, которые пытались обучать на маленьких суперкомпьютерах он ситуацию уже видел, это как каждый на заре интернета пытался поставить себе сервер Sun, а потом всё-таки всё ушло в сеть и компьютер стал "тонким клиентом". Вот это и останется -- небольшое число поставщиков больших универсальных моделей, датацентры для этих моделей, а всякие Excel и PowerPoint как привычный UI интерфейс тонкого клиента. Всё на естественном языке, никакого LowCode, там под капотом питон, который будет дёргать по потребности все API, а самого питоновского кода вы не увидите (впрочем, агенты могут дёргать API и без питоновского кода, уже понятно, как всё будет). Весь кровавый энтерпрайз смотрит сейчас с ужасом кучу интервью, где на эту тему формируется общественное мнение -- https://www.youtube.com/watch?v=uGOLYz2pgr8, https://www.youtube.com/watch?v=GuqAUv4UKXo, https://www.youtube.com/watch?v=FWbBYmgWJps. Программисты и куча клерков пойдут в другие виды работ, вслед за крестьянами и пролетариатом. Всё не так плохо, ибо кто-то же должен будет наговаривать тексты для AI-агентов, а кто-то должен будет иметь задачи, которые надо будет решать этим агентам. Пока, конечно, эти тексты не начнут наговаривать ещё одни агенты-клерки, а задачи формулировать ещё одни агенты-стратеги. Я не думаю, что надо рассказывать про роботов, где прогресс не меньше. Реальному сектору тоже надо как-то готовиться. Инженерам-железячникам тоже не надо будет руками прокликивать сложный интерфейс CAD, там тоже всё словами, и тоже надо будет просто знать умные слова. А потом умные слова узнают и сами агенты, и так по цепочке, причём довольно быстро.Почему быстро? Потому что AI-агенты быстро учатся. Люди обмениваются информацией медленно, очень медленно, вот тут в самом начале разговора об этом говорит Hinton: https://www.youtube.com/watch?v=b_DUft-BdIE. AI-агенты с нейросетями могут накапливать информацию быстро, это не люди.Я уже говорил, что в период этой самой сингулярности, когда никто ничего уже не понимает, и каждое утро ситуация на планете круто меняется (и дело не только в сингулярности в части AI, это ж по всем фронтам так,
Знаменитый твит Альтмана про то, что мы находимся близко от сингулярности -- непонятно только с какой стороны, 4 января 2025, https://x.com/sama/status/1875603249472139576. Да, похоже, уже никто не понимает, что происходит -- ломка вообще всего, причём быстрая. Спозаранку по Москве сегодня Альтман написал про запуск o3 deep research -- "it can do a single-digit percentage of all economically valuable tasks in the world, which is a wild milestone" (https://x.com/sama/status/1886220904088162729), и уточнение про удешевление умственного труда: "50 cents of compute for 500 dollars of value", (https://x.com/sama/status/1886222189269065758). Мне не кажется, что это какое-то преувеличение. Вот как это работает: исследование про квас против кефира, o3-mini-high, это я задал сам -- https://chatgpt.com/share/67a196ab-329c-8013-b97f-f915a9af329b, а вот это -- o3 deep research (пример от Denis Sexy IT, https://t.me/denissexy/9430), https://chatgpt.com/share/67a090a0-f5f0-8010-a762-af37143f510d. Разница видна невооружённым глазом. Этот колокол прозвонил по всем белым воротничкам, им придётся на себе испытывать утверждение, что сумма работ на Земле не постоянная величина, работу нельзя отобрать -- люди придумывают себе новые занятия для всего того, что начали делать машины (большинство населения уже не крестьяне, большинство населения уже не фабричные рабочие, интересно как оно будет, когда большинство населения уже будет не клерками -- при этом я почему-то запинаюсь, когда про это говорят "умственный труд", я не замечал особого ума у клерков).
Софтовая разработка тоже кардинально меняется, LowCode для клерков уже не фронтир, а Software 3.0 (когда общаемся с IDE на человечьем языке, а код copilot пишет сам) -- реальность, вот Karpathy пишет сегодня, что вообще уже голосом разговаривает со своим IDE, когда copilot пишет код -- https://x.com/karpathy/status/1886192184808149383. Но более убедительно об этом, конечно, говорит Satia Nadela: SaaS как бизнес-модель сдохла, ибо её суть -- добавить бизнес-логику и маленький UI к базам данных. Вот эта бизнес-логика и маленький UI уйдёт к агентам. Excel, PowerPoint, Word будут маленьким UI, а дальше сеть агентов, оркеструющих себя через интерфейсы друг ко другу, уладит все вопросы -- по задачам, которые на естественном языке поставит пользователь. В его представлении агент -- это 1. бесконечная (а не "на один чат") память, которая нужна, чтобы понимать контекст и предпочтения, 2. использование инструментов или действий/actions (умение обратиться к API) по просьбе (governable, чтобы пользователь мог надзирать за агентом, а не полная самодеятельность агента), 3. полномочия/entitelements, ибо надо таки наводить границы, доверять явно не всему. И это будет происходить на базе очень небольшого числа больших моделей, которых будет не так много (это говорилось ещё до R1) -- ибо с моделями, которые пытались обучать на маленьких суперкомпьютерах он ситуацию уже видел, это как каждый на заре интернета пытался поставить себе сервер Sun, а потом всё-таки всё ушло в сеть и компьютер стал "тонким клиентом". Вот это и останется -- небольшое число поставщиков больших универсальных моделей, датацентры для этих моделей, а всякие Excel и PowerPoint как привычный UI интерфейс тонкого клиента. Всё на естественном языке, никакого LowCode, там под капотом питон, который будет дёргать по потребности все API, а самого питоновского кода вы не увидите (впрочем, агенты могут дёргать API и без питоновского кода, уже понятно, как всё будет). Весь кровавый энтерпрайз смотрит сейчас с ужасом кучу интервью, где на эту тему формируется общественное мнение -- https://www.youtube.com/watch?v=uGOLYz2pgr8, https://www.youtube.com/watch?v=GuqAUv4UKXo, https://www.youtube.com/watch?v=FWbBYmgWJps. Программисты и куча клерков пойдут в другие виды работ, вслед за крестьянами и пролетариатом. Всё не так плохо, ибо кто-то же должен будет наговаривать тексты для AI-агентов, а кто-то должен будет иметь задачи, которые надо будет решать этим агентам. Пока, конечно, эти тексты не начнут наговаривать ещё одни агенты-клерки, а задачи формулировать ещё одни агенты-стратеги.
Я не думаю, что надо рассказывать про роботов, где прогресс не меньше. Реальному сектору тоже надо как-то готовиться. Инженерам-железячникам тоже не надо будет руками прокликивать сложный интерфейс CAD, там тоже всё словами, и тоже надо будет просто знать умные слова. А потом умные слова узнают и сами агенты, и так по цепочке, причём довольно быстро.
Почему быстро? Потому что AI-агенты быстро учатся. Люди обмениваются информацией медленно, очень медленно, вот тут в самом начале разговора об этом говорит Hinton: https://www.youtube.com/watch?v=b_DUft-BdIE. AI-агенты с нейросетями могут накапливать информацию быстро, это не люди.
Я уже говорил, что в период этой самой сингулярности, когда никто ничего уже не понимает, и каждое утро ситуация на планете круто меняется (и дело не только в сингулярности в части AI, это ж по всем фронтам так, например, посмотрите на сегодняшние новости по внешней и внутренней политике США, только смотрите на английском), надо вкладываться в рост собственного интеллекта: это как раз то знание, которое позволяет ориентироваться в окружающем мире.
Основные идеи современной теории эволюции
Сейчас я занимаюсь курсом "Системная инженерия" -- пишу как раз о том, как удалось выйти на такие бешеные темпы технологического развития. Это был переход системной инженерии из просто безмасштабной (одни и те же принципы работы на всех системных уровнях самых разных видов систем) к эволюционной. Этот ход известен под разными именами: agile, "непрерывное всё" (особенно CI/CD -- непрерывная сборка, непрерывное введение в эксплуатацию, а уж разработка и понятно, непрерывная). Но тут я выяснил, что мало кто из инженеров вообще понимает, причём тут эволюция. И воззрения на эволюцию у инженеров остались старыми, из двадцатого века. Поэтому при взгляде на сегодняшний "сход мира с ума" почему-то приходят в голову самые разные описания, но не описания, которые прямо приспособлены для таких описаний -- описания с точки зрения теории эволюции.
Сегодня в gonzo-обзорах спросили (https://t.me/c/1334131803/50436)-- а что там за такие идеи в современных воззрениях на эволюцию, как их собрать из разных школ мысли во что-то прикладное? А вот эти идеи:
— open-endedness (и там идея богатого мира, выхода в реальность для бесконечности. Похоже, что в искусственных мирах всё не так сладко)
— quality diversity для меметических алгоритмов, то есть "как прыгать подальше, но чтобы не загибнуть"
— многоуровневость и сложность (с конфликтом между системными уровнями) и связь с quality diversity. Тут же "эволюция на всех уровнях"
— невозможность отследить эволюцию одного эээ... вида, но по факту в силу многоуровневости там не вид, а "любого объекта", ибо можно отслеживать только совокупную эволюцию (вот прям. теоретический результат)
— уход от статического fitness landscape
— уход от обсуждения приспособленности через "пользу" (польза получается эмержджентной, и отнюдь не сразу — и "польза" обычно одноуровнева, а нужно учитывать все уровни и их конфликты)
— development и eco обязательны в обсуждениях (eco-evo-devo)
— тот же переход, что в физике: перетрактовка всё в информационные объяснения (информация — результат измерения, то есть мера изменения)
Это так, навскидку "из головы", в режиме комментов в чате gonzo-обзоров. А почему в gonzo-ML-chat это не оффтоп, там же не про эволюцию, а про системы AI? Потому как gonzo-обзоры (https://t.me/gonzo_ML) посвящены как раз эволюции архитектур систем AI, раньше было чуть уже -- архитектуре нейросетей. Вот берём те самые архитектуры нейросетей (в старом понимании архитектуры, схемы потоков данных по функциональным объектам -- это и есть "архитектуры нейросетей") и их рассматриваем, я пример с архитектурами нейросетей уже вставил в "Методологию", прямо на материалах канала: https://aisystant.system-school.ru/lk/#/course/methodology/2024-11-27T2259/51563.
Дальше нам нужна инженерия в целом -- что там эволюционного. Современная инженерия работает вроде как development до момента delivering, и это development явно не похоже на развитие организма в eco-evo-devo, да и переводится "разработка". Затем появляется continuous development, continuous integration, continuous delivering — и оказывается, что continuous everything из инженерии это и есть эволюция, continuous development тут -- эволюционная разработка, и даже архитектура по новым воззрениям -- эволюционная.
А сама эволюция (биологическая, культурная, техническая/инженерная) ещё и evolved, то есть меняются эволюционные ходы, они тоже запоминаются паттернами среды (а не только генами, что толку мне запоминать в генах, как кушать траву, если у растений ещё генов нет, как эту траву выращивать? Ручка-бумага и даже мозги тоже оказываются носителями записей о паттернах, но весь мир хранит отпечатки того, что в нём происходит, сам-себе-ручка-бумажка).
Пример эволюции в инженерии: нейросети
Далее опять берём нейросетки в качестве примера. Сначала они были маргинальны, едва не сдохли — много лет, такое "едва не сдохли" и про людей говорят сейчас (https://www.science.org/doi/10.1126/science.abq7487, https://www.science.org/doi/10.1126/science.abq7487). Но нейросетки как направление исследований таки выжили в эпоху "зимы AI" аж до начала 21 века. В 21 веке развитие видеоигр привело к развитию видеоускорителей, в 2007 году появился интерфейс CUDA для вычислений (сложения и умножения), в 2011 году догадались использовать ускорение для нейросетей -- они получили "больше компьюта", в 2012 году наступил "момент ImageNet", новое пришло в нейросети сбоку, а обработку изображений -- сбоку.
Дальше берём в нейросетях (которые были сначала главным образом дискриминативными, а не порождающми/generative, то есть классифицировали объекты по каким-то классам, а не порождали картинки, видео, тексты, аудио) линию порождающих алгоритмов (ибо их была предложена куча разных, в эволюции это quality diversity, а ещё говорят про geometry frustrations) и наблюдаем, как разработчики переболели линейкой GAN (это было настоящее сумасшествие!), затем в 2017 появился для текстов transformer -- и настал "момент трансформер".
Дальше с трансформерами (которые улучшались и улучшались, и продолжают улучшаться) идём в development, то есть из evo (упор на изменения эволюционируемоего объекта) к devo (упор на то, что происходит в ходе "изготовления", разворачивания зиготы в организм) в заходе Software 2.0 (разрабатываемый объект проходит две стадии: изготовление аппаратуры с innate bias — "выученность какому-то навыку кодирована в аппаратуре", этот innate priors/bias предложен Хомским, чтобы отличить мозг кошки или мышки от мозга человечьего ребёнка, который эволюционно "выучил/познал способность к языку" на уровне "аппаратуры", архитектуры мокрой нейронной сети. Тут learn я перевожу как "познать", а не "научиться от кого-то", терминология тут вся плохая.
Итак, сама идея Software 2.0 в том, что мы готовим какую-то программу, аппроксимирующую функцию (innate priors), а потом программа обучается этой функции. В Software 1.0 надо было закодировать вручную нужную функцию. А вот Software 2.0 кодировать ничего не надо, это differentiable programming, вот я писал в 2019 году, когда это было остромодно, https://ailev.livejournal.com/1464563.html (оно и осталось остромодно, живёт активней всего в мире Julia, используется при решении сложных вычислительных задач в науке и инженерии).
То, что написано в начале поста -- это Software 3.0, когда описываем постановку задачи на естественном языке, а компилятор по этой спецификации синтезирует текст программы, и уже эта программа потом выполняется на компьютере. Это и раньше обсуждалось, в Software 1.0, это же "синтез программ по спецификации", но программы предполагалось писать на формальном языке спецификаций как языке сверхвысокого уровня -- желающих писать спецификации на языках сверхвысокого уровня было ещё меньше, чем желающих писать сами программы на языках уровнем пониже.
Изготовление (evo), а затем три шага обучения (devo)
Одним из классов таких программ, которые надо не просто изготовить, а сначала изготовить как "аппаратуру", а затем научить -- это как раз нейросети, те самые трансформеры. Учить (а со стороны нейросети -- "познавать") -- это и есть развитие, в эволюции это devo, deveolopment. В части devo сначала просто учим self-supervised learning, и удивляемся, как сетка запоминает и воспроизводит паттерны. Вначале так и учили -- показывали огромное количество текстов, и сетка понимала про "слова", "предложения" и более-менее бодро сочиняла "по образу и подобию". Появилась легенда, что сетки сочиняют "похожее на человека, только галлюцинируют". Вот это "похожее на человека" после того, как сетка читала огромное количество текстов, написанных людьми и было "момент трансформера". Это был освоен первый шаг в обучении сетки, pretrain.
Затем добавляем в обучение RLHF -- это показываем не просто всё подряд, а примеры разговора людей, паттерны вопросов и ответов на вопросы. Это сетки instruct, которые обучены не только "паттернам из мира", но и "паттернам общения с людьми" -- и там главными становятся паттерны, обучающие сетку быть harmlessness и helpfulness. Хотя что такое "быть безвредной" и "быть полезной" формально запрограммировать нельзя, "дао, выраженное словами, ненастоящее дао", но люди эти паттерны распознают — "когда я это увижу, я скажу, что это". Это был "момент GPT-3.5", сетка стала полезной! Это был освоен второй шаг в обучении сетки, finetune.
Дальше понимаем, что надо бы научить паттернам мышления, рефлексии — а их тоже сформулировать нельзя, тем более что люди думают тихо. Но можно сделать так, чтобы они эти качества emerge — и вот появляется третий шаг изготовления-познанием/learning — RL, дрессировка с подкреплением на решение задачи, как у AlphaGo (она долго играла сама с собой, чтобы выиграть), но и как у играющих котят (они учатся добегать туда, куда хотят), и как у играющих человеческих детёнышей. Система попадает в разные ситуации, запоминая, что вело её к успеху. Учится формулировать и решать проблемы. И вот прямо сейчас "момент R1" (потому как подробности про o1, Google 2.0 Thinking отсутствовали в силу того, что там всё proprietary, а для R1 стало всем понятно, что происходит, в чём тут шаг эволюции — а интернет сделал так, что мир разработчиков сетей это просёк за пару недель, всё быстро). Это был освоен третий шаг в обучении сетки, RL -- получение "думающей" сетки, и это не "программирование умности", а "появление умности в ходе решения задач".
Карпаты это описывает на примере обучения людей: берём человека с его аппаратурой -- и хотим научить какому-то мастерству. Для этого должны заставить его прочесть текст учебника (pretrain), затем проработать ход решения примеров задач (задачи с ответами и росписью шагов решения), затем решать задачи, для которых ответ есть -- но шаги решения в учебнике не написаны, просто надо предъявить решение, приводящее к правильному ответу.
И тут ещё появляется eco -- надо уметь создавать богатые миры для обучения с подкреплением, для работы эволюционного алгоритма. Тут даже касаться не хочу, но world models -- они тут, например, https://deepmind.google/discover/blog/genie-2-a-large-scale-foundation-world-model/. Не удивлюсь, если подобные модели появятся не для физического мира, а для корпоративной среды, для среды инженерной разработки -- это ж оно самое, "опыт жизни", "производственный опыт".
Всё не так грубо и очевидно и точно, как я тут пишу (это же история, и у истории всегда множество версий, а ещё тут чрезмерно всё упрощено в плане собственно инженерии нейросетей, там всё много хитрей). Но мой тезис в том, что про вот это многолетнее развитие технологии надо думать как про эволюцию -- и не стесняться аналогий между эволюцией и разработкой.
Вообще, чтобы понимать происходящее, надо понимать -- мы наблюдаем технологическую эволюцию, это часть общей эволюции. Инженерия сегодня -- эволюционная инженерия.
Концептуальный синтез каких теорий эволюции мы делаем
Чтобы хоть как-то понимать происходящее, надо обновить свои знания не только по инженерии, но и по эволюции. Там гены уже давно не главные, и если вы продолжаете говорить про survival of the fittest (эволюция -- это про эксплуатацию! выживают в эксплуатации!), а не arrival of the fittest (эволюция интересна тем, как появляется выживающий -- интересна разработка, а не выживание, творчество эволюции тут), а также у вас в речи через слово гены и мемы -- то это прошлое поколение, СТЭ, синтетическая теория эволюции, прошлый век, буквально, 20й век. Современный вариант -- это extended evolutionary synthesis (EES), а также разные варианты физических теорий эволюции, базирующихся на статистической физике и термодинамике. Литература по EES находится быстро (скажем, https://www.evolutionevolving.org/), а вот по физическим теориям эволюции -- нет, она раскидана по статьям. Мы рекомендуем, например, смотреть работы про эволюцию как многоуровневое обучение, типа https://www.pnas.org/doi/10.1073/pnas.2120037119, а также более специфические про рост сложности в ходе эволюции как как раз ход от молекул к клеткам, к организмам и далее объединениям организмов — https://www.pnas.org/doi/10.1073/pnas.1807890115. Это работы группы Ванчурина-Кацнельсона-Кунина-Вольфа, но ещё там были работы лаборатории Michael Levin, который прямо говорил о многоуровневости и (поскольку он занимается биологией развития), то он и клетки организма вполне рассматривает как своеобразную "популяцию" внутри организма, и там оказывается, что у него даже нементальный мозг находится, иммунная система — то есть единицами эволюции являются и популяции клеток в организме. Вот, шикарная работа: https://www.frontiersin.org/journals/integrative-neuroscience/articles/10.3389/fnint.2023.1057622/full.
"Единицами отбора" или "эволюционными единицами" являются единицы всех уровней, гены там давно не главные. Ну, и современные люди не любят слово "отбор" — они сразу про эволюцию, ибо там наследование, необходимое разнообразие при репликациях (в генетических алгоритмах это quality diversity), отбор, и отбор у них "наименее интересное".
Поэтому мы смотрим в текущей эволюции не столько на продукты инженерии и насколько они успешны, сколько на то, каким образом эти продукты получаются -- что там новенького, откуда оно приходит, как это разрабатывается. И участвуем в эволюции сами, понимая, что происходит. Даже если оно происходит настолько быстро, что никто уже ничего не понимает (одно из определений сингулярности -- это когда прогресс происходит настолько быстро, что никто уже ничего не понимает. Ха-ха, в текущей теории эволюции "прогресс" уже неправильное слово, ибо нет "направления развития", есть динамический ландшафт приспособленности, смотри последний абзац https://ailev.livejournal.com/1752045.html про "направления эволюции", там даже кино есть).
Всё, я пошёл разговаривать по душам с нежитью -- теперь это и у меня, и у вас такая работа. На картинке обложка книжки октября 2024, "Evolution Evolved", эту книжку написали университетские учёные, которые ведущие исследователи eco-evo-devo, оно же extended evolutionary synthesis, так что это вроде как SoTA, итог коллективной разработки ведущими спецами (и там внутри сотни первоисточников).