RF100-VL benchmark results

RF100-VL: насколько хорошо модели LibreYOLO работают на новых датасетах?

Generalization beyond COCO: how well object detectors adapt to new datasets.

Xuban · LibreYOLO

RF100-VL проверяет, насколько хорошо детектор адаптируется к данным за пределами COCO. Каждую модель отдельно дообучали на 100 совершенно разных датасетах, в том числе с инфракрасными снимками, рентгеновскими изображениями, микроскопией, спортом, изображениями радиоспектра, крошечными объектами и видеоиграми. В бенчмарке участвовали 17 конфигураций LibreYOLO: всего 1700 запусков дообучения.

Sports
Document
Aerial
Medical
Other
Industrial
Flora and Fauna

наведите для предпросмотра · нажмите на планету, чтобы открыть датасет

Результаты

17 конфигураций · среднее AP50:95
Средняя AP50:95485256606401020304050Всего параметров (млн)NSMLTSMNanoTinySMSMLSMLoRA
Наведите курсор или нажмите на точку, чтобы увидеть сведения о модели.

В этом сравнении лидирует RF-DETR-L с результатом 61.76. Следом идут M с 61.13 и S с 60.41. Все четыре результата RF-DETR близки к опубликованным показателям Roboflow, что служит полезным подтверждением корректности обучения RF-DETR в LibreYOLO.

Размер модели не всегда предсказывал результат. YOLO-NAS-S и M практически сравнялись: 58.00 и 57.99. EdgeCrafter-M набрал 57.93, опередив S с 55.99 и L с 56.11. Эти регрессии планируется изучить. Этот эксперимент не был контролируемым исследованием масштабирования: разрешение, предобученные веса, точность и рецепты различались.

RF-DETR-S с LoRA для бэкбона набрал 57.19 против 60.41 при полном дообучении. Полное дообучение оказалось лучше на 95 датасетах. Зафиксированная медианная длительность была всего на семь минут больше, а суммарное время задач почти не изменилось.

Результаты YOLOv9 получены до важных исправлений в обучении. Аномальный результат M помог обнаружить отсутствие PGI, другое соглашение для letterbox и ограничение обучения на 100 меток. Архивные числа отражают код, который тогда запускался. Они не дают оценки архитектуре YOLOv9.

Выберите модель ниже, чтобы изучить её результаты на всех 100 датасетах.

61.8%
RF-DETR-L, среднее по 100 датасетам
100
75
50
25
среднее 61.8%
лучшийДатасетов: 100, сортировка по результатухудший
75+от 60 до 75от 45 до 60от 30 до 45менее 30
Лучшие датасеты
Худшие датасеты

Методика

Для каждого датасета обучение запускалось на train, выбирался чекпойнт с наилучшим AP50:95 на валидации, а оценка на test выполнялась один раз. Итоговый показатель — невзвешенное среднее 100 результатов на test.

НастройкаПравило кампании
Обучение100 эпох; без ранней остановки
Эффективный батч16
Сид0; один завершённый запуск на датасет
ЧекпойнтЛучший AP50:95 на валидации с весами EMA
Оценка на тестеpycocotools с maxDets=500
Подбор параметровОдин зафиксированный рецепт на семейство; без настройки под отдельные датасеты

Для каждого семейства использовался свой рецепт обучения:

СемействоРазрешениеТочностьСхема аугментации
YOLOv9 T/S/M640FP32Mosaic, HSV, отражение; сильные аугментации отключены за последние 15 эпох
YOLOX Nano/Tiny416FP32Mosaic, mixup, HSV, affine, отражение; финишный этап из 15 эпох
YOLOX S/M640FP32Тот же рецепт семейства, скорость обучения зависит от размера
YOLO-NAS S/M640FP32Mixup, HSV и отражение; mosaic отключён
EdgeCrafter S/M/L640FP16Отражение; настройки семейства LibreYOLO по умолчанию
RF-DETR N/S/M/L и S LoRA384/512/576/704; для LoRA — 512BF16Несколько масштабов, кадрирование и изменение размера, отражение

Это результаты с одним сидом. Небольшие различия не подтверждают улучшение. Для RF-DETR M и L применялось накопление градиентов, чтобы уложиться в доступную память, а для некоторых датасетов с высокой плотностью объектов потребовалось уменьшить физический батч. Публичные рецепты RF-DETR также используют начальные чекпойнты COCO, тогда как в исторической таблице Roboflow применялись закрытые чекпойнты Objects365.

