Чтобы понять, как на Земле возникла жизнь, приходится обращаться к вопросам химии, геологии, планетологии, физики и других наук. Но есть и более общий вопрос: каким образом случайные процессы приводят к появлению организованных, самовоспроизводящихся систем, способных хранить и передавать информацию? Этот вопрос можно исследовать в идеализированном мире компьютерного кода: задать в качестве начальных условий случайные последовательности и просто позволить системе развиваться дальше.
Если запустить множество таких случайных систем и позволить им мутировать и взаимодействовать друг с другом, возникнут ли в итоге «жизнеподобные», самовоспроизводящиеся программы? Новая статья Блеза Агуэра‑и-Аркаса и его соавторов показывает, что ответ, по‑видимому, положительный. Это поднимает интересный вопрос: не является ли вычисление аттрактором в пространстве соответствующих динамических процессов? Если это так, последствия могут быть весьма существенными для нашего понимания происхождения жизни и того, насколько широко она распространена во Вселенной.

Блез Агуэра‑и-Аркас получил степень бакалавра физики в Принстонском университете. В настоящее время он занимает должность вице‑президента по инженерным разработкам в Google, руководит командой Cerebra и входит в команду Paradigms of Intelligence. Он автор книг Ubi Sunt и Who Are We Now?, а также готовящейся к выходу книги What Is Intelligence?
Вступление
Aвгуст 2024 года
ведущий (Шон Кэрролл): Всем привет и добро пожаловать в подкаст Mindscape. Сегодня у нас ситуация из разряда «есть хорошая новость и плохая». Плохая новость в том, что в этом выпуске будет нецензурная лексика. Не потому, что мы вдруг решили особенно грубо выражаться или ругаться, а потому, что будем обсуждать компьютерные симуляции, написанные и запущенные на языке под названием Brainfuck. Прошу прощения у тех, кого может задеть такое название, но это вполне реальный язык программирования, и он действительно называется Brainfuck. Поэтому слово Brainfuck нам сегодня придется повторять снова и снова. Собственно, поэтому я произношу его уже сейчас — чтобы вы успели привыкнуть и знали, чего ожидать.
Хорошая новость в том, что оно того стоит. Нас ждет по‑настоящему увлекательный разговор на чрезвычайно важную тему. В некотором смысле речь пойдет о происхождении жизни, хотя химии, биологии, геологии и тому подобного в нашей беседе будет совсем немного.
Мы поговорим о компьютерной модели происхождения жизни, или, точнее, о компьютерной симуляции ее возникновения. Сегодня у нас в гостях Блез Агуэра‑и-Аркас — очень успешный специалист по информатике, причем именно практик. Раньше он работал в Microsoft, а сейчас работает в Google, где занимается, конечно же, искусственным интеллектом, но не только им: визуализацией, дополненной реальностью, вопросами машинного творчества и способности машин создавать искусство и другими подобными вещами, имеющими вполне реальные практические применения.
Но эта работа подтолкнула его к более общим размышлениям: что такое интеллект? Что такое жизнь? Если вы придерживаетесь натурализма и физикализма — как определенно придерживаюсь я и, насколько я понимаю, Блез тоже, — то жизнь и мышление для вас представляют собой результат взаимодействия физических объектов определенными, причем чрезвычайно сложными, способами. А затем на более высоком уровне возникает эмерджентное описание происходящего — то, что мы и называем жизнью.
Поэтому очевидно, что, если вспомнить работы Шрёдингера, фон Неймана и других, здесь должна существовать своя статистическая механика. Нас интересует следующее: если рассмотреть всевозможные способы организации атомов, молекул и так далее, насколько вероятно, что в результате возникнет жизнь?
И тут вы сразу скажете: «Ну смотрите, если взять заданный набор атомов или молекул и рассмотреть все возможные способы их организации, подавляющее большинство конфигураций вообще не будут похожи на живые существа», верно? Очевидно, что живые организмы — это очень и очень упорядоченное, крошечное подмножество пространства всех возможных конфигураций. Это действительно так. Отсюда и возникает старый, своего рода квазикреационистский аргумент: жизнь не получится, если просто случайным образом смешивать что попало.
В бесконечно старой Вселенной это, возможно, и произошло бы — отсюда, собственно, парадокс больцмановского мозга. Но наша Вселенная далеко не настолько стара, чтобы подобные рассуждения были практически значимы. Однако сам вопрос поставлен неправильно. Ведь мы не просто случайным образом смешиваем молекулы. Возможно, мы начинаем с некоторой отчасти случайной конфигурации. На самом деле она не вполне случайна, поскольку обладает низкой энтропией, но мы начинаем с определенной конфигурации, а затем позволяем ей эволюционировать в течение очень долгого времени. И эта эволюция сама по себе представляет интерес, поскольку исследует колоссальное пространство возможных состояний.
Тогда возникает гораздо более содержательный и важный вопрос: встречаются ли среди траекторий такой эволюции небольшие области пространства состояний, в которых с достаточно высокой вероятностью возникает нечто, в каком‑то смысле похожее на жизнь?
Пространство возможностей настолько огромно, что исследовать его сколько‑нибудь реалистично невозможно. Но можно начать с небольшой игрушечной модели. Именно это и сделали Блез и его соавторы. Они написали программы… хотя нет, прошу прощения, так говорить неправильно. Они исследовали систему, в которой существуют небольшие программы на языке Brainfuck, причем таких программ очень, очень много. И изначально они буквально представляют собой случайные последовательности символов.
Представьте, что вы открыли интерпретатор Python или, скажем, начали писать HTML и просто набираете случайные символы. Получится бессмыслица, и ничего работать не будет. Но Brainfuck настолько минималистичен как язык программирования, что иногда даже случайная последовательность символов все‑таки что‑нибудь делает.
И авторы показывают, что при выбранном ими наборе правил — причем нужный результат не был заранее заложен в эти правила — различные программы могут своего рода «общаться» друг с другом, влиять друг на друга и взаимодействовать. И в результате в системе спонтанно возникает репликация.
Иными словами, после некоторого периода, когда система, так сказать, случайным образом нащупывает разные варианты, в ней в конце концов появляются небольшие фрагменты компьютерных программ, способные воспроизводить самих себя и в некотором смысле — об этом мы еще поговорим — передавать свою генетическую информацию последующим поколениям.
Более того, именно эти самовоспроизводящиеся программы в итоге захватывают всю систему — они побеждают. Ведь они способны реплицироваться не только в том месте, где находятся сами, но и у своих непосредственных соседей, а значит, за конечное время могут заполнить все пространство. В определенном смысле это и есть возникновение жизни. Конечно, никаких настоящих законов физики здесь нет, как нет и настоящей химии или чего‑либо подобного.
Но если считать, что фундаментальная сущность возникновения жизни заключается в воспроизводстве и передаче генетической информации потомкам, то здесь происходит нечто очень похожее. Причем эта способность не была заложена в систему вручную, как это часто бывает в подобных симуляциях. Смоделировать эволюцию довольно легко, если у вас уже есть репликация, генетическая информация и все остальное.
А здесь перед нами симуляция, которая фактически начинает с нуля. Репликация и необходимая для нее информация возникают сами собой исключительно благодаря динамике системы. Что это означает для происхождения жизни в реальном мире? Для поисков жизни? Для нашего понимания того, что вообще такое жизнь? Чтобы узнать ответы, придется послушать этот выпуск — все эти вопросы мы сегодня обсудим. Ну а теперь начнем.
От происхождения жизни к вычислениям
ведущий: Блез Агуэра‑и-Аркас, добро пожаловать в подкаст Mindscape.
Блез Агуэра‑и-Аркас: Спасибо. Очень рад быть здесь.
ведущий: Итак, вы один из авторов статьи. Хотя, насколько я понимаю… то есть вы указаны первым автором. Я просто не знаю, как принято в вашей области: авторов располагают в алфавитном порядке или в порядке значимости вклада? Как вы обычно указываете авторов в своих публикациях?
Блез Агуэра‑и-Аркас: По‑разному. Но если вы имеете в виду статью об абиогенезе, то эту работу я начал самостоятельно в октябре, а затем привлек к ней еще нескольких коллег из нашей команды. Так что в данном случае я вполне заслуженно указан первым автором.
ведущий: Отлично. А я вот постоянно оказываюсь первым автором просто потому, что моя фамилия стоит в начале алфавита. Так что мне достается больше признания, чем я заслуживаю. Знакомая ситуация. Иногда даже немного неловко.
Но ближе к концу выпуска мы еще поговорим о других вещах, над которыми вы работаете. Вы все‑таки работаете в Google, у вас есть основная работа и так далее. Будет ли справедливо сказать, что статья, которую мы сегодня собираемся обсуждать, несколько выходит за рамки того, чем вы обычно занимаетесь?
Блез Агуэра‑и-Аркас: И да, и нет. Примерно год назад, в октябре‑ноябре прошлого года, я в некотором смысле сменил направление своей работы. Раньше я руководил довольно крупным подразделением Google Research. У меня в подчинении были сотни сотрудников, и моя работа была скорее работой вице‑президента: огромное количество административных обязанностей, которые все сильнее отдаляли меня от того, что приносит мне больше всего удовольствия, — от непосредственной исследовательской работы и размышлений.
Кроме того, мне казалось, что за последние десять лет многие наши ставки на ИИ действительно начали оправдываться. И теперь все бросились, образно говоря, «доить эту корову»: активно развивать трансформеры, создавать нынешнее поколение систем искусственного интеллекта и стараться сделать их как можно более полезными. И это замечательно. Я действительно очень рад видеть, как все это происходит.
Но мне не хотелось и дальше заниматься исключительно развитием уже существующего направления. Мне очень хотелось вернуться к основам и заново осмыслить некоторые более фундаментальные аспекты вычислений и искусственного интеллекта. Поэтому я создал новую группу, и Google оказал мне в этом очень серьезную поддержку. Она называется Paradigms of Intelligence — «Парадигмы интеллекта». Мы занимаемся действительно фундаментальными вопросами, вплоть до самых истоков — включая происхождение жизни.
ведущий: Прекрасно. Мне очень нравится. И, если я правильно помню, у вас степень бакалавра по физике?
Блез Агуэра‑и-Аркас: Да.
ведущий: В Mindscape это уже давняя шутка: я приглашаю людей, которые сегодня занимаются самыми разными вещами, но выясняется, что начинали они почему‑то с физики, а уже потом ушли в другие области…
Блез Агуэра‑и-Аркас: Наверное, это не случайность.
ведущий: Наверное, действительно не случайность. Итак, в статье происходит очень много всего, поэтому давайте, пожалуй, начнем с самого общего вопроса. Когда вы слышите слова «происхождение жизни», что вы под этим понимаете? Какие основные проблемы нам необходимо решить, чтобы разобраться в том, как возникла жизнь?
Блез Агуэра‑и-Аркас: Конечно. Первая проблема — понять, как именно жизнь возникла здесь, на Земле. У этого должна быть своя конкретная история, но всех ее подробностей мы, возможно, никогда не узнаем, потому что они затерялись в глубинах времени. Все это произошло около четырех миллиардов лет назад.
Меня всегда очень интересовали биологические исследования, авторы которых пытаются восстановить эту историю. Существуют, например, гипотезы о том, что сначала появилась РНК — так называемая гипотеза РНК‑мира. Есть и гипотеза «сначала метаболизм», согласно которой первые метаболические процессы могли возникнуть в глубоководных гидротермальных источниках — «черных курильщиках» на дне океана, где богатые водородом и углекислым газом гидротермальные флюиды проходят через пористые минеральные структуры.
Но есть и более фундаментальный вопрос: как вообще возможно возникновение жизни? В традиционном представлении об эволюции для появления новой жизни уже нужна существующая жизнь. В XIX веке проводилось множество экспериментов, целью которых было выяснить, может ли жизнь самозарождаться, однако добиться этого так и не удалось. Жизнь удавалось получить только тогда, когда в исходной системе уже присутствовала жизнь.
А если посмотреть на проблему глазами физика, то, на мой взгляд, этот взгляд замечательно сформулировал Шрёдингер в своей прекрасной книге 1944 года «Что такое жизнь?», которая в свое время очень меня вдохновила. Шрёдингер рассматривал проблему прежде всего с точки зрения термодинамики. Обычная формулировка второго начала термодинамики говорит нам, что со временем системы становятся более неупорядоченными. А жизнь, напротив, невероятно упорядочена и структурирована.
Разумеется, никакого строгого нарушения второго начала здесь нет, поскольку в систему поступает энергия. Живым организмам необходим обмен веществ. Но хотя термодинамика допускает существование жизни, трудно сказать, что она способствует ее возникновению. И в этом есть некоторая загадка.
ведущий: Я сам много раз высказывал ровно эту мысль, и мне очень понравилось, как вы сейчас это сформулировали: термодинамика не то чтобы «способствует» возникновению жизни. Здесь действительно есть небольшая загадка.
Блез Агуэра‑и-Аркас: Именно.
ведущий: Но в этой статье вы не углубляетесь ни в роль химических катализаторов, ни даже в вопросы энтропии и тому подобное. У вас исключительно компьютерная модель, в которой вы позволяете программному коду самостоятельно эволюционировать.
Блез Агуэра‑и-Аркас: Да. Напрямую эта работа данный вопрос не рассматривает, но косвенно она с ним связана. В следующем году в MIT Press у меня выйдет книга What Is Intelligence? — «Что такое интеллект?». Ее первая часть целиком посвящена абиогенезу и этой работе. Там я гораздо явнее показываю ее связь и с физикой, и с биологией. Так что связь действительно существует, она вовсе не произвольна.
ведущий: Здесь, наверное, стоит упомянуть, что существует отдельная область исследований — ALife, то есть искусственная жизнь, которую не следует путать с AI, искусственным интеллектом. И, насколько я понимаю — уже не помню, где именно у вас это прочитал, — исследователи искусственной жизни обычно начинают с чего‑то, что уже способно к репликации, и задаются вопросами вроде: как затем растет сложность? Как увеличивается эффективный геном? И так далее. А вот симуляции, которые в некотором смысле пытаются воспроизвести само возникновение жизни, похоже, остаются сравнительно малоизученным направлением.
Блез Агуэра‑и-Аркас: Совершенно верно. Насколько мне известно, раньше практически никогда — или, по крайней мере, крайне редко — не удавалось начать просто с шума или случайности и получить в результате репликаторы, получить жизнь.
И причины здесь, думаю, связаны с теми же загадками, о которых мы только что говорили применительно к биологии и физике. Возможно, отчасти дело в психологическом барьере, а возможно, существует и какая‑то реальная принципиальная трудность. Но подход, при котором мы начинаем буквально с ничего, изучен очень слабо. И, насколько мне известно, в области искусственной жизни ранее убедительно продемонстрировать такое не удавалось.
ведущий: Здесь есть определенное противоречие между двумя подходами, и в этом вопросе я полностью на вашей стороне. Но некоторые скажут: «Послушайте, если вы не моделируете настоящую химию, то ничего существенного о происхождении жизни вы нам не расскажете». А другие, более склонные мыслить как физики, возразят: «Ну и что? Можно построить модель сферической коровы, которая все равно ухватывает нечто существенное, даже если в конечном счете она не расскажет нам в точности, как работала биохимия на самых ранних этапах».
Блез Агуэра‑и-Аркас: Да. Разумеется, настоящая биохимия меня тоже очень интересует, поэтому я ни в коем случае не хочу принижать значение исследований такого рода. Но я действительно смотрю на эту проблему как физик и, осмелюсь сказать, как специалист по информатике.
Я рассматриваю жизнь как явление более общее, чем конкретный химический субстрат и конкретная земная химия. И в этом отношении я, кстати, во многом разделяю взгляды основоположников исследований искусственной жизни — тех самых людей, которые стояли у истоков информатики и искусственного интеллекта. Прежде всего я имею в виду Тьюринга и Джона фон Неймана.
ведущий: То есть одним из источников вдохновения, пусть даже где‑то на заднем плане, служит идея о том, что в конечном счете мы хотим уметь посмотреть на некоторый объект и спросить: «Он живой?» Это может быть нечто существующее внутри компьютера, а может быть физический объект. Но по каким критериям мы вообще решаем, считать что‑то живым или нет?
Блез Агуэра‑и-Аркас: Да. В определенной степени вопрос о том, считать ли нечто живым, зависит от определения. Даже в биологии существует множество пограничных случаев: например, живы вирусы или нет? И так далее. Поэтому одна из наших целей — найти более строгое и при этом более функциональное определение жизни.
Под «функциональным» я имею в виду подход в духе функционализма Тьюринга и фон Неймана. Возьмем знаменитый тест Тьюринга применительно к интеллекту. Его идея, по сути, такова: если нечто крякает как утка, значит, это утка. Если вы разговариваете с компьютером, воспринимаете его как разумного и он успешно проходит все ваши проверки, то, если он функционирует как разумная система, его следует считать разумным.
Мне кажется, что к жизни можно применить аналогичный функциональный подход, который позволяет абстрагироваться от того, какие именно молекулы используются и используются ли вообще какие‑либо молекулы.
ведущий: Отлично. Как я уже говорил, здесь я согласен с вами на все сто процентов. Даже спорить с вами не буду — трудно представить, чтобы я мог быть с вами еще больше согласен.
Итак, вы собираетесь исследовать это с помощью множества компьютерных симуляций. Как вы сказали, задача состоит в том, чтобы действительно начать с ничего — или просто со случайности, — задать некоторый набор правил, запустить систему и посмотреть, возникнет ли в ней нечто жизнеподобное. Такова основная цель?
Блез Агуэра‑и-Аркас: Да, именно. Причем мы хотим, чтобы в исходной системе было заложено как можно меньше — чтобы исходных предпосылок было минимальное количество.
ведущий: И тут вы сталкиваетесь с одним препятствием: оказывается, что лучше всего для этой задачи подходит язык программирования под названием Brainfuck. Причем его, судя по всему, даже трудно искать в интернете, потому что название часто намеренно пишут с искажениями или заменяют часть букв, чтобы оно выглядело менее непристойно. Но расскажите нам…
Блез Агуэра‑и-Аркас: Да, например, заменяют часть слова специальными символами вроде звездочек.
ведущий: Именно. Так расскажите об этом языке и о том, почему вы выбрали именно его.
Блез Агуэра‑и-Аркас: Мне даже пришлось свериться с условиями договора с MIT Press, чтобы выяснить, не сочтут ли это слово непристойным и допустят ли его вообще к печати…
ведущий: Но вы‑то тут ни при чем. Название существовало задолго до вашей работы.
Блез Агуэра‑и-Аркас: Я тут ни при чем.
ведущий: Да.
Блез Агуэра‑и-Аркас: Нет‑нет. Этот язык придумал лет сорок назад… точнее, прошу прощения, лет тридцать назад Урбан Мюллер, немец, который тогда, кстати, был студентом‑физиком.
ведущий: Ну вот, опять физик.
Блез Агуэра‑и-Аркас: Кто бы мог подумать. И, судя по всему, еще и жонглер‑любитель.
Так вот, Brainfuck, конечно, далеко не единственный язык, который можно использовать для таких экспериментов. К настоящему времени мы проверили тот же подход и на многих других языках. Например, в нашей последней, очень красивой демонстрации, которую сделал Алекс Мордвинцев, используется процессор Zilog Z80.
ведущий: Понятно.
Блез Агуэра‑и-Аркас: Это процессор, который…
ведущий: А я понятия не имею, что это такое.
Блез Агуэра‑и-Аркас: Он появился в 1976 году.
ведущий: Ничего себе.
Блез Агуэра‑и-Аркас: Так что существует он уже очень давно. На нем работали компьютеры Osborne, TRS-80 и многие другие машины той эпохи. То есть это буквально техника нашего детства…
ведущий: А, ну вот это уже моя эпоха. Теперь понятно.
Блез Агуэра‑и-Аркас: Да, именно. Получается небольшое ностальгическое путешествие. И на ассемблере Zilog все работает ничуть не хуже. Поэтому использовать именно Brainfuck вовсе не обязательно.
Я начал с Brainfuck потому, что по своей структуре он очень близок к машине Тьюринга. Это предельно минималистичный язык. В нем всего восемь инструкций, причем в первых симуляциях я использовал только семь из них.
ведущий: Понятно.
Блез Агуэра‑и-Аркас: И он работает с лентой, практически такой же, как лента машины Тьюринга. То есть это предельно минималистичная система. Насколько я помню, Урбан Мюллер написал для Brainfuck компилятор, который занимал всего 173 байта и компилировал код в машинные инструкции или что‑то в этом роде. Так что язык действительно чрезвычайно минималистичен.
ведущий: Тогда давайте напомним нашим слушателям — аудитория у нас широкая, — что именно подразумевается под машиной Тьюринга.
Машина Тьюринга и среда BFF
Блез Агуэра‑и-Аркас: Машина Тьюринга — это абстрактная, концептуальная вычислительная машина, предложенная Аланом Тьюрингом в 1930-х годах. По мнению многих людей, в том числе и меня, именно с нее в некотором смысле начинается настоящая теоретическая информатика.
Тьюринг описал ее в замечательной статье, где пытался решить — и в итоге решил — одну из знаменитых математических проблем Гильберта: существует ли механическая процедура, позволяющая определить истинность математического утверждения? Чтобы решить эту проблему, необходимо было прежде всего строго сформулировать, что вообще представляет собой вычисление.
В итоге предложенное Тьюрингом определение вычисления оказалось гораздо более важной частью этой статьи, чем собственно ответ на исходный вопрос. А ответ состоял в том, что нет, универсального алгоритма, позволяющего заранее определить истинность или ложность произвольного математического утверждения, не существует.
Но к этому результату Тьюринг пришел чрезвычайно изобретательным путем. Он описал машину с лентой, разделенной на ячейки, в каждую из которых можно записывать символы. Вдоль этой ленты перемещается головка чтения‑записи, способная сдвигаться влево и вправо. Кроме того, имеется таблица правил. В зависимости от внутреннего состояния машины и символа в текущей ячейке эти правила предписывают, что делать дальше: стереть символ, записать новый либо переместить головку влево или вправо. Вот это и есть машина Тьюринга.
А затем Тьюринг сделал следующий, по‑настоящему гениальный шаг — ввел понятие универсальной машины Тьюринга. Сначала он показал, что машина Тьюринга способна выполнить любое вычисление, которое вообще может быть выполнено, скажем, человеком с карандашом и бумагой.
После этого он показал следующее: если сами правила, то есть эту таблицу правил, записать на ленту, то существуют такие наборы правил, которые позволяют машине интерпретировать записанную на ленте таблицу и выполнять задаваемое ею вычисление.
Получается своего рода трюк со змеей, кусающей собственный хвост: программа сама становится данными для другой программы. И именно этот шаг дает нам универсальный компьютер. В некотором смысле это и есть определение вычислений общего назначения.
ведущий: И когда вы говорите, что Brainfuck похож на машину Тьюринга, он ведь действительно тьюринг‑полон, верно? То есть способен выполнить любое вычисление, которое может выполнить машина Тьюринга.
Блез Агуэра‑и-Аркас: Именно. В этом и состоит понятие тьюринг‑полноты. Для данной машины или математической системы мы спрашиваем: можно ли свести ее к машине Тьюринга? Если да, то по построению она способна выполнить любое вычисление, которое в принципе вычислимо.
Brainfuck состоит всего из восьми инструкций, поэтому я могу просто перечислить их все.
ведущий: Пожалуйста.
Блез Агуэра‑и-Аркас: Итак, имеется головка. Она может перемещаться на одну ячейку влево или вправо. Кроме того, можно увеличить или уменьшить на единицу значение байта в текущей ячейке.
Сама лента состоит из байтов, значения которых лежат в диапазоне от 0 до 255. Если увеличить 255 на единицу, значение снова станет равным нулю. Если уменьшить ноль на единицу, получится 255. То есть значения циклически переходят через границы диапазона.
Есть также операции ввода и вывода. В исходном Brainfuck предусмотрена своего рода консоль. Команда вывода просто выводит байт, находящийся под головкой, а команда ввода считывает байт и записывает его в текущую ячейку.
Наконец, две оставшиеся инструкции — открывающая и закрывающая квадратные скобки. Они используются для организации циклов.
Дело в том, что для тьюринг‑полноты необходима возможность ветвления, чтобы можно было реализовать циклы. Нужна конструкция типа «если, то». Поэтому квадратные скобки работают следующим образом. При открывающей скобке проверяется байт, на который указывает указатель данных. Если его значение не равно нулю, выполнение продолжается. Если оно равно нулю, происходит переход к соответствующей закрывающей скобке.
У закрывающей скобки снова проверяется значение байта под головкой. Если оно не равно нулю, выполнение возвращается к соответствующей открывающей скобке. В противном случае программа продолжает выполняться дальше. Вот и все. Это весь язык.
ведущий: И этого достаточно: вы задаете ленту и… хотя нет, поправлюсь, потому что в исходном Brainfuck программа и лента существуют отдельно. То есть есть последовательность инструкций, составляющая программу, есть лента, а головка просто перемещается по ней туда‑сюда, считывая и записывая данные. И в принципе с помощью всего этого можно выполнить любое вычисление, которое мы вообще умеем выполнять.
Блез Агуэра‑и-Аркас: Именно. Если программа и лента достаточно длинные и у вас достаточно времени, то на этом языке можно реализовать хоть Windows, хоть что угодно еще, хотя программировать это было бы сущим кошмаром. Собственно, Урбан и назвал язык Brainfuck именно потому, что программировать на нем чрезвычайно трудно. Посмотрите, например, на программу «Hello, World!» — это просто какая‑то совершенно непостижимая мешанина символов.
ведущий: На нем трудно программировать, но читать программы еще сложнее, потому что, как вы сказали, там сплошные плюсы, скобки, точки, точки, точки… И совершенно непонятно, что вообще происходит.
Блез Агуэра‑и-Аркас: Именно. Язык крайне недружелюбен к программисту, зато он тьюринг‑полон.
ведущий: И для ваших целей он подходит как раз потому, что набор символов в нем настолько мал, верно?
Блез Агуэра‑и-Аркас: Совершенно верно. Набор символов крошечный. Brainfuck не самый минимальный из существующих тьюринг‑полных языков, но он близок к этому — это один из самых маленьких тьюринг‑полных языков, которые вообще можно построить.
Благодаря этому его, с одной стороны, можно очень быстро симулировать, а с другой — подвергать довольно интересному математическому анализу, который для более сложного языка был бы значительно труднее.
ведущий: Именно это вы и делаете. Причем вы с коллегами используете модифицированный вариант Brainfuck. Я уже немного забежал вперед и проговорился: у вас программа и данные находятся в одном и том же пространстве.
Блез Агуэра‑и-Аркас: Да. В исходном Brainfuck нам пришлось изменить одну вещь. Фактически там имеются две отдельные ленты, хотя сам Урбан в спецификации языка описывал это несколько иначе.
ведущий: Да.
Блез Агуэра‑и-Аркас: Есть лента программы и лента данных. У ленты программы есть собственная считывающая головка — указатель инструкций, — которая последовательно движется по программе и иногда, при выполнении циклов, перескакивает назад. А лента данных существует отдельно.
Мы же хотели сделать код самомодифицирующимся. Под самомодифицирующимся кодом я имею в виду ситуацию, когда сам код находится в том же пространстве, что и данные, поэтому с ним можно производить те же операции, что и с обычными данными.
И зачем нам это понадобилось? Потому что у меня была гипотеза, что именно способность к самомодификации является ключом к абиогенезу.
ведущий: Конечно.
Блез Агуэра‑и-Аркас: К возникновению жизни. Я могу подробнее объяснить, почему так думаю, но, пожалуй, вернемся к этому чуть позже.
Итак, теперь у нас есть всего одна лента, содержащая одновременно и код, и данные. Но тогда нужно представить, что у нас уже не две, а три головки. Дело в том, что в исходном Brainfuck была еще и консоль, а нам не хотелось, чтобы консоль существовала отдельно от ленты. Вся система должна быть полностью самодостаточной.
Поэтому теперь есть указатель инструкций, который движется вдоль ленты. Есть указатель данных, который можно перемещать в любое место на ленте. И есть указатель ввода‑вывода: когда программа выполняет операцию вывода или ввода, он определяет, в какую именно ячейку ленты будет записан вывод или откуда будут считаны входные данные.
ведущий: А, понятно.
Блез Агуэра‑и-Аркас: То есть абсолютно все находится на одной и той же ленте.
ведущий: Хорошо. Таким образом, у вас появляется своего рода набор инструментов или, пожалуй, «песочница», в которой можно экспериментировать. И эксперимент вы начинаете, как уже говорилось, буквально с ничего: просто запускаете систему и смотрите, что произойдет. Но здесь, конечно, есть некоторые тонкости. Нельзя просто запустить одну программу — это было бы не слишком интересно.
Блез Агуэра‑и-Аркас: Верно. Здесь есть еще один прием. Кстати, эту среду мы назвали BFF — думаю, вскоре станет понятно почему.
Мы начинаем с «бульона» из множества лент. Все эти ленты имеют фиксированную длину — 64 ячейки.
ведущий: Хорошо.
Блез Агуэра‑и-Аркас: Но вместо того чтобы запускать каждую ленту по отдельности, мы всегда запускаем их попарно. Из бульона случайным образом берутся две ленты, они соединяются конец к концу, и получившаяся последовательность рассматривается как единая лента, на которой запускается программа.
При этом система полностью самодостаточна, поэтому программа может модифицировать в том числе саму себя. После выполнения две ленты снова разделяются и возвращаются обратно в бульон. Вот и все. Затем этот процесс повторяется снова и снова.
Кроме того, можно задать некоторую частоту мутаций. Если мутации разрешены, то время от времени случайно выбранный байт где‑нибудь в этом бульоне заменяется случайным значением.
Есть еще одна деталь. Поскольку программа в принципе может зациклиться, нужно либо установить максимальное число инструкций, которые ей разрешено выполнить, либо задать некоторую вероятность остановки в единицу времени — этот вариант мне нравится больше. Тогда в каждый момент существует определенная вероятность, что выполнение данной ленты просто прекратится, на каком бы месте она ни находилась.
Вот, собственно, и все дополнительные условия. Никакой функции приспособленности здесь нет. Иными словами, нет никакой специально заданной функции, которая объявляла бы одну ленту лучше другой. Вы просто извлекаете ленты из бульона, соединяете их конец к концу, запускаете выполнение, возвращаете обратно и повторяете эту процедуру миллионы раз.
ведущий: А когда вы соединяете их конец к концу, вы ведь не берете, скажем, первую половину одной ленты и вторую половину другой? Вы просто… Я пытаюсь представить себе, как именно это устроено. Вы просто помещаете две ленты рядом друг с другом, и тогда возникает некоторая топология — понятие ближайшего соседа приобретает конкретный смысл.
Блез Агуэра‑и-Аркас: Именно. Каждая лента содержит 64 байта. Если соединить две такие ленты конец к концу, получится последовательность из 128 байтов. Ее мы и рассматриваем как единую ленту, на которой запускается программа.
На первый взгляд это решение может показаться несколько произвольным, но оно важно по следующей причине: помимо самомодификации, жизнь основана еще и на взаимодействиях.
ведущий: Да.
Блез Агуэра‑и-Аркас: Поэтому в системе обязательно должны существовать объекты, которые взаимодействуют друг с другом. Если ничто ни с чем не взаимодействует, ничего и произойти не может. В химии аналогом было бы взаимодействие молекул. Так что наши ленты можно в некотором смысле представлять себе как молекулы.
ведущий: Понятно. То есть ленты модифицируют и самих себя, и своих соседей — примерно так же, как это происходит с людьми или реальными живыми организмами.
От случайного кода к репликации
Хорошо. А теперь помогите нам интуитивно представить, что вообще делает случайный код на Brainfuck. Я бы предположил, что он обычно просто аварийно завершится или, возможно, зациклится. Хотя я не уверен.
Блез Агуэра‑и-Аркас: На самом деле получить бесконечный цикл из чисто случайного шума довольно трудно.
ведущий: Да, пожалуй, логично.
Блез Агуэра‑и-Аркас: Потому что, напомню, в моей версии Brainfuck, то есть в среде BFF, используется семь инструкций. При этом каждый байт может принимать 256 различных значений. Поэтому лишь 7 значений из 256 вообще соответствуют каким‑либо инструкциям. Если значение байта не кодирует инструкцию, этот байт просто пропускается.
ведущий: А, понятно.
Блез Агуэра‑и-Аркас: В информатике это называется NOP — “пустая операция”, то есть инструкция, которая ничего не делает. Получается примерно одна рабочая инструкция на 32 байта. Поэтому на всей составной ленте из 128 байтов будет лишь несколько байтов — два, три, четыре, — которые действительно кодируют какие‑то инструкции.
И что это могут быть за инструкции? Например: дважды сдвинуть головку влево, потом один раз вправо — и все. Никаких изменений в данных не произошло.
Поэтому в самом начале вычислений почти нет. Все выглядит совершенно бесперспективно.
ведущий: Значит, мне не следовало говорить, что программа аварийно завершается. Она все‑таки что‑то делает: немного перемещается туда‑сюда, а потом просто затихает. Выполнение прекращается, и ничего интересного не происходит.
Блез Агуэра‑и-Аркас: Да, ничего не происходит.
ведущий: Понятно.
Блез Агуэра‑и-Аркас: Хотя аварийное завершение все же возможно. Если программа встречает закрывающую квадратную скобку, для которой нет соответствующей открывающей, происходит ошибка.
ведущий: А, понятно.
Блез Агуэра‑и-Аркас: Но, насколько я помню, это единственный способ аварийно завершить выполнение.
ведущий: Хорошо. Получается, что заставить программу аварийно завершиться в Brainfuck даже сложнее, чем в обычных языках программирования.
Блез Агуэра‑и-Аркас: Да. И это тоже было одной из причин выбора такого языка: он достаточно допускающий, чтобы практически любая последовательность символов могла хоть что‑нибудь сделать.
ведущий: То есть в этом смысле он довольно устойчив.
Блез Агуэра‑и-Аркас: Да, довольно устойчив. Практически любой код что‑нибудь делает, хотя лишь ничтожная доля этого «чего‑нибудь» оказывается полезной.
ведущий: А можно ли это как‑то оценить количественно? Какая доля возможных действий этих байтов приводит к чему‑нибудь интересному — если «интересность» вообще можно определить достаточно строго?
Блез Агуэра‑и-Аркас: Из семи инструкций только три действительно способны изменить содержимое ленты. Это плюс и минус, которые соответственно увеличивают и уменьшают значение байта, на который в данный момент указывает указатель данных, и запятая — инструкция копирования.
Изначально запятая отвечала за ввод данных с консоли. Но если задуматься, вывод и ввод здесь, по сути, представляют собой одну и ту же операцию. В обоих случаях байт просто копируется из одного места ленты в другое.
ведущий: Конечно. Понятно.
Блез Агуэра‑и-Аркас: Потому что теперь и указатель ввода‑вывода, и указатель данных просто указывают на разные позиции одной и той же ленты. Именно поэтому нам удалось сократить число инструкций с восьми до семи.
Таким образом, вообще изменить содержимое ленты способны лишь три инструкции. Отсюда следует, что без циклов изменений будет совсем немного. А случайно получить работающий цикл довольно маловероятно, поскольку для этого где‑то должны появиться согласованные открывающая и закрывающая квадратные скобки, между которыми к тому же должна находиться одна из инструкций записи.
Поэтому для начального состояния действительно можно все довольно точно посчитать: вычислить вероятность того, что в результате взаимодействия вообще что‑нибудь изменится. И вероятность эта невелика. Большинство взаимодействий не приводит ни к каким изменениям.
ведущий: Хорошо. А сколько лент вы используете одновременно? То есть у вас параллельно существует множество лент, или программ — как их ни называй. Сколько их было в ваших симуляциях?
Блез Агуэра‑и-Аркас: В первых экспериментах я использовал 8192 ленты. В некоторых более поздних — всего около тысячи, точнее 1024. Оказалось, что 1024 лент вполне достаточно, чтобы наблюдать все интересующие нас явления.
ведущий: Хорошо. Тогда не буду подсказывать вам ответ — лучше сами расскажите слушателям, что произошло. Вы создали своего рода первичный бульон и позволили ему «вариться».
Блез Агуэра‑и-Аркас: Да. В самом начале на одно взаимодействие в среднем приходится примерно две выполняемые инструкции. Почти ничего не происходит, и все выглядит довольно скучно — если только не присматриваться очень внимательно. А внимательно мы начали смотреть уже позже.
Но затем, обычно спустя несколько миллионов взаимодействий, в какой‑то момент все начинает меняться, причем переход происходит очень резко.
Когда я впервые запустил симуляцию на своем компьютере, данные просто очень быстро прокручивались на экране. И вдруг прокрутка резко замедлилась: компьютер начал обрабатывать данные словно отдельными тяжелыми порциями — «так, так, так» — и включился вентилятор. Стало очевидно, что внезапно система начала выполнять гораздо больше вычислений.
И число операций, выполняемых за одно взаимодействие, внезапно подскакивает от совсем небольших значений до тысяч. А если посмотреть на содержимое лент, то оказывается, что они вдруг буквально заполнены инструкциями — инструкции располагаются очень плотно, а сами программы становятся весьма сложными.
Более того, они реплицируются. Вы обнаруживаете множество копий различных программ, причем эти программы сложным образом взаимодействуют друг с другом. Так что переход действительно очень впечатляющий.
ведущий: Что именно в данном контексте означает «реплицируются»? Думаю, из сказанного вами это уже отчасти понятно, но все же: одна программа записывает собственную копию в соседнюю ленту?
Блез Агуэра‑и-Аркас: На самом деле это более глубокий вопрос, чем может показаться. Самое простое определение репликации… или, точнее, простейший вариант репликации выглядит так: вы запускаете составную ленту, и первые 64 байта копируют себя во вторые 64 байта.
Если это происходит, то после того, как вы снова разделите две ленты, независимо от того, что изначально находилось во второй половине, у вас окажутся две копии содержимого первой половины. Это репликация, и, если такой механизм возникнет, число копий действительно начнет расти экспоненциально.
Но вопрос оказывается тоньше, потому что реплицироваться могут и небольшие фрагменты ленты. Более того, как выяснилось, именно это происходит на более ранних этапах процесса.
Возможны даже ситуации, когда один объект порождает другой, тот порождает третий, третий — следующий и так далее, пока цикл в конце концов не замыкается и один из последующих объектов иногда не порождает исходный. То есть могут существовать сложные жизненные циклы, и это тоже форма репликации.
ведущий: Конечно.
Блез Агуэра‑и-Аркас: Всякий процесс, который в конечном счете замыкается и приводит к появлению большего числа ваших копий, чем возникло бы в нулевом случае, когда никаких таких процессов не происходит, можно считать репликацией — сколь бы слабой она ни была.
ведущий: Это, кстати, напоминает один результат из исследований происхождения жизни, основанных уже на реальной химии. Насколько я помню — когда я писал книгу The Big Picture, сколько‑то там лет назад, — исследователям еще не удалось создать отдельную молекулу, которая могла бы автокаталитически воспроизводить саму себя. Но удавалось создавать пары молекул, где молекула A способствовала образованию B, а B, в свою очередь, способствовала образованию A, и этот цикл мог продолжаться.
Блез Агуэра‑и-Аркас: Именно.
ведущий: То есть, по сути, вы наблюдаете нечто подобное и в своих симуляциях.
Блез Агуэра‑и-Аркас: Именно. Кстати, по такому же принципу работает и репликация ДНК. У вас есть комплементарные пары оснований. Две цепи разделяются, каждая служит матрицей для создания комплементарной цепи, а затем основания снова образуют пары.
В исследованиях абиогенеза подобные системы называют автокаталитическими наборами химических соединений. Но, опять же, мне кажется, что само это понятие фундаментальнее конкретной химии. За ним стоит нечто довольно глубокое, и в наших симуляциях мы наблюдаем в сущности то же самое.
ведущий: А если посмотреть на это исключительно с точки зрения статистики, правильно ли будет сформулировать результат так: множество последовательностей инструкций, то есть множество лент, способных вести себя подобным образом, ничтожно мало по сравнению с множеством всех возможных лент, однако именно они имеют тенденцию захватывать всю систему? Получается, в каком‑то смысле они устойчивее остальных, хотя я пока не вполне понимаю, как это точнее сформулировать.
Блез Агуэра‑и-Аркас: Да. Один из людей, чьи идеи очень сильно повлияли на мое понимание всего этого, — Адди Просс, почетный профессор химии Университета имени Бен‑Гуриона в Негеве, в Израиле. Он много лет занимался химией происхождения жизни и ввел понятие «динамической кинетической устойчивости».
Смысл этого понятия в следующем. В обычной термодинамике мы представляем себе вещество как систему, которая переходит во все более устойчивое состояние. Или, говоря более общо, статистические свойства некоторого ансамбля со временем становятся все более стабильными. Если система изначально находится далеко от равновесия, она будет двигаться к равновесию, и чем ближе ее состояние к равновесному, тем оно устойчивее.
Но Адди Просс понял, что при появлении репликаторов возникает совершенно новая форма устойчивости, которую он и назвал динамической кинетической устойчивостью.
Если A порождает B, B порождает C, а C снова порождает A, то такая система обладает устойчивостью, которая в некотором смысле даже выше, чем у объекта, который разрушается чрезвычайно медленно, но в конечном счете все равно разрушается. Репликатор же в принципе способен существовать бесконечно долго.
Можно взять что‑то хрупкое, например мыльный пузырь, а можно что‑то чрезвычайно прочное, например гранит. Но каким бы прочным ни был пассивный объект, каждое его взаимодействие с окружающим миром в конечном счете может лишь способствовать его разрушению. Особенность же жизни — и репликаторов вообще — состоит в том, что они способны активно противодействовать силам, ведущим к росту энтропии, и благодаря этому потенциально существовать неограниченно долго.
ведущий: Звучит очень впечатляюще. А непосредственно в симуляциях вы наблюдаете что‑нибудь подобное? Есть ли там своего рода самовосстановление? Бывает ли так, что репликатор подвергается неблагоприятному воздействию среды, получает повреждение, а затем каким‑то образом восстанавливается?
Блез Агуэра‑и-Аркас: Безусловно. Мы действительно это наблюдаем. Но самый простой, почти тривиальный вариант такой устойчивости возникает уже тогда, когда у вас появляется популяция репликаторов. Популяция устойчивее отдельного репликатора. Если один экземпляр повреждается, остается другой, который по‑прежнему способен реплицироваться.
Таким образом, первый механизм устойчивости — это сама популяция. В системе действует процесс, активно увеличивающий ее численность, поэтому, даже если часть популяции уничтожить, она снова восстанавливается.
Но можно пойти дальше: репликаторы действительно способны становиться более устойчивыми и даже восстанавливать самих себя. Подобные явления мы тоже наблюдаем. Однако уже одна только репликация обеспечивает динамическую кинетическую устойчивость.
ведущий: Вы говорили, что не задавали никакого ландшафта приспособленности или функции приспособленности. То есть заранее никак не определяли, какие программы должны считаться более успешными. Но разве в системе все равно не возникает своего рода эффективная функция приспособленности? Или, если сформулировать это в виде вопроса: вы заново открыли естественный отбор?
Блез Агуэра‑и-Аркас: Да.
ведущий: Понятно.
Блез Агуэра‑и-Аркас: Мы совершенно определенно заново открыли естественный отбор. И здесь мы снова возвращаемся к Адди Проссу. Он формулирует это так: динамическая кинетическая устойчивость… Прошу прощения, сейчас сформулирую точнее.
ведущий: Конечно.
Блез Агуэра‑и-Аркас: По формулировке Адди Просса, динамическая кинетическая устойчивость и есть дарвиновский отбор. А дарвиновский отбор — это, в свою очередь, своего рода аналог термодинамической устойчивости для динамической системы, в которой помимо обычной энтропийной динамики присутствует еще и динамика репликаторов.
Так что да, в определенном смысле функция приспособленности здесь действительно есть. Представьте, что в некоторый момент вы видите репликатор и рядом с ним другую последовательность, которая репликатором не является. Если спустя некоторое время снова посмотреть на систему, то репликатор, скорее всего, все еще будет присутствовать, а нереплицирующаяся последовательность, скорее всего, уже исчезнет. Она либо разрушится под действием случайных мутаций, играющих здесь роль энтропийного фактора, либо будет перезаписана репликатором.
ведущий: Я хочу разобраться в этом еще и из собственных корыстных соображений. Я занимаюсь исследованиями в очень близких областях, и сейчас вы мне здорово помогаете.
Но действительно ли это естественный отбор в привычном смысле? Когда я думаю о естественном отборе, я представляю себе передачу генома от одного организма к другому, его наследование и мутации. Хотя, наверное, вы сейчас скажете, что в вашей модели вся лента в некотором смысле и есть геном.
Блез Агуэра‑и-Аркас: Это тоже замечательный и очень глубокий вопрос. Потому что в процессе такого абиогенеза действительно наступает некий переломный, почти волшебный момент, когда происходит качественный переход.
Сначала у вас есть просто автокаталитический набор: одни структуры с некоторой вероятностью создают другие, те создают следующие, а те в конечном счете снова создают исходную структуру. Но затем появляется нечто, уже обладающее геномом.
А наличие генома означает, что теперь существует набор инструкций по созданию самого себя. И если эти инструкции каким‑либо образом изменяются, это изменение сохраняется у потомков. Иными словами, возникает наследуемость.
Это возвращает нас к одной из, на мой взгляд, самых фундаментальных работ в биологии, хотя ее обычно вообще не относят к биологии. Ее автор — Джон фон Нейман, один из основоположников информатики.
Когда он работал в Лос‑Аламосе вместе со Станиславом Уламом, они придумали клеточные автоматы. И одним из применений клеточных автоматов, которое разработал фон Нейман, стало самовоспроизведение. Он спроектировал поразительную самовоспроизводящуюся систему на основе клеточного автомата. Впервые ее удалось полностью смоделировать на компьютере лишь в середине 1990-х годов, потому что реализовать и запустить такую систему чрезвычайно сложно — она требует огромных вычислительных ресурсов.
ведущий: То есть компьютерная архитектура наконец‑то догнала мозг фон Неймана.
Блез Агуэра‑и-Аркас: Именно. Хотя не уверен, что мы его действительно догнали — скорее, немного приблизились.
Но основную идею фон Неймана сформулировать довольно легко, хотя сама она чрезвычайно глубока. Он утверждал: если мы хотим, чтобы некая система могла неограниченно эволюционировать, то есть воспроизводиться и продолжать эволюцию без заранее заданного предела сложности, ей необходимо нечто вроде генома.
По сути, он задавался вопросом: как вообще может существовать что‑то вроде бактерии? Как возможна жизнь? Как система способна построить еще одну копию самой себя, причем столь же сложную, как она сама? На первый взгляд это похоже на попытку вытащить самого себя за шнурки ботинок. Кажется, что это просто невозможно.
И фон Нейман понял, что это возможно, если система содержит следующие компоненты. Во‑первых, нужна лента, подобная ленте машины Тьюринга, на которой записаны инструкции по построению самой системы.
Затем нужна машина A, которая будет последовательно считывать эту ленту, выполнять записанные на ней инструкции и строить то, что эти инструкции предписывают.
Наконец, нужна машина B, способная копировать саму ленту — при условии, конечно, что лента состоит из материала, который можно получить из окружающей среды.
И если на этой же ленте записаны инструкции по построению машин A и B, то перед нами уже репликатор. И самое удивительное в этой идее то, что фон Нейман изложил ее еще в 1951 году — до открытия структуры ДНК и выяснения принципов ее работы.
ведущий: Да. Стоит произнести все это вслух, и сразу возникает очевидная мысль: «Так ведь именно это и делает ДНК», верно?
Блез Агуэра‑и-Аркас: Именно. Он буквально все предсказал. Его машина A выполняет ту функцию, которую выполняют рибосомы, а машина B — функцию ДНК‑полимеразы. Ну а сама лента, конечно же, соответствует ДНК.
Причем инструкции по построению рибосом и ДНК‑полимеразы закодированы в самой ДНК. Так что соответствие практически точное.
ведущий: Это один из тех эпизодов в истории науки, которые вселяют веру в силу чистого мышления. Вы хотите понять, как нечто вообще может работать определенным образом, задаетесь вопросом, какой механизм способен это обеспечить, — и в итоге находите ответ.
Правда, до открытия структуры ДНК оставалось уже не так много лет. Интересно, насколько сильно на фон Неймана повлияли такие люди, как Шрёдингер, которые уже размышляли о подобных вещах.
Блез Агуэра‑и-Аркас: Уверен, что повлияли. Шрёдингер тоже в определенном смысле предвосхитил идею ДНК. Однако фон Нейман продвинулся немного дальше, поскольку разделил функции машин A и B. Иными словами, он понял, что лента и устройство, которое считывает записанную на ней информацию, должны играть принципиально разные роли. Шрёдингер в 1944 году еще не вполне установил эту связь.
ведущий: Понятно.
Блез Агуэра‑и-Аркас: Да, это была чрезвычайно глубокая идея. И такая система представляет собой нечто большее, чем просто автокаталитический набор, по двум причинам.
Первая — наследуемость. Но вторая, на мой взгляд, еще глубже: такая система фактически является машиной Тьюринга. То, что описал фон Нейман, — это компьютер. Машины A и B должны выполнять вычисления.
Причина в том, что невозможно исполнять инструкции, записанные на ленте, не имея механизмов циклов и условного ветвления. Вам нужны конструкции вроде: «если выполнено это условие, добавь вот это», затем переход к следующему шагу, а в конце — остановка.
ведущий: Да.
Блез Агуэра‑и-Аркас: То есть здесь присутствует цикл, а значит, имеются все необходимые компоненты тьюринг‑полного вычисления. Поэтому в действительности фон Нейман утверждал следующее: ничто не может быть живым, не выполняя вычислений. Или, точнее, на очень глубоком уровне жизнь и есть вычисление.
ведущий: Мне очень нравится эта формулировка. Не уверен, слышал ли я когда‑нибудь эту мысль именно в таком виде. Кажется, нет. Но сейчас она наконец по‑настоящему уложилась у меня в голове. Возможно, я просто достиг того этапа, когда уже достаточно подготовлен, чтобы оценить подобную идею.
Блез Агуэра‑и-Аркас: Не думаю, что раньше это действительно формулировали именно так. Хотя могу ошибаться. Подобные идеи постоянно где‑то возникают, словно носятся в воздухе. Но лично для меня это стало настоящим озарением лишь в последние несколько месяцев.
ведущий: Да, прекрасно. Когда произносишь это вслух, реакция сразу такая: «Ну конечно, именно так!» Но я тоже раньше не слышал, чтобы кто‑нибудь формулировал эту мысль настолько прямо. Замечательно.
Фазовый переход и вычисление
Хорошо, тогда вернемся к тому, что непосредственно происходит в вашей компьютерной симуляции. Как вы определяете момент, когда этот переход случился? Вы говорили, что наблюдали за выводом программы, но, полагаю, у вас есть и более строгие способы это обнаружить.
Блез Агуэра‑и-Аркас: Да. Мы не просто ждем, когда включится вентилятор компьютера.
Самый очевидный признак очень наглядно виден на графике. Для каждого взаимодействия можно поставить точку, где по горизонтальной оси отложено время, а по вертикальной — число операций, выполненных в ходе этого взаимодействия.
Долгое время точки остаются внизу: операций выполняется совсем немного. А затем внезапно, в некоторый момент — в зависимости от случайности это может произойти после миллиона взаимодействий, а может после десяти миллионов, — возникает буквально черная стена. Система вдруг начинает чрезвычайно интенсивно вычислять: практически каждое взаимодействие приводит к выполнению тысяч операций. Это первый явный признак того, что в системе что‑то произошло.
Можно также измерять колмогоровскую сложность всего бульона. Приближенно оценить ее очень просто: достаточно попробовать сжать содержимое бульона архиватором ZIP. Вы берете все байты системы, представляете их как один файл, сжимаете его и сравниваете размер сжатого файла с исходным. Это дает представление о том, насколько хорошо данные поддаются сжатию.
В самом начале, когда система состоит просто из шума, данные практически несжимаемы. Случайные байты не поддаются сжатию — можете проверить сами. Создайте файл, заполненный случайными числами, и сожмите его ZIP‑архиватором: размер почти не уменьшится. На самом деле файл даже немного увеличится из‑за служебных данных архива.
Но как только в системе появляются репликаторы, она должна внезапно стать гораздо лучше сжимаемой. Ведь теперь многие последовательности, многие ленты можно представить как комбинации повторяющихся фрагментов других лент.
Именно это мы и наблюдаем: происходит резкий переход от практически несжимаемого состояния к состоянию с высокой степенью сжимаемости. Первое можно сравнить с газом, а второе — с кристаллом. Хотя это не совсем кристалл, поскольку в системе по‑прежнему существует целая экология различных лент. Но ее колмогоровская сложность резко падает.
ведущий: То есть происходит фазовый переход.
Блез Агуэра‑и-Аркас: Да.
ведущий: И в качестве параметра порядка можно использовать либо число выполняемых вычислительных операций, либо алгоритмическую сложность всего бульона.
Блез Агуэра‑и-Аркас: Да, совершенно верно. Все действительно выглядит в точности как фазовый переход.
Когда физик говорит о фазовом переходе, он обычно думает о корреляционных функциях. В газе корреляционная функция, по сути, представляет собой дельта‑функцию: положение одной частицы ничего не говорит вам о том, где находятся остальные частицы. А во льду, напротив, возникает строго упорядоченная кристаллическая структура.
Но сжимаемость данных и такая корреляционная структура, очевидно, тесно связаны. Газ несжимаем в информационном смысле именно потому, что положение одной частицы ничего не сообщает о положениях других. Поэтому первую стадию можно назвать «тьюринговским газом» — именно такой термин использовал Вальтер Фонтана, еще один пионер компьютерных исследований абиогенеза.
Однако после фазового перехода возникает уже нечто иное. Это больше не газ. Я бы назвал получившееся состояние «компутронием» — то есть, если угодно, новой фазой материи, вся суть которой заключается в вычислении. А другим словом для такого состояния, как мне кажется, может быть «жизнь».
ведущий: Да, я с вами. Но если попытаться выступить в роли скептика — или хотя бы ворчливого человека, которому не дает покоя настоящая химия, — то меня смущает вот что. В компьютерной программе есть инструкции, которые изменяют содержимое ленты, но, похоже, отсутствует какое‑либо понятие энергии, гамильтониана, диссипации, энтропии или чего‑то подобного.
Когда я обычно думаю о фазовом переходе, я представляю, например, что система нашла конфигурацию с более низкой энергией, в которую ей выгодно перейти. Но у вас энергии вообще нет. Или все‑таки есть?
Блез Агуэра‑и-Аркас: Во всяком случае, не в каком‑либо очевидном смысле. В BFF нет сохраняющихся величин. Байты не сохраняются, время тоже не играет роль сохраняющейся величины. Все существует исключительно на уровне чистой информации.
Поэтому об энтропии здесь говорить можно, а об энергии — нет. Однако, как мне кажется, существует глубокая связь с энергией в реальном мире, поскольку мы знаем, что вычисления требуют затрат энергии.
Существует, правда, целая область исследований так называемых обратимых вычислений. Но обратимость вычисления достигается за счет использования так называемых вспомогательных битов — дополнительной информации, которая возникает в ходе вычисления и которую необходимо где‑то сохранять.
ведущий: Верно. То есть приходится увеличивать саму систему.
Блез Агуэра‑и-Аркас: Да, именно. В некотором смысле мы просто сужаем рассматриваемую часть системы так, чтобы эта дополнительная информация оставалась за ее пределами.
Если вкратце, то, на мой взгляд, здесь есть нечто фундаментальное: вычисление требует затрат энергии из‑за своей необратимости, поскольку вычислительные операции включают необратимые шаги.
ведущий: Для меня это совершенно понятно. Но я пока не могу связать это в голове с устойчивостью, выживаемостью и, так сказать, гегемонистскими устремлениями ваших самовоспроизводящихся программ. Можно ли с точки зрения физики объяснить, почему они стремятся захватить всю систему? Такое объяснение вовсе не обязано существовать, но мне интересно.
Блез Агуэра‑и-Аркас: Думаю, причины этого захвата носят чисто статистический характер. В этом смысле энергию привлекать вообще не нужно. Достаточно статистики: если нечто присутствует сейчас, можно рассматривать вероятность обнаружить его снова спустя некоторое время.
Но в реальной жизни наследуемая репликация требует вычислений. Иными словами, репликатор фон Неймана невозможен без вычислительных механизмов, эквивалентных машинам Тьюринга. А значит, для существования репликатора необходим приток энергии. Именно поэтому в реальной жизни репликаторам требуется метаболизм.
ведущий: Возможно, это еще один несколько странный вопрос из другой области. Хотя, может быть, я уже сам на него ответил, поскольку вы сказали, что в вашей системе нет сохраняющихся величин.
Обычно, если взять физическую систему и просто предоставить ее самой себе, в конце концов она придет к равновесию. Вся структура исчезнет. Мы со Скоттом Ааронсоном однажды написали статью, где показали, что сложность некоторое время может возрастать, но в конечном счете она должна снова уменьшиться, потому что система приходит к равновесию.
Но, насколько я понимаю, в вашей модели эта интересная сложная фаза может сохраняться практически бесконечно.
Блез Агуэра‑и-Аркас: Да, может. Причина в том, что это диссипативная система. Сам факт непрерывного выполнения вычислений означает, что в систему фактически постоянно поступает энергия.
ведущий: То есть у вас есть источник энергии, своего рода Солнце.
Блез Агуэра‑и-Аркас: Да. Именно поэтому, когда я запускаю BFF, на моем компьютере включается вентилятор.
Так что порядок и структура действительно не исчезают. Но при этом система и не стабилизируется, переходя в какое‑то одно неизменное состояние. Вместо этого возникает чрезвычайно сложная экология.
И самое удивительное в том, что происходит после этого перехода к жизни: наивно можно было бы ожидать, что один репликатор просто захватит всю систему — и на этом все закончится. Получится своего рода кристалл, целиком состоящий из одного репликатора.
Но происходит совсем не это. Возникает целое распределение различных репликаторов, подчиняющееся степенному закону. Все они взаимодействуют друг с другом, непрерывно изменяются и продолжают эволюционировать практически бесконечно.
ведущий: Замечательно. И это напоминает мне, что, пожалуй, настало время рассказать слушателям, как расшифровывается BFF.
Блез Агуэра‑и-Аркас: Ну, первые две буквы, BF, по‑прежнему означают Brainfuck. А поскольку речь идет о взаимодействии двух лент, вы, наверное, сможете догадаться, что означает вторая F.
ведущий: Отлично. Оставим это воображению слушателей.
Блез Агуэра‑и-Аркас: Хотя можно сказать, что это просто best friends forever — «лучшие друзья навсегда».
ведущий: «Лучшие друзья навсегда». Так даже лучше.
Абиогенез, симбиоз и жизнь во Вселенной
Хорошо. Теперь попробуем связать все это с вопросами, которые часто возникают при обсуждении происхождения жизни. Например, требуется ли для этого тонкая настройка законов физики? Есть ли в вашем процессе свободные параметры, изменение которых могло бы привести к другим результатам?
Блез Агуэра‑и-Аркас: Да. Есть как минимум один важный фактор, который мы задаем сами, — устройство языка. И мы знаем, что при разных вариантах языка время до абиогенеза может очень сильно различаться. А в некоторых случаях мы вообще не наблюдаем абиогенеза. На мой взгляд, это означает лишь то, что характерное время ожидания настолько велико, что в наших симуляциях мы просто не успеваем увидеть это событие.
ведущий: Понятно.
Блез Агуэра‑и-Аркас: Здесь почти можно сформулировать теорему. Более того, такую теорему действительно можно было бы сформулировать: в среде такого рода абиогенез обязательно произойдет. То есть если вычисления в принципе возможны, существует источник шума и происходят взаимодействия, то абиогенез рано или поздно возникнет.
Вопрос лишь в том, сколько времени в среднем придется ждать. А конкретные детали набора инструкций могут очень сильно влиять на это время.
Один из действительно глубоких результатов нашей работы — его еще не было в первоначальной статье, и, по‑моему, мы окончательно разобрались с ним только в последние несколько недель — связан с классическим представлением об эволюции, согласно которому весь эволюционный процесс определяется дарвиновским отбором.
Жак Моно, лауреат Нобелевской премии, знаменит своей формулой «случайность и необходимость». В таком представлении есть случайные мутации, а затем отбор сохраняет то, что оказалось жизнеспособным. Это похоже на спагетти, которые бросают в стену: что‑нибудь да прилипнет. Или на миллион обезьян за миллионом пишущих машинок. Рано или поздно возникает что‑то работоспособное, оно закрепляется, и процесс, подобно храповому механизму, не дает полностью откатиться назад.
Теперь мы знаем, что в нашей системе все устроено не так. И на протяжении многих лет в биологии постепенно усиливался скептицизм по отношению к столь редукционистскому пониманию дарвиновской эволюции.
Но мне кажется, теперь у нас появились вполне конкретные доказательства. И что же это за доказательства?
Самое очевидное состоит в следующем. Если в BFF полностью снизить частоту мутаций до нуля, взять тысячу случайных лент длиной по 64 байта и просто запустить систему вообще без мутаций, в ней все равно возникает сложная жизнь.
И это довольно ошеломляющий результат. Ведь тысяча лент по 64 байта — это всего 64 тысячи случайных байтов. Не так уж много обезьян и не так уж много пишущих машинок. Символов там совсем немного. В исходных данных с трудом можно найти хотя бы три работающие инструкции подряд.
ведущий: Прошу прощения, но случайность все же сохраняется при выборе взаимодействующих соседей, верно? Просто случайных мутаций уже нет.
Блез Агуэра‑и-Аркас: Верно. Случайность присутствует при инициализации: изначально ленты заполняются случайными байтами. И остается случайность при выборе соседей и пар, которые будут взаимодействовать.
Хотя, откровенно говоря, я почти уверен, что можно обойтись и без этой случайности. Можно просто заставить всех взаимодействовать со всеми и продолжить процесс таким образом. Уверен, это тоже сработало бы.
ведущий: Тогда единственная случайность заключалась бы в начальной конфигурации.
Блез Агуэра‑и-Аркас: Да. Но этого количества случайности совершенно недостаточно, чтобы объяснить появление тех чрезвычайно сложных программ, которые в итоге возникают. Так что же происходит на самом деле?
Если внимательно проследить за процессом, мы увидим следующее. Во‑первых, еще до возникновения первого репликатора отдельные инструкции уже начинают образовывать автокаталитические наборы.
Например, если у вас есть инструкция копирования, существует некоторая вероятность, что в результате ее выполнения будет создана еще одна инструкция. А если перед нами NOP, то есть байт, не являющийся инструкцией, он сам по себе ничего создать не может.
Но если это выполняемая операция, то она может породить другую инструкцию, а та, в свою очередь, через некоторую цепочку взаимодействий в конечном счете может породить еще один экземпляр исходной инструкции.
Иными словами, уже здесь присутствуют зачатки жизни. В некотором смысле самые примитивные формы жизни в этой системе — буквально одиночные инструкции. Они начинают порождать друг друга: инструкции порождают инструкции. И если внимательно смотреть на систему с самого начала, можно заметить, что количество выполняемых вычислений постепенно растет.
Затем инструкций становится все больше. Они беспорядочно перемещаются и копируют себя в случайные участки лент. И это уже творческий процесс, потому что время от времени две или несколько инструкций случайно оказываются рядом. Если вместе они способны реплицироваться эффективнее, чем по отдельности, то вероятность их сохранения возрастает.
Получается, что движущей силой эволюции становится симбиоз. Сначала возникает симбиоз между отдельными инструкциями, образующими крошечные программы. Затем эти маленькие программы вступают в симбиоз друг с другом и образуют более крупные, пока еще несовершенные репликаторы.
А затем эти более крупные несовершенные репликаторы, которые непрерывно перезаписывают друг друга, конкурируют и сотрудничают между собой, в конце концов сливаются в единый устойчивый репликатор, занимающий целую ленту.
Так что симбиоз здесь присутствует буквально на всех уровнях.
ведущий: Да, понятно. Хорошо. Если слушатели позволят, я немного углублюсь в детали, потому что вы подталкиваете меня к мыслям о новых теоремах, которые хотелось бы доказать.
Возьмем тот случай, о котором вы говорили, когда случайности во взаимодействиях тоже нет. То есть единственная случайность присутствует в начальных условиях. Тогда дальнейшая эволюция системы полностью детерминирована, верно?
Блез Агуэра‑и-Аркас: Да.
ведущий: Тогда, если вы считаете, что с высокой вероятностью такая система в итоге будет захвачена репликаторами, это уже утверждение из статистической механики, верно?
Речь не о том, что большинство наборов инструкций сами по себе являются репликаторами. Речь о том, что траектории эволюции большинства наборов инструкций в конечном счете приводят систему в режим, где доминируют репликаторы.
Блез Агуэра‑и-Аркас: Да. Это означает, что вычисление является динамическим аттрактором.
ведущий: Именно.
Блез Агуэра‑и-Аркас: И оно является динамическим аттрактором потому, что репликация возможна только при наличии вычислений. А репликация представляет собой динамически кинетически устойчивое состояние.
ведущий: Потому что эволюция системы необратима, верно?
Блез Агуэра‑и-Аркас: Верно.
ведущий: Хорошо. Значит, в такой системе могут существовать аттракторы — и они действительно возникают. Отлично. Мне хотелось бы увидеть соответствующую теорему. Думаю, это была бы очень хорошая теорема. Буду ждать ее появления.
Блез Агуэра‑и-Аркас: Если вам интересно заняться теоретической физикой этой системы, мы были бы очень рады поработать вместе.
ведущий: Давайте обсудим. Не знаю, хватит ли у меня компетенции, но мне это чрезвычайно интересно. Так что да, прекрасно.
Блез Агуэра‑и-Аркас: Это определенно очень в духе Института Санта‑Фе.
ведущий: Да, именно. Совершенно верно. Тогда в конечном счете насколько далеко мы можем заходить в выводах из этого исследования? Например, что оно говорит о том, насколько легко может возникнуть жизнь в более привычном нам биологическом смысле — во всей этой водной и химически сложной среде?
Блез Агуэра‑и-Аркас: Думаю, отсюда можно сделать немало довольно масштабных выводов — собственно, поэтому я и посвятил этому целую книгу.
Прежде всего, мне кажется, что жизнь стремится возникнуть. Это прямо противоположно тому, что когда‑то говорил Фрэнсис Крик, сравнивая возникновение жизни с чудом: трудно представить, как такое вообще могло произойти.
Мне кажется, все наоборот. Поскольку вычисление является динамическим аттрактором, я думаю, жизнь будет возникать везде, где для этого существуют подходящие условия. Возможно, когда мы начнем исследовать спутники Юпитера, получим более совершенные телескопы и так далее, у нас появятся реальные эмпирические свидетельства этого.
Более того, если движущей силой эволюции является симбиоз, то возникает своего рода лестница сложности, на которой более сложные сущности формируются из более простых. И мне кажется, это тоже очень общее свойство эволюции.
Линн Маргулис, как известно, считала, что эволюция во многом происходит именно таким образом. Она сыграла ключевую роль в разработке теории эндосимбиотического происхождения митохондрий и, соответственно, происхождения эукариотических клеток. Маргулис полагала, что самые разные структуры, фактически все органеллы клетки, первоначально были свободноживущими организмами.
Вероятно, в этом она ошибалась. Но, как мне кажется, на более глубоком уровне ее идея была верной. Даже если органелла изначально эволюционировала внутри клетки, это все равно эволюционный процесс симбиотического характера, независимо от того, возник ли ее предшественник первоначально снаружи клетки. Внутренняя среда клетки представляет собой не менее богатое пространство для эволюции, чем внешний мир.
И я только сейчас понял, что еще не упомянул одну вещь. Даже после перехода к репликации целых лент объем вычислений продолжает расти. Продолжает увеличиваться и число символов, участвующих в вычислениях.
Причина в том, что, когда реплицируется вся лента целиком, для самой репликации нужны далеко не все ее участки. Поэтому внутри ленты, если угодно, возникает собственная экология, где весь этот процесс может повториться на новом уровне. Появляются дополнительные репликаторы, своего рода репликаторы внутри репликатора, и иногда они, например, повышают устойчивость более крупного репликатора к мутациям.
ведущий: Хорошо. Тогда я бы осторожно сформулировал вывод следующим образом. Пожалуй, мы не так уж много узнали о том, насколько возникновение жизни устойчиво к изменениям самих законов физики. Ведь изменить законы физики нашего мира — это примерно как изменить набор инструкций в вашей модели. Возможно, тогда получится система, которая порождает только бессмысленные результаты или вообще располагает всего одной возможной инструкцией.
Но если исходить из известных нам законов физики, то, как мне кажется, вы выдвигаете сильное, но вполне правдоподобное утверждение: результаты этой работы должны повысить нашу уверенность в том, что жизнь способна возникать повсеместно.
Не обязательно разумная технологическая жизнь, но хотя бы какая‑то сложная жизнь, основанная на вычислительных процессах.
Блез Агуэра‑и-Аркас: Верно. На пути каждого симбиогенетического перехода существуют барьеры, и они имеют статистическую природу. Причем величина этих барьеров может быть разной — отдельные ступени могут сильно различаться по высоте. Поэтому вовсе не гарантировано, что система сумеет подняться по всей лестнице до самого верха. Но реальная тенденция двигаться вверх по этой лестнице существует.
ведущий: Да. Хорошо.
Блез Агуэра‑и-Аркас: И каждый раз, когда вы поднимаетесь на очередную ступень, перед вами открывается возможность подняться на следующую.
Что касается законов физики, мы знаем, что законы нашей Вселенной допускают вычисления. Поэтому, если угодно, во Вселенной существует огромное количество своеобразных NOP — взаимодействий, которые не входят в набор операций, образующий тьюринг‑полную систему и одновременно автокаталитический набор.
Но достаточно, чтобы среди всех этих взаимодействий существовал хотя бы один автокаталитический набор, который к тому же является тьюринг‑полным. А мы знаем, что компьютер в принципе можно построить практически из чего угодно…
ведущий: Мы уже это сделали. Мы строили компьютеры из физических систем, так что у нас есть конструктивное доказательство существования. Да, хорошо.
Блез Агуэра‑и-Аркас: Именно.
ведущий: Возможно, это не совсем справедливый вопрос, но дает ли ваша работа какие‑нибудь идеи относительно того, как нам следует искать жизнь за пределами Земли?
Блез Агуэра‑и-Аркас: Отличный вопрос. И я определенно много об этом размышлял. Здесь есть связи между нашими идеями и некоторыми идеями Ли Кронина и Сары Уокер — например, с теорией конструкторов… Простите, с теорией сборки.
ведущий: Теорией сборки.
Блез Агуэра‑и-Аркас: Да, теорией сборки.
ведущий: Возможно, здесь есть связь и с теорией конструкторов, которой занимается Кьяра Марлетто.
Блез Агуэра‑и-Аркас: Да, и с теорией конструкторов тоже. Это отдельное большое направление… Да, верно. Работа Кьяры Марлетто по теории конструкторов здесь тоже очень актуальна.
Но все эти связи еще предстоит как следует проработать. Сара Уокер и Ли Кронин считают, что из теории сборки следуют определенные выводы о том, как искать признаки сложности за пределами Земли. Мне кажется, теория сборки вполне совместима с тем, что я здесь описываю.
Пока я не знаю, позволяет ли наш подход конкретнее сформулировать, какие именно наблюдаемые признаки следует искать. Возможно, позволяет.
ведущий: Хорошо, вполне справедливо. И с моей стороны было бы упущением не дать вам возможности рассказать о множестве других вещей, которыми вы занимаетесь. Все‑таки эта тема, скажем так, не совсем ваша основная специальность, и вы пишете книги на самые разные темы.
Интеллект, агентность и человеческий суперорганизм
Как нам лучше перейти к ним? Может быть, раз уж мы поговорили о том, что такое жизнь, теперь поговорим о том, что такое интеллект?
Блез Агуэра‑и-Аркас: Конечно. На самом деле здесь есть определенная связь. И вы правы: абиогенез и происхождение жизни определенно не были моей областью исследований, и занимаюсь я этим меньше года, но…
ведущий: Понятно.
Блез Агуэра‑и-Аркас: Однако наша группа уже некоторое время занимается вопросами, связанными с жизнью. Например, Алекс Мордвинцев, которого я упоминал раньше, также изобрел нейронные клеточные автоматы — Neural Cellular Automata, или NCA.
Это очень красивое сочетание клеточных автоматов, придуманных фон Нейманом, нейронных сетей и идей морфогенеза, одним из пионеров математического исследования которого был Алан Тьюринг.
Идея NCA, нейронных клеточных автоматов, состоит в следующем. У вас есть сетка пикселей, и в каждом пикселе находится нейронная сеть. Причем во всех пикселях используется одна и та же нейронная сеть. Она считывает и изменяет локальные концентрации нескольких каналов. Значения этих каналов — скаляры, и их можно представлять как морфогены, то есть как сигнальные вещества, с помощью которых клетки взаимодействуют друг с другом.
Такой нейронный клеточный автомат можно обучить формировать практически любое заданное изображение. Первый пример, который я увидел, представлял собой эмодзи ящерицы. Можно было стереть ей голову или хвост, и недостающая часть восстанавливалась.
По сути, это модель морфогенеза, объединяющая клеточные автоматы с нейронными сетями. Поэтому мы довольно много размышляли о локальных вычислениях.
С одной стороны, это способ повысить эффективность вычислений в искусственном интеллекте. В конечном счете вычисления должны быть преимущественно локальными, иначе они неизбежно становятся неэффективными. С другой стороны, локальные вычисления позволяют шире взглянуть на сам процесс обучения.
Ведь в некотором смысле жизнь целиком связана с обучением, верно? Задача репликатора — производить новые копии самого себя в окружающей среде. А по мере того как эта среда усложняется и в ней появляется множество других репликаторов, все более важную роль начинает играть динамическое моделирование этой среды.
И если продолжать двигаться по этой цепочке симбиотических переходов, то в конечном счете мы приходим к мозгу, а затем и к искусственному интеллекту.
ведущий: Насколько я понимаю, в вашей модели, которую мы до сих пор обсуждали в связи со статьей, «окружающая среда» — это, по сути, просто соседние ленты, с которыми взаимодействует каждая конкретная лента.
Но следующим шагом можно было бы каким‑то образом добавить в модель настоящую среду с различными условиями. Я даже не знаю, как именно это реализовать, но как смоделировать разницу между существованием на планете и вне планеты, между жизнью в океане и жизнью на суше? Не знаю.
Блез Агуэра‑и-Аркас: Отличный вопрос. Мы определенно об этом размышляли и даже немного экспериментировали с некоторыми подходами, например с объединением BFF и частичных нейронных клеточных автоматов — Particle NCA.
Particle NCA похожи на обычные нейронные клеточные автоматы, только вместо неподвижных пикселей в них есть частицы, способные перемещаться. Так что да, именно такие комбинации разных моделей нам и хотелось бы попробовать.
Кстати, симуляция на Z80, где вместо Brainfuck используется язык ассемблера Z80, уже работает на двумерной решетке. Это решетка размером 200 на 200 процессоров, причем каждый процессор взаимодействует только со своими ближайшими соседями, а не со случайно выбранными элементами. И там можно наблюдать распространяющиеся волны репликаторов разных видов и тому подобное.
ведущий: Понятно. А видео этого есть?
Блез Агуэра‑и-Аркас: Да, есть.
ведущий: Отлично. Надо будет его найти.
Блез Агуэра‑и-Аркас: Думаю, Алекс как раз сейчас выкладывает его в интернет. Так что я пришлю вам ссылку.
ведущий: Да. В таких видео, да и вообще в лежащих за ними идеях, есть поразительная универсальность: фазовые переходы, возникновение и рост доменов и так далее. Мы видим похожие вещи и в модели Изинга, и в модели Шеллинга в социальных науках, и во множестве других систем.
Именно такие сходства и заставляют людей определенного склада, типичного для Института Санта‑Фе, думать, что здесь обязательно должны существовать какие‑то глубокие связи. Не может же все это быть простым совпадением. Наверняка существует более высокий уровень описания, позволяющий рассматривать все эти явления в рамках единой картины.
Блез Агуэра‑и-Аркас: Да, думаю, что так и есть. Я уже давно считаю, что интеллект по своей природе фундаментально симбиотичен.
Согласно гипотезе социального интеллекта, мы разумны именно потому, что нашей средой являемся мы сами — другие люди. Мы постоянно пытаемся моделировать поведение окружающих, а через это моделируем и самих себя, в том числе то, как другие воспринимают нас, и так далее. Именно поэтому могут возникать своего рода взрывные скачки в развитии интеллекта: нашей средой служат другие носители интеллекта.
Так что, на мой взгляд, между этой картиной и теми чрезвычайно примитивными самовоспроизводящимися программами, о которых мы говорили, существует глубокая преемственность.
ведущий: Из множества предыдущих выпусков моего подкаста, имеющих отношение к тому, что вы сейчас сказали, мне вспоминается беседа с Юго Мерсье. Вы знакомы с его работами?
Блез Агуэра‑и-Аркас: Да, знаком. Книга Мерсье и Спербера The Enigma of Reason — “Загадка разума” — одна из тех, на которые я ссылаюсь в своей книге. И я во многом согласен с их представлениями о языке.
ведущий: То есть вы подводите нас к мысли, что не только жизнь, но и интеллект может быть гораздо более распространенным явлением, чем мы привыкли думать. И здесь возникает очевидная связь с тем, что мы сами сейчас создаем системы, похожие на интеллектуальные.
Как вы оцениваете интеллект современных моделей искусственного интеллекта?
Блез Агуэра‑и-Аркас: Когда мы только начинали работать над ИИ, мне кажется, многие вообще не рассматривали интеллект как социальное явление. В основном думали о выполнении конкретных задач.
Долгое время… Не хочу сейчас пересказывать всю историю искусственного интеллекта, но эпоха обучения с учителем в значительной степени сводилась к тому, что модели обучали оптимизировать некоторую целевую функцию.
И заметьте, BFF ничего подобного не оптимизирует. Да, статистически система движется в сторону того, что способно сохраняться: то, что сохраняется, продолжает существовать. Но никакой заранее определенной задачи мы ей не ставили.
Проблема ИИ, созданного для решения конкретной задачи, заключается в том, что максимум, чего он способен достичь, — хорошо решать именно эту задачу. Поэтому нам в свое время и понадобился термин AGI — искусственный интеллект общего назначения.
Изначально под ИИ подразумевалось нечто, с чем можно разговаривать и что способно выполнять самые разные действия, доступные человеку: складывать белье, выгуливать собаку и так далее. А потом люди начали называть искусственным интеллектом распознавание речи, распознавание лиц, распознавание символов.
И я думал: «Но это же не ИИ».
Настоящий ИИ, на мой взгляд, появился именно тогда, когда мы перестали оптимизировать системы под отдельные конкретные задачи и вместо этого начали просто моделировать неструктурированный текст из интернета.
Конечно, текст в интернете — это далеко не весь мир. Но язык обладает особым свойством: в нем представлено все из нашего умвельта, то есть воспринимаемого нами мира, что достаточно важно для нас, чтобы мы говорили об этом друг с другом. В этом смысле язык представляет собой микрокосм всего человеческого мира.
И модель просто моделирует этот мир. Она всего лишь пытается предсказывать следующие токены, но такое предсказание фактически требует построить модель всего распределения данных.
И вот это уже оказалось интеллектом. Я прекрасно понимаю, что моя позиция здесь далеко не общепринятая, но я считаю, что современные модели ИИ совершенно определенно обладают интеллектом.
Сейчас часто говорят: «Это всего лишь предсказание следующего токена», «это всего лишь то», «всего лишь это». Но я считаю, что одна из фундаментальных функций мозга — предсказывать будущее. И как только мы начали строить системы, способные моделировать мир таким образом, то, как ни удивительно, получили системы, которые демонстрируют разумное поведение.
ведущий: То есть ваша позиция не в том, что большие языковые модели каким‑то мистическим образом представляют собой нечто большее, чем предсказание следующего токена. Скорее, наш мозг втайне сам занимается чем‑то вроде предсказания следующего токена.
Блез Агуэра‑и-Аркас: Да. Хотя слово «всего лишь» скрывает за собой огромное количество…
ведущий: Огромное количество всего, понимаю.
Блез Агуэра‑и-Аркас: …красоты и сложности. Чтобы хорошо предсказывать будущее, необходимо уметь обобщать. А обобщение требует построения внутренних представлений и всевозможных чрезвычайно сложных моделей.
ведущий: Я всегда рассуждал так: в частности, большие языковые модели спроектированы не для того, чтобы мыслить так же, как люди, а скорее для того, чтобы имитировать результаты человеческого мышления.
Конечно, возможно, что в процессе имитации результатов человеческого мышления они в итоге начинают мыслить так же, как мы. Но, на мой взгляд, пока существует достаточно простых контрпримеров — вопросов, на которые без труда ответит любой человек, но с которыми LLM не справляются, — чтобы я был уверен: сейчас происходит все‑таки не это.
Но не знаю. Вы разбираетесь во всем этом гораздо лучше меня.
Блез Агуэра‑и-Аркас: Здесь все очень быстро меняется, поэтому мы имеем дело с постоянно движущейся мишенью. За последний год в интернете появилось множество попыток «подловить» модели: «Смотрите, какую глупость сказала эта LLM!»
Если честно, одной из моих первых реакций на подобные примеры была мысль: боже, эти модели подвергают невероятной проверке. Я могу только представить, что произошло бы, если бы меня каким‑то образом можно было создать в миллиарде копий, непрерывно засыпать вопросами и требовать немедленно отвечать. Сколько подобных нелепых ошибок удалось бы найти у меня?
Иными словами, нулевое распределение — то есть базовый уровень ошибок, с которым следовало бы сравнивать модели, — пока изучено далеко не достаточно хорошо.
ведущий: Справедливо.
Блез Агуэра‑и-Аркас: Но при этом я согласен с основной мыслью: профиль сильных и слабых сторон этих моделей заметно отличается от профиля среднего человека.
И, конечно, я вовсе не утверждаю, что во всех отношениях они работают так же, как человеческий мозг. Совсем нет. Архитектура у нас совершенно другая. Биологические нейроны — не то же самое, что искусственные нейроны в нейронных сетях. Кроме того, наша эволюция во многом зависела от конкретной исторической траектории.
Но, несмотря на это, мне кажется, что в функциональном подходе есть нечто фундаментальное — точно так же, как и в случае с жизнью. Здесь происходит нечто глубокое: система моделирует окружающую среду, предсказывает ее и осуществляет активный вывод. Под активным выводом я имею в виду, что своими действиями система активно формирует собственное будущее.
И только когда мы фактически начали реализовывать нечто подобное активному выводу, у нас стали появляться модели, способные проходить тест Тьюринга. А весь смысл теста Тьюринга как раз в том и состоит, что если модель во всех этих отношениях ведет себя соответствующим образом, значит, с функциональной точки зрения она реализует нужную способность.
ведущий: Да, верно. Думаю, ответ будет положительным, но придется ли нам уже в относительно недалеком будущем всерьез столкнуться с вопросами агентности и прав программ искусственного интеллекта?
Блез Агуэра‑и-Аркас: Мне кажется, это два совершенно разных вопроса.
Что касается агентности, то да. Мы склонны оставлять понятие агентности исключительно за людьми и зачастую отказывать в ней даже животным, растениям и так далее. Причины такого разграничения довольно произвольны и мало связаны с чем‑либо, что действительно можно измерить или исследовать.
Есть ли агентность у растений? Есть ли она у мышей? Да. Есть ли агентность у моделей ИИ? Да.
Причем многие аспекты, в которых современные модели обладают лишь очень ограниченной агентностью, связаны скорее с тем, как именно мы их используем, а не с внутренними свойствами самих моделей. Если модель может только отвечать на сообщения в чате и, так сказать, не способна самостоятельно предпринимать никаких действий, то ее агентность действительно крайне ограничена.
Но это свойство не самой модели. Оно определяется тем, как модель встроена в социотехническую среду.
ведущий: Думаю, это справедливо. Я и задал этот вопрос именно потому, что действительно не знаю ответа и мне любопытно.
Я вполне готов приписать хорошей современной системе ИИ больше агентности, чем дереву. Но мне кажется, что и в том, и в другом случае ее уровень может быть довольно низким. Пока не уверен. Меня можно переубедить.
Блез Агуэра‑и-Аркас: Несколько лет назад я прочитал замечательную книгу Джеймса К. Скотта. К сожалению, он недавно умер. Книга называется Against the Grain — «Против зерна».
В ней Скотт ставит под сомнение привычное представление о том, что именно мы одомашнили пшеницу и другие сельскохозяйственные растения. Отправная точка довольно проста: после перехода к земледелию жизнь людей во многих отношениях стала значительно хуже. И восстановление качества жизни произошло лишь совсем недавно — условно говоря, примерно с начала XX века.
Поэтому на одомашнивание растений можно взглянуть и с противоположной стороны: возможно, это растения одомашнили нас и, в некотором смысле, даже превратили нас в работников гигантских плантаций. Они заставили огромное количество людей засевать ими огромные площади и удовлетворять все их потребности, причем ценой серьезного ущерба для человеческого здоровья и благополучия.
Я говорю это не потому, что обязательно всерьез отстаиваю именно такую точку зрения. Скорее, это похоже на куб Неккера: на одну и ту же ситуацию можно посмотреть двумя противоположными способами. Агентность — совсем не простое понятие.
ведущий: Это ведь напоминает идею эгоистичного гена, верно? А если постараться меньше оценивать происходящее в категориях «кто кем управляет» и вместо этого рассматривать статистическую механику траекторий, то, возможно, такие симбиотические отношения выглядят совершенно естественно. Тогда уже нельзя приписать причинную агентность исключительно одной или другой стороне.
Блез Агуэра‑и-Аркас: Именно. И одна из мыслей, которую Мерсье и Спербер высказывают в своей книге, а Стивен Сломан и соавторы — в The Knowledge Illusion (“Иллюзия знания”), заключается в том, что мы чрезвычайно склонны переоценивать собственную агентность.
Причем мы переоцениваем не только агентность, но и собственные знания и понимание. Мы говорим: «Люди умеют это. Человечество великолепно справляется с тем, другим и третьим».
Но среднестатистический житель Нью‑Йорка не знает, как устроен унитаз, а если оставить его одного в джунглях и заставить самостоятельно выживать, он окажется практически беспомощен.
Поэтому, мне кажется, полезно заново обдумать все эти представления. При этом я не призываю наделять роботов правами. Хочу это четко подчеркнуть.
ведущий: Нет, конечно. Но в какой‑то момент нам все‑таки придется всерьез это обсудить. Пожалуй, дальше этого утверждения я пока заходить не готов.
Блез Агуэра‑и-Аркас: Думаю, нам действительно придется серьезно обсудить, как соотносятся права человека со всеми теми качествами, которые мы традиционно считали исключительно человеческими, словно закрепили за собой авторские права на них: только у нас есть агентность, только мы обладаем интеллектом, только мы способны на то или это.
Я вполне допускаю, что мы можем принимать те или иные политические решения о том, что к людям следует относиться иначе, чем к другим типам сущностей. Но, мне кажется, нам стоит честно признать, что во многом это обусловлено тем, что такие решения принимаем именно мы, люди. Это не какая‑то объективная точка зрения свыше, согласно которой мы заслуживаем особого отношения потому, что у нас есть душа, а у всего остального души нет.
ведущий: Возможно, это идеальный переход к последней теме, о которой я хотел вас спросить, — к вашей другой книге, Who Are We Now? — «Кто мы теперь?». Отличное название.
Речь, конечно, о нас, людях. И о сравнении того, кем мы стали сейчас, с тем, кем были раньше. Так кто же мы теперь? Каков ответ?
Блез Агуэра‑и-Аркас: Между этой книгой и всем, о чем мы сегодня говорили, есть прямая связь.
На мой взгляд, изменение человеческой идентичности, которое происходило в сравнительно недавней истории и особенно ускорилось после отступления ледников примерно 10 тысяч лет назад, прежде всего связано с урбанизацией. Это, кстати, тоже очень характерная для Института Санта‑Фе идея.
Мы превратились в коллективный суперорганизм. Человеческий интеллект, если угодно, представляет собой своего рода сверхинтеллект, возникший благодаря тому, что мы начали взаимодействовать друг с другом симбиотически совершенно новым способом, которого не существовало на протяжении первых нескольких сотен тысяч лет истории нашего вида.
Поэтому, мне кажется, это еще один переход того же типа, что мы наблюдаем в BFF.
И поскольку мы не вполне осознаем, что пережили такой переход, мы продолжаем путаться в самом понятии «человек». Мы приписываем отдельным людям свойства этой более крупной коллективной системы, хотя на самом деле перед нами возникло нечто новое.
ведущий: Пожалуй, я бы внес здесь только одну поправку. Вы говорите, что мы уже пережили этот переход, а мне кажется, что мы все еще находимся в самом его разгаре.
Блез Агуэра‑и-Аркас: Да, мы все еще в процессе.
ведущий: И до его завершения нам еще очень далеко. Наверное, именно поэтому нам еще труднее понять, что на самом деле происходит и как со всем этим справляться.
Блез Агуэра‑и-Аркас: Согласен. Думаю, мы действительно… Да, я выразился слишком сильно. Мы находимся в самом разгаре этого перехода, и, мне кажется, значительная часть нынешней тревожности в обществе связана именно с этим.
Если немного затронуть геополитику, то, например, когда мы с вами росли, мир находился в разгаре холодной войны между СССР и Западом. Можно было представить, что одна из этих сторон потерпит крах, а другая победит, верно? В этом противостоянии присутствовала определенная логика игры с нулевой суммой. И именно это в итоге и произошло. Экономика СССР могла рухнуть, и это означало победу Запада.
Но если сегодня посмотреть, например, на риторику вокруг противостояния Китая и США, ситуация совершенно иная, потому что экономики двух стран теснейшим образом переплетены. Нельзя представить крах китайской экономики как нечто хорошее для США, и наоборот.
То есть теперь мы существуем в единой взаимосвязанной системе планетарного масштаба, но пока еще не до конца осознали, что и действовать нам необходимо в планетарном масштабе.
ведущий: Еще один бывший гость Mindscape, Генри Фаррелл, использует для этого выражение «вооруженная взаимозависимость».
Блез Агуэра‑и-Аркас: Да.
ведущий: Нам придется научиться жить вместе. Это не совсем взаимное гарантированное уничтожение. Скорее, если мы не добьемся успеха все вместе, последствия будут плохими для всех.
Блез Агуэра‑и-Аркас: Верно. Я бы сказал, что у нас теперь взаимное гарантированное выживание. Если…
ведущий: Если мы сделаем правильный выбор.
Блез Агуэра‑и-Аркас: Если мы сделаем правильный выбор. А если нет, то… Да, похоже, мы можем двигаться либо вперед, либо назад. Оставаться там, где мы сейчас находимся, вряд ли получится.
ведущий: Думаю, это очень мудрые слова для завершения разговора. Лучше я уже не скажу.
Блез Агуэра‑и-Аркас, большое спасибо, что пришли на подкаст Mindscape.
[смех]
Блез Агуэра‑и-Аркас: Шон, огромное спасибо. Замечательные вопросы, замечательные наблюдения и мысли. И да, если вам интересно поработать над всем этим вместе с нами, дверь для вас широко открыта.
ведущий: Я подумаю, и давайте еще поговорим. Мне это действительно очень интересно. Хорошо, спасибо.
Блез Агуэра‑и-Аркас: Всего доброго.