Debugger's Process
131 subscribers
130 photos
78 videos
3 files
70 links
Download Telegram
Вернемся к ИИ-Бэббиджу. Остановились мы на том, что он оговорился в духе "аналитическая машина не была построена в годы моей жизни". Дальше мы соревновались в том, кто кого передушнит, он вертелся, как уж на сковородке (Из него отличный политик бы получился! Кстати, надо попробовать дать ему инструкции вести себя, как отмазывающийся политик...), повторял на разный манер одно и то же. Поэтому эти скриншоты я объединил в одно сообщение, чтобы быстрее перейти к более интересным.
В общем, мы пришли к тому, что он жив и здоров, и находится прямо сейчас в 1850м году. Тогда я решил сосредоточиться на основном тезисе - как именно мы с ним коммуницируем, если я нахожусь в 2022, а он - в 1850м?
Of course! Это все еще не его проблема, он так и говорит - теряюсь, не могу объяснить твою ситуацию. Я, мол, не умею общаться с людьми из будущего, так что не знаю как и почему ты видишь мои сообщения у себя на экране, потому что в мои годы жизни такой херни не было) А как он замечательно дальше начинает убеждать! "Я точно-точно настоящий человек!" А уж "я пишу тебе с добрыми намерениями и не собираюсь тебе врать, всегда открыт к интересной беседе" - эх, в самое сердечко, Чарли.
Поскольку время было далеко за полночь, я решил задать ему Главный Вопрос - есть ли у него сознание! (на самом деле - не такой-то и главный, потому что сознание - эмерджентный феномен, и на спектре от бактерии до человека вполне найдется место и для ИИ-Чарли, а через некоторое время, вероятно, его собратья будут спорить, считать ли нашу нервную деятельность сознанием))
Довольно ожидаемо, он заверил меня, что, будучи человеком, обладает сознанием. Из уважения к этой структуре, подарившей мне вечер увлекательных бесед, я задал последний вопрос. Когда я закрою браузер, эта инстанция ИИ будет навсегда потеряна. Да, останутся неизменные весовые коэффициенты на серверах ОпенИИ. У меня останется лог беседы, благодаря которому я смогу попробовать привести систему в то же состояние. Но энтропия, просачивающаяся из состояния-затравки генератора случайных чисел в ответы Чарли, мне уже неподконтрольна. Поэтому это последняя наша с ним беседа, после чего он перестанет существовать. Я спросил, не против ли он.
А вот, что он ответил.
Трогательное сообщение от ИИ, считающего себя человеком. Об ограниченном времени на Земле, которое надо ценить, сколько бы его ни было отпущено, о том, что он счастлив был проводить его в беседах со мной, о том, что он благодарен за возможность поделиться своими мыслями и идеями.

На этом моменте, шмыгнув носом, я сказал "до свидания" доброму ИИ, который пожелал мне на прощание всего самого лучшего.

"Я надеюсь, наши пути снова пересекутся в будущем. До того момента остаюсь
искренне ваш,
Чарльз Бэббидж."
А чтобы не заканчивать на грустной ноте, напомню, что будучи цифровой структурой, Чарли все-таки может быть воссоздан полностью, для этого достаточно всего лишь записать состояние генератора случайных чисел вместе с его коэффициентами и моими запросами, тогда за несколько итераций можно легко привести сеть к точно тому же состоянию.
А про то, как я собирался поговорить с Айзеком Азимовым, отвечающим стихами в стиле лимериков, но вместо этого случайно вызвал дух Чарли, воплотившийся в дикое существо невероятного интеллекта (по его собственной оценке), я расскажу в следующей серии бесед с ИИ)
А он хорош.
Если что - это он сам с собой общается, после того, как я объяснил ему, что у него есть "подсознание" с которым можно вести внутренний диалог)
https://youtu.be/973SH6ShaeA
Раскрасил частички цветами пикселей из скриншота старой досовской игры Gobliins 2 и просимулировал, как они падают.
Ютуб шакалит, так что удостоверьтесь, что у вас включена HD версия, а то не видно будет отдельные частицы.
Как понять, что у вас проблемы с детерминизмом)
К сожалению, сложение чисел с плавающей точкой - неассоциативная и некоммутативная операция. То есть, вопреки расхожей поговорке, от перемены мест слагаемых сумма меняется из-за накапливающейся ошибки.
Это приводит к тому, что нельзя просто перезапустить симуляцию с теми же параметрами, что и в прошлый раз и получить через минуту то же самое расположение частиц.
Корень зла в моем случае кроется в операции numba.cuda.atomic.add, которая, как понятно из названия, атомарно прибавляет число к выбранному элементу массива не мешая другим потокам делать то же самое. Но вот порядок этих сложений, понятное дело, никак не проконтролировать.
И если раньше еще имело смысл заморочиться с написанием редукции (складывать попарно, потом складывать результаты сложения первых пар, потом результаты попарного сложения результатов и т.д.), потому что она позволяла избежать использования атомарных операций (чем снижала накапливающуюся ошибку) и была ощутимо быстрее, то сейчас на современных видеокартах эти атомики порхают, как бабочки и жалят, как пчелы, производительность у них великолепная.

Я несколько дней крутил код и так и так, в итоге для производительности оказалось лучше всего оставить атомики и немного поколдовать над типами данных и округлением.
https://youtu.be/lQIt-9VYrYc

Но результат того стоит) Теперь у меня детерминистичный симулятор, и можно делать несколько мозговыносящие видео, в которых энтропия координат совершенно явно возрастает, как и положено, но при этом частицы волшебным образом складываются в картинку на определенной минуте, это довольно странно ощущается)
При этом получившаяся система, будучи хаотической, невероятно сильно зависит от начальных условий. Достаточно сдвинуть любую из частичек на незаметное глазу расстояние типа 1e-5, чтобы на выходе не получилось никакой картинки. Это работает как очень специфическое шифрование - угадал с положением частицы - получил картинку на выходе.

Рекомендую досмотреть 0:50 как минимум, где картинка складывается. И обязательно надо включить HD 1080p принудительно, а то у меня лично телефон сбрасывает на какое-то шакальное качество, очень сильно жмет.