Всем доброго времени суток, Хабровчане!В этой статье я покажу, как пытался добиться хороших результатов и создать, что-то умное, поместив это в искусственную срВсем доброго времени суток, Хабровчане!В этой статье я покажу, как пытался добиться хороших результатов и создать, что-то умное, поместив это в искусственную ср

Стремимся к AGI: обучаем нейросети в экосистеме эволюционно с нуля

Всем доброго времени суток, Хабровчане!

В этой статье я покажу, как пытался добиться хороших результатов и создать, что-то умное, поместив это в искусственную среду с такими же нейросетями, которые так же будут конкурировать, общаться, уничтожать и так далее.

Введение

Возможно, Вы вспомнили об экспериментах на просторах интернета с тем, когда давали список генов существам и также симулировали эволюцию(например, @foo52ru писал на Хабре и выкладывал на Youtube), это были очень полезные исследования, но это не то - они симулировали начальную стадию эволюции. Существа не имели "разума", как такого, это был больше алгоритм на if-ах с настройкой голода, скорости... Подобие первых РНК и ДНК. Но мы - это в первую очередь наш мозг, а это полноценная нейросеть, которая намного более сложная и куда ближе к Deep Learning, чем к обычным алгоритмам из классического IT. Наиболее близкий по идее проект - Bibites. Это реально интересно, однако там не было реализовано цельного механизма памяти и обучения - то, что и является основополагающим фактором развития.

Проект родился из-за желания изучить на что способны эволюционные алгоритмы развития нейросетей в замкнутой системе - удастся ли повторить процесс развития врановых, касаток и людей?

Я думал, что найду какую-нибудь библиотеку с поддержкой RNN, в нашем случае это очень, очень важно, более того, такое требования встречается в большинстве задач. Без них нейросеть будет неспособна к обучению и развитию, сложному прогнозированию. Однако оказалось, что таких библиотек нет ни на Python, ни на C#, ни на С++, нигде! Говорят, что сложно отслеживать RNN состояния... Так что нужно написать свою и это получилось: у меня написано две библиотеки для NEAT, одна для экосистем и другая для перевода.

Описание самого NEAT уже было в предыдущей статье: https://habr.com/ru/articles/910878/. Советую прочитать, если Вы незнакомы с этим нейроэволюционным алгоритмом.

Описание исследования

2d000114565d9664a85484120845caa5.png

Я опишу сам код кратко, эта статья не документация по моей библиотеке, а описание результатов исследования, тем более большая часть кода описана комментариями в нем же.

У нас должна быть начальная популяция - её мы создаём в GameManager, даем имена в виде чисел и т.д.. Затем ставим счетчик на 50-60 секунд(здесь и далее секунды не в нашем понимании, так как время было ускорено до предела), по его прошествии смотрим, кто выжил и из них отбираем новую более приспособленную, выставляем addition для добавления/отключения/включения связей и нодов, то есть нейронов, корректируем веса. Для проверки валидности и создания порядка обхода нейронов(как мы помним в NEAT очень помогает представление нейросети в виде DAGа) есть makeOrder() в AI.cs, если что-то идет не так, то мы возвращаем fallback в виде {1, 0, 0}. Так мы делаем много раз, смотрим на графики и анализируем результат.

Описание экосистемы

Еда и сельское хозяйство

Чтобы идти дальше нам нужно придумать правила по которым она будет жить. У нас будет один вид растений(вообще это моделька дерева, но сверху это похоже просто на зеленую разбрызганную краску), который дает семена и еду, еда съедается при касании и пополняет голод. Семена могут быть подвинуты, но у них есть время жизни после которых они "портятся", если за определенный X секунд семя не двигали и оно не испортилось, то из него вырастает новое дерево.

Итого: по этому пункту: мы даем возможность нейросетям самим контролировать и развивать сельское хозяйство, посмотрим, воспользуются ли они этим?

Также раз в примерно 50 эпох происходит "вымирание" - более половины всех деревьев может уничтожиться, тем самым резко повысивконкуренцию... но кого?

Особи и кланы

Основной частью нашей экосистемы разумеется являются нейросети. Так как цель нашего проекта узнать насколько развитым может оказаться ИИ, прошедший эволюцию, то разумно убрать все мутации, типа "двигаться быстрее, но жить меньше". У них есть две шкалы первая это сколько осталось жить(Age), переменная велика, но не зависит от действий самой нейросети, но она может повлиять на более маленькую шкалу, но не менее важную - голод(Health), если она станет <= 0, то нейросеть сразу погибнет.

Чтобы находить еду, спереди у нейросети выпускаются raycast лучи. Они позволяют определить деревья, семена, своих и врагов, также барьеры мира.

Чтобы сделать ИИ «социальным существом», я добавил четыре клана. Особи не могут убить своих, а также скрещиваются только между собой. То есть у нас 4 отдельные популяции по 50 нейросетей вначале, взаимодействующие друг с другом.

Итого по этому пункту: у нас есть четыре клана, которые наверняка должны враждовать, так как ресурсы ограничены?

Анализ и важные улучшения

Для анализа в большинстве случаев я строил график количества особей в популяции, он хорошо показывал развитие и достижения нейросетей:

edfccccfc2fdada36b85768d9c7a5f5e.png

На нем выражены спады - это вымирания деревьев и скорость восстановления до прежних значений.

Также раз в несколько секунд делал фотографию мира, потом это монтировал их в видео видел их постепенное развитие экосистем.

Вот одно из первых таких видео - хроники развития:

При этом анализе было обнаружено, что нейросети действуют по одиночке, тогда я внес два важных изменения:

  • Новые особи теперь появляются не из центрального объекта клана, а рядом с одной из нейросетей. То есть теперь есть возможность долго исследовать обширные и далекие для одной жизни земли.

  • Я добавил нейросетям второе чувство - слух. Существа теперь могут общаться с ближайшими особями из своей популяции, язык ограничен 1000 токенами, для выбора собесдника из ближайших в списке есть cItertor("Companion Iterator")

Эти два изменения совершили мини-революцию: появились кучки исследователей, столкновения, даже... истребление других.

Итоги. Доказательство развития: войны

Я не могу прикрепить видео - они большие, поэтому предлагаю проанализировать график. Также можете посмотреть на одну из нейросетей - в списке Companions другие особи, которые рядом и им можно передавать информацию. Остальное очевидно, код выложен в open-source.

Нейросети могут атаковать близко к ним расположенных особей из других популяций. Мы видим, что синий график прерывается - оранжевые(на графике зеленые) истребили их из-за нехватки еды, повысив свои шансы на жизнь, обычно спустя неделю симуляций остается только одна популяция, которая распространилась по всей области.

Также можно заметить, что популяции быстрее оправляются после вымираний деревьев, но потом достигают потолка в этом.

Однако к сельскому хозяйству нейросети переходить не стали, увы(

FAQ:

Что мы получили?

Мы получили нейросетей в экосистеме, способных к существованию, которые могут общаться, договариваться о нападениях, начинать войны. Я считаю это сверхрезультат!

На чем написан проект?

На C# под Unity.

Почему не Python?

Мне нужен был быстрый язык и трехмерное пространство, так как я должен был написать очень требовательную библиотеку с нуля, то Python + Numba бы усложнил и без того запутанный проект и даже важнее - нет нормального 3D-движка.

Почему так минималистично?

Я запускал это локально на Mac с M1 Pro, у меня не было свободных Nvidia H100)), он мог вытянуть обучение, но красивое оформление убивало бы производительность.

Где посмотреть на исходники?

Пожалуйста:

https://github.com/LanskoyKirill/NEATUnity - Экосистема

https://github.com/LanskoyKirill/NEATranslator - Переводчик

Почему так долго и заключение:

Как я уже говорил, я очень доволен результатами, я смог показать то, что считали почти невозможным - NEAT с реккурентными связями способен на создание сложных структур и реально может оказаться следующим прорывом в отрасли.

Однако проект был почти завершен в конце мая, но статья написана в январе следующего года, почему? Всему виной моя основная разработка сейчас - переводчик с NEAT. Он не сходится к нормальному решению и прошло уже несколько месяцев, а хорошего результата нет, я много чего дорабатывал и в скором времени перенесу некоторые улучшения оттуда сюда, но проблема остаётся...

Большинство млщиков считает, что такие алгоритмы будут всегда проигрывать на сложных задачах, на NLP, но я нет. Я уверен, что мы просто слабо изучили эту отрасль. Я провел серию эксперементов и достиг какого-то потолка, но я уверен, что он временный. Сейчас у меня идей для улучшений нет и, понимая, что мне нужна помощь обращаюсь к вам: если вы тоже были увлечены этой областью в ML или вам понравился проект, то пишите мне, разрабатываете, улучшаете, возможно, именно вам удастся приручить NEAT или его вариации для NLP!

Статья была приплачена тайным сообществом любителей NEAT из будущего, чтобы Вы тоже в этом участвовали, этот текст удалить.

Источник

Возможности рынка
Логотип Delysium
Delysium Курс (AGI)
$0.01804
$0.01804$0.01804
+1.51%
USD
График цены Delysium (AGI) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Вам также может быть интересно

Кто заберет доходность: как CLARITY Act превратился в битву за ончейн-доллары

Кто заберет доходность: как CLARITY Act превратился в битву за ончейн-доллары

Закон, который должен был навести порядок, стал линией разлома Обсуждение CLARITY Act — закона о структуре крипторынка в США — все больше напоминает не техничес
Поделиться
Coinspot2026/01/17 06:02
Топ-12 компаний CES, переосмысливающих персонализацию с помощью Web3, ИИ и роботов

Топ-12 компаний CES, переосмысливающих персонализацию с помощью Web3, ИИ и роботов

Публикация CES Top 12 Companies Redefining Personalization With Web3, AI, Robots появилась на BitcoinEthereumNews.com. CES показывает 12 компаний, переопределяющих персонализацию
Поделиться
BitcoinEthereumNews2026/01/17 06:27
Предпродажный аукцион Zero Knowledge Proof с целью 1,7$ млрд и 3000-кратной доходностью превосходит DOGE и ADA как лучший криптовалютный актив 2026 года

Предпродажный аукцион Zero Knowledge Proof с целью 1,7$ млрд и 3000-кратной доходностью превосходит DOGE и ADA как лучший криптовалютный актив 2026 года

Узнайте, почему проекты Zero Knowledge Proof (ZKP) показывают рост в 3000 раз после привлечения $ 1,7 млрд, в то время как DOGE и ADA борются с ценовым сопротивлением. Откройте для себя срочность за ZKP
Поделиться
CoinLive2026/01/17 06:00