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