реклама
Бургер менюБургер меню

Андрей Милковский – Новый рассвет. Перелом (страница 16)

18

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

– Сейчас, – начал он, рисуя простую линейку блоков, – у нас Aegis-β даёт нам пачки сырых данных: временные ряды от датчиков поля, тока, напряжения, положения образца. Всё это валится в один агрегатор, потом в Palingenesis v0.3.

Он отметил блок.

– Внутри этого блока мы делаем:

– предварительную фильтрацию по частоте;

– нормализацию амплитуд;

– расчёт автокорреляции по окну τ;

– сравнение с эталонными шаблонами;

– генерацию отчёта.

Он обвёл блок в воздухе:

– Это слишком много для одного слоя. Любое изменение на входе – и нам приходится перекраивать весь алгоритм.

– А что предлагаешь? – спросил Дмитрий.

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

– Предлагаю трёхуровневую архитектуру:

1. Аппаратный уровень (Aegis-β → β-2)

– часть фильтрации и синхронизации делаем сразу на железе:

– вводим дополнительные Q-модули, которые обеспечивают стабильный временной шаг и базовую отбраковку шумовых участков;

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

2. Промежуточный уровень (Q-PreFilter)

– маленький, но быстрый блок, привязанный к Q-Beacon, который:

– пересинхронизирует данные по единому «маяку»;

– вычисляет простейшие статистики (средние, дисперсии);

– отметает участки, явно не содержащие полезной информации.

3. Алгоритмический уровень (Palingenesis v0.4)

– уже не занимается «выгребанием мусора», а работает по чище подготовленным данным:

– фокусируется на фазовых корреляциях;

– строит модели «эхо» и устойчивых паттернов;

– готовит материал для дальнейшей реконструкции.

– То есть, – подытожил Дмитрий, – ты хочешь, чтобы Palingenesis перестал быть свалкой всех задач и стал специализироваться на главном – работе с паттернами и корреляциями.

– Да, – подтвердил Самир. – И это позволит нам перейти от v0.3x, которая в основном считает, к v0.4, которая уже начинает *моделировать*.

Джас хмыкнул:

– Звучит красиво. Но это всё равно перекладывает часть работы на мой Aegis. Ты хочешь от меня Aegis-β-2, который не просто «снимает», а ещё и «думает».

– Не думает, – возразил Самир. – Слушает. И чётче стучит в Q-Beacon.

Дмитрий задумчиво посмотрел на схему.

– Джас, а что у нас реально по запасу по мощности и стабильности, если мы начнём вешать на Aegis-β дополнительные Q-модули и пороговые фильтры?

Инженер пожал плечами:

– Запас есть. Мы делали β с прицелом на расширение. Но любая новая цепь – это потенциальный источник шумов, резонансов и физических точек отказа. С твоими софтовыми блоками можно откатиться, здесь – нужно перетирать металл.

– И тут, – сказал Самир спокойным тоном, который у него появлялся, когда он готовился к долгому спору, – мы подходим к вопросу, где у нас на самом деле «бутылочное горлышко».

Технический спор начался не с крика, а с определений. Так, как любят люди, которые по профессии должны быть точными.

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

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

Он ткнул пальцем в блок «Aegis-β» на схеме:

– У тебя в модельках всё идеально: нет дрейфа температуры, нет микровибраций, нет паразитных полей от соседних блоков. В реальной лаборатории это всё есть. И каждый дополнительный «мини-мозг» на железе – это ещё один источник паразитики.

– Именно поэтому, – парировал Самир, – я и хочу развести уровни. Сейчас всё это сваливается в Palingenesis, и мы туда записываем не только сигналы, но и наши ошибки. Потом начинаем объяснять «эхо» железом, алгоритмами, погодой и фазой луны одновременно.

Он кивнул на Aegis:

– Если мы научим твой β-2 отдавать нам более структурированный поток, мы сможем отдельно анализировать, где физика, а где математика.

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

– Давайте конкретнее, – сказал он. – Джас, что тебе нужно, чтобы перейти от β к β-2 в том виде, который предлагает Самир?

Джас задумчиво посмотрел на схему и, чуть прищурившись, начал раскладывать по полочкам:

– По железу:

– дополнительный слой экранирования вокруг новых Q-модулей;

– новая разводка питания, чтобы они не садились на уже загруженные линии;

– отдельные датчики температуры и вибраций в зоне этих модулей;

– переразметка кабельных трасс, чтобы не было перекрёстных наводок.

Он вздохнул:

– По времени – месяц плотной работы с парой ночных смен и серией калибровок. По людям – нужны мои руки, руки Алексея и ещё одного техника. По нервам – много кофе.

– По алгоритмам, – сказал Самир, продолжая цепочку, – мне нужно:

– совместно с тобой определить формат данных, которые отдают эти Q-префильтры;

– задать жёсткие временные ограничения: сколько миллисекунд они могут задерживать поток;

– заложить в Palingenesis v0.4 логику, которая будет учитывать, где данные прошли через железный фильтр, а где – нет.

Он помолчал и добавил:

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

– То есть ты хочешь, чтобы я затащил в святая святых нашего железа хакера, который вчера ещё мог смотреть на нас снаружи? – уточнил Джас.

– Я хочу, чтобы человек, который понимает, как данные текут по сети и где они могут потеряться или исказиться, помог нам не сделать глупостей, – ответил Самир. – Он теперь часть команды. Либо мы это учитываем, либо потом будем смотреть расследования Маши о том, как «ошибка в логировании привела к…».

Дмитрий кивнул: