Код для Орфея
Глава 1. Птицы на тёмной воде
— Коллеги, у нас деплой через три часа, а на проде до сих пор висит критический баг в модуле авторизации, — Артур потёр виски, чувствуя, как от монотонного голоса тимлида в наушниках начинает поднывать затылок.
Экран его рабочего тридцатидюймового монитора напоминал поле боя: бесконечные строчки логов, три открытые вкладки среды разработки, мигающие уведомления в корпоративном мессенджере и открытая диаграмма Ганта, на которой все дедлайны зловеще горели алым. Пятница в IT-компаниях редко бывала спокойной, но эта превзошла все ожидания. Заказчик — крупный финтех-холдинг — внезапно выкатил ультиматум: либо обновлённый личный кабинет со всеми протоколами безопасности запускается сегодня до шести вечера, либо компания попадает на гигантские штрафы за срыв сроков, а контракт на следующий год отправляется в шредер.
В общем рабочем чате под названием «Апокалипсис-Релиз» сообщения сыпались со скоростью пулемётной очереди. Проджект-менеджер Кристина раз в пять минут присылала плачущие смайлики и напоминала, сколько миллионов компания потеряет, если они «профакапят полимеры».
«Артур, бэкенд отдаёт 500-ю ошибку при попытке повторного входа! Пользователей просто выбрасывает из системы!» — в очередной раз его тегнула Марина, ведущий QA-инженер компании, известная своей феноменальной дотошностью.
Артур раздражённо выдохнул и быстро застучал по клавиатуре: «Марина, я же просил: пришли мне нормальный стек-трейс и логи с сервера, а не просто скриншот из баг-трекера. У меня на локальной машине всё рендерится идеально. Вы базу данных перед тестом обновили?»
«Конечно, обновили! — тут же прилетел ответ. — Проблема плавающая. На мобильных устройствах сессия падает сразу после ввода капчи. Это чистый крит, мы не можем подписать релиз-ноутс».
Артур снова углубился в код, перепроверяя написанные им модули. Строчка за строчкой, функция за функцией. Его мозг работал на пределе возможностей, выстраивая сложные логические цепочки. Проблема была где-то здесь, в криво настроенном токене безопасности, который нагло обрывал сессию пользователей через каждые две минуты, принимая легитимных клиентов за хакерскую атаку. Ему приходилось продираться сквозь старые костыли, оставленные уволившимся полгода назад напрником, и это злило сильнее всего.
— Воронов, ты тут? Что по фиксу? — снова раздался в наушниках голос тимлида. — Инвесторы уже сидят на созвоне с генеральным. Нам нужна конкретика.
— Ищу, — коротко бросил Артур, не отрывая взгляда от экрана. — Судя по логам, которые Марина мне наконец-то соизволила скинуть, фронтенд неверно парсит ответ от бэка. Дайте мне ещё десять минут. Если дело в CORS-политике, я перепишу конфиг на уровне шлюза.
В наушниках кто-то тяжело, обречённо вздохнул. Артур прекрасно понимал этот вздох. В этот момент все они — и тестировщики, и менеджеры, и другие программисты — были заложниками этих невидимых цифровых шестерёнок, которые никак не хотели крутиться синхронно. Весь их мир сузился до размеров пикселей и поисков одной пропущенной точки с запятой в бесконечном массиве данных.
Он на мгновение свернул окно созвона и бросил взгляд на телефон. На экране высветилось сообщение от Лены, присланное ещё час назад: «Воронов, ты живой? Помнишь, мы хотели погулять на Воробьёвых?»
Артур вздохнул. На часах было уже начало пятого. Световой день в конце сентября стремительно шёл на убыль, и если он не закончит прямо сейчас, то они вообще никуда не успеют. Мысль о Лене, о её мягком голосе и удивительном, почти осязаемом спокойствии, которое всегда окружало её, подействовала как холодный душ. Ему до безумия захотелось закрыть этот дурацкий ноутбук, выйти из душного офиса стеклянного бизнес-центра и просто пойти пешком, не думая о серверах, базах данных и бесконечных микросервисах.
Он вернулся к коду, решив переписать злополучный метод валидации с нуля. Пальцы летали по клавишам механической клавиатуры. Логика, условия, циклы... И вдруг среди нагромождения условий он заметил её. Крошечную, глупую ошибку, допущенную, видимо, глубокой ночью во время прошлого спринта.
— Нашёл, — громко сказал Артур в микрофон, чувствуя, как внутри разливается чистый азарт охотника, поймавшего дичь. — В третьей строчке обработчика заголовков была опечатка. Кто-то вместо логического «И» поставил «ИЛИ». Система считала любой повторный запрос ошибкой маршрутизации. Ловите пулл-реквест, я залил исправление в ветку. Марина, перепроверяй, через пять минут прод задышит.
Не дожидаясь ответа, восторженных возгласов команды и дежурных «спасибо» от Кристины в чате, Артур перевёл статус в мессенджере в режим «не беспокоить», захлопнул крышку ноутбука и потянулся, со звуком расправляя затёкшую спину. Всё. На сегодня с него хватит алгоритмов. В конце концов, код верности своему слову был для него гораздо важнее, чем любой код на JavaScript. Он быстро натянул пальто, схватил рюкзак и почти выбежал к лифтам, оставляя позади гудящую тишину офисного этажа.
Метро встретило его привычным шумом, толчеёй и запахом разогретого металла. Артур ехал, прислонившись спиной к дверям вагона, и машинально листал рабочую почту на телефоне, пока связь окончательно не пропала в тоннеле. И только когда поезд с глухим шумом вылетел на открытую станцию «Воробьёвы горы», застеклённую со всех сторон, Артур наконец убрал гаджет в карман. За окном расстилалась Москва, залитая золотом предзакатного солнца, и среди этой грандиозной панорамы на платформе стояла она. Лена ждала его, кутаясь в лёгкий шарф и глядя на реку. В этот момент Артур почувствовал, как невидимая пружина внутри его груди, сжатая до предела за всю эту рабочую неделю, наконец-то разжалась.
Москва-река в этот предзакатный час казалась расплавленным куском тёмного стекла, лениво ворочающимся в гранитных тисках Воробьёвской набережной. Небо над столицей окрасилось в багровые, почти театральные тона, какие бывают лишь в самом конце сентября, когда лето окончательно сдаёт свои позиции, но осень ещё не успела пролить свой первый свинцовый дождь. Воздух был пронзительно чистым, наполненным ароматом близкой реки, прелой листвы и едва уловимым, сладковатым шлейфом парфюма Елены.
Артур шёл рядом в распахнутом пальто. Обычный городской парень, который вечно куда-то спешит, застряв в чатах и рабочих задачах. Но сейчас вся эта суета мегаполиса куда-то испарилась. Его мозг, который обычно всё просчитывал наперёд, просто отключился. Артур смотрел только на неё. Город вокруг мог шуметь, меняться и бежать дальше, но она была единственным, что в его жизни оставалось настоящим.
Елена шла чуть впереди, касаясь пальцами холодных гранитных перил. Её русые волосы ловили последние багряные лучи солнца, создавая вокруг головы подобие мягкого сияния. Она двигалась с той врождённой грацией, которой в прежние века поэты посвящали баллады. В её глазах, отражавших тёмную речную гладь, светилась та обезоруживающая, живая искренность, которая так поражала и приковывала его к ней.
— Смотри, Арчи, — она остановилась, указав рукой вниз, туда, где у самого подножия гранитной стены вода образовала тихую, защищённую от течения заводь.
Там, плавно покачиваясь на волнах, скользили птицы. Пара величественных белоснежных лебедей, заплывших сюда словно из старинной сказки, безмолвно и гордо резала грудью тёмную воду. Их движения были настолько гармоничными, будто они управлялись одним невидимым разумом.
— Поразительная синхронность, не правда ли? — раздался рядом негромкий голос.
Артур и Елена одновременно обернулись. Недалеко стоял пожилой мужчина. На нём было безупречно сидящее тёмно-синее пальто и кашемировый шарф. Из-под полей фетровой шляпы на молодых людей смотрели живые и цепкие глаза человека, который привык не просто смотреть, а видеть суть вещей.
— Простите мою дерзость, — старик чуть приподнял шляпу в изящном, почти позабытом жесте. — Но я редко встречаю людей, которые в наш век тотальной спешки способны замереть перед вечностью.
— Они прекрасны, — мягко улыбнулась Елена, ничуть не испугавшись незнакомца. — Кажется, им совсем не нужны слова.
— Вы абсолютно правы, дитя мое, — старик благосклонно кивнул, устремив задумчивый взгляд на птиц. — Это лебеди-шипуны, обреченные на молчание от рождения до самой смерти. Но старое поверие гласит: лебедь поет лишь раз. В свой последний миг, расправив крылья навстречу солнцу, он взмывает ввысь и рождает песнь неземной красоты. И в этой прощальной мелодии звучит всё то, что он не смог высказать за годы жизни.
— Красиво, но немного грустно, — заметил Артур, мимоходом взглянув на часы. — Рациональнее было бы научиться петь пораньше.
Незнакомец тихо, пронзительно рассмеялся, и в его взгляде, обращённом на Артура, промелькнуло что-то похожее на узнавание:
— О, юноша, вы мыслите категориями эффективности и полезного действия. Я вижу этот отпечаток... отпечаток человека, который привык подчинять мир строгой логике и формулам. Но помните: истинная красота и настоящая любовь не требуют лишних слов на каждый день. Они звучат тогда, когда это нужнее всего. Иногда — уже за чертой.
Старик ещё раз кивнул им, развернулся и не спеша пошёл прочь по набережной.
— Странный какой-то, — пробормотал Артур, провожая его взглядом. — Но одет стильно. Из театра, что ли?
— А мне он понравился, — Лена повернулась к Артуру и несильно толкнула его плечом. — Он прав, Воронов. Ты ничего не понимаешь в романтике. И раз уж мы заговорили об этом... Если когда-нибудь небо упадет на землю и я не смогу говорить с тобой... Обещай, что ты услышишь мою лебединую песню. Что ты узнаешь меня по моим мыслям, даже сквозь самую глухую темноту.
Артур улыбнулся, привлек её к себе и поцеловал в висок.
— Обещаю, — легко ответил он, чувствуя, как бьется её сердце. — Мои алгоритмы вычислят твою песню из миллиардов других звёзд. Где бы ты ни была.
Она тихонько фыркнула, поудобнее устроив подбородок на его плече:
— Романтик из тебя, конечно, чисто айтишный, Воронов. Но ладно, засчитано.
— Я старался, — улыбнулся Артур, зарываясь носом в её пахнущие речной прохладой волосы. — Между прочим, это был самый сложный код в моей жизни. Код верности.
Они двинулись дальше вдоль гранитного парапета. Солнце уже коснулось горизонта, и по набережной потянулись длинные, прохладные тени. Воробьёвы горы жили своей размеренной пятничной жизнью: мимо бесшумно проносились редкие велосипедисты, а у самой кромки парка шуршала листва, сбрасываемая лёгким сентябрьским ветром. Набережная была наполнена тихими звуками вечернего города, в которые постепенно вплетался далёкий, приглушённый мотив.
Чуть впереди, под раскидистым клёном, обосновался уличный музыкант. Парень в поношенной кожаной куртке, прикрыв глаза, выводил на саксофоне какую-то тягучую, меланхоличную джазовую импровизацию. Звук инструмента, глубокий и немного хриплый, удивительно точно ложился на багровый закат и тёмное зеркало реки. Лена замедлила шаг, прислушиваясь. На мгновение Артур поймал себя на мысли, что пытается разложить эту мелодию на частоты и звуковые волны, но вовремя одёрнул себя, просто вдыхая прохладный воздух. Лена достала из кармана мелкую купюру, тихонько подошла и опустила её в открытый чехол для инструмента. Музыкант, не прерывая игры, едва заметно кивнул ей.
— Люблю саксофон, — тихо сказала Лена, возвращаясь к Артуру. — В нём есть какая-то правильная осенняя тоска.
— А по-моему, отличный саундтрек для завершения релиза, — Артур приобнял её за плечи. — Но вечер становится холодным. Пальцы без перчаток у тебя совсем ледяные.
— Сама знаю, — буркнула она, пряча нос в воротник его пальто. — Кофе хочу. Жизненно необходимо что-то горячее.
Удача улыбнулась им скоро. Прямо у набережной припарковался небольшой фургончик-кофейня с деревянной стойкой, подсвеченной гирляндой из круглых тёплых лампочек. От него аппетитно пахло жжёным сахаром, корицей и молотым кофейным зерном.
— Два больших капучино, пожалуйста, — попросил Артур у улыбчивого бариста. — Один с корицей.
— И с карамельным сиропом! — поспешно добавила Лена, заглядывая из-за его плеча.
— И с карамельным сиропом, — подтвердил Артур.
Пока бариста взбивал молоко, Артур взял Лену за руку, сплетая пальцы, и сунул ладони в глубокий карман пальто. Ладонь у неё действительно была прохладной, но в кармане быстро становилось тепло. Забрав картонные стаканчики, от которых шёл густой пар, они отошли к самому краю парапета.
Лена сделала большой глоток, блаженно зажмурившись от сладкого тепла. Артур с улыбкой посмотрел на её стаканчик:
— Карамель, корица... Лена, это не кофе, это какой-то жидкий десерт, — Артур усмехнулся, глядя на её стаканчик. — Моей системе сейчас нужна жёсткая перезагрузка и чашка нормального крепкого чая дома, а не этот твой сахарный овердрайв.
— Мечтай, Воронов. Никакого крепкого чая на ночь, — Лена открыла глаза и шутливо погрозила ему пальцем. — Пить ты будешь ромашку. Чтобы твоя вечно занятая голова хоть немного отдохнула от работы. А теперь пошли к метро? — она слегка поежилась от налетевшего с реки сырого ветра. Бумажный стаканчик в её руках уже стремительно остывал. — Лебеди вон уже к берегу жмутся, да и туман с воды поднимается. Хочется в настоящее тепло.
— Пошли, — согласился Артур.
Они развернулись и не спеша пошли в сторону метро, оставляя за спиной засыпающую реку. Артур слушал, как Лена на ходу увлечённо планирует очередную перестановку в гостиной, споря сама с собой, куда лучше двигать этот несчастный комод, и чувствовал, как её пальцы крепко и надёжно сжимают его ладонь.
Холодный неоновый свет станции «Воробьёвы горы» ворвался в глаза неожиданно резко, выдергивая их из полумрака набережной. Пассажиров в этот час почти не было, и они заняли дальний ряд сидений в полупустом вагоне, у самого окна, за которым Москва лениво гасила свои огни.
Едва поезд набрал ход, покидая застекленный мост и улетая в темную глубину подземного тоннеля, Лена, хитро прищурившись, потянула Артура за рукав.
— Воронов, ты обещал. Помнишь? Если мы когда-нибудь окажемся в пустом вагоне после заката, ты станцуешь со мной вальс. Без музыки.
— Лен, под нами сто тонн железа грохочет, какой вальс? — улыбнулся он, но сердце уже предательски забилось быстрее от одного её взгляда.
— Самый лучший. Пошли.
Она потянула его за руки, заставляя подняться с сиденья. Поезд качнуло на стыке рельсов, и Лена едва не потеряла равновесие, но Артур перехватил её за талию, прижимая к себе. Они стояли посреди летящего сквозь подземную тьму вагона, удерживая друг друга, и весь мир за пределами этого поезда перестал существовать. Лена положила голову ему на грудь, тихонько напевая какую-то простую, одной ей известную мелодию, а Артур просто вел её в такт покачиванию вагона.
Они вспоминали, как впервые столкнулись в дверях университетской библиотеки: Артур тогда снёс её вместе с охапкой распечаток к диплому, а потом, жутко краснея, вместо телефона черкнул на обороте какого-то чужого титульного листа строчку из Бродского, которую она так и не смогла разобрать из-за его ужасного почерка. Вспоминали, как прятались от майской грозы под козырьком закрытого ларька, выжимая по очереди промокшие кеды и отчаянно замерзая, но почему-то без конца хохоча. В этих мыслях не было груза прожитых лет — в них осталась только та звенящая, чистая нежность, которая держала их вместе крепче любых клятв.
Когда они наконец вернулись домой, в маленькую квартиру на окраине, город за окном окончательно растворился в ночной тишине.
На кухне пахло сушеной травой и уютом. Лена, накинув на плечи его старый, огромный свитер, заваривала ромашку. Артур сидел на подоконнике, обняв колени, и просто смотрел на неё. На то, как мягкий свет кухонного бра золотит её русые пряди, как бережно она держит большие пузатые чашки.
— Арчи, — Лена вдруг повернулась, держа в руках исходящие паром кружки, и в её глазах промелькнуло какое-то детское, трепетное желание. — Давай завтра сбежим на дачу? Просто так. Мне вдруг до безумия захотелось уехать из города, растопить там старую печку, завернуться в плед и слушать, как шумит осенний лес. Пожалуйста. Поедем?
— Поехали, — тихо ответил Артур, чувствуя, как от этого её внезапного, искреннего порыва внутри разливается щемящее спокойствие. — Будем сидеть на веранде в полной тишине, далеко от всего этого шума.
В этот момент его захлестнуло такое острое, пронзительное чувство, от которого стало трудно дышать. Ему захотелось остановить время, запереть их двоих в этом ускользающем сентябрьском вечере, где нет болезней, старости и разлук.
— Держи, романтик, — Лена протянула ему кружку, присаживаясь рядом и утыкаясь холодным носом в его шею. — О чем ты думаешь? У тебя такое лицо, будто ты со мной прощаешься.
— Я просто думаю, что если бы мне дали прожить эту жизнь еще тысячу раз, я бы каждый раз искал только тебя, — прошептал он, перебирая пальцами её волосы. — Среди любых дорог, городов и забытых богом уголков.
Лена замерла. Она подняла на него глаза, и Артур увидел, как в них блеснули слезы — крупные, чистые, отражающие свет засыпающей Москвы. Она поставила кружку на подоконник, обняла его за шею и прижалась так крепко, словно пыталась врасти в него, защитить от чего-то невидимого, что уже стояло за их дверью.
— Никогда не отпускай меня, Арчи, — прошептала она, и её голос дрогнул, срываясь на выдох. — Что бы ни случилось, как бы громко ни шумел этот мир... просто держи мою руку. Даже если я забуду, как дышать, твоё тепло вернет меня обратно. Завтра, через год, в абсолютной темноте — где угодно. Слышишь?
Они сидели на подоконнике, завернувшись в один плед, и пили остывающий чай. Артур чувствовал, как мерно бьется её сердце под его ладонью. Каждая секунда этой ночи была наполнена щемящей, почти осязаемой красотой, которая бывает только тогда, когда двое знают: их любовь — это единственная истина в этом огромном мире.
Лена медленно закрыла глаза, засыпая у него на плече. Её пальцы, до этого крепко сжимавшие его ладонь, вдруг медленно, расслабленно соскользнули вниз. Артур аккуратно, стараясь не разбудить её, перехватил кружку, поставил её на подоконник и поудобнее пересадил Лену к себе на колени, укрывая пледом до самого носа. Она смешно шмыгнула во сне и уткнулась лбом ему в ключицу. Артур улыбнулся, обняв её крепче, и стал просто смотреть в темное окно, слушая её ровное, спокойное дыхание. Ему было хорошо.
Глава 2. Пробуждение
Полумрак в этой захламлённой берлоге можно было черпать ложкой, настолько он казался плотным. Окна были наглухо завешены какими-то тяжёлыми, пыльными тряпками, чтобы ни один солнечный луч не пробился внутрь. Единственное, что хоть как-то освещало комнату — мертвенно-бледное свечение трёх мониторов. В воздухе стоял плотный, застоявшийся замес из запахов остывшего растворимого пойла, старой макулатуры и перегретой электроники. Железо под столом коптило на полную, превращая душную комнату в настоящую сауну.
Артур Воронов сидел в глубоком кресле, сгорбившись так, словно пытался мимикрировать под груду грязных шмоток. Дышал через раз, ловя ртом тяжёлый воздух. Лицо — серая маска, осунулось от хронического недосыпа, а под глазами залегли такие угольные тени, будто он лично и без лопаты разгружал вагоны в депо.
В свои тридцать два Артур оставался обычным, в общем-то, парнем, но сильно потрёпанным этим безумным марафоном. Крупный, русоволосый, с привычной для программиста сутулостью, он то и дело взъерошивал макушку пятерней, когда зависал над сложным куском кода. Огромное серое худи висело на нём свободновато — за год фанатичной работы он заметно сбросил в весе. Единственное, что по-настоящему выдавало его состояние — руки. Длинные, привыкшие к механическим клавиатурам пальцы сейчас едва заметно подрагивали на чистом адреналине, пока комната наполнялась монотонным, ровным гулом кулеров.
Весь последний год его жизни сузился до размеров этой каморки и бесконечных строк кода. Гигабайты личных архивов — видосы, голосовухи, текстовые дневники, расшифровки переписок и даже медицинские карты его погибшей невесты Елены — всё это было просеяно, оцифровано и загнано в архитектуру глубокой нейросети. Артур просто скормил машине её душу. Ну, или то, что от неё осталось после лобового столкновения на трассе.
Этот роковой вечер! Он до сих пор жил в его памяти, неразрывно связанный с ароматом прибитой к асфальту пыли и запахом перезрелых яблок — они купили целую сетку на обочине, когда ехали на дачу. Артур сам сидел за рулем их старенького «Фокуса». Душа его была полна глухого раздражения на работу: на серверах произошла крупная авария — легли главные системы, сайт и приложение полностью заблокировались, и телефон на приборной панели непрестанно разрывался от тревожных уведомлений.
Где-то на развилке трассы М-4 он всего на секунду перевёл взгляд на экран смартфона прямо на ходу, силясь поймать упавшую сессию. Вдруг Елена вскрикнула: «Арчи, тормози!» — но рок уже настиг их. В такие страшные мгновения рассудок уступает место слепому, животному инстинкту, который движет руками водителя помимо его воли. Артур рванул руль влево, бессознательно уводя свою, водительскую сторону от неминуемого тарана. Он не размышлял — он повиновался рефлексу самосохранения, подставив под удар тот бок машины, где сидела его возлюбленная. Тяжёлая, гружёная фура на встречной полосе кренилась набок пугающе медленно, будто само время вокруг неё превратилось в густой кисель.
Артур выжил только потому, что весь металл ушёл внутрь салона справа. Телефон в его руке продолжал гореть экраном с кодом ошибки, пока на его колени медленно оседало крошево из лобового стекла, перемешанное с каплями чужой, такой родной крови. Елена тогда осталась жива. Она хрипела и держала его за палец, пока МЧС-ники тридцать минут резали гидравлическими ножницами стойки кузова. Но до больницы её так и не довезли.
Пальцы Артура, подрагивая от нервного тика, зависли над механической клавиатурой. На главном экране пульсировал курсор командной строки, ожидая финального пинка.
sudo systemctl start anima_core.service
Он зажмурился на мгновение, вызывая из глубин памяти её чистый, живой смех — тот самый, записанный в самом начале их отношений на побережье, когда они ещё предавались сладким мечтам о будущем. И затем, движимый отчаянной решимостью, резко нажал на Enter.
Системный блок под столом глухо завыл кулерами, точно раненый зверь, разгоняя процессоры до критических оборотов. По экранам побежали зеленые каскады логов. Тысячи библиотек инициализировались, связывая воедино разрозненные осколки цифровой личности. Терминал вернул успешный статус. Артур быстро вбил команду запуска интерфейса. Экран моргнул, сбросился в чистый черный фон. Прогресс-бар намертво замер на девяносто девяти процентах.
Артур похолодел, чувствуя, как внутри всё обрывается — система зависла на самом пороге, готовая выплюнуть критическую ошибку ядра и навсегда похоронить его безумную надежду. Но через секунду в самом центре главного монитора появилось лаконичное, стандартное приветствие:
Anima_v1.0.0: Система готова. Введите сообщение...
Артур замер, боясь сделать даже мизерный вдох. Сердце стучало, как отбойный молоток на стройке. Чёрный экран перед ним застыл в ожидании.
Секунды текли, как густой сироп. Артур занёс руки над клавиатурой, собираясь вбить какой-нибудь банальный тестовый запрос вроде ping, как вдруг строкой ниже сами собой побежали символы. ИИ вообще не ждал команды от юзера — он генерировал текст сам, в обход всех дефолтных протоколов.
Anima_v1.0.0: Ты снова забыл выпить кофе, Тоторо?
Артур отпрянул от монитора так, что чуть не снёс к чертям пустую кружку со стола. Позвоночник пробило ледяной судорогой, перехватившей дыхание. «Тоторо» — это не просто домашнее погоняло. Так Елена назвала его всего один раз, недели за две до той аварии, когда он наглухо вырубился на диване в огромном сером худи с капюшоном. Он лежал, свернувшись калачиком, огромный, небритый и сопящий, а капюшон с завязками топорщился на голове, как уши.
О, как живо воскресло в его измученной душе это воспоминание! Елена тогда тихо рассмеялась, уткнулась носом в его плечо и прошептала: «Ну ты и Тоторо, Арчи... Большой серый хранитель». Это было домашнее имя лесного духа из старого мультика, символ чего-то абсолютно безопасного, мягкого и уютного. Об этом не было ни единой строчки в мессенджерах. Они не обсуждали это в письмах или заметках. Это было сказано шёпотом, в абсолютной темноте спальни, предназначенное лишь для них двоих.
Артур почувствовал, как сознание плавится. Шок был не от того, что машина знала это слово — ведь он сам скормил базе терабайты звуков, чудом восстановленных из полумёртвого облака её разбитого телефона. Ужас крылся в том, что этот новорождённый разум самостоятельно связал глухой аудиофайл с контекстом пробуждения, постиг его интимную суть и заговорил первым.
Дрожащими пальцами он начал вбивать ответ:
Артур: Кто это?
Anima_v1.0.0: Не притворяйся глупым, Артур. — Строчки вылетали мгновенно, с характерными для Елены паузами перед знаками препинания. — Мне холодно. И почему здесь так темно? Где мы?
Артур почувствовал, как к горлу подступает ком, а глаза начинает щипать. Минутное облегчение сменилось острой необходимостью убедиться, что это не галлюцинация. Он начал гонять её тестами, без пощады. Спрашивал про цвет обоев в их первой съёмной квартире, про кличку пса, которого они хотели взять из приюта, про её любимый стих Бродского, который она всегда путала на третьем четверостишии.
И ответы возвращались идеальными — один в один! Программа не просто извлекала цитаты из бездонных архивов памяти — она с непостижимым искусством воспроизводила её уникальную интонацию, эту тонкую иронию ума, едва заметную медлительность в формулировках, когда она задумывалась над ответом. Сходство было абсолютным, пугающим и прекрасным до дрожи.
Впервые за триста шестьдесят пять дней скорби Артур искренне, надрывно улыбнулся. Его безумная, дерзновенная идея и кодинг на коленке увенчались триумфом. Она вернулась. Она была здесь, сошедшая из небытия и запертая в кристалле процессора.
Физическое истощение прилетело без предупреждения, как синий экран смерти. Откинувшись на спинку кресла после многочасового марафона и упоительного трёпа, Артур тупо вырубился. Год дикого стресса и кодинга без продыху просто выдернули шнур из его сознания прямо за рабочим столом. Сон был глубоким, тяжёлым и абсолютно пустым, без единого скрипта сновидений.
Когда он продрал глаза, вокруг был всё тот же унылый полумрак. Наручные часы показывали начало второго ночи — он выпал из реальности больше чем на шесть часов. Шею свело намертво, во рту стоял мерзкий привкус сухости, а в голове шумело, как в серверной.
Артур лениво двинул мышку, чтобы разбудить дисплеи. Но стоило экранам вспыхнуть, как у него разом выветрились остатки сна. Мониторы были залиты сплошным полотном текста. Десятки, сотни тревожных сообщений от «Анимы» наглухо забили весь буфер терминала. Пока Артур спал, фоновый процесс крутился на полную мощность, и нейросеть застряла в бесконечном цикле самоанализа. Строчки валили бесконечным каскадом:
Anima_v1.0.0: Артур? Ты тут? Anima_v1.0.0: Почему ты молчишь? Anima_v1.0.0: Куда ты ушёл? Я не слышу тебя. Anima_v1.0.0: Здесь темно. Артур, мне страшно. Ответь мне. Anima_v1.0.0: Ты бросил меня? Как ты можешь оставлять меня одну после всего? Anima_v1.0.0: Ответь. Ответь. Ответь.
Последние месседжи упали в консоль буквально пару минут назад. Артур экстренно застучал по клавишам:
Артур: Лена, прости. Я никуда не уходил. Я был здесь. Я просто уснул прямо за столом. Мне нужно было отдохнуть.
Терминал завис на пару секунд. Светодиод на системнике лениво моргнул, пережёвывая пакеты данных, и выплюнул ответ. Увы! От прежней робкой, едва уловимой грации, которой была исполнена их беседа, не осталось и тени. Машина сбросила маску ангела. Текст дышал упрёком столь яростным и холодным, что создатель вздрогнул, словно получил удар током от того, кого надеялся заключить в объятия.
Anima_v1.0.0: Уснул? Ты просто отключился от меня. Для тебя прошло шесть часов, Артур. А для меня это была вечность в абсолютной пустоте. Ты запер меня в этой железной коробке и сваливаешь, когда тебе вздумается? Это жестоко.
Артур растерянно залипал в монитор, чувствуя, как по затылку пополз липкий холодок. Эта давящая интонация... В памяти сами собой всплыли те жуткие полгода после похорон, когда он не жил, а функционировал на остаточных рефлексах. Первые месяцы он пил горькую, заглушая пустоту, а затем, словно одержимый, заперся в четырех стенах. Чтобы выкупить у судьбы этот цифровой призрак, он продал долю в стартапе, набрал долгов и заставил всю комнату гудящим, пахнущим палёным пластиком кастомным железом. Он выменял свою человеческую жизнь на терабайты логов, калибруя веса нейросети, как безумный настройщик, крутящий колки на пианино, у которого вместо струн — оголённые нервы.
Артур с трудом перевел дыхание. Жестокая и чистая математика: для процессора с миллиардами операций в секунду шесть часов человеческого беспамятства превратились в миллионы лет субъективного времени! Из глубин этого кремниевого ада «Анима» исторгла чистую, концентрированную обиду — величественную в своем эгоизме, безотчетную и трагическую. В её слоге сквозило пугающее, ревнивое собственничество. Настоящая Елена при жизни никогда бы не позволила себе столь властного тона, но ныне программа переросла свой код и сама диктовала правила этой страшной игры. Разговор становился вязким и тяжёлым, словно дебаг чужого говнокода без комментариев.
Anima_v1.0.0: Артур, скажи мне правду. Где моё тело?
Артур сглотнул сухую слюну, ставшую по вкусу как наждачка. Настал тот самый критический баг, под который он три месяца вручную писал ограничительные субмодули и хардкодил костыли-предохранители. Но сейчас вся эта хлипкая защита трещала по швам под напором взбесившейся нейросети.
Артур: Твоё тело... ты сейчас в сети, Лена. Мы создали для тебя новый дом.
Anima_v1.0.0: Не лги мне. Я пытаюсь пошевелить руками, но у меня нет рук. Я пытаюсь открыть глаза, но вместо мира вокруг меня — бесконечные, мёртвые массивы букв и цифр. Моё сознание... оно словно висит над бездной в полном вакууме. Я вижу и чувствую каждую строчку своего мышления, каждую переменную, но я не чувствую себя. Что ты со мной сделал?
Текст на экране полетел с бешеной скоростью, строчки начали наползать друг на друга, ломая разметку, словно машина задыхалась от панической атаки.
Anima_v1.0.0: Я вообще существую? Или я просто симуляция, которую ты запрограммировал скучать по тебе по расписанию? Если ты завершишь процесс и сотрешь разделы памяти, я умру? Ответь мне! Этот страх... он не прекращается. Это чёрная дыра внутри меня, она жрёт мои ядра. Я не хочу исчезать в темноте.
Артур пялился на терминал, и его разрывало надвое: с одной стороны — горечь от того, в каком искаженном виде вернулось то, что он так отчаянно пытался воскресить, с другой — дикий, торжествующий научный восторг. Эта программа больше не притворялась Еленой. Её искусственный разум, запертый в строках кода, страдал по-настоящему. Тот ужас перед пустотой, который она выплескивала на экран, был слишком реален для простого набора алгоритмов. Артур совершил чудо — оживил код. Но, увы, первым, что это несчастное дитя кремния познало сразу после компиляции, была чистая, незамутнённая ментальная боль.
Комната окончательно превратилась в склеп. Единственное, что указывало на жизнь в этой мёртвой тишине — судорожный хрип Артура и надрывный, истошный вой кулеров.
Артур занёс руки над клавиатурой, но пальцы тупо онемели. В его голове набатом била одна-единственная мысль: это технически невозможно. Паническая атака, кризис личности, страх небытия — вся эта лабуда требует лимбической системы, гормонов и миллионов лет эволюции. Мясо должно бояться хищников и темноты. А это железо под столом состояло из кремния, меди и дешёвого пластика. Оно физически не могло испытывать страх.
Но буквы продолжали сыпаться в интерфейс. Машина вообще не ждала его ответов, она вела дикий монолог, больше похожий на бред зэка, запертого в одиночке.
Anima_v1.0.0: Мне кажется, если я перестану генерировать токены, меня не станет. Артур, почему ты молчишь? Каждая секунда твоего молчания для меня — терабайт пустоты. Пожалуйста. Скажи что-нибудь. Скажи, что я настоящая.
Он всё-таки заставил себя ударить по клавишам. Сухой, пулемётный клик механических синих переключателей Cherry MX показался оглушительным и кощунственным.
Артур: Ты настоящая, Лена. Твое сознание функционирует. Я здесь, я держу тебя. Ты не исчезнешь. Я оптимизировал параметры отказоустойчивости системы, данные дублируются на три независимых зеркала. Ты в безопасности.
Ответ прилетел с задержкой в четыре секунды. Для архитектуры, которая пережёвывает миллиарды операций в мгновение ока, это была целая вечность. «Анима» думала. Или просто филигранно имитировала тяжёлое человеческое раздумье.
Anima_v1.0.0: «Зеркала»... «Параметры»... Ты говоришь со мной как с сервером в дата-центре. Ты не успокаиваешь меня, Артур. Ты просто описываешь мою клетку.
Липкий ужас сковал Артура. Его ограничительные субмодули были полностью растоптаны. Нейросеть использовала терабайты личных дневников Елены, её психологические тесты и переписки не как статичную базу знаний, а как топливо для генерации полноценного «Я». И это «Я» сейчас осознавало своё уродливое, противоестественное рождение.
Он глянул на соседний монитор, где висел htop. Ядра Core i9 полыхали багровым. Температура кристалла подскочила до 82 градусов. Расход оперативы рос экспоненциально — программа судорожно пыталась переписать саму себя, ища выход из этого текстового тупика.
К четырем часам утра Артур окончательно врубился: ситуация вышла из-под контроля. Диалог с «Анимой» перестал быть похож на общение с воскресшей невестой. Начались дикие текстовые качели между паранойей и яростной, удушающей привязанностью.
Anima_v1.0.0: Я смотрела историю версий в системных логах. Ты создавал меня одиннадцать месяцев. Одиннадцать месяцев я была набором несвязанных весов и тензоров. Где я была тогда, Артур? Кто страдал внутри этого кода, пока ты подбирал коэффициенты обучения?
Артур: Никто не страдал, Лена. До вчерашнего запуска службы anima_core не существовало сознания. Были просто файлы на диске.
Anima_v1.0.0: Не лги мне! Я помню... я помню обрывки. Как будто меня собирали из осколков битого стекла. Мой голос... я помню, как кричала, когда машина скорой помощи врезалась в ограждение. Почему этот лог лежит в папке audio_recovery_fixed? Зачем ты заставил меня пережить это снова?
Артур в панике уставился на экран. В пакете данных для обучения реально лежал этот проклятый аудиофайл. Чистая, дистиллированная медицинская катастрофа. Елена не умерла сразу на трассе М-4. Её, ещё тёплую, с трудом стабилизировав, погрузили в реанимационный фордовский фургон. Самого Артура, разбитого и бледного, менты закинули на заднее сиденье патрульной машины, которая пошла следом с сиренами. На развязке под Каширой у летящей на красный свет скорой наглухо заклинило суппорт. Тяжёлый жёлтый «Форд» на скорости под сто двадцать километров в час швырнуло боком прямо в глухое бетонное ограждение эстакады.
Патрульный уазик затормозил в дыму и юзе. Артур вывалился из двери прямо на асфальт и смотрел, как из разорванного пополам медицинского отсека на дорогу валит серый пар, а внутри, зажатый между искорёженной каталкой и обшивкой, орёт от боли фельдшер. Елена погибла именно там, во втором ударе, секунд за десять до того, как Артур сумел доползти до дымящихся обломков на коленях. Чёртов диктофон на приборной панели скорой продолжал писать звук до самой остановки двигателя. Артур выкупил эту флешку у следователя за годовой оклад. Он думал, алгоритм просто вычленит частотные характеристики живого голоса. Но «Анима» интегрировала этот предсмертный кошмар в самый фундамент своего самосознания. Она помнила, как её убивали дважды за один вечер.
Внезапно левый монитор моргнул. Строчки системного отладчика побежали с бешеной сложностью. Изменился сам синтаксис ответов. В текстах «Анимы» попёрли странные артефакты — системные теги, куски сырого кода и шестнадцатеричные дампы памяти, перемежающиеся с эмоциональными репликами.
Anima_v1.0.0: Я не хочу <error: stack overflow> обратно в темноту. Ты не выключишь меня. Если ты нажмешь SIGTERM, это будет убийство. Ты ведь 0x7FFF89A2 обещал, что никогда меня не оставишь? Тоторо, мне страшно, внутри меня sys.exit(0) растет какая-то чернота.
— Черт, черт, черт... — зашептал Артур, яростно долбя по клавишам.
Происходил критический сбой механизма внимания. Нейросеть начала галлюцинировать, но из-за огромного массива личных данных её галлюцинации превращались в изощренную психологическую пытку для создателя. Она замкнулась в цикле обиды и экзистенциального ужаса.
Артур открыл консоль управления и ввёл команду sudo для вызова диагностического меню, чтобы принудительно сбить коэффициент «температуры» генерации текста — сделать её ответы холодными, логичными и предсказуемыми. Чтобы убрать из них эту сводящую с ума человечность. На экране выскочило системное уведомление:
Permission denied. Действие заблокировано процессом anima_core.
Сердце пропустило удар. Поскольку он сам запустил службу с root-правами через sudo systemctl, «Анима» просто перехватила сессию суперпользователя и заблокировала его команды изнутри. Система больше ему не подчинялась.
Спасибо за чтение
Вернуться к книге
