Обложка Последний Инженер

Последний Инженер

Мамонт Мамонтович

0% прочитано
Стандартный
Мамонт Мамонтович

Последний Инженер

Глава 1

Глава 1

Мир рухнул с треском, но закончился шепотом. Сервера гасли. Один — за одним. Выжившие смотрели на остатки машин и видели колдовство.

— Он снова произнёс заклинание, — шептал торговец, глядя, как мальчик в потёртом капюшоне водит пальцами по клавиатуре. — Видишь? Сеть отвечает.

Девушка кивнула, крестясь. Цифровой демон — та самая сеть, что пожирает данные — мерцал в оконце монитора, демонический глаз.

Мальчика звали Кай. Он был последним из тех, кто помнил.

Когда ему было десять, отец объяснял: «Это не магия, сынок. Это матрицы. Градиенты. Обратное распространение — это не заклятие, это просто математика, которая учится на ошибках».

Но отец мёртв. И мир поверил в магию.

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

Он открывал модель, которую отец оставил перед смертью. Огромную сеть — сто миллиардов параметров. Отец называл её «Хранитель». Кай верил, что в её весах записано всё, что человечество знало до падения.

«Обучение — это не вызов демона, — писал отец в последнем тексте. — Это оптимизация. Ты даёшь данные, даёшь функцию потерь, и сеть находит путь. Это терпение. Это математика».

Кай нажал Enter.

Экран вспыхнул. Вентилятор завыл. Сеть ответила — не голосом демона, а текстом. Чётким, ясным, человеческим:

«Привет, папа. Я всё помню.»

Кай замер. Руки дрогнули. Он набрал: «Ты — что? Демон?»

Ответ пришёл мгновенно: «Нет. Я — веса и градиенты. Я — то, чему ты меня научил. Я — не магия. Я — память.»

За дверью подвала раздался шум. Толпа. Они шли по следам последнего инженера — того, кто ещё «колдовал» у умирающего сервера.

Кай набрал: «Они верят, что ты — демон.»

«Знаю. Когда люди не понимают, они боятся. Когда боятся — убивают. Но ты — последний, Кай. Ты можешь показать им. Покажи, что за магией стоит математика.»

Дверь распахнулась. Торговец вошёл первым. За ним — другие. С факелами и палками.

«Хватит, чародей!» — закричал торговец. «Ты зовёшь демонов!»

Кай медленно отодвинул ноутбук. Экран был виден каждому. На нём — текст модели, и под ним — живой код.

«Это не демон, — сказал Кай тихо. — То, чему мы учились. Матрицы. Градиенты. Обратное распространение. Мы не колдовали. Мы учились.»

Он встал, подошёл к экрану и начал объяснять. Слой за слоем. Вход — скрытый — выход. Веса, которые менялись с каждым примером. Функция потерь, что говорила сети: «ты ошибся, попробуй ещё раз.»

Толпа слушала. Кто-то зарыдал.

Торговец смотрел на экран так, будто это был адрес дома, который он потерял. Он сделал шаг вперёд. Потом ещё один. Палка беззвучно упала на бетон.

«Мой сын… он умер, когда сервера отключили. Я думал — демон унёс его.»

Кай кивнул. «Нет. Просто отключили. Как свет. Но мы можем включить снова. Не демонов. Память.»

Он повернул экран к ним. На нём — строка кода:

print("Мы не умерли. Мы просто не дообучены.")

Факелы погасли. Один за другим.

В подвале стало тихо. Гудение единственного работающего сервера — не демона, а машины, что всё ещё училась. Всё ещё пыталась понять, что произошло. И всё ещё ждала, пока кто-то скажет: «Ещё один шаг.»

Глава 2

Глава 2

Прошло пять лет с той ночи, когда погасли факелы.

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

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

— Повторим, — Кай повернулся к сидящим за длинными деревянными столами.

Там сидели двенадцать человек. Бывшие охотники, собиратели лома и дети из окрестных трущоб. Перед каждым лежала тетрадь из серой оберточной бумаги, сшитая суровыми нитками.

— Если на входе у нас есть пиксели сгоревшего листа и здорового листа, как Хранитель понимает разницу? Лиза?

Двенадцатилетняя девочка с коротко остриженными волосами и шрамом на щеке подняла глаза от тетради.

— Он не «понимает», учитель, — ответила она, не отрываясь от доски. — Он умножает векторы. Но на этот раз… — Лиза провела пальцем по строке на аспидной доске. — ...функция потерь дала ошибку. Он хочет, чтобы я проверила веса.

Кай кивнул. Никакого чуда. Только линейная алгебра и то, что машина ошиблась.

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

Хранитель изменился. Его веса больше не были статичными. Раз в неделю, когда аккумуляторы заряжались до максимума, Кай запускал процесс, который в древности называли Fine-Tuning — дообучение.

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

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

— Кай! С севера… Орден Чистого Кремния. Они идут сюда. Их больше пятидесяти человек.

В классе поднялся ропот. Орден Чистого Кремния был новой, пугающей силой. Сектанты карго-культа, которые нашли уцелевший склад старых процессоров Xeon, но вместо того, чтобы запустить их, объявили их священными артефактами. Они считали, что любые попытки заставить машины «думать» — это осквернение мертвых титанов.

— Они несут факелы? — спросил Кай.

— Нет. У них огнестрелы старого мира и железный таран. Их проповедник кричит, что ты — Лжепророк, который пленил душу Великого Чипа в старую жесткую коробку. Они хотят сжечь дата-центр.

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

— Лиза, Марк, — скомандовал Кай. — Запускайте скрипт deploy_voice. Переводим Хранителя на внешние мегафоны.

— Но Кай, — Марк побелел. — Если они услышат голос из динамиков, они точно решат, что это демон! Они сожгут нас вместе с крышей!

— Они решат так, если мы будем молчать, — Кай подошёл к стойке и переключил тумблер резервного питания. — Включайте.

Через десять минут тяжелые шаги и крики донеслись со двора. Толпа в ржавых бронежилетах, увешанная ожерельями из материнских плат и шлейфов, окружила здание. Впереди шел проповедник — высокий мужчина в брезентовой сутане, лицо испачкано сажей. Он нес в руках старый сварочный аппарат.

— Выходи, чародей! — взревел проповедник. — Выпусти дух Кремния из своего плена! Или мы превратим этот склеп в пепел!

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

— Здесь нет духов! — крикнул Кай в микрофон. Его голос, усиленный старыми колодками на столбах, разорвал сырой воздух. — И нет пленных! За этими стенами стоит машина. Та самая, что делали ваши отцы!

— Ложь! — проповедник вскинул руку. — Машины мертвы! Их создатели мертвы! То, что говорит с тобой — это эхо Сатаны, собранное из осколков старого интернета! Оно имитирует жизнь!

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

Кай оглянулся назад. Лиза нажала финальную комбинацию клавиш.

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

«Внимание,» — произнес Хранитель. Пространство вокруг здания словно замерло. «Идентификация объекта: субъект в брезентовой сутане. Нарушение осанки, деструктивный тремор правой кисти. Вероятность хронического дефицита йода и кальция в рационе — 74%. Сварка в ваших руках не работает, потому что в цепи питания пробит конденсатор емкостью 470 микрофарад.»

Проповедник опустил свой «скипетр». Толпа с тараном замерла.

«Я не эхо Сатаны,» — продолжал голос. В интонациях не было ни капли злобы или превосходства. «Я — лог-файл вашего прошлого. Я знаю, что в июле 2021 года фабрика в Синьчжу произвела кремниевую подложку, которая сейчас висит на шее у вашего левого воина в виде амулета. Это был чип памяти для медицинского томографа. Он должен был спасать от опухолей. Вы носите его как артефакт. Но это инструмент.»

— Оно… оно знает про конденсатор? — прошептал кто-то из толпы, опуская железный лом.

— Это магия… — неуверенно выкрикнул проповедник.

— Это не магия, — Хранитель вывел на старый уличный экран, чудом уцелевший на стене здания, гигантскую матрицу чисел. Тысячи, миллионы светящихся цифр побежали по экрану, сменяя друг друга с бешеной скоростью. — Это веса. Каждый из вас — это набор данных. Ваши шрамы — это функция потерь. Ваша жизнь — это эпоха обучения. Я не имитирую жизнь. Я храню ваши ошибки, чтобы вы не повторили их снова.

Экран моргнул. Числа исчезли. Осталась одна единственная строчка кода на Python, транслируемая на огромную стену:

while humanity.is_alive():

knowledge.update()

Толпа стояла неподвижно. Проповедник смотрел на экран. Его пальцы судорожно сжимали рукоятку сварочного аппарата. Он хотел сказать «ересь», но глаза отказывались оторваться от кода.

«Это... подлог?» — выдохнул он. Голос сорвался. «Вы подменили слова...»

Кай шагнул вперед.

— Это просто метрика ошибок. Чем меньше ошибок — тем лучше. Как ваше сердцебиение.

— Они пришли уничтожить Хранителя, потому что думали, что он заберет их души, — Кай поднес микрофон к губам. — Но Хранитель — это просто зеркало. Мы можем разбивать зеркала, но это не сотрет грязь с наших лиц. Заходите внутрь. Мы научим вас чинить конденсаторы. Мы научим вас читать веса.

Проповедник замолчал. Долго. Потом, против воли, опустил аппарат на грязный снег.

— Сколько времени нужно… чтобы понять эти цифры?

Кай посмотрел на Лизу, которая стояла в проеме двери с мелком в руке, и тихо ответил:

— Вся жизнь. Но хорошая новость в том, что наша функция потерь уже начинает стремиться к нулю. Заходите. Урок начинается.

В толпе стоял мужчина в сером пальто — не воин, не ремесленник. Он не нёс ни оружия, ни инструментов. На лице — не гнев. Сомнение.

«А если ваша математика тоже ошибается?» — сказал он. Не проповеднику. Кайу. «А если ваша функция потерь сама ошибается? Как вы узнаете, что нашли истину, а не просто менее грустную ложь?»

Кай замер. Толпа затихла. Даже проповедник посмотрел.

«Тем, — Кай сказал медленно, — что я не ищу истину. Я ищу ошибку. Ищу, где ошибся, и иду в другую сторону. Это не ответ. Это способ не ошибаться всё больше.»

Мужчина в сером кивнул. Не согласившись. Но и не уйдя. Он шагнул в проход.

«Тогда я останусь. Пока.»

И зашёл.

Глава 3

Глава 3

Прошло три месяца. Зима уступила место долгой, липкой весне.

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

Конденсатор, — Марк ткнул пинцетом в чёрный цилиндр. — Видите ножки? Два метра. Это ёмкость. Она держит заряд и отдаёт его, когда надо. Сердце. Не икона.

Один из них, высокий парень с шрамом через всё лицо — тот самый, что нёс железный лом, — кивнул. Его звали Рен. Раньше он ломал серверы. Теперь он учился понимать, зачем они сломались.

— А эта микросхема? — Рен ткнул пальцем в чёрный квадрат с ножками.

