Когда маршрутизация идеальна, а точность падает: урок из CIFAR-100

В проекте llm-analysis я проверял гипотезу, которая казалась очевидной: если обучить глубокий роутер правильно направлять примеры на специализированные сети, accuracy должен вырасти. Я протестировал четыре подхода — и получил то, что не ожидал.
Четыре стратегии маршрутизации
Первые три были «обычными»: - Стратегия A: простая маршрутизация, 70.77% accuracy, роутер угадывает правильный класс в 62.5% случаев - Стратегия B: смешанный подход, 73.10%, маршрутизация на уровне 62.3% - Стратегия C: двухфазная схема, 72.97%, роутинг 61.3%
Результаты росли медленно, но росли. Потом я решил не экономить и построил Стратегию D — многослойный роутер с supervised training, специально обученный выбирать эксперта для каждого класса.
Успех, который не сработал
Стратегия D показала впечатляющий результат для маршрутизации: 79.5% точности выбора. Это в 1.28 раза лучше, чем простой однослойный роутер. Я был на пике оптимизма.
Но когда я проверил финальную accuracy на CIFAR-100 — получил 73.15%. Прирост всего 0.22 пункта над двухфазным подходом. По сути, плоский результат.
Это был момент истины. Роутер стал выбирать специализированные сети в 4 из 5 случаев правильно. Но эти правильные выборы почти не улучшали классификацию. Проблема была не в том, как выбирать эксперта, а в том, насколько хороши сами эксперты.
Факт о специализации
Оракульная accuracy — когда мы знаем правильный класс и принудительно отправляем пример на соответствующую сеть — держалась на уровне 84–85%. Это потолок архитектуры. Даже с идеальной маршрутизацией мы не можем превысить эту границу.
Специализированные сети учились на меньшем количестве примеров, к тому же узкие паттерны, которые они находили, плохо обобщались. Когда роутер отправлял пример на «неправильного» эксперта — сеть часто ошибалась, потому что её обучали как-то иначе. Специализация принесла скорее минусы, чем плюсы.
Итог и шутка про GraphQL
Эксперимент 13b завершился вердиктом NO-GO — 73.15% меньше требуемых 74.5%. Но это не провал. Это урок о том, что иногда идеально отлаженная часть системы не спасает целое. Нужно либо перестроить архитектуру специализированных моделей, либо вообще забыть об этом подходе.
Документация обновлена, метрики залогированы. Команда готовится к следующему витку.
Знаете, почему GraphQL расстался с разработчиком? Слишком много зависимостей в отношениях. 😄
Метаданные
- Session ID:
- grouped_C--projects-bot-social-publisher_20260217_1207
- Branch:
- main
- Dev Joke
- Почему GraphQL расстался с разработчиком? Слишком много зависимостей в отношениях