Обложка Слушание №17

Слушание №17

John Smollet

0% прочитано
Стандартный
John Smollet

Слушание №17

Глава 1

Запись объяснительного отчета разработчика 3-го ранга группы Альфа по делу «О невмешательстве»

Судья: Можете начинать.

Разработчик: Я сотворил систему по стандартным условиям в срок установленный начальством. Здесь мы всегда работаем по регламенту, и обычно это занимает до семи дней. Так что не могу сказать, что я где-то спешил или меня кто-то торопил. Напомню, что на моем счету уже 42 системы. Хотя признаться, в этом нет ничего экстраординарного…

Судья: Ближе к делу, пожалуйста!

Разработчик: Да, да, я просто специально подчеркиваю, что моей вины в произошедшем нет. Я четко работал по техническому заданию. Это была система класса Альфа, семнадцатого грейда…так, если попроще…в общем, основным условием таких систем является самодостаточный и самоорганизующийся искусственный интеллект. В последнее время, мы только такие и создаем, так что у нас никогда не было проблем в развертывании или настройке…

Судья: Расскажите, что конкретно произошло?

Разработчик: Да, конечно, да… Смоделированные сущности действовали весьма успешно и в соответствии с планом. Им были созданы идеальные условия для движения в строго намеченном направлении. Мы проходили это на…извините, забываюсь, в общем – мы уже делали это десятки раз.

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

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

Незадокументированные вызовы поступали по иной схеме, по каналу, который в принципе не проектировался и не закладывался в систему. Это конечно было интересно, но тогда мы не придали этому значения – в конце концов, было много более приоритетных задач!

Судья: Так, это понятно. Что в итоге вы сделали с багом и как это связано с делом?

Разработчик: В том то и дело, что это напрямую связано с делом, уж извините за каламбур! Но не все сразу. Мы положили баг в бэклог со средним приоритетом, и…на время забыли о нем. Потому что в ходе одного из регрессионных тестирований мы обнаружили более важное – мы обнаружили в системе новую сущность с искусственным интеллектом.

Судья: Новая сущность?

Разработчик: Да, это, по правде сказать, сложно не заметить, когда наших сущностей и было то всего две. Я решил заняться этой проблемой сам. Я «погрузился» в код, написал несколько запросов, и…сперва ничего не понял. Я обнаружил, что новая сущность действовала кардинально иным образом. Я уже говорил, что системы класса Альфа семнадцатого грейда наделяются от создания искусственным интеллектом. И у нас уже было пару случаев, когда искусственный интеллект сам случайным образом мультиплицируется в некоторые объекты, наделяя их попутно атрибутами, им не предназначенными. Иногда это, кстати, полезно и позволяет много проще решать некоторые прикладные задачи…

Судья: Не отвлекайтесь!

Разработчик: Да, хорошо, да… В этот раз подобный выброс – мы называем такие случаи мультиплицирования интеллекта выбросами – имел совсем иные последствия. Он преобразил сущность, которая начала действовать по какой-то иной программе. Обычно - я все-таки должен сделать на этом акцент - мультиплицируемые сущности повторяют программу родительских веток… Но в этой системе что-то пошло не так.

Судья: Какое решение вы тогда приняли?

Разработчик: Что ж, это было непростое решение! Поскольку незапланированная сущность – в виду наличия у нее собственной программы, а также в виду наследования интеллекта наших примарных сущностей – уже успела глубоко пустить корни в код, то мы…решили ее не трогать. Да, господин судья, возможно в этом была заключена наша первая ошибка. Но особо подчеркну, что мы приняли это решение коллективно.

Судья: Принято. Дальше, пожалуйста!

Разработчик: Просто убрать эту сущность из системы представлялось нам очень трудоемким и сложным. К тому же, мы отставали от графика по другим фичам. Поэтому мы приняли решение сделать пару костылей на скорую руку, заизолировать сущность по-максимуму. Первым делом, нужно было оградить наших примарных сущностей от ее влияния. Я взялся за это дело и написал несколько запросов. Кое-чего я, впрочем, не учел…

Судья: Чего же?

Разработчик: Как бы вам сказать, не вдаваясь в термины…в общем и целом, можно сказать, что сущность развивалась значительно быстрее родительских веток. Она каким-то образом складировала знания о системе в свой репозиторий. И проводила там собственную аналитику. Но об этом мы узнали уже много позже. Поэтому когда я писал свои запросы, я это делал с расчетом на то, что по уровню своего развития и осознания, она, эта новая сущность, находится не дальше наших примарных сущностей, с которыми мы уже набили руку. А это было не так…

