ADR 002: Dynamic Model Routing 2.0 (Capability-Aware Routing Matrix)¶
Дата: 2026-04-21
Статус: Принято
Автор: Black Swan Core Architecture Team
1. Контекст¶
До версии 0.6 распределение задач между узлами роя было полностью статическим. Core Node выполнял все сложные задачи (стратегия, Architectus), а Edge-узлы — только рутинные (Vagrant). Это приводило к трём фундаментальным проблемам:
- Ресурсный дисбаланс. Core Node часто простаивал в ожидании задач, в то время как арендованные Edge-узлы не могли справиться с нестандартными запросами из-за нехватки экспертов.
- Отсутствие учёта вида. Задачи
Arbtiragius(трейдинг) иSentinella(безопасность) отправлялись на те же узлы, что иArchitectus, хотя их требования к латентности и экспертизе кардинально различаются. - Неоптимальность затрат. Система не могла динамически выбирать между локальным инференсом, арендой GPU через EIF или вызовом API на основе текущей стоимости и задержки.
С переходом на DeepSeek‑V4 и видовые маски (ADR‑001) появилась возможность тонко настраивать процент активируемых экспертов под каждую задачу. Однако механизм, принимающий это решение, отсутствовал.
2. Решение¶
Реализовать Dynamic Model Routing 2.0 — Capability-Aware Routing Matrix. Это сервис (DynamicModelRouter, Rust), который для каждой входящей задачи в реальном времени выбирает оптимальную конфигурацию исполнения по четырём осям:
- Целевой узел: Core Node, Regional Aggregator, или Edge Node.
- Видовая маска:
Architectus,Arbtiragius,Sentinella,Vagrant. - Процент активируемых экспертов: 20–60%.
- Параметры инференса: квантизация (AWQ 4‑bit, INT4), число спекулятивных токенов (P-EAGLE).
Решение принимается на основе матрицы маршрутизации, хранящейся как CRDT-объект в GlobalState.infrastructure_state. Каждая запись матрицы связывает сигнатуру задачи (тип, сложность, срочность, длина контекста) с рекомендованной конфигурацией и историческими метриками.
Оптимизация производится по трёхцелевому Pareto-фронту (Quality, Latency, Cost/Energy), а в критических ситуациях — с добавлением четвёртой оси Strategic Risk (вероятность раскрытия).
Матрица самообучается: 10% задач направляются по экспериментальным маршрутам. L0 Meta-Analyzer анализирует результаты и обновляет веса Pareto и записи матрицы. Удачные экспериментальные маршруты промоутятся через Decision Pipeline.
3. Последствия¶
Положительные¶
- Экономия GPU-часов на 15–25% за счёт точного подбора конфигурации.
- Снижение задержки Fast Path. Для задач PPO-трейдинга роутер использует предварительно прогретый кэш, обеспечивая p95 < 5 мс на принятие решения о маршруте.
- Автономная оптимизация. Система больше не требует ручной настройки балансировки нагрузки.
- Учёт скрытности. Добавление оси Strategic Risk в Pareto-оптимизацию позволяет избегать узлов с высоким риском раскрытия.
Отрицательные¶
- Увеличение сложности. Роутер — новый критический компонент. Его отказ (confidence < 0.75) вызывает fallback на статическую политику, которая может быть неоптимальной.
- Зависимость от L0. Качество маршрутизации напрямую зависит от регулярного анализа L0
Meta-Analyzer. В первые дни после активации матрица неоптимальна. - Риск пере‑оптимизации. Без должной калибровки роутер может излишне агрессивно экономить ресурсы в ущерб качеству. Защита: L0-инвариант
routing_coherence ≥ 0.88.
Нейтральные¶
- Необходимость во внедрении
RoutingDecisionArtifactвEventBusдля аудита.
4. Связь с другими документами¶
- Реализация роутера: Memory_Hierarchy_Mem0g.md (раздел 6)
- Fast Path интеграция: Global_State_and_Decision_Pipeline.md (раздел 2.3)
- L0 Meta‑Mem0g и обучение матрицы: Memory_Hierarchy_Mem0g.md (раздел 8)
- Видовые маски: ADR_001_Migration_to_DeepSeekV4.md