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