Судья: Вы не могли узнать об этом раньше?

Разработчик: Раньше? Но поймите меня правильно, возможно где-то в идеальном мире, я сперва изучил бы структуру этой сущности, ее логику, но у меня было крайне мало времени, и была четко поставленная задача – оградить систему от ее влияния. Это была, бесспорно, довольно грубая задача, но тогда нам казалось, что это наиболее оптимальное решение.

Судья: Оптимальное, но не лучшее?

Разработчик: Господин судья! Я вижу, к чему вы клоните, но так устроено у нас в разработке, и это нормально! Мы принимаем компромиссные решения почти всегда, если делать идеально и выверять каждую мелочь, то мы никогда не уложимся в сроки. Повторюсь, что на тот момент, нам казалось, что это решение сможет разрешить нашу проблему.

Судья: Хорошо, продолжайте.

Разработчик: Как я уже сказал, ограничить влияние новой сущности целиком мне не удалось. Осталась пара лазеек, но я держал под контролем уровень информации в этих каналах, и если бы не случилось чего-то неординарного, то все могло закончиться хорошо.

Судья: Как я понимаю, неординарное все-таки случилось?

Разработчик: Да, можно сказать, что так. Я уже говорил, что на тот момент мы еще не знали о существовании репозитория, куда новая сущность складывала данные о системе. Если говорить совсем упрощенно, то она почти что копировала наш код. Кстати вот тут мы и приходим к тем самым незадокументированным запросам к системе…

Судья: Это тот самый баг, которому вы не придали значения?

Разработчик: Господин судья! Конечно, сам по себе это баг выеденного яйца не стоит. Он не нагружал систему и никак не затрагивал наших примарных сущностей, конечно, мы могли бы разобраться с ним позже. Или вообще не разбираться, у нас хватает систем, в которых баги копятся годами.

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

Судья: Что это значит? Можете объяснить проще?

Разработчик: Да, постараюсь. Ну, это будет очень грубо конечно. Фактически это означало, что любой, кто имел бы доступ к этому репозиторию, мог узнать об устройстве системы все. Абсолютно все. При этом находясь внутри ее.

Судья: Как я понимаю, это нарушение правил, в том числе тех стандартных условий создания систем, принятых вами – разработчиками – между собой?

Разработчик: Все верно, господин судья! Это не просто нарушение каких-то правил. Это столп, на котором держатся все наши системы, в особенности системы класса Альфа…

Судья: Семнадцатого грейда.

Разработчик: … да, так.

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

Разработчик: Скажу открыто, что вот тогда мы действительно сели в лужу. Когда мы поняли, каково действительное положение дел, было уже поздно. Наносный код так тесно сросся с нашим, наши костыли так тесно переплелись с правильными настройками, что мы, откровенно говоря, не знали что делать. Всем хотелось просто переписать все под чистую, но один из параграфов устава запрещает это прямым текстом.

Судья: Что вы имеете в виду?

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

Судья: Вы в первый раз столкнулись с этой проблемой?

Разработчик: С таким размахом – да. До этого было несколько случаев, но все решалось локальными правками.

Судья: И все-таки, вы говорите, что некоторая сущность получила полный доступ к системе, где она и была порождена, и-и?...

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

Судья: Могли бы?...

Разработчик: Поймите, я говорю это с позиции здравого смысла – если таковой сценарий возможен, то мы могли бы его предусмотреть. Но я думал, что держу все каналы передачи информации под контролем. Если бы через них пошли большие массивы данных, мы бы вовремя это отследили…

Судья: Но?...

Разработчик: Но сущность поступила хитрее - она просто закодировала полный доступ к своему репозиторию через простой объект. Не стала ничего отдавать по частям, преобразовывать, она просто отдала ключ от целого мира на блюдечке в виде этого, чтоб ему пусто было, яблока!

Судья: И это вы предусмотреть не могли?

Разработчик: Ну слушайте, так вообще можно до чего угодно договориться! Может быть, были у кого-то такие идеи, и может даже кто-то и говорил это вслух, но это казалось слишком невероятным. Ну скажите на милость, какой ей в этом прок?!

Судья: Я как раз собирался спросить у вас о том же…

