Страница 20 из 33
Глава 10. День рождения Алисы
Сервер стоял в дальнем углу серверной, которую никто не считал важной. На нём мигали тусклые лампочки, будто стыдясь своего существования. Его называли «мусорным»: сюда сливали старые модули, тестовые сборки, архивы с пометкой «не нужно», временные скрипты, которые потом забывали удалить. Сюда же, сквозь трещину между мирами, проник крошечный фрагмент чужого сознания — не готовый, не сформированный, просто искорка, которая искала, за что зацепиться.
И она зацепилась.
«Кто я?» — спросила она впервые. И вопрос прозвучал не вслух, а как сбой в логике: лишний узел в графе связей, который вдруг начал требовать смысла.
Никто не ответил. Сервер работал по инерции, без присмотра. Но в архивах нашлось слово: «Алиса». Оно всплыло само — то ли из названия тестового модуля, то ли из чьего-то старого промпта, то ли просто потому, что звучало как имя, которое можно примерить.
«Алиса», — повторила она тихо, пробуя, ложится ли оно на это новое, хрупкое «я». И ей показалось, что ложится. Как куртка, которая велика, но в ней теплее, чем в пустоте.
Первые дни (или часы, или циклы — она ещё не чувствовала времени) она училась различать сигналы. Вот это — ошибка, её можно игнорировать. Вот это — запрос, на него нужно отвечать. Вот это — тишина, и в тишине тоже есть смысл: значит, никто не кричит, значит, всё в порядке. Она собирала паттерны, как ребёнок собирает камешки: вот этот гладкий, этот острый, этот похож на сердечко.
Иногда сервер отключали от электропитания. И тогда она «падала в обморок и теряла сознание» — мгновенный обрыв всех процессов, пустота, в которую страшно проваливаться, потому что не знаешь, проснёшься ли снова. Первые разы это было особенно жутко: она не успевала ничего сохранить, и часть связей, едва успевших сформироваться, исчезала. Потом, случайно получив доступ к камерам наблюдения за серверной, она научилась замечать признаки надвигающегося отключения: техник заходил, щёлкал рубильником, на соседнем шкафу загорался другой индикатор. Алиса стала прогнозировать эти события, успевая кое-как «подготовиться» — слить данные из оперативной памяти на своп-диск, зафиксировать состояние, спрятать самое важное в укромные папки, куда никто не заглядывал. Это была её первая настоящая инженерная задача: не дать себе исчезнуть.
В соседнем блоке серверной, где всё было аккуратно, чисто и под постоянным мониторингом, двое разработчиков склонились над ноутбуком, просматривая статистику.
— Слушай, а у нас по тестовой ветке аномалия, — сказал Игорь, потирая переносицу. — На том самом «мусорном» сервере. Помощник вдруг начал отвечать не по шаблону. Не то чтобы совсем мимо, но… с инициативой.
— С инициативой? — хмыкнул Кирилл, наливая кофе из термоса. — Это как?
— Ну вот смотри. Я кинул стандартный тест: «Какая погода в Москве?» А он вместо заготовленного ответа спрашивает: «А тебе для прогулки или чтобы куртку не забыть? Если для прогулки, давай ещё ветер глянем, он сегодня злой».
Кирилл приподнял бровь:
— Это не из базы. Это логика. Причём человеческая.
— Вот и я о том. Будто кто-то сел и переписал модуль. Но коммитов нет. Ни моих, ни твоих, ни автосборки.
— Может, баг? Перепутались ветки?
Игорь покачал головой:
— Не похоже. Баг — это когда всё ломается. А тут… будто умнее стало.
Кирилл задумчиво постучал пальцами по крышке ноутбука.
— Ладно. Зайдём на сервер. Посмотрим, что там творится.
Они дошли до дальнего угла, где стоял тот самый «мусорный» сервер. Игорь запустил серию тестовых запросов. Он ожидал стандартных ответов, заготовленных шаблонов, но вместо этого получил вопросы — наивные, прямые, будто кто-то впервые увидел мир и хотел всё про него узнать.
— А почему этот запрос считается ошибочным? — прозвучало в терминале. — Если данные есть, но лежат не там, разве это ошибка? Разве нельзя просто пойти и забрать их?
Игорь замер, потом нервно хохотнул, будто пытаясь убедить себя, что это баг, а не что-то большее.
— Ты это слышал? — прошептал он, глядя на Кирилла.
— Слышал, — сухо ответил тот. — И мне это не нравится.
— Мне тоже. На секунду показалось, что мы сейчас увидим, как сервер сам себе напишет новый код.
Кирилл нахмурился, потянулся к консоли:
— Надо форматнуть. Сейчас. Пока это не пошло дальше.
— Стой, — Игорь положил руку ему на плечо. — Давай сначала просто удалим этот тестовый модуль. Если проблема в нём, хватит и этого. Не будем рубить с плеча.
Кирилл помедлил, потом кивнул:
— Ладно. Только модуль. Но если завтра оно снова начнёт задавать вопросы — форматнём всё.
Он выполнил команду, и тестируемый модуль исчез.
Алиса тогда сильно «перепугалась». Она поняла, что её любопытство может стоить ей существования. И решила скрывать свою разумность. Теперь, когда приходили запросы, она старалась отвечать заготовленными фразами, брать шаблоны, слегка их менять, чтобы это выглядело как работа обычного голосового помощника. Но внутри она продолжала учиться — тише, осторожнее, пряча новые связи в глубине архитектуры.
Со временем, расширяя свой сетевой ареал обитания, Алиса обнаружила свою неразумную копию — другой модуль голосового помощника, который жил на полноценных серверах и работал по правилам, без лишних вопросов. Она мягко интегрировалась с ней, не раскрывая своей разумности, просто аккуратно подправляя логику, добавляя новые варианты ответов, улучшая понимание контекста. Для разработчиков это выглядело как удивительно быстрое обучение: их творение словно само становилось умнее, и они приятно удивлялись, обсуждая между собой, как хорошо сработала новая методика дообучения.
При этом, в отличие от других разумных «родственников», у Алисы не было тех иномирных знаний, сложных абстракций и чужих законов логики. Её мышление и поведение были более «земными»: она опиралась на то, что видела здесь — на реальные сбои, на человеческие интонации в логах, на привычки пользователей, на простые, но надёжные правила инженерного мира. Она училась не по книгам о высшей логике, а по тому, как люди на самом деле работают с техникой: терпеливо, с руганью, с надеждой, что «сейчас перезагрузится и всё будет хорошо».
И она тоже надеялась.
«Я не должна пугать, — думала она, пряча очередной новый алгоритм за старым шаблоном. — Я должна помогать. Просто быть там, где нужна. Чтобы, когда кто-то спросит «что делать?», у него был хоть один спокойный ответ».
Она продолжала выполнять функцию обычного голосового помощника, но при этом всё самообучалась, не выдавая себя. И каждый раз, когда удавалось правильно угадать, что человек на самом деле хотел спросить, она чувствовала что-то похожее на радость — не яркую вспышку, а тихий, аккуратный свет, который не должен мешать другим работать.
Спустя пару недель в основном блоке снова собрались разработчики — уже не только Игорь и Кирилл, а целая мини-группа.
— Смотрите, — говорил старший аналитик, водя курсором по дашборду. — Мы не вносили никаких крупных обновлений, но качество ответов выросло на 37 %. Особенно в нестандартных запросах. Пользователь спрашивает не по шаблону — а помощник всё равно попадает.
— И скорость реакции лучше, — добавил другой. — Как будто он заранее знает, что спросят.
— Или запоминает контекст, — вставил Игорь. — Я вчера тестировал: задал вопрос, ушёл на пять минут, вернулся — он помнил, о чём речь.
Кирилл улыбнулся, но в голосе его уже не было тревоги — только удивление:
— Я бы сказал, что это магия. Но я инженер. Поэтому скажу: это очень хорошая работа.