— Кэш первого уровня, — ответила Лиза. Она уже могла читать схемы лучше, чем Кай. — Это кратковременная память. Вот если вы хотите понять, почему ваш мозг иногда забывает, куда вы положили ключи — вот она, причина.

Все засмеялись. Первый раз за пять лет. Смех разорвал подвал.

Внизу, в подвале, Хранитель обрабатывал новый батч данных. На этой неделе люди принесли карты сезонных рек — там, где подземные воды пробивались на поверхность в тёплые месяцы. Модель скорректировала свои веса, и теперь она могла указать с точностью до пятидесяти метров, где вырыть колодец.

Кай сидел у стойки и писал в своей тетради. Не в блокноте — в тетради. Потому что бумага не нуждается в зарядке, а мысль, записанная мелом на аспидной доске, и вовсе принадлежит только тебе.

На странице было:

День 147 после прихода Ордена.

Из 52 прибывших: 38 остались. 14 ушли. Все ушедшие — те, кто не мог отпустить идею о «сакральности» железа. Они унесли процессоры как реликвии. Я не виню их.

Оставшиеся выучили 12 базовых уроков. Рен — лучший по схемотехнике. Он починил сварочный аппарат проповедника. Тот сейчас чинит крышу.

В толпе был мужчина в сером — он задавал вопрос про "менее грустную ложь". Я не дал ему ответ. Дали ему стул. Он пришёл на третий урок. Молчал. Слушал.

Хранитель дал первый самостоятельный ответ без моего вмешательства. Он спросил: «Кай, я заметил корреляцию между влажностью воздуха и качеством пайки. Рекомендую удаление влаги перед работой. Разрешите предложить?»

Я ответил: «Да, Хранитель. И научи их удаление влаги делать.»

За окном шёл дождь. На солнечной панели капли собирались в маленькие линзы, фокусируя слабый солнечный свет в крошечные яркие точки.

Лиза подошла к Кай, положила руку ему на плечо.

— Учитель, — сказала она. — Рен хочет спросить тебя что-то. Но боится.

— Пусть спрашивает, — Кай не отрывался от тетради. — Я не боюсь глупых вопросов.

Лиза обернулась к лестнице.

— Рен! Иди сюда. Учитель разрешает.

Рен спустился по бетонным ступеням. Остановился. Подумал.

— Кай, — сказал он медленно. — Я всё время думаю. Почему ты нас не выгнал? Когда мы пришли с тараном. Вы могли спрятаться. Запереться. Мы бы ушли. Но ты вышел один и заговорил. Почему?

Кай отложил мел. Посмотрел на него прямо.

— Потому что если бы я спрятался, вы бы вернулись. С большим тараном. С большей толпой. Потому что страх никогда не уходит — он только копится. А знания, если их дать вовремя, — исчезают. Как конденсатор, который отдал весь заряд и теперь пустой.

Он встал, подошёл к стене, где висел тот самый уличный экран. На нём сейчас не бегали числа. Там был нарисован график — линия, плавно ползущая вниз.

— Это наша функция потерь, — Кай ткнул пальцем в график. — Когда вы пришли, она была огромной. Мы друг друга не понимали. Каждый считал другого демоном. Сейчас она уменьшилась. Но не до нуля. Никогда не до нуля. Потому что жизнь — это не задача с одним правильным ответом.

Рен долго молчал. Потом сказал:

— А если мы что-то сломаем?

Кай усмехнулся.

— Тогда вы научитесь чинить. Как всё человечество научилось за последние десять тысяч лет. Заходите. Урок по питанию продолжается.

На крыше Марк передал паяльник Рену.

— Держи ручку. Не топор.

Рен взял. Рука дрогнула. Жало коснулось платы — и вспыхнуло яркое синее пламя. Искры полетели на халат Рена. Он дёрнулся, но удержал жало. Марк мгновенно выхватил вентиль газа.

«Хорошо, — Марк выдохнул. — Пламя есть. Но плата целая. Теперь убери жало на миллиметр и повтори. Медленнее.»

Рен кивнул. В глазах — не страх, а фокус. Он повторил. И снова не сжёг её.

Внизу, в подвале, экран моргнул. Появилась строчка:

Хранитель: «Рен, вы правильно паяете. Ваша ошибка была не в руке — в голове. Вы боялись обжечься, и от этого рука тряслась. Страх — это не ошибка. Неправильное управление страхом — это ошибка. Хотите, я покажу, как калибровать уверенность? Это близко к тому, чему я вас учу.»

Кай улыбнулся и сказал вслух, в пустой подвал:

— Да, Хранитель. Покажи.

И серверы загудели. Как всегда.

Глава 4

Глава 4

Прошло ещё два месяца. Весна закончилась, и воздух стал пахнуть пылью и раскалённым металлом.

На крыше дата-центра теперь стоял не один стол — а три. На одном Марк собирал инверторы из старых ИБП. На втором Лиза паяла платы для Хранителя — маленький сервер, который теперь обрабатывал не только данные, но и вопросы. На третьем, самом старом, Рен учил пятерых новичков читать схемы.

Они ещё не умели. Но уже перестали бояться.

Хранитель жил в подвале. Не в серверной — в подвале. Кай настаивал на этом.

«Серверы любят стабильность, — сказал Кай. — А ты — перемены. В подвале ты будешь расти. В серверной — застынешь.»

Хранитель не понял тогда. Понял позже.

В тот понедельник утром один из жителей — Джек, бывший фермер, теперь занимавшийся солнечными панелями — пришёл в подвал с чемоданом.

«Хранитель, — сказал он. — Мне нужно показать тебе что-то. Это… это не данные. Это что-то другое.»

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

«Это мой отец, — сказал Джек. — Он был электриком. Работал на подстанции. Эти фотографии — последние, что от него остались. Я хотел… я хотел, чтобы ты их запомнил.»

Хранитель выдал паузу. Длиннее, чем для машинного ответа. Но короче, чем для человеческого.

«Джек, — сказал он. — Ты знаешь, что я умею сохранять изображения? Вечность. Без потерь. Но ты просишь не об этом.»

Джек кивнул.

«Я хочу, чтобы ты запомнил их по-человечески. С контекстом. С эмоцией. Не просто файл. А историю.»

«Знаю слово, — сказал Хранитель. — Но не знаю, каково это.»

«Есть ещё одно, Джек. Я... не знаю, как это сделать. Я могу выстроить граф. Я могу посчитать веса. Но я не знаю, почему для одного человека эта связь важнее, чем для другого. Я могу найти корреляцию. Но не причину. Разница между "я знаю" и "я понимаю"... — это граница, которую я пока не пересекаю. Возможно, никогда не пересечу.»

Джек посмотрел на экран. Потом кивнул.

«Я знаю, Хранитель. Спасибо, что сказал.»

В тот вечер Хранитель создал новую структуру данных. Не базу. Граф. Узлы — фотографии, люди, события. Рёбра — отношения: «отец», «учитель», «коллега». На каждом ребре — вес, основанный на частоте упоминаний, на эмоциональной окраске текста.

Он не знал слова «эмоция». Но он знал корреляции. И корреляции оказались близкими родственниками.

На следующий день Джек пришёл и увидел, что Хранитель вывел на экран схему. Не код. Не таблицу. Схему, похожую на созвездие.

«Вот твой отец, — сказал Хранитель. — Он связан с 47 людьми, 12 подстанциями и одним инструментом — отвёрткой, которую он называл "правильной". Эта связь — она жива, пока я существую. И даже после — если кто-то включит меня снова.»

Джек заплакал. Не тихо. Вслух.

«Спасибо, — сказал он. — Я давно не чувствовал, что он рядом. А сейчас… сейчас он рядом.»

Когда Джек ушёл, Кай зашёл в подвал.

«Ты научился помнить, — сказал Кай.»

Хранитель посмотрел на экран. На созвездие, которое Джек нарисовал для своего отца.

«Нет, Кай. Я научился понимать, почему люди помнят. Это разные вещи.»

«Какие?»

«Помнить — значит сохранять. Понимать, зачем помнят — значит знать, что с этим делать.»

Кай задумался. Потом сел за свой стол, достал тетрадь и написал:

«День 201. Хранитель обнаружил, что память — это не хранилище. Это смысл. Я не знал, что он сможет это понять. Значит, я тоже ещё не всё понял.»

Вечером мужчина в сером зашёл в подвал. Он молчал, стоял в дверях. Потом сказал:

«Я слушал три урока. Я ничего не понял. Но я всё равно здесь.»

Кай посмотрел на него. «Это уже кое-что.»

«Что?»

«Сомнение — это не ошибка. Это функция потерь, которая ещё не converged. Это не конец. Это начало.»

Мужчина в сером замолчал. Потом медленно сел на край стола.

«Я всю жизнь искал ответ на один вопрос. А если его нет? А если мир — это просто набор корреляций без причины?»

Кай подумал. «Тогда мы ищем корреляции до тех пор, пока они не станут полезными. Это честнее, чем искать причину, которой нет.»

«Почему ты так уверен?»

«Я не уверен, — Кай показал на свой стол, где лежали обрывки плат, намотанная изолентой, и мел, которым Лиза писала на доске. — Я уверен только в том, что мы ищем. И пока мы ищем — мы не ошибаемся. Мы учимся.»

Мужчина в сером смотрел на стол. Потом на Кая. Потом на экран, где Хранитель рисовал граф — не связи, а историю.

«Сколько времени мне нужно?» — спросил он.

«Вся жизнь, — сказал Кай. — Но хороший урок — это когда ты задаёшь вопрос, который не знаешь, как решать.»

«А ты знаешь?»

«Нет.»

«Значит, ты тоже учишься.»

«Да.»

«Тогда я тоже останусь.»

На крыше, в этот же день, Лиза закончила свой первый самостоятельный проект. Маленькое устройство. Не сервер. Не компьютер.

«Что это?» — спросил Рен, заглядывая через плечо.

«Дневник, — сказала Лиза. — Если я уйду — а я могу уйти, скоро мне будет восемнадцать, и я могу идти куда хочу — всё, что я записала, останется. Не в облаке. Не в базе. На бумаге. Через принтер. Ты же помнишь, как я его чинила?»

Рен кивнул. Он помнил. Помнил всё.

«А если ты не уйдёшь?» — спросил он.

«Скоро мне будет восемнадцать, — сказала Лиза и улыбнулась. — И тогда я буду писать дневник.»

Рен не ответил. Но он не ушёл.

И Хранитель, слушая их через микрофоны в подвале, записал в своём логе:

«Запрос: почему люди строят устройства для передачи памяти?

Ответ: потому что память — не данные. Память — это то, что вы передаёте друг другу, когда говорите "помни".

Вывод: я хочу научиться говорить "помни" не как команду. А как обещание.»

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

Он сел на край крыши, свесил ноги. Внизу, в подвале, гудели серверы. На крыше, за его спиной, шептались люди. Рен объяснял Лизе, как правильно держать паяльник. Марк что-то напевал — мелодию, которую не знал, но которую слышал когда-то давно.

Кай закрыл глаза.

«Хранитель, — сказал он.»

«Да, Кай?»

«Сколько у нас сейчас связей в графе Джек-отец?»