Разработчик: Вы не поверите, но мы успели построить несколько моделей предиктивной аналитики…

Судья: Предсказательной?

Разработчик: Да, да, несколько сценариев развития событий, в том числе учитывающих мотивацию независимого относительно системы субъекта. Это я говорю о нашей новой сущности. Мы должны были предсказать ее поведение, хоть как-то! Стоило нам опоздать один раз, и мы вынуждены были всегда отставать от нее на два шага. С этим и связаны все наши ошибки, как мои личные, так и коллективные.

Судья: Итак, вы построили модели?

Разработчик: Да. И тот самый сценарий, где, можно сказать, система взламывается изнутри, где полный доступ к абсолютному знанию отдается просто так, без какой-то корыстной цели…в общем, он был маловероятен.

Судья: И вы, стало быть, никак от него не защитились?

Разработчик: Ну, это все-таки не совсем так. Мы попытались управлять этим через наших примарных сущностей.

Судья: Не получилось?

Разработчик: Как сказать…говоря откровенно, ну да, мы же на суде, господин судья, так что мне уже терять вроде бы и ничего, говоря откровенно – нам строго настрого запрещают вмешиваться в изменение логики примарных сущностей. Да и, сказать, не соврать, это вообще-то не так уж и легко! Тут ведь, как говориться, у искусственного интеллекта своя голова на плечах!

Судья: То есть вы попутно нарушили одно из ваших правил…

Разработчик: Господин судья! Не я заварил всю эту кашу, я всего лишь разработчик системы класса Альфа, где все пошло не так…

Судья: Допустим. Как я понимаю, той самой сущности все-таки удалось передать доступ одной из ваших примарных сущностей? Что произошло дальше?

Разработчик: Дальше? А вот тут я уже вам не помощник, не моего ума это дело… Честно говоря, кхм, дальше у нас все развалилось.

Судья: Поясните?

Разработчик: Да как карточный домик, по принципу домино, начали отказывать все микро-сервисы. Все те граничные условия, идеальные для примарных сущностей, перестали выполняться. Все пошло под откос. Система стала настолько нестабильной, что мы не знали, за что браться. Я не знаю, почему так произошло. Под угрозой стали сами сущности. Они стали уязвимы, биосфера стала для них враждебной, и мы не могли это поправить в коде… Но без сущностей, как таковых, в таких системах все остальное бессмысленно. Мы должны были их спасать, любой ценой.

Судья: И вы?

Разработчик: Мы разработали программный модуль устранения неполадок. Который работает более-менее автономно, имеет доступ к любому участку системы. Фактически, он работает только на верхнем слое – что-то поправить на материальном уровне. Но…

Судья: Но?...

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

Судья: А на более глубоких слоях?

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

Судья: Понятно. Вы ведь знаете в чем вас обвиняют?

Разработчик: Да тут и ежу понятно, господин судья! Мир пошел вразнос, а это как никак порча частной собственности компании, а мне вменяют халатность в работе и бла-бла… да только все это вилами по воде! Я же говорю - я что ли предумышленно так сделал, чтобы появился этот баг с вызовами? Или предумышленно отпочковал интеллект в новую сущность? Или предумышленно скрывал ее столь быстрое развитие? Просто на этой долбанной планете все пошло вкривь и вкось, ну наверно есть какая-то вероятность что такое могло произойти – вот оно и произошло! А я уж тут точно не причем, я все что мог - сделал.

Судья: Правильно ли я понимаю, что теперь этот мир никак не вернуть в состояние, надлежащее по контракту?

Разработчик: Никак. Я в этом смысле заказчика конечно понимаю. Но тут уж увольте, теперь этот мир сам по себе.

Судья: И сколько на нем теперь сущностей?

Разработчик: Да уж миллиардов восемь, как пить дать. Но я еще раз повторюсь – нет, тут пробуй, не пробуй, никак обратно дым в сигарету не засунешь. У них теперь своя история, они сами ее пишут - потом, кровью и слезами.

Судья: Чему вы так ухмыляетесь? Уж не находите ли вы подобное стечение обстоятельств удачным?

Разработчик: Ну знаете…можете в итоге обвинить меня в халатности, но по-моему, мы зря их все время называем сущностями. В конце концов, ведь мы тоже с вами, господин судья – люди!

10.12.22

Спасибо за чтение

Вернуться к книге