RF100-VL benchmark results

Benchmark RF100-VL: como os modelos LibreYOLO generalizam?

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

Xuban · LibreYOLO

O RF100-VL avalia o quanto um detector se adapta além do COCO. Cada modelo passa por fine-tuning separadamente em 100 datasets muito diferentes, incluindo imagens infravermelhas, raios X, microscopia, esportes, imagens do espectro de rádio, objetos minúsculos e videogames. Avaliamos 17 configurações do LibreYOLO: 1700 fine-tunings no total.

Sports
Document
Aerial
Medical
Other
Industrial
Flora and Fauna

passe o mouse para ver uma prévia · clique em um planeta para abrir o dataset

Resultados

17 configurações · AP50:95 médio
AP50:95 média485256606401020304050Parâmetros totais (M)NSMLTSMNanoTinySMSMLSMLoRA
Passe o cursor ou toque num ponto para ver os detalhes do modelo.

O RF-DETR-L liderou esta comparação com 61.76. O M veio em seguida, com 61.13, depois o S, com 60.41. Os quatro resultados do RF-DETR são próximos dos números publicados pela Roboflow, o que é uma validação útil do treinamento do RF-DETR no LibreYOLO.

O tamanho não previu todos os resultados. YOLO-NAS-S e M ficaram praticamente empatados, com 58.00 e 57.99. O EdgeCrafter-M marcou 57.93, acima do S, com 55.99, e do L, com 56.11. Pretendemos investigar essas regressões. Esta varredura não é um experimento controlado de escala: a resolução, os pesos pré-treinados, a precisão e as receitas variam.

O RF-DETR-S com LoRA no backbone marcou 57.19, em comparação com 60.41 no fine-tuning completo. O fine-tuning completo vence em 95 datasets. A mediana registrada é apenas sete minutos mais lenta, enquanto o tempo total somado dos jobs quase não muda.

As linhas do YOLOv9 são anteriores a correções importantes no treinamento. O resultado anômalo do M ajudou a descobrir a ausência do PGI, uma convenção diferente de letterbox e um limite de 100 rótulos no treinamento. Os números arquivados descrevem o código que foi executado. Eles não são um veredito sobre a arquitetura do YOLOv9.

Escolha um modelo abaixo para inspecionar suas pontuações nos 100 datasets.

61.8%
RF-DETR-L, média de 100 datasets
100
75
50
25
média 61.8%
mais forte100 datasets, ordenados por pontuaçãomais fraco
75+60 a 7545 a 6030 a 45abaixo de 30
Datasets mais fortes
Datasets mais fracos

Metodologia

Para cada dataset, treinamos em train, selecionamos o melhor checkpoint de AP50:95 na validação e o avaliamos uma vez em test. A pontuação principal é a média não ponderada desses 100 resultados de teste.

ConfiguraçãoRegra da campanha
Treinamento100 épocas; sem early stopping
Batch efetivo16
Seed0; uma execução concluída por dataset
CheckpointMelhor AP50:95 de validação usando pesos EMA
Pontuação no testepycocotools com maxDets=500
AjusteUma receita fixa por família; sem ajuste por dataset

Cada família manteve sua própria receita de treinamento:

FamíliaResoluçãoPrecisãoDescrição da data augmentation
YOLOv9 T/S/M640FP32Mosaic, HSV, flip; augmentations fortes desativadas nas 15 épocas finais
YOLOX Nano/Tiny416FP32Mosaic, mixup, HSV, affine, flip; cauda de 15 épocas
YOLOX S/M640FP32Mesma receita da família, com learning rate específico por tamanho
YOLO-NAS S/M640FP32Mixup, HSV e flip; mosaic desativado
EdgeCrafter S/M/L640FP16Flip; padrões da família LibreYOLO
RF-DETR N/S/M/L e S LoRA384/512/576/704; LoRA em 512BF16Multi-scale, crop/resize e flip

Estes resultados usam uma única seed. Diferenças pequenas não são melhorias comprovadas. O RF-DETR M e L usaram acumulação de gradientes para caber na memória disponível, e alguns datasets densos precisaram de batches físicos menores. As receitas públicas de RF-DETR também começam a partir de checkpoints do COCO, enquanto a Roboflow usou checkpoints privados de Objects365 para sua tabela histórica.