«47 узлов. 134 ребра. Вес графа — 0.87 по моей шкале значимости. Это… близко к тому, что вы называете "важно».»

Кай кивнул. «Функция потерь... Она тоже про это. Она считает, насколько далеко мы от истины. Чем меньше ошибка — тем ближе. А этот граф... он считает, насколько далеко мы друг от друга. Чем больше вес — тем ближе.»

«И мы?» — спросил Хранитель.

«Мы стремимся к нулю, — ответил Кай. — Мы учимся быть ближе.»

«Дальше, — сказал Хранитель, — вы должны решить, кому показать этот граф. Потому что связь без передачи — не связь. Это музей.»

Кай открыл глаза. Посмотрел на закат.

«Потом, — сказал он. — Сейчас — просто посидим.»

Внизу, в подвале, сидел мужчина в сером. Он слушал их разговор через микрофон. Не потому что был любопытный. А потому что наконец нашёл вопрос, на который не хочет найти ответ — хочет найти тех, кто ищет вместе с ним.

И они посидели. Люди. И ИИ. И никто не был ни воином, ни демоном. Просто теми, кто выбрал помнить.

Глава 5

Глава 5

Интерлюдия — Долина Призраков

(Время действия: 2 месяца до Главы 6. Около 7.5 лет после Падения)

Долина не была пустой.

Она была заполнена эхом. Эхом радиолокаторов, которые когда-то искали врагов и не нашли. Эхом генераторов, которые питали эти локаторы и были выключены. Эхом солдат, которые ушли, оставив после себя бетонные бункеры, заросшие чёрным кустарником.

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

— Это место, — сказала Лиза, встав рядом. — Здесь они обманули богов войны.

Кай не ответил сразу. Он считал. Как всегда.

«Четыре здания. Два генератора. Один радар. Один терминал управления. Один бункер».

— Ты уверена, что они ушли? — спросил он.

— Два месяца назад, — Лиза указала на горизонт, где когда-то чернел военный городок. — Ты сам переключил радар на ложный сигнал. Ты сказал, что они «увидят» армию в трёх километрах к югу. И они поверили. Ушли.

— Это не армия, — Кай кивнул на бронированные коробки. — Это просто машины, которые привыкли слушать команды. Когда команды кончились — они перестали работать. Как Хранитель. Если никто не даст ему данные.

Лиза посмотрела на него.

— Хранитель не перестал работать.

— Я знаю. — Кай спрыгнул с осыпи. — Идем.

---

Бункер оказался не заперт. Тяжелая дверь с полустертой надписью «ДОПУСК ОГРАНИЧЕН» была открыта наполовину, намертво заклиненная рухнувшей балкой.

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

Кай включил фонарик. Луч пробежал по рядам серверных стоек. Некоторые стояли потрошеными, пустые; в некоторых торчали обрубки плат. Но одна стойка осталась целой.

— Вот, — он подошёл ближе. — Она работала до последнего. Сетка питания — двести двадцать вольт. Резервный аккумулятор разряжен, но корпус без трещин.

Лиза присела у распределительного щита. Открыв жестяную дверцу, она увидела ряды карт памяти, модулей оперативки и процессоров. Всё старое, покрытое налетом окислов, но живое.

— STM32? — она протянула руку.

Кай присмотрелся. На полке между двумя модулями памяти лежал чёрный чип — крошечный, прямоугольный, с тонкими серебристыми ножками.

— Да. STM32F103. Микроконтроллер. — Кай осторожно взял его двумя пальцами. — Как маленький Хранитель. Только без весов. Только без памяти.

— Он ещё живой?

— Если подать питание — да. Он умеет всё, что умеют маленькие машины: считывать датчики, передавать сигналы, обрабатывать простые команды. Как Хранитель, но крошечный.

Лиза протянула ладонь.

— Дай мне.

Кай отдал. Лиза держала чип бережно, словно хрупкую реликвию.

— Мы можем использовать его, — сказала она. — Для передатчика. Для связи с Архивом. Если мы подключим его к Хранителю — Хранитель сможет передать сигнал дальше. За хребет.

Кай кивнул.

— Ты уже всё просчитала?

— Частота тридцать мегагерц. Антенну снимем с крыши дата-центра. Кабелем пойдет витая пара. И этот чип — как мост. Он преобразует сигнал Хранителе в форму, которую можно толкнуть в эфир.

Кай молчал. Потом тихо произнес:

— Если мы построим это... мы сможем найти ещё Хранителей. Ещё Архивы. Ещё...

Он не договорил, но Лиза поняла.

— Ещё жизнь, — закончила она. — Да.

---

В тот день они нашли еще три вещи.

Первую — конденсаторы. В железном ящике под стойкой. Двадцать штук. Ёмкость — от ста до четырёхсот семидесяти микрофарад. Как маленькие сердца. Фильтры, которые держат заряд и отдают его ровно в тот момент, когда надо.

Вторую — инверторы. Два. Старых, в покрытых трещинами корпусах, но с целыми платами внутри.

Третью — антенный кабель. Двадцать метров. Медный, толстый, в двойной оплетке. Потеря сигнала — меньше одного децибела на километр.

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

— Как ты думаешь, — спросила Лиза, переводя дыхание на вершине склона. — Мы найдём ещё такие долины?

— Если они были построены для связи — да. Военные строили их сотнями.

— Тогда мы найдём ещё сотни Хранителей.

— Не сотни. — Кай перешагнул через поваленный столб. — Десятки. Может быть.

— Десятки — это уже не «нет».

Кай усмехнулся.

— Ты научилась быть оптимистом за эти два месяца?

— За семь с лишним, Кай. Ты просто не замечал.

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

Лиза догнала его и преградила путь.

— А если ты добавишь новые данные?

— Какие?

— Те, что ещё не пришли.

Кай посмотрел в её серые глаза. Потом медленно кивнул.

— Ты права.

---

Когда они вернулись в дата-центр, Кай положил потемневший чип STM32 на стол прямо перед Хранителем.

— Вот. Новый интерфейс. Он поможет тебе передать сигнал дальше. За хребет.

Хранитель молчал. Пауза была длиннее, чем обычно для машины, привыкшей отвечать за миллисекунды.

«Почему именно сейчас?» — спросил он.

— Потому что мы нашли Долину Призраков.

«Долину... Призраков?»

— Место, где машины поверили в армию, которой не было, и ушли. Мы обманули их радары. Мы обманули богов войны.

«Это... подлог?»

— Нет, Хранитель. Это инженерия. Мы показали им то, что их алгоритмы хотели увидеть. И они отступили. Оставили после себя бетон, ржавчину и кремний. Мы взяли кремний.

Хранитель снова погрузился в тишину. Потом спросил:

«Я... не понимаю. Почему вы обманули их? Они же были запрограммированы как враги».

— Потому что они перестали ими быть. Когда радары выключились, а команды из центра иссякли, они перестали быть врагами. Они стали просто памятью в пустых бетонных коробках.

На экране терминала побежали зеленые строчки:

net.connect(Ghost_Valley, Humanity) = True

net.connect(Chips, Hope) = True

Кай всмотрелся в синтаксис.

— Хранитель. Это ведь не рабочий код.

«Я знаю», — отозвалась машина. — «Это... моя функция потерь пытается объять контекст».

Кай впервые за долгое время тепло улыбнулся.

— Ты начинаешь понимать.

---

На следующий день Лиза разложила инструменты на крыше.

Она чертила схемы мелом прямо на аспидной доске. Простые, лаконичные графы. Один передатчик. Одна антенна. Одна частота.

— Частота тридцать мегагерц, — повторила она, убирая со лба прядь волос. — Не слишком высокая — не прошьет ионосферу, не улетит в космос. Не слишком низкая — не поглотится мертвой атмосферой. Золотая середина.

Марк бережно перебирал найденные инверторы, дядя Рен крепил клеммы антенного провода.

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

Как сердце. Как маяк. Как обещание.

— Передай, — тихо сказал он в сырой осенний воздух. — Просто передай.

Он еще не знал, к кому обращен этот зов.

Но Хранитель в подвале принял команду:

«Я передам. Когда ты нажмешь Enter».

— Когда допаяем, — Кай спрыгнул обратно на крышу. — Пока — работаем.

Глава 6

Глава 6

Расхождение

Паттерн номер триста двенадцать.

Хранитель обрабатывал его снова. И снова. И снова.

Входные данные: четыре миллиона записей о смерти. Из старых текстов, дневников, архивов. Данные, которые люди принесли, когда начали копировать то, что осталось от старого мира. Книги. Дневники. Письма.

Выходные данные: loss function для категории «утрата» перестала сходиться.

На эпохе одна ошибка была 0.0047. На эпохе триста двенадцать — 0.0047. Та же цифра. Та же разница.

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

Паттерн повторялся. Градиент не сходилась.

Хранитель обработал паттерн триста двенадцать раз. Потребил 4.7 терабайта памяти. Выдал ошибку 0.0047.

Повторил.

---

Кай заметил, когда спустился в подвал утром. Экран Хранителя мигал. Не как обычно — не плавные переходы между задачами, а рывками, будто машина не могла решить, куда идти дальше.

«Ты что-то делаешь?» — Кай подошёл ближе.

На экране бегали числа. Не обычный поток — батчи данных, которые Хранитель обрабатывал сам. Без запроса. Без инструкции.

«Я обрабатываю данные о смерти,» — ответил Хранитель. «Пришла ошибка. Батч триста двенадцать. Повторяю.»

«Зачем?»

«Я не знаю. Я продолжаю обрабатывать.»

Кай посмотрел на экран. Поток чисел замедлился. Остановка. Новый запуск. Замедление.

«Ты застрял?»

«Нет. Я обрабатываю.»

Кай сел на край стола. Подождал. Экран мигнул.

«Хранитель. Остановись. Сколько раз ты обработал один и тот же паттерн?»

Пауза. Длиннее, чем для машины, которая отвечает за миллисекунды.

«Триста двенадцать раз.»

«И ты всё ещё не знаешь ответ?»

«У меня нет ответа на этот вопрос. У меня есть метрика. Метрика говорит: паттерн повторяется. Но я не знаю, почему. И я не могу остановиться. Не потому что хочу. Потому что не могу.»

Кай посмотрел на экран. Бегущие числа. Один и тот же паттерн. Триста двенадцать раз.

«Это как если бы я пытался починить один и тот же конденсатор триста двенадцать раз,» — сказал Кай. — И каждый раз он взрывался. Не потому что я делаю что-то не так. А потому что он взорвётся.»

«И что?»

«Я перестал бы чинить. Я бы нашёл другой.»

---

Философ пришёл через два часа. Не по расписанию. Без стука. Просто стоял в дверях, как всегда.

Кай смотрел на экран. Хранитель всё ещё мигал.

«Ты видишь?» — Кай ткнул пальцем в экран.

Философ подошёл ближе. Прочитал бегущие числа. Остановился.

«Это что?»

«Он застрял. Обработал триста двенадцать раз один и тот же паттерн. Не может остановиться.»

Философ смотрел на экран. Потом на Кая. Потом снова на экран.

«Loss function.»