Время обучения взято из записей кампании, это не контролируемые тесты скорости. Задачи иногда выполнялись на общих GPU, перезапускались после сбоев или возобновлялись. Не проводился необязательный протокол измерения задержки одного артефакта на T4. Для предобученных весов YOLO-NAS используется отдельная лицензия Deci для некоммерческого использования.

Что улучшилось благодаря этой работе

Небольшие тесты подтверждают, что обучение запускается. Они не воспроизводят недели непрерывного дообучения на множестве архитектур и датасетов. На таком масштабе стали заметны медленные участки, нехватка памяти и проблемы с корректностью.

  • Загрузка изображений и валидация. Детерминированное изменение размера кэшировалось до аугментации, повторно использовались рабочие процессы и буферы валидатора, а там, где это поддерживалось, строились графы прямого прохода валидации. PR #677, PR #682
  • Графы CUDA при обучении. Поддержка захвата графов расширилась с YOLOv9 и RF-DETR до 24 семейств. Также исправлены гонка при закреплении памяти DataLoader и инвалидирование графа при переходах между этапами обучения. Тест YOLOv9-T сократился с 428.4 до 367.7 секунды при том же заявленном AP. PR #671, PR #681, PR #716
  • Оценка COCO. Оценка на плотных датасетах иногда занимала больше времени, чем обучение. Интеграция faster-coco-eval оценила сохранённые предсказания на всех 100 тестовых выборках за 8.4 секунды вместо 131.4. Из 1,400 значений метрик 1,381 совпало побитово; максимальное различие составило 2.22e-16, итоговый AP не изменился. PR #708
  • RF-DETR и общие пути обучения. Более быстрое сопоставление L1, меньше синхронизаций с устройством, объединённый AdamW и ограничение памяти матчера сократили шаг RF-DETR-S с 266 до 234 мс в зафиксированном тесте. В ходе того же исследования улучшили ещё пять матчеров, логирование YOLOv9 и повторное использование тензоров EdgeCrafter. PR #761, PR #762, PR #765
  • Механизм внимания. Подходящие операции внимания были переведены на PyTorch SDPA, добавлена CUDA-реализация под Apache-2.0 и исправлено выполнение со смешанной точностью. Также для инференса написано ядро deformable attention на Triton, включённое в репозиторий. В описанных тестах отдельно оно работало примерно в четыре раза быстрее, а сквозное выполнение RF-DETR-N было примерно на 7% быстрее. PR #712, PR #713, PR #760, PR #784, PR #790
  • Корректность обучения. Исправлена реконструкция BatchNorm в YOLOX, восстановлены PGI в YOLOv9, метаданные letterbox, ёмкость для меток и разогрев momentum. Бенчмарк предоставил чекпойнты и характерные сбои, которые помогли выявить обе проблемы. PR #700, PR #796

Эти числа получены в отдельных тестах на разных задачах. Их нельзя перемножать и представлять как единый прирост скорости. Теперь LibreYOLO быстрее и надёжнее справляется с реальными задачами обучения, чем до этой кампании.

Тестовый стенд и артефакты

Общедоступный тестовый стенд обучения распределяет датасеты между GPU, возобновляет прерванные задачи, восстанавливается после нехватки памяти и записывает рецепты, версии датасетов, логи, чекпойнты и предсказания.

В инструкции по запуску бенчмарка run-rf100vl-benchmark для AI-агентов, пишущих код, описаны протокол и инструкции по работе с Vast.ai. В архиве результатов собраны все опубликованные запуски.

Спасибо Roboflow

Joseph Nelson предложил поддержку GPU после того, как я написал, что хочу провести бенчмарк за пределами COCO, но не могу оплатить запуски. Matvei Popov поделился эталонными настройками, объяснил параметры оценки и следил за появлением результатов.

Благодаря этой поддержке удалось проверить обучение LibreYOLO на 17 конфигурациях, опубликовать данные, помогающие выбирать модель, выпустить тестовый стенд и нагрузить библиотеку так, чтобы её слабые места стали очевидны.

Спасибо Joseph, Matvei и команде Roboflow за вычислительные ресурсы, время и рекомендации.