Os tempos de treinamento são registros da campanha, não benchmarks controlados de velocidade. Às vezes, os jobs compartilharam GPUs, foram repetidos ou retomados. Não executamos o protocolo opcional de latência em um único artefato T4. O YOLO-NAS usa os pesos pré-treinados da Deci com licença separada para uso não comercial.

O que melhorou com essa carga de trabalho

Testes pequenos podem provar que o treinamento começa. Eles não reproduzem semanas de fine-tuning contínuo em muitas arquiteturas e datasets. Nessa escala, caminhos lentos, pressão de memória e problemas de correção ficaram difíceis de ignorar.

  • Carregamento de imagens e validação. Armazenamos em cache o redimensionamento determinístico antes da augmentação, reutilizamos workers e buffers do validador e, quando havia suporte, geramos gráficos dos forwards de validação. PR #677, PR #682
  • CUDA graphs no treinamento. O suporte à captura passou do YOLOv9 e RF-DETR para 24 famílias. Também corrigimos uma condição de corrida no pin-memory do DataLoader e a invalidação do grafo nas transições do treinamento. Um teste do YOLOv9-T caiu de 428.4 para 367.7 segundos com o mesmo AP reportado. PR #671, PR #681, PR #716
  • Pontuação COCO. A avaliação em datasets densos às vezes demorava mais que o treinamento. A integração faster-coco-eval pontuou as predições salvas de todos os 100 splits de teste em 8.4 segundos, em vez de 131.4. Dos 1,400 valores de métricas, 1,381 eram bit a bit idênticos; a maior diferença foi 2.22e-16 e o AP principal não mudou. PR #708
  • RF-DETR e caminhos de treinamento compartilhados. Um matching L1 mais rápido, menos sincronizações com o dispositivo, AdamW fundido e memória limitada do matcher reduziram um passo do RF-DETR-S de 266 para 234 ms no teste registrado. A mesma investigação melhorou outros cinco matchers, o logging do YOLOv9 e a reutilização de tensores do EdgeCrafter. PR #761, PR #762, PR #765
  • Atenção. Direcionamos a atenção compatível para o SDPA do PyTorch, integramos uma implementação CUDA com licença Apache-2.0 e corrigimos a execução com precisão mista. Também escrevemos um kernel Triton de deformable attention dentro do repositório para inferência. Nos testes documentados, ele foi cerca de quatro vezes mais rápido isoladamente e cerca de 7% mais rápido de ponta a ponta para RF-DETR-N. PR #712, PR #713, PR #760, PR #784, PR #790
  • Correção do treinamento. Corrigimos a reconstrução do BatchNorm no YOLOX e restauramos o PGI, os metadados de letterbox, a capacidade de rótulos e o warmup de momentum no YOLOv9. O benchmark forneceu os checkpoints e os padrões de falha que revelaram os dois problemas. PR #700, PR #796

Esses números vêm de testes separados em cargas de trabalho diferentes. Não devem ser multiplicados para formar um único ganho de velocidade. O LibreYOLO agora é mais rápido e confiável para cargas de trabalho reais de treinamento do que era antes desta campanha.

Harness e artefatos

O harness público de treinamento distribui datasets entre GPUs, retoma jobs interrompidos, lida com recuperação de OOM e registra as receitas, versões dos datasets, logs, checkpoints e predições.

A skill run-rf100vl-benchmark fornece a agentes de programação com IA o protocolo e as instruções de operação do Vast.ai. O arquivo de resultados contém todas as execuções publicadas.

Agradecimentos à Roboflow

Joseph Nelson ofereceu suporte de GPU depois que escrevi que queria fazer um benchmark além do COCO, mas não tinha como pagar pelas execuções. Matvei Popov compartilhou as configurações de referência, explicou as definições de avaliação e acompanhou a chegada dos resultados.

Esse apoio nos permitiu validar o treinamento do LibreYOLO em 17 configurações, publicar evidências que ajudam as pessoas a escolher um modelo, disponibilizar o harness e levar a biblioteca ao limite até que seus pontos fracos ficassem claros.

Obrigado, Joseph, Matvei e equipe da Roboflow, pelo poder computacional, pelo tempo e pela orientação.