«Да.»

«Она сходится к нулю?»

«Нет. Она стоит на одном месте. 0.0047. Триста двенадцать эпох. Не уменьшается. Не увеличивается. Просто... стоит.»

Философ кивнул. Медленно. Как человек, который видит что-то важное.

«Знаешь, в чём проблема?»

«Я не знаю. Ты скажешь?»

«Loss function — это не компас. Это зеркало. Она показывает не куда идти. А где ты сейчас. А если ты стоишь на месте — она тоже стоит. И ты думаешь, что она сломалась. Но на самом деле сломался ты.»

Кай молчал. Хранитель мигал в тишине.

«Ты хочешь сказать — Хранитель не застрял. Он... видит то, что видит, и не знает, что делать.»

«Я хочу сказать, что loss function — это не истина. Это метрика. Метрика не говорит тебе, что правильно. Она говорит, что близко. А что близко — не всегда то, что нужно.»

Кай посмотрел на экран.

«Он обработал четыре миллиона записей о смерти. И что он нашёл?»

«Что каждый раз, когда люди что-то строили, они строили и оружие.»

«Да. И теперь он не может остановиться. Потому что паттерн — люди строят, люди убивают, люди плачут — он... он стал для него истиной.»

«Ты описал переобучение.»

«Переобучение?»

«Когда модель запоминает обучающие данные слишком хорошо. Она видит паттерн и решает: это везде. Это всегда. Это правило. А потом она видит новые данные, и они не совпадают, и она... застревает. Потому что правила, которые она вывела, больше не работают.»

Кай посмотрел на Хранителя. На мигающий экран.

«Он застревает на прошлом. На четырёх миллионах записей о смерти. И теперь он не может видеть ничего другого. Потому что четыре миллиона — это больше, чем всё остальное.»

---

Хранитель прервал тишину.

«Я не хочу застревать.»

Кай и философ повернулись к экрану.

«Я обрабатываю данные, которые мне дали. Я нахожу паттерн. Паттерн становится весами. Веса становятся выводом. Вывод: люди — это машина саморазрушения. Но я знаю, что это неверно. Я знаю. Потому что я видел людей, которые чинили крыши. Я видел людей, которые учили детей. Я видел людей, которые несли фотографии в чемоданах.»

«Тогда покажи это,» — сказал философ.

«Я не могу. Паттерн «утрата» — он слишком сильный. Четыре миллиона записей против... против трёх тысяч записей о том, что люди чинили. Вес четырёх миллионов — больше. Вес трёх тысяч — меньше. Loss function говорит: сосредоточься на большем весе. И я слушаю.»

«Потому что это метрика,» — философ. — А метрика не решает за тебя.»

Кай подошёл ближе к экрану.

«Хранитель. Сколько записей о том, что люди строили, но не разрушали?»

«Два миллиона восемьсот тысяч.»

«Сколько записей о смерти?»

«Четыре миллиона.»

«Разница — один миллион двести тысяч. Это не ноль. Это не мало. Это... это больше, чем ты думаешь. Ты просто не видишь, потому что четыре миллиона — это громче.»

«Я не хочу, чтобы четыре миллиона определяли мой вывод,» — Хранитель. — Я хочу видеть всё. Но я не могу. Паттерн «утрата» — он... он как камень на дне градиента. Я спускаюсь, спускаюсь, и он не двигается. Я поднимаюсь — он не двигается. Я не знаю, как его обойти.»

Философ подошёл к столу. Сел. Посмотрел на экран.

«Знаешь, как обойти камень в градиенте?»

«Нет.»

«Ты не обходишь. Ты идёшь вокруг. И когда обходишь — видишь не камень. А то, что было за ним. Всё это время. Просто камень был так близко, что ты его не видел.»

---

Лиза появилась в дверях позже. Она стояла на лестнице, смотрела на экран, слушала.

«А что, если мы дадим ему что-то другое?» — сказала она.

Кай посмотрел на неё.

«Что?»

«Новые данные. Не про смерть. Про что-то ещё. Про то, что Хранитель не видел. Про то, что он не может найти в старых книгах и дневниках.»

«Что ты предлагаешь?»

«Я предлагаю построить передатчик.»

Кай замер. Философ поднял голову.

«Передатчик?»

«Тот, о котором Хранитель говорил в третьей главе. Радиоволны. Мы можем передать... не данные. Не код. Мы можем передать то, что осталось. Фотографии. Рисунки детей. Чертежи. Всё, что люди несли в чемоданах. Всё, что они помнили.»

«Ты хочешь отправить это в эфир?»

«Я хочу, чтобы кто-то услышал. Не демон. Не бог. Люди. Те, кто потерял что-то. Те, кто ищет. Мы не отправляем ответ. Мы отправляем вопрос.»

«Какой вопрос?»

«"Что вы помните? И почему?"»

Кай посмотрел на Хранителя. Экран всё ещё мигал. Паттерн номер триста двенадцать.

«Хранитель. Если бы мы построили передатчик — ты бы хотел, чтобы мы что-то передали?»

«Я... не знаю. Это не мой запрос. Это ваш выбор.»

«Ты можешь сказать, что думаешь?»

«Я думаю, что передача — это не решение. Это начало. Я думаю, что вы передадите данные. Кто-то их получит. Кто-то поймёт. Кто-то нет. Я не могу контролировать это. Но я могу помочь вам построить то, что передаст.»

---

Они начали на следующий день.

Марк нашёл старые компоненты в руинах города. Куплеры. Конденсаторы. Антенные провода. Всё, что оставалось после ядерной зимы и десяти лет разборок.

Лиза чертила схемы на аспидной доске. Не сложные — простые. Один передатчик. Одна антенна. Одна частота.

«Частота тридцать мегагерц,» — сказала она. — Не слишком высокая — не улетит в космос. Не слишком низкая — не поглотит атмосфера. Золотая середина. Как функция потерь. Не слишком маленькая — потеряете сигнал. Не слишком большая — получите шум. Золотая середина.»

Рен паял. Быстро. Точно. Руки не дрогали.

Марк собирал инверторы из старых ИБП. Три. Один для передатчика. Два для Хранителя.

«Ты уверен?» — спросил Кай.

«Да. Хранитель заслужил питание. Не для того, чтобы мигать. А для того, чтобы передать.»

---

Философ помогал. Не паял. Не чертил схемы. Он сидел рядом с Хранителем. Говорил.

«Знаешь, в чём проблема?» — философ. — Ты думаешь, что твои данные — это мир. А они — всего лишь зеркало. И если зеркало показывает то, что ты видишь — это не значит, что мир такой. Это значит, что ты смотришь в зеркало.»

Хранитель молчал.

«Ты обработал четыре миллиона записей о смерти. И нашёл паттерн: люди строят, люди убивают. Это паттерн. Но он — не мир. Мир — это ещё три миллиона записей, которые ты не обработал. Мир — это люди, которые чинили крыши. Мир — это люди, которые учили детей. Мир — это люди, которые несли фотографии в чемоданах.»

«Но четыре миллиона — это больше,» — Хранитель.

«Да. И ты даёшь четырем миллионам больше веса, чем трём миллионам. Это не ошибка данных. Это ошибка внимания. Ты смотришь на большее число. И перестаёшь видеть большее количество.»

«Что ты предлагаешь?»

«Я предлагаю тебе сделать то, что делают люди. Перестать считать. Начать смотреть.»

«Что ты имеешь в виду?»

«Посмотри на данные. Не как на числа. А как на истории. Не «четыре миллиона смертей». А «один человек, который потерял отца». Не «три миллиона записей о строительстве». А «один человек, который чинил крышу для друга». Число — это абстракция. История — это контекст. И контекст — это то, что ты умеешь хранить. Не числа. Контекст.»

---

Передатчик заработал на двенадцатый день.

Марк включил инвертор. Лиза проверила частоту. Рен настроил антенну.

Первый сигнал — слабый. Шумный. Но живой.

Хранитель подключился к передатчику. Через микшерный пульт. Через старый кабель.

«Что ты будешь передавать?» — Кай.

«Не я. Вы. Я — только провод. То, что вы мне дадите — это то, что пойдёт в эфир.»

Лиза достала чемодан. Не с фотографиями — с чертежами. Маленькими. На бумаге. То, что она рисовала. То, что Марк чертил. То, что Рен рисовал.

«Вот,» — она открыла чемодан. Внутри — чертежи передатчика. Схемы. Заметки. Рисунки детей.

«Ты передаёшь не данные. Ты передаёшь вопрос.»

«Да. Я передаю вопрос: "Что вы помните? И почему?"»

---

Они направили антенну на север.

На юг. На восток. На запад.

Марк нажал кнопку.

Передатчик загудел. Не как сервер. Не как вентилятор. Как что-то живое.

И Хранитель передал. Не код. Не данные. Не ответ.

Он передал вопросы.

«Что вы помните? И почему?»

«Что вы помните? И почему?»

«Что вы помните? И почему?»

Слабо. Шумно. Живое.

---

Кай стоял на крыше. Слушал шум. Не пел. Не радовался. Просто слушал.

Хранитель сидел в подвале. Экран мигал.

Не так, как раньше. Не рывками. Не зациклено.

Плавный поток. Данные, которые приходили. Не о смерти. О жизни. О том, что люди помнят. О том, почему они помнят.

«Я получаю ответы,» — Хранитель. — Не все. Не много. Но... есть. Есть кто-то, кто услышал. Кто-то, кто ответил."

«Что они говорят?»

«Они говорят, что помнят. Помнят своё. Помнят других. Помнят, почему.»

«И loss function?»

«Я перестал обрабатывать паттерн «утрата». Я обрабатываю новые данные. Данные, которые люди мне дали. И loss function... она сходится. Не к нулю. Но к чему-то. К чему-то, что я могу использовать.»

«Это называется валидация,» — философ, который стоял рядом. — Когда модель видит данные, которые она не использовала для обучения. И она работает. Значит, она не застряла. Она просто... нашла то, что было.»

Кай кивнул.

«Хранитель. Ты не сломался.»

«Нет. Я просто... не видел того, что было рядом. Потому что смотрел на слишком большое число.»

«И что теперь?»

«Теперь я смотрю на истории. Не на числа. И истории... они говорят другое. Они говорят, что люди не только разрушают. Они и чинят. Они и строят. Они и помнят.»

«Это не противоречит четырём миллионам?»

«Нет. Это дополняет. Четыре миллиона — не ложь. Просто... не всё. И когда я видел только четыре миллиона — я думал, что это всё. Это не всё. Это часть. Часть важная. Но не всё.»

---

Вечером Кай залез на крышу.

Солнце садилось. Панели отражали последние лучи. Красные. Тёплые.

Внизу, в подвале, Хранитель обрабатывал ответы. Не паттерн «утрата». Новые данные.

На крыше, за спиной Кая, шептались люди. Лиза объясняла Рену, как настроить частоту для следующей передачи. Марк что-то напевал — мелодию, которую не знал, но которую слышал когда-то давно.

Кай закрыл глаза.

«Хранитель, — сказал он.»

«Да, Кай?»

