Как подбирать бэкбоны для классификации?
Что проверяют
Умеете ли вы выбирать архитектуру под ограничения задачи, а не по верхней строчке лидерборда ImageNet. Интервьюер ждёт процедуру сравнения, которая не требует полного обучения десятка моделей. Следом обычно спрашивают, как вы уложились в требования по задержке.
Как отвечать
Начните с ограничений, они отсекают большую часть вариантов:
- где работает модель: сервер с GPU, CPU или телефон. Под мобильные устройства смотрят MobileNetV3 и похожие лёгкие сети, на сервере ConvNeXt, EfficientNetV2 и семейство ViT;
- бюджет задержки и памяти: мерить нужно на целевом железе и в целевом рантайме (ONNX Runtime, TensorRT), а не по FLOPs из статьи;
- объём и домен данных: на малой выборке свёрточные сети с предобучением ведут себя стабильнее, трансформерам нужно больше данных или сильное предобучение. Медицина, спутниковые снимки и документы далеки от ImageNet, выигрыш на бенчмарке может не перенестись;
- предобучение: ImageNet-1k, ImageNet-21k или самообучение вроде DINOv2, чьи признаки часто хороши даже с замороженным энкодером.
Дальше процедура. Возьмите три-пять кандидатов из timm или torchvision и для каждого сделайте linear probe: заморозьте бэкбон, обучите только голову, сравните метрику на одной и той же валидации. Это дёшево и быстро отсекает слабых. Лучшие двое идут на полное дообучение с одинаковыми аугментациями и расписанием learning rate, иначе вы сравниваете рецепты, а не архитектуры. Итог это компромисс метрики и задержки, его удобно показать точками на графике.
Для текста логика та же, только кандидаты это энкодеры семейства BERT, а ограничения чаще касаются длины контекста.
Где спотыкаются
Называют RNN и VGG актуальным выбором. VGG тяжела и уступает современным сетям, а RNN в роли бэкбона для классификации сейчас почти не встречаются.
Сравнивают бэкбоны с разными рецептами обучения и делают вывод об архитектуре.
Меряют скорость по FLOPs или на своей видеокарте, а потом модель не укладывается в задержку на проде.