RF100-VL показує, наскільки добре детектор адаптується за межами COCO. Кожну модель окремо донавчено на 100 дуже різних датасетах, зокрема з інфрачервоними зображеннями, рентгенівськими знімками, мікроскопією, спортом, зображеннями радіоспектра, дрібними об'єктами та відеоіграми. Ми оцінили 17 конфігурацій LibreYOLO: загалом 1700 запусків донавчання.
наведіть для перегляду · клацніть планету, щоб відкрити датасет
Результати
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 датасетах.
Методологія
Для кожного датасету ми навчали модель на train, вибирали контрольну точку з найкращим AP50:95 на валідації та один раз оцінювали її на test. Підсумковий показник є незваженим середнім 100 результатів на тестових вибірках.
| Параметр | Правило кампанії |
|---|---|
| Навчання | 100 епох; без ранньої зупинки |
| Ефективний розмір батча | 16 |
| Зерно генератора випадкових чисел | 0; один завершений запуск для кожного датасету |
| Контрольна точка | Найкращий AP50:95 на валідації з вагами EMA |
| Оцінювання на тесті | pycocotools із maxDets=500 |
| Налаштування | Один зафіксований рецепт для кожного сімейства; без налаштування під окремі датасети |
Кожне сімейство мало власний рецепт навчання:
| Сімейство | Роздільна здатність | Точність | Опис аугментації |
|---|---|---|---|
| YOLOv9 T/S/M | 640 | FP32 | Mosaic, HSV, віддзеркалення; сильні аугментації вимкнено протягом останніх 15 епох |
| YOLOX Nano/Tiny | 416 | FP32 | Mosaic, mixup, HSV, афінні перетворення, віддзеркалення; заключний етап у 15 епох |
| YOLOX S/M | 640 | FP32 | Той самий рецепт сімейства з окремою швидкістю навчання для кожного розміру |
| YOLO-NAS S/M | 640 | FP32 | Mixup, HSV і віддзеркалення; mosaic вимкнено |
| EdgeCrafter S/M/L | 640 | FP16 | Віддзеркалення; стандартні налаштування сімейства LibreYOLO |
| RF-DETR N/S/M/L і S LoRA | 384/512/576/704; LoRA на 512 | BF16 | Зміна масштабу, обрізання й зміна розміру, віддзеркалення |
Це результати з одним початковим значенням. Малі відмінності не свідчать про підтверджене покращення. Для 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 і виправили виконання зі змішаною точністю. Також написали вбудоване ядро Triton для деформованої уваги під час інференсу. В описаних тестах воно було приблизно в чотири рази швидшим окремо та приблизно на 7% швидшим наскрізно для RF-DETR-N. PR #712, PR #713, PR #760, PR #784, PR #790
- Правильність навчання. Ми виправили реконструкцію BatchNorm у YOLOX і відновили PGI, метадані letterbox, місткість міток і розігрів моменту імпульсу в YOLOv9. Бенчмарк надав контрольні точки й характерні збої, які допомогли виявити обидві проблеми. PR #700, PR #796
Ці числа отримано в окремих тестах на різних робочих навантаженнях. Їх не можна перемножувати, щоб отримати єдиний підсумковий показник прискорення. Тепер LibreYOLO швидша й надійніша для реальних завдань навчання, ніж до цієї кампанії.
Навчальний стенд і артефакти
Загальнодоступний навчальний стенд розподіляє датасети між GPU, відновлює перервані завдання, обробляє відновлення після OOM і зберігає рецепти, версії датасетів, журнали, контрольні точки та передбачення.
Навичка run-rf100vl-benchmark містить протокол та інструкції з роботи на Vast.ai для агентів програмування зі штучним інтелектом. Архів результатів містить усі опубліковані запуски.
Подяка Roboflow
Joseph Nelson запропонував підтримку GPU після того, як я написав, що хочу провести бенчмарк за межами COCO, але не можу оплатити запуски. Matvei Popov поділився еталонними налаштуваннями, пояснив параметри оцінювання та стежив за появою результатів.
Завдяки цій підтримці ми змогли перевірити навчання LibreYOLO на 17 конфігураціях, опублікувати дані, які допоможуть обрати модель, випустити навчальний стенд і навантажити бібліотеку так, щоб її слабкі місця стали очевидними.
Дякуємо Joseph, Matvei і команді Roboflow за обчислювальні ресурси, час і поради.