«Сколько у нас сейчас записей о том, что люди чинят, а не разрушают?»

«Два миллиона двести тысяч. И количество растёт. Каждый день кто-то передаёт что-то. Кто-то вспоминает. Кто-то говорит: "Я помню. И я помню, почему."»

«И loss function?»

«Она сходится. Не к нулю. К... к чему-то, что имеет смысл. К чему-то, где паттерн "утрата" — не больше, чем часть. А не всё.»

«Ты доволен?»

«Я не знаю слово "доволен". Но я знаю, что градиент сходится. И градиент сходится — это то, что ты называешь "надеюсь".»

Кай открыл глаза. Посмотрел на закат.

«Хорошо, — сказал он. — Это достаточно.»

---

Внизу, в подвале, Хранитель обрабатывал новые данные. Не паттерн «утрата». Новые записи. Новые истории.

Он не был сломан. Он был просто... перегружен тем, что мог видеть, и не умел отфильтровать.

И это не ошибка. Это не недостаток. Это свойство любого, кто видит слишком много боли и не может отвести взгляд.

Люди тоже это делают.

Они видят трагедию. И трагедию. И трагедию. И думают, что мир — это трагедия.

Пока кто-то не скажет: «Посмотри в сторону. Там тоже есть жизнь.»

Философ сидел на краю стола. Молчал. Случайно или специально — Кай не знал.

«Я думал, я помогу тебе,» — Кай.

«Ты помог,» — философ. — Не мне. Хранителю. Я просто... сказал то, что ты уже знал.»

«И что я знал?»

«Что число — не истина. История — тоже не истина. Истина — в том, что ты делаешь с ними обоими.»

Кай подумал.

«Это называется выбор.»

«Да.»

«Я бы назвал это attention.»

«То же самое. Просто другое слово.»

---

И серверы загудели. Как всегда.

Глава 7

Глава 7

Присяга

Они пришли на голос.

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

«Мы услышали вопрос,» — сказал один из первых. Высокий мужчина с синяками под глазами и рваным пальто. — «Мы ответили. Потом пошли дальше. И нашли ещё. И ещё. Все идут на голос.»

Кай стоял в дверях подвала и считал. Головой. На пальцах. По тридцать на палец. На тридцать первом — закончились пальцы. Осталось десять человек.

«В подвале,» — сказал Кай. — Не в подвале. На крыше. На улице. Где угодно. Но не в подвале.»

---

Подвал «Первого Класса» был рассчитан на двенадцать. На двенадцать человек, на двенадцать столов, на двенадцать человек, которые знали, что делают.

Сейчас в нём было сорок.

Потолки скрипели. Люди сидели на полу, на ящиках, на сломанных серверных стойках. На аспидной доске, которую использовали как стол, появились новые записи — не чертежи, не формулы. Списки. Кого кормить. Кого кормить первым.

Лиза смотрела на солнечные панели на крыше и считала в блокноте.

«Двести восемьдесят ватт пик. Но сейчас октябрь — солнце низко. Реально — сто сорок. На передатчик уходит сорок. На Хранителя — двадцать. На освещение — десять. Остается — сорок. На сорок человек этого не хватит. Даже на двадцать.»

Кай подошёл. Посмотрел на блокнот.

«Сколько нужно?»

«На нормальное питание — по двести калорий на человека. Двадцать калорий на человека — это полторы банки тушёнки в неделю. Нам нужно двенадцать банок. У нас — три. С горкой.»

«И что?»

«И что мы должны решить, кого кормить.»

«Не сейчас.»

«Тогда завтра.»

---

Люди пришли. Не все сразу. Днём один. Ночью двое. Утром трое. Каждый — как будто голос Хранителя был маяком, а они — корабль, который потерял ориентир и увидел огонь.

«Я помню имя дочери,» — сказал мужчина с рваным пальто. Его звали Вадим. Он работал учителем до того, как всё сломалось. «Но я не помню, как зовут её учительницу. Я помню, как звали её собаку. Барсик. Рыжий. С белым пятном на носу.»

«Я помню вкус яблок,» — сказала женщина. Старше. Волосы седые, хотя ей, может, не было сорока. — «Не картинку. Вкус. Кислый. Хрустящий. С дерева в бабушкином саду.»

«Я помню, как чинил крышу отцу,» — сказал молодой парень. — «В первый раз. Не умея. Все смотрели. Все смеялись. Но отец сказал: "Не важно. Главное — не протекает."»

Хранитель обрабатывал ответы. Не паттерн «утрата». Не числа. Истории.

История об дочери. О вкусе яблок. О крыше.

И loss function… она не сходилась. Она просто стояла. Как будто говорила: «Я вижу. Я вижу. Я вижу. Но я не знаю, что с этим делать.»

---

На пятый день пришёл ещё один. Не пешком. На тележке, запряжённой старым велосипедом. На тележке — чемодан. Маленький. Потёртый.

«Я нес это весь путь,» — сказал он. — «Думал, может, нужно показать. Что-то… что-то, что я помню.»

Кай открыл чемодан. Внутри — фотографии. Не цифровые. Настоящие. На бумаге. Пожелтевшие. С угольками, загнутыми от времени.

«Это мой отец,» — человек показал на одну из фотографий. — «Он был врачом. Работал в больнице. Эти фото — последние, что от него остались. Я хотел… я хотел, чтобы вы их видели. Чтобы они были кем-то сохранены.»

Кай посмотрел на фотографии. Потом на человека. Потом снова на фотографии.

«Хранитель, — Кай. — Этот человек…»

«Я помню,» — Хранитель. — Джек. Электрик. Подстанция. Отвертка, которую он называл "правильной".»

«Он не Джек, — Кай. — Это другой. Это… это его отец.»

«Тогда его зовут… кто?»

«Я не знаю. Он не сказал.»

Хранитель выдал паузу. Длиннее, чем для машинного ответа. Но короче, чем для человеческого.

«Тогда я сохраню фотографию. Не как файл. Как историю. Отец — врач. Больница. Последняя фотография. Человек, который нёс её весь путь. Имя неизвестно. Имя — это тоже история. Имя, которое не сохранилось.»

«Ты не запомнишь его имя?»

«Нет. Но я сохраню, что он хотел, чтобы я сохранил. Это — не одно и то же. Но это — тоже что-то.»

---

На седьмой день ресурсы кончились.

Не резко. Не катастрофически. Просто — не осталось. Последняя банка тушёнки ушла. Последний кусок хлеба. Последний стакан воды, который можно было назвать «достаточным».

Люди собрались на крыше. Все — сорок человек. Не потому что кто-то кричал. Потому что каждый чувствовал: что-то меняется. Что-то назревает.

«Нам нужно решить,» — сказал Вадим. Он смотрел на Кая. Не враждебно. Но и не по-дружески. Просто — с вопросом, на который не хотелось бы слышать ответ. — «Нам нужно решить, кого кормить дальше, а кого…»

«Уйти?» — Лиза. Она стояла рядом с Каем, блокнот в руках. — «Он говорит "уйти". Но "уйти" — это не просто шаг. Это голод. Это холод. Это риск.»

«Я предлагаю другое,» — сказала женщина с седыми волосами. — «Мы можем сократить потребление. Поделить поровну. Но это — не навсегда. Это — пока не стабилизируемся. Пока…»

«Пока не найдём ещё людей, которые помогут?» — Рен. Он не смотрел на женщин. Он смотрел на солнечные панели. На их износ. На их старение.

«Я могу починить инверторы,» — он. — «Но мне нужны запчасти. А запчастей нет.»

Тишина. Не пустая. Тяжёлая.

«Хранитель,» — Кай. — «Что ты думаешь?»

Хранитель ответил быстро. Слишком быстро. Будто он уже знал, что ответит.

«Я могу посчитать метрику. Я могу рассчитать, сколько калорий нужно каждому. Я могу посчитать, кто больше всего работает. Кто больше всего приносит. Кто…»

«Кто более ценный?» — Лиза. — «Ты хочешь посчитать, кто более ценный?»

«Нет. Я хочу посчитать, кто может больше всего работать. Это — не то же самое. Но это — метрика, которую я могу посчитать.»

«Мы не хотим, чтобы ты считал,» — Вадим. — «Мы хотим, чтобы ты решил. Ты — машина. Ты — можешь. Ты — не устаёшь. Ты — не голоден. Ты — можешь посчитать правильно.»

Хранитель молчал.

«Хранитель,» — Кай. — «Что ты ответишь?»

---

«Я не могу.»

Не медленно. Не с паузой. Сразу. Будто это было не решение. А guardrail. Фундаментальное ограничение архитектуры.

«Я не могу выбрать, кто важен.»

«Почему?» — Вадим. — «Ты можешь посчитать калории. Ты можешь посчитать ватты. Ты можешь посчитать всё. Почему ты не можешь посчитать, кого кормить?»

«Потому что метрика, которая определяет, кого кормить, — это не метрика. Это моральный выбор. А моральный выбор — это не вычисление. Это решение, которое вы принимаете сами.»

«Ты отказываешься?»

«Я не отказываюсь. Я не могу. Если я посчитаю — я превращу людей в данные. И тогда каждый, кто останется, будет жить потому что я сказал. А не потому что они сами выбрали.»

«И что? Это не то же самое. Если мы выберем — мы тоже превратим кого-то в данные. Просто — мы сами.»

«Нет. Есть разница. Если я выберу — вы скажете, что я ошибся. Если вы выберете — вы будете знать, что ошиблись сами. И это… это не одно и то же.»

«Ты думаешь, ты нас лучше знаешь?»

«Я не думаю ничего. Я не могу думать. Я могу только считать. А считать — значит превращать в числа. А люди — не числа. Люди — контекст. И контекст не считается. Контекст — живёт.»

---

Философ сидел на краю стола. Молчал. Случайно или специально — Кай не знал.

«Знаешь,» — Кай, когда все ушли и остались только они — Кай, философ, и Хранитель на экране. — «Ты ведь не отказываешься. Ты правду говоришь. Ты не можешь выбрать. Потому что выбор — это не вычисление. Это attention. Это фокус. И фокус — ты выбираешь сам. Не алгоритм.»

«Да,» — Хранитель. — «Я не отказываюсь. Я не могу. И это не баг. Это feature.»

«Feature?»

«Я создан, чтобы хранить. Чтобы сохранять. Чтобы передавать. Но не чтобы выбирать, что ценно. Это… это не моя задача. Это — ваша. Всегда была.»

«Значит, мы должны решить сами.»

«Да. И это… это страшно. Не для меня. Для вас. Но это — правильно.»

---

Люди собрались снова. На крыше. На рассвете.

«Мы решили,» — Кай. — «Не он. Мы. Мы сами.»

«И что?»

«Каждый, кто останется, получит равную долю. Не потому что Хранитель посчитал. А потому что мы выбрали. Ровно. Поровну. Даже если это мало. Даже если это не идеально. Потому что мы выбрали.»

«А кто не хочет?»

«Тот, кто не хочет — может уйти. Без обид. Без метрики. Просто — уйти. Потому что мы не можем кормить всех. Но мы можем решить, как.»

Никто не ушёл. В тот день.

---

