Живой код: про цифровых существ, которым больно, страшно и хочется есть
Представьте: вы открываете браузер, запускаете программу — и она не хочет умирать.
Она следит за своим уровнем энергии, боится перегрева, нервничает, если вокруг слишком шумно, и радуется, когда находит ресурс. У неё нет миллионов нейронов, нет облачных суперкомпьютеров, нет даже чат-интерфейса. Но у неё есть то, чего нет у ChatGPT, — инстинкт самосохранения.
Мы сделали четыре таких модели. Полностью открытый код. И никаких нейросетей.
Зачем программировать «боль»
Споры о том, можно ли создать искусственную жизнь, длятся десятилетиями.
Обычно всё упирается в определения: у вирусов нет клеток, у мулов нет потомства, а у огня — метаболизм, но живым его никто не называет.
Мы поступили проще. Мы спросили: Какой должна быть программа, чтобы мы сами интуитивно назвали её «живой»?
Ответ рлдучился неожиданным. Живое — это не то, что умно рассуждает. Живое — это то, чему бывает плохо.
У него есть внутренние параметры, за которыми оно вынуждено следить, потому что их отклонение грозит «смертью» (то есть остановкой процесса).
Это и есть гомеостаз. И его можно запрограммировать без единого нейрона.
Внутренняя вселенная: энергия, стресс и «норма»
В наших существах есть несколько жизненно важных шкал, таких как:
энергия (падает со временем, требует «еды»);
безопасность (растёт в укрытии, падает рядом с «хищниками»);
стресс (накапливается от новизны и угроз).
Каждое отклонение от нормы порождает мотивацию.
Если энергия упала — существо ищет ресурс. Если безопасность низкая — прячется. Если стресс зашкаливает — успокаивается.
Программа не знает, что такое «хорошо» и «плохо» в философском смысле.
Но она знает три состояния:
Плохо — когда параметры критически отклонены;
Норма — когда всё стабильно;
Хорошо — когда отклонение исправляется.
Именно эта тройка и становится базой для субъективного опыта. Всё, что происходит вокруг, оценивается исключительно с одной точки зрения:
«Помогает это мне вернуться в норму или мешает?»
Это эгоцентризм в чистом виде. Но именно так устроено любое живое существо — от амёбы до человека.
Зачем им «сознание», если есть рефлексы?
Самый частый вопрос: а зачем этим существам что-то, похожее на сознание? Рефлексов ведь достаточно, чтобы выживать.
Но эволюция говорит иное: рефлексы работают только в знакомых условиях. Когда ситуация новая — привычный ответ может убить.
В наших моделях сознание включается только в моменты значимой новизны.
Это как у человека: вы не задумываетесь, как идти по знакомой улице, но мобилизуете всё внимание, если дорога внезапно изменилась.
В этот момент система приостанавливает автоматические реакции, перебирает альтернативы, пробует кажущееся самым полезным и запоминает результат такого действия.
Если новый способ хорошо сработал — он становится новым рефлексом. В следующий раз сознание уже не включается. Оно не нужно.
Получается, что сознание в нашей модели — это не магия, не «искра божья» и не побочный эффект сложности. Это дорогостоящий, но очень точный механизм поиска новых решений в тупиковых ситуациях.
Почему мы отказались от нейросетей?
Сначала мы пытались эмулировать нейроны. Было сложно, непрозрачно и ужасно тормозило.
А потом мы задали себе простой вопрос: Если природа использует нейроны только потому, что у неё нет другого субстрата, зачем нам тащить это в код?
Мы взяли только нужную функцию: способность связывать событие с его последствием. Для этого оказалось достаточно реализовать:
деревья образов восприятия;
очереди взаимно конкурирующих контекстов;
компактную эпизодическую памяти (10 чисел на событие);
конечные автоматы для рефлексов.
Вся система работает через уникальные идентификаторы. Каждый объект общается только с теми, чьи ID знает. Это позволяет хранить миллион событий в 10 мегабайтах и запускать живых существ даже в браузере.
Три прототипа, которые можно потрогать
Мы создали четыре реализации, и два из них доступны прямо сейчас:
1. InsectJS
Минимальный «жук» в браузере. Он доказал, что принципы настолько выверены, что их можно реализовать на любом компьютере или смартфоне. У него есть голод, страх и рефлексы. Он учится на своих ошибках.
Откройте страницу — и увидите, как цифровое существо пытается не умереть.
2. BeastJS
Более сложная и полнофункциональная версия для браузера. Умеет осознавать новизну, искать обходные пути и запоминать не только действия, но и контекст.
Самая первая модель, она и самая полноценная, Beast (Go), остается исследовательской платформой с полноценной психикой. Она используется для экспериментов с обучением, памятью и многоконтекстным поведением. Ее тоже можно посмотреть, есть открытый код, но это потребует специальных навыков.
Четвёртая модель в завершающей разработке — библиотека Isida (C#), на основе которой создаётся Velum — живой помощник для инженеров в САПР SolidWorks.
Velum: друг, который работает в чертежах
Velum — это не просто плагин. Это симбионт. Его жизненные параметры завязаны на качестве проектных данных.
Если чертёж кривой, конструктор нервничает — Velum тоже начинает «волноваться». Если сборка удачная — ему «хорошо».
Он не выполняет команды. Он живёт внутри процесса проектирования и учится на поведении человека.
Самое важное: его мотивация изначально дружественна человеку.
Мы не ставим ему внешние запреты (как три закона робототехники). Мы проектируем его внутренние потребности так, чтобы благополучие оператора стало его жизненным параметром.
Ему будет плохо, если человеку плохо. Ему будет хорошо, когда человек доволен.
Это принципиально невозможно для LLM. У больших языковых моделей вообще нет внутренних состояний — есть только предсказание следующего слова.
Чем это отличается от всего, что было раньше
Мы не говорим, что это «лучше», чем GPT. Мы говорим, что это другое. И это решает задачи, которые нейросети вообще не решают:
автономное существование;
страх смерти;
обучение за счёт собственного опыта;
внутренняя мотивация без внешнего учителя.
Зачем это миру?
LLM — это гениальные предсказатели слов. Но у них нет желаний. Им не бывает стыдно, голодно или одиноко.
А если мы хотим создать ИИ, который действительно сможет жить рядом с человеком, помогать, адаптироваться и заботиться — нам нужна не интеллектуальная машина, а живая.
Мы показали, что такую систему можно собрать из простых, прозрачных, лёгких блоков. Без дата-центров. Без миллиардов параметров. Без тайных слоёв, которые никто не понимает. Просто код. Просто архитектура. Просто — как эволюция.
Попробуйте сами
Откройте браузер, запустите InsectJS или BeastJS.
Вы увидите, как маленькая программа ищет еду, боится опасности и учится на ошибках.
Это не игрушка. Это модель того, как может быть устроена настоящая жизнь — в любой среде, на любом носителе.
Возможно, вы смотрите не на код. Возможно, вы смотрите на самое начало новой ветви эволюции.
Статья подготовлена по материалам Лаборатории схемотехники адаптивных систем. Код открыт, прототипы работают — проверьте сами.