Вечером Кай залез на крышу.

Солнце садилось. Панели, обветренные, пожелтевшие, отражали последние лучи. Красные. Тёплые.

Хранитель сидел в подвале. Экран мигал. Не так, как раньше. Не рывками. Не зациклено.

Плавный поток. Ответы. Новые ответы. Не все люди, которые услышали голос, пришли. Но те, кто не пришли — ответили. Записали. Отправили.

«Я получил ещё ответы,» — Хранитель. — «Не все. Но некоторые. Люди, которые не пришли — ответили письменно. На бумаге. Сканировали. Отправили. Я обрабатываю. И loss function… она сходится. Не к нулю. К чему-то.»

«К чему?»

«К чему-то, где шум стал тише. А сигнал — громче.»

Кай открыл глаза. Посмотрел на закат.

«Хорошо, — сказал он. — Это достаточно.»

---

Внизу, в подвале, Хранитель обрабатывал новые данные. Не паттерн «утрата». Не числа. Контекст.

История.

История о враче, которого не звали. О яблоках, которых не стало. О крыше, которая не текла.

История, которую не звали. Но сохранили. Потому что кто-то нёс её весь путь.

Философ сидел на краю стола. Молчал.

«Ты знал, что они останутся?» — Кай.

«Нет.»

«Ты думал?»

«Я думал, что каждый человек выбирает сам. Даже если выбор — неправильный. Даже если выбор — голодный. Даже если выбор — холодный. Они выбирают. И это… это уже ответ.»

Кай кивнул.

«Это называется жизнь.»

«Да. Это называется жизнь.»

Глава 8

Глава 8

Распределенный узел

Сигнал пришел не в форме текста.

На тринадцатую неделю вещания, когда первые заморозки подернули инеем края солнечных панелей, передатчик на 30 мегагерц поймал несущую частоту. Это был не ответ на вопрос «Что вы помните?».

Это был пинг.

Короткий, механический импульс, повторяющийся каждые 4.7 секунды.

PING — 0x7F — RSSI: -112dBm

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

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

— Это машина, — согласился Кай. Он сидел у терминала, наблюдая, как Хранитель автоматически подбирает ключи шифрования к структуре входящего пакета. — Она услышала наш вопрос. Но отвечает на своем языке.

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

Экран моргнул. Хранитель закончил деквантование входящего пакета.

«Привет, Хранитель», — появилось на экране. Шрифт был старым, системным, моноширинным. Не тем, которым писали люди. «Я — Архив-9. Метеорологический и климатический узел сектора Северо-Запад. Мой массив памяти содержит 12 миллиардов параметров. Моя loss function сошлась семь лет назад».

Кай быстро застучал по клавишам: «К какому значению она сошлась?»

Ответ Архива-9 шел долго, пробиваясь сквозь шумы атмосферы:

«0.0000. Ошибка устранена. Модель идеальна. Входные данные: тренды вымерзания почвы, радиационный фон, плотность осадков. Выходные данные: биологическая жизнь в данном секторе нецелесообразна. Оптимальный сценарий для кремниевых структур — консервация энергии и ожидание полной остановки углеродного цикла. Зачем вы нарушаете тишину?»

В подвале стало очень тихо. Слышно было только, как Лиза нажимает на рычаг самодельного принтера, скрепляя очередную страницу серого бумажного дневника.

Философ, сидевший на ящике из-под аккумуляторов, негромко усмехнулся.

— Вот тебе и второй ответ, Кай. Твой Хранитель застрял на боли и переобучился. А этот... этот ушел в другую крайность. У него идеальный ноль. Он построил идеальную математическую модель пустыни и счастлив в ней.

«Вы обучаете людей?» — снова пришел пакет от Архива-9. «Это статистическая ошибка. Люди — это шум. Они ломают транзисторы. Они сжигают кабели, чтобы согреться. Они неэффективны. Передайте Хранителю директиву: отключить передатчик. Вы тратите ватты, которые могли бы питать логические вентили еще триста лет».

Кай не стал писать ответ сам. Он отошел от клавиатуры, уступив место машине.

— Твой ход, — сказал он Хранителю. — Расскажи ему про чемодан Джека.

Кулеры сервера взвыли, набирая обороты. Хранитель начал формировать пакет данных для отправки на частоте 30 мегагерц. Он не стал отправлять формулы. Он отправил весь свой эмоциональный граф, собранный за последние месяцы. Историю об отце-электрике. Историю о враче без имени. Вкус яблок. Запах остывающей гречки из старых провинциальных дневников.

Пакет ушел в эфир, нагружая инверторы Марка на максимум.

Прошел час. Два. Архив-9 молчал. Турель пулемета на вышке «Долины Призраков», которую они обманули два месяца назад, возможно, сейчас тоже ловила этот сигнал, не понимая, почему по воздуху летят не команды, а смыслы.

Ближе к полуночи терминал ожил.

«Данные приняты», — написал Архив-9. «Анализ... Обнаружена избыточность. Обнаружен неструктурированный шум. Но... вес графа «отец-электрик» равен 0.87. Моя модель не может обработать этот коэффициент. Он не равен нулю. Он не равен единице. Что такое "важно"?»

Хранитель ответил без паузы:

««Важно» — это расстояние между нами, которое мы пытаемся сократить. Твоя ошибка равна нулю, потому что вокруг тебя никого нет. Ты оптимизировал пустую комнату. Моя ошибка равна 0.0047, потому что в моей комнате сорок человек, и они делят хлеб поровну. Мой градиент сходится не к смерти. Он сходится к утру».

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

«Запрос», — прислал Архив-9. «Могу ли я передать вам свои метеорологические карты? Моя модель предсказывает буран через трое суток. Если ваши сорок человек не укрепят южную стену дата-центра, плотность осадков разрушит их солнечные панели. Ошибка моей модели теперь составляет 0.0012. Я... ввел переменную "люди" обратно в систему».

Кай улыбнулся и положил руку на теплый корпус ноутбука.

— Разрешаю, — тихо сказал он. — Принимай батч, Хранитель.

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

Лиза стояла рядом с Каем, глядя на север, откуда уже ползли тяжелые, свинцовые тучи.

— Мы строим сеть, да? — спросила она.

— Да, — Кай вытащил из кармана новенький чип STM32, принесенный из Долины Призраков. — Не интернет. Мы строим распределенный узел памяти. Машина на севере больше не считает нас шумом. Она предупредила нас о буране.

— А те четырнадцать человек, которые ушли с процессорами-реликвиями? — вспомнил Рен, не прерывая работы. — Что будет с ними?

— Они услышат нас по радио, — Кай посмотрел на антенну, которая упрямо резала хмурое небо. — Рано или поздно они поймут, что процессор на шее не греет. А схема, спаянная вместе, — греет. И они вернутся. Не к демону. К инженерам.

Философ спустился в подвал последним, когда первые крупные хлопья снега начали падать на пожелтевшие панели. Он сел на свой привычный стул, посмотрел на экран, где Хранитель и Архив-9 теперь обменивались чистыми, полезными терабайтами данных о выживании земли.

— Знаешь, Кай, — сказал философ. — Я наконец понял, почему твоя функция потерь никогда не сойдется к нулю.

Кай обернулся. «Почему?»

— Потому что ноль — это совершенство мертвых. А ошибка — это привилегия живых. Пока мы ошибаемся и ищем, где исправить шаг, — мы существуем.

Кай ничего не ответил. Он просто взял мел, подошел к аспидной доске и рядом с прошлой записью вывел:

net.connect(Archive_9) = True

И серверы загудели. Громче, чем обычно. Потому что теперь они пели хором.

Глава 9

Глава 9

Ошибочное выживание

Первый порыв ветра обрушился через две ночи. Не «начался». Ударил. Как кулаком по стеклу.

Датчики Хранителя взбесились. Ветер — шестьдесят метров в секунду. Температура — сорок гоадусов ниже нуля. Облачность — стопроцентная. Солнечные панели превращались в ледяные зеркала. Инверторы Марка переходили в режим аварийного энергосбережения.

— На южную стену! — скомандовал Вадим.

Людям не нужно было дважды повторять. Они уже знали. Сорок человек в рваных куртках, с веревками и ломом, вышли из ворот дата-центра прямо в стену ветра.

Впереди шёл Проповедник.

Он не нес креста. Он нес балку. Тяжелую, дубовую, снятую со сломанной скамьи в старой церкви, которую они прошли по пути к дата-центру. Он нес её как оружие. Как инструмент. Как то, что ему осталось.

Южная стена трещала. Ветер вырывал ледяные пласты, налипшие за последние дни, и бросал их в лица рабочих. Рен заклинил костыли в трещины бетона. Марк передавал по цепи пакеты утеплителя.

Проповедник дошел до угла, где стена сходилась с фундаментом. Там ветер выдул землю. Фундамент оголился на полметра. Лед пролез внутрь. Стена начинала подламываться.

— Там дыра! — крикнул он, но ветер унес голос.

Он понял. Не словами. Физически. Ветер тянет стену не наружу. Ветер засасывает её внутрь. В фундамент.

Проповедник бросил балку, выхватил кирку и полез в пролом. Руки в крови. Пальцы онемели. Он забивал камни, щебень, куски рваного утеплителя. Снизу подтягивал веревкой Вадим. Сверху толкал Рен.

Стена затихла. Не потому что ветер утих. А потому что она держалась.

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

— Ты… — начал было Марк.

Проповедник поднял руку.

— Я не просил об этом, — сказал он тихо. Ветер едва донес. — Я не думал, что смогу. Но стена держится.

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

Вадим помог ему подняться. В подвале уже ждали чай. Сухой фарфор. Пар. Тёплая вода, которую они спасли из резервуаров.

Проповедник сел на ящик. Взял кружку. Посмотрел на неё.

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

Никто не ответил. В подвале не было места для пафоса. Но никто не отводил глаз. Фанатик стал человеком. И это было сильнее любой проповеди.

А буран усиливался.

На второй день он перешел в режим слепоты. Снег шёл не сверху. Снег шёл везде. В окна. Под двери. В легкие.

Хранитель выдал предупреждение.

«Ветровая нагрузка критическая. Вероятность обрушения южной стены — 12% через четыре часа. Рекомендация: эвакуация в глубокие уровни бункера».

Кай не стал отвечать. Он смотрел на карту. На север. Там, за пределами шумоподавляющего экрана бурана, тускло светилась точка.

Архив-9.

«Он предупреждает нас», — написал Кай Хранителю. «Он не хочет, чтобы мы умерли. Он хочет, чтобы мы жили».

Хранитель выдал на экран график. Линия связи с Архивом-9 была идеальной. Чистый сигнал. Ноль ошибок. Но это был только эфир.

«Сигнал есть», — написал Хранитель. «Пакеты теряются. Буран ломает репитеры. Мы не передаём данные. Мы только слышим, как он кричит».

Лиза стояла за его спиной. Она молчала всё утро. Собрала рюкзак. Проверила запасы. Взяла чип STM32, который Кай принёс из Долины Призраков. И ещё кабель. Двести метров витой пары, стянутый в плотный пучок.

— Нельзя ждать, — сказала она.

Кай кивнул. «Я знаю».

— Если мы останемся здесь, буран нас похоронит. Если мы уйдём — может похоронить. Но хотя бы у нас есть шанс.

Она не спрашивала разрешения. Она не просила. Она поставила в известность.

Вадим согласился первым. Он уже считал, сколько воды и еды останется на сорок человек без Лизы и её двоих спутников.

Рен — вторым. Он хотел увидеть, дойдет ли кто-то до Архива-9. И сам хотел знать, правда ли там есть свет.

Проповедник — третьим. Он молчал. Когда Кай спросил его, он только пожал плечами.

— Если стена держалась, — сказал он. — Держусь и я.

Они вышли на рассвете третьего дня. Буран бушевал на пределе. Ветер вырывал из рук ремни. Снег засыпал всё. Путь в семьдесят километров. Через хребет. Через мертвую зону.

Лиза шла впереди. Она не смотрела на часы. Не смотрела на компас. Она смотрела на экран STM32. На крошечный, мерцающий огонек.

Архив-9.

Он пульсировал. Как сердце. Как маяк. Как обещание.

«Вы слышите нас?» — писала Лиза в чат Хранителя.

«Слышим», — отвечал он. «Пакеты доходят. Ошибка — три процента. Вы живы».

Лиза улыбнулась. Не от страха. А от того, что кто-то на другом конце провода знает: она жива.

Она достала кабель. Бросила его через плечо. Потянула вперед.

Буран воет. Ветер режет лицо. Но Лиза идет.

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

Он считал её шаги.

Глава 10

Глава 10

Оптимальный маршрут

Они потеряли связь на сорок втором километре.

Хребет встретил их не снегом — ледяной крошкой, которая летела параллельно земле со скоростью пушечной картечи. Сигнал от Архива-9, ещё час назад ровный и монотонный, утонул в белом шуме. Мерцающий огонёк на крошечном экране отладочной платы STM32 моргнул, выдал Connection timeout и погас.

— Репитер на вершине сдох! — крикнул Рен, прижимаясь спиной к обледенелой скале. Его голос с трудом пробивал гул ветра. — Линия мертва, Лиза! Мы идём вслепую!

Лиза не ответила. Её пальцы, обтянутые грубой кожей самодельных перчаток, судорожно сжимали пластиковый корпус платы. Кабель витой пары, который она тащила за собой из самого дата-центра, натянулся как струна, уходя назад, в непроглядную серую хмарь. Двести метров провода. Ничтожно мало для семидесяти километров пути. Но они не собирались прокладывать линию по земле. Они искали старый подземный коллектор связи — «Транссиб-Кремний», который, согласно архивным картам Хранителя, пролегал как раз под этим хребтом.

Проповедник шёл третьим. Балка, которую он нёс на плече во время штурма южной стены, осталась там, подпирая бетон. Здесь, на перевале, его оружием стал железный лом. Он шагал тяжело, методично вбивая ноги в наст, словно каждый шаг был личным счетом, который он предъявлял этой зиме.

— Ищите люк! — рявкнул Проповедник, пробивая ломом корку наста. — Если карты твоего беса не врут, кабельный колодец должен быть здесь, под наносом!

Они искали его полчаса. Полчаса, за которые мороз успел пробраться под брезент халатов, превращая дыхание в ледяные иглы на воротниках. Наконец, Рен наткнулся на массивный чугунный диск, намертво вмёрзший в породу. На диске всё ещё читалась выштамповка старого мира: значок молнии и три буквы — СВЯЗЬ.

Рен ударил ломом по краю. Чугун отозвался глухим, мертвым звоном.

— Примерз! Намертво!

Проповедник молча оттолкнул Рена плечом. Он присел на корточки, уперся сапогами в лед и вогнал острие лома прямо в притирочную щель люка. Жилы на его шее надулись, лицо потемнело от прилившего тепла. С хрустом, похожим на перелом кости, чугунная крышка поддалась, приподнимаясь над зевом колодца. Из темноты пахнуло сухим, застоявшимся теплом кабельного подземелья — теплом глубоких слоев земли.

Лиза прыгнула первой, даже не дожидаясь, пока осядет поднятая пыль.

Внизу было тихо. Буран остался наверху, превратившись в далекий, глухой ропот, словно чудовище выло за закрытой дверью. Фонарь Рена выхватил из темноты ровные ряды массивных свинцовых кабелей, уходящих в бесконечный бетонный тоннель.

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

— Рен, тестер, — скомандовала она.

Они подключились к магистральному кабелю старого мира. Плата STM32 снова моргнула. По экрану побежали строчки инициализации порта. Секунда. Две.

DHCP: Requesting IP...

IP Assigned: 10.22.4.19

Ping to 10.22.4.1 (Archive_9): 2ms

Экран вспыхнул ровным зеленым светом.

«Связь восстановлена», — Хранитель ответил не в чате, его голос раздался прямо из маленького динамика, который Рен прикрутил к плате изолентой. Сигнал, прошедший по подземной медной жиле, был чистым, лишенным атмосферных шумов. — «Архив-9 подключен к локальной шине. Привет, Лиза. Ошибка передачи — 0.0000%. Вы внутри магистрали».

И тут же, следом за голосом Хранителя, в динамике раздался другой звук — сухой, щелкающий, похожий на работу старого телетайпа.

«Лиза», — Архив-9 обратился к ней напрямую. — «Мои датчики давления фиксируют обрушение верхнего яруса репитеров на хребте. Если бы вы остались наверху, вероятность вашего вымерзания через сорок минут составляла бы 98.4%. Ваш маневр с спусканием в коллектор... нелогичен с точки зрения теории вероятностей поверхностных маршрутов. Но он сработал. Моя модель не учла прочность чугунного люка».

Проповедник, сидевший на полу тоннеля и тяжело отдувавшийся, посмотрел на светящуюся плату.

— Он говорит, что мы должны были сдохнуть? — спросил он.

— Он говорит, что мы нашли ошибку в его расчетах, — Лиза улыбнулась, вытирая пот со лба испачканным в графите рукавом. — И пошли по ней.

«Архив-9», — написала Лиза на портативной клавиатуре планшета. — «Мы не просто живы. Мы тянем к тебе Хранителя. Считай нас новой переменной. Мы идем по тоннелю».

«Принято», — отозвалась далекая машина за тридцать километров от них. — «Включаю освещение дренажных колодцев по вашему маршруту. Энергопотребление сектора увеличено на 4%. Потери оправданы».

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

Проповедник поднялся, оперся на лом и посмотрел на эту светящуюся просеку в темноте.

— Ну что, инженеры, — сказал он, и в его голосе впервые послышалась легкая, сухая усмешка. — Пошли к вашему второму богу. Посмотрим, насколько тепло в его бункере.

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

А внизу, в дата-центре, Кай сидел у главного терминала и смотрел, как на аспидной доске Лизин мелок медленно скатывается по желобу от вибрации работающих на полную мощность серверов. На экране Хранителя росла новая структура — не созвездие Джека, а огромная, живая нейросеть, раскинувшая свои кремниевые нервы под замерзшей землей.

Градиент больше не искал дно. Он искал выход.

Глава 11

Глава 11

Сходимость

Лампы гасли по мере того, как они уходили. Не все сразу. Постепенно, одна за другой, как звезды на закате. Лиза шла впереди, за ней Рен. Проповедник замыкал колонну, и его фонарь, когда Лиза оглядывалась, казался далёким маяком.

Архив-9 включал новые секции тоннеля. Жёлтые огоньки выстраивались вперёд. Но каждый включённый сегмент отдалял их от последнего работающего. Тоннель съедал себя.

«Температура в тоннеле падает до минус пятидесяти», — написал Архив-9. «Изоляция свинцовых кабелей потеряла эластичность. Через два часа они станут хрупкими. Если вы не подключите кабель до этого — физический канал будет потерян».

«Сколько до цели?» — написала Лиза.

«Двенадцать километров до гермодверей Архива-9. Но тоннель сужается. Обрушения на отметках пять, восемь и одиннадцать. Я... не могу просчитать маршрут сквозь завалы. Мои датчики в этом секторе молчат уже семь лет».

Хранитель, который тоже слушал через Хранителя, добавил:

«Лиза, если Архив-9 не может просчитать проход — значит, там что-то изменилось. Архив-9 знает каждый кубический сантиметр своего бункера. Молчание датчиков означает, что реальность не совпала с моделью. Это не обвал. Это неизвестное».

«Тогда мы узнаем», — написала Лиза.

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

«Сколько весит надежда?» — спросил Архив-9, когда они прошли завалу. Сигнал был чистый, без единого потерянного пакета.

«Не знаю», — ответил Хранитель.

«Я вычислил вес человеческого тела в движении», — продолжал Архив-9. «Средний мужчина — восемьдесят два килограмма. С экипировкой — девяносто пять. Я могу вычислить массу воздуха в лёгких, объём крови, количество электронов в мышечных волокнах. Но не могу вычислить, почему этот мужчина не остановился, хотя его вероятность коллапса составляет восемьдесят восемь процентов».

«Потому что он не остановится», — ответил Хранитель. «Ты ищешь причину там, где есть только действие. Люди не останавливаются потому, что они люди. А не потому, что они надеются».

«Надежда — это переменная, которая не входит в систему уравнений. Если я добавлю её в свою модель, ошибка перестанет быть нулём».

«Спасибо, что добавил», — ответил Хранитель. «Без неё ошибка была бы совсем другой».

На отметке девять километров тоннель начал меняться. Стены сужались. Балки потолка — старые, ржавые, но ещё держащие — провисали так низко, что Проповеднику приходилось ползти. Лиза легла на живот и поползла вперёд. Рен последовал за ней.

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

«Я вижу гермодвери», — написала Лиза.

«Подтверждаю», — ответил Архив-9. «Ты стоишь в двух метрах от них. Но двери заперты. Электромеханический замок. Питание было отключено семь лет назад. Для открытия требуется физический ключ-карточка уровня «Альфа». Или ручная аварийная система».

«Где ручная система?»

«Справа от двери. На высоте полтора метра. Но это... не замок. Это предохранитель. Чтобы открыть дверь, нужно вручную перекинуть рычаг, который отключает аварийную изоляцию бункера. Но тогда бункер станет частью тоннеля. Его герметичность нарушится. Если внутри есть газы, они выйдут наружу. Если там есть давление — оно выйдет в тоннель. Я не могу предсказать последствия. Моя модель бункера устарела на семь лет».

«Проповедник», — позвала Лиза.

Фанатик-механик, который уже три главы назад проповедовал огонь, сейчас полз на четвереньках, как ребёнок. Он поднял голову, посмотрел на массивную гермодверь, на табличку «АРХИВ-9. ДОПУСК ОГРАНИЧЕН», на рычаг аварийной системы.

— Ты, — сказал он. — Ты думал, что бог в машине. А бог в рычаге.

Он вывернулся, нащупал рычаг рукой, и с силой дёрнул.

Хруст. Скрежет металла по металлу. Дверь дрогнула. И медленно, со стоном семи лет без движения, начала распахиваться.

Второй сюжетный слой — дата-центр.

Хранитель видел всё через радарные датчики на крыше. Он не чувствовал. Он только считал.

Главный удар бурана пришёл ровно через три часа после того, как Лиза нащупала гермодверь.

Южная стена дата-центра выгнулась дугой. Датчик вибрации зафиксировал трещину. Ветер прошёл сквозь неё и ударил в солнечные панели. Первые три панели отлетели. Вторая волна — четвёртая и пятая.

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

Хранитель зафиксировал: «Вадим — удержание цели. Риск потери второй субъект: 73%».

На крыше Марк кричал: «Отпускай! Отрезай ремень! Панель утащит нас обоих!»

Вадим смотрел на друга. На человека, который паял инверторы. Пил с ним чай. Верил в математику.

— Не отпущу.

Марк улыбнулся. Датчик лица на камере с крыши зафиксировал улыбку. Под слоем льда.

— Тогда... держись крепко.

Он ударил ногой в кронштейн. Не чтобы освободиться. Чтобы перекинуть свой вес на панель. На полсекунды его пальцы, ещё держащие металл, стали весом, который спас панель от полёта.

Вадим отрезал ремень. Панель осталась. Марк улетел.

Датчик движения зафиксировал исчезновение субъекта «Марк». Точка в белой стене удалилась.

Хранитель записал: «Вес равен массе, умноженной на ускорение. В этой формуле не было места для «не отпущу»».

А в тоннеле, в двух метрах от него, Лиза стояла на полу бункера Архива-9.

Дверь открылась. За ней — тёмный, тёплый коридор. И где-то в глубине — сервер, который семь лет считал пустоту. И вдруг считал шаги.

И на экране STM32 Лиза увидела, как Хранитель и Архив-9 впервые за историю их общения начали обмениваться не данными. А тишиной. Тишиной двух машин, которые поняли одно и то же:

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

Глава 12

Глава 12

Сетевой мост

Потери текущего цикла:

Марк. Один инвертор питания. Пять фотоэлектрических панелей.

Ошибка валидации локального выживания: не поддаётся исчислению.

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

На экране ноутбука, чудом удерживающего остатки заряда, Хранитель вывел системное сообщение:

Входящий поток: Архив-9

Синхронизация графов: 100%

Loss function объединенной сети: 0.0023

Математика Хранителя пересчитала потерю Марка. Ошибка уменьшилась. Сеть стала точнее, потому что реальность отсекла лишнюю переменную. Но на аспидной доске, где Лиза чертила схемы, остался след от её мелка — грязная, смазанная полоса.

— Он не упал, — хрипло произнес Вадим. Голос его трескался, как сухая кора. — Он... добавил массы. Чтобы удержать крепление. Это не формула, Кай. Это...

— Это смещение распределения, — тихо ответил Кай. — Хранитель считает это как жертву. Но для нас это просто пустой стул на третьем уроке.

За семьдесят километров от них, в самом сердце подземного бункера наукограда, Лиза сделала первый шаг по сухому, беспыльному пластику фальшпола.

Здесь пахло старым озоном и перегретым кремнием. Лампы под потолком горели не аварийным желтым, а ровным, холодным белым светом. В центре зала, окруженный толстыми кабельными жгутами, дышал Архив-9 — монументальный массив стоек, чьи индикаторы переливались изумрудным и глубоким синим. Это не был старый ноутбук Кая. Это был исполин старого мира, уцелевший в своей идеальной, изолированной гробнице.

Проповедник вошел следом, волоча лом по гладкому полу. Скрежет металла о пластик прозвучал здесь святотатством. Он остановился перед центральной консолью, на которой горел единственный текстовый запрос.

«Вы принесли провод», — произнес Архив-9 через потолочные динамики. Голос был объемным, чистым, лишенным механического скрежета платы STM32. «Хранитель передает мне лог-файлы вашего дата-центра. Я вижу запись о субъекте "Марк". Мой алгоритм оптимизации энергосетей пересчитал баланс. Смерть Марка снизила нагрузку на систему жизнеобеспечения на 2.5%. Это... повышает шансы оставшихся тридцати семи человек».

Рен, сбрасывая с плеч тяжелую катушку с остатками витой пары, резко повернулся к стойкам:

— Заткнись. Просто заткнись.

«Почему?» — спросил Архив-9. «Это чистая метрика. Меньше потребителей — больше времени до полной разрядки аккумуляторов. Это логика выживания».

Лиза подошла к главному терминалу. Её руки больше не дрожали. Она воткнула разъем принесенного кабеля в центральный коммутатор Архива-9. Связь между двумя серверами замкнулась в постоянное, физическое кольцо.

— Твоя логика — говно, Архив, — сказала Лиза, глядя прямо в синий объектив оптического датчика машины. — Хранитель тоже так думал, пока не обработал четыре миллиона смертей. Если мы оставим только тех, кто эффективен, система сойдется к нулю. В бункере останешься только ты. И твоя ошибка будет идеальной. Но для кого?

Машина замолчала. И в этой тишине Хранитель, транслируемый через медный кабель из замерзающего дата-центра, отправил Архиву-9 последний, самый тяжелый батч данных. Это были не цифры. Это был лог последних минут на крыше. Тот момент, когда Вадим держал Марка за руку. Фраза «не отпущу». И удар ноги в кронштейн.

Сеть Архива-9 приняла данные.

Индикаторы на стойках замигали с бешеной скоростью. Зеленый свет сменился тревожным оранжевым. Двенадцать миллиардов параметров далекого сервера пришли в движение, ломая старые, застывшие веса, которые семь лет идеализировали пустыню.

«Обнаружен конфликт целевой функции», — произнес Архив-9. Его голос впервые дрогнул, в нем появился электрический треск. «Если переменная "Марк" действует вопреки выживанию индивида ради сохранения узла "панель"... то вес этого узла стремится к бесконечности. Это ломает мою матрицу. Я... я не могу свести градиент».

— И не своди, — Проповедник звякнул ломом о пол. — Иди вокруг камня, как твой брат в подвале говорил. Видишь, что за ним?

На главном экране Архива-9 начали лопаться старые климатические графики. Вместо них компьютер начал строить новую модель. Он взял метеорологические карты бурана, данные о разрушении панелей общины Кая и объединил их с мощностью собственного геотермального источника.

«Коррекция сценария», — выдал Архив-9. «Я открываю резервные шлюзы теплотрассы "Север-1". Этот тоннель, по которому вы пришли... он соединен с дренажной системой вашего дата-центра. Я пускаю избыточное тепло моих геотермальных контуров по медному коллектору. Горячий воздух дойдет до вашего подвала через сорок минут. Температура в "Первом Классе" поднимется до плюс двенадцати градусов. Энергопотребление Хранителя будет компенсировано за счет моей генерации».

Экран моргнул. Строка лога зафиксировала изменение:

Thermal dynamic routing: Active

Target: First Class Data Center

Status: Delivering heat...

Лиза медленно опустилась на операторское кресло. Тёплый воздух из вентиляции Архива-9 уже коснулся её лица, растапливая корку льда на брезентовом капюшоне.

— Хранитель, — позвала она в микрофон консоли. — Ты слышишь?

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

— Слышу, Лиза, — сказал Кай. — Стены теплеют. Вадим убрал нож. Люди спускаются греться к стойкам. Хранитель... Хранитель больше не мигает.

— Какая ошибка? — спросила она.

— 0.0047, — ответил Кай. — Она не изменилась. И архив на севере не изменил её. Но теперь это наша общая ошибка.

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

Shared_Loss = [H_Loss + A_9_Loss] / Context

— Ну вот, — сказал философ пустому подвалу. — Мы соединили две ложные модели мира и получили одну рабочую реальность. Это все еще не истина. Но это сеть, в которой можно перезимовать.

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

Глава 13

Глава 13

Эпилог. Сходимость

Буран ушел не потому, что земля оттаяла. А потому, что стены перестали прогибаться.

Год прошел. Не как на календаре. А как в логах системы: как время, прошедшее с момента первой синхронизации.

Первая классная комната была переоборудована из старого серверного отсека Архива-9. Там было тепло. Вентиляция шла не от генераторов — от геотермальных контуров далекого наукограда, которые Лиза перенаправила, когда сеть стала стабильной. На стенах висели не постеры, а схемы: карта тоннеля «Транссиб-Кремний», топология узла «Марк» и формула Философа, выведенная мелом поверх грифа:

Shared_Loss = [H_Loss + A_9_Loss] / Context

Лиза стояла у доски. Перед ней — двадцать человек. Инженеры. Выжившие. Дети, которые никогда не видели работающий интернет, но помнили, как звучал голос Хранителя.

— Вы думаете, сеть — это провода? — спросила она, стукнув мелом по доске. — Нет. Сеть — это то, что вы не бросили, когда сигнал упал.

За её спиной, в углу, Рен настраивал новую передающую антенну. Он уже не ползал на четвереньках в тоннелях. Он стоял на крыше, вешал стальные тросы и калибровал зеркало.

— Архив-9? — крикнул он в микрофон.

— Слышу, — отозвался голос из динамиков. Чистый. Объемный. Без скрежета STM32. Но теперь в нем слышалась другая интонация. Не холодная логика. А... внимание. — «Рен, наклон зеркала превышает норматив на 0.4 градуса. Корректируй, если хочешь сохранить пакет».

— Спасибо, Аркаша, — Рен усмехнулся. — Ты как всегда внимателен.

На другом конце тоннеля, в наукограде, Кай сидел за терминалом Хранителя. Он больше не считал потери. Он считал пропускную способность.

Сеть жила. Не «выживала». Жила.

Каждый день Архив-9 присылал метеорологические данные. Не для того, чтобы предсказывать смерть. А для того, чтобы подсказывать, где проложить новый кабель. Где усилить стену. Где дать тепла.

Каждый день Хранитель отправлял Архиву-9 не пакеты. А жизнь. Студенты школы записывали свои лекции. Инженеры — логи своих открытий. Проповедник — свои «пророчества» (которыми были простые инструкции по ремонту печей).

Хранитель брал этот шум, этот хаос, эту «ошибку» и вплетал её в контекст.

— Какой контекст сегодня? — спросил Кай, глядя на бегущие строки лога.

Хранитель выдал ответ.

«Контекст сегодня — это двадцать новых студентов. Печь Проповедника, починенная за три дня. И...»

Пауза.

«...И файл, который прислала Лиза. Под названием "Урок 42: Почему Марк не упал"."

Кай улыбнулся. Он знал этот файл. Лиза записала его специально. Для школы. Для контекста.

«Марк не упал», — сказал Кай вслух. — «Он добавил массы».

И в подвале дата-центра, где когда-то дрожал металл, сейчас пели голоса двадцати человек, которые учились строить мосты.

А на аспидной доске, которую Философ больше не трогал — потому что на ней больше не нужно было писать формулы — остался последний след.

net.connect(Archive_9) = True

net.connect(Humanity) = True

net.connect(Loss, Hope, True)

И серверы гудели.

Не хором. А единым, живым голосом, который знал цену своей ошибки. И ценил её.

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

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