docs(perception): record RF-DETR COCO parity evidence
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
# M48T RF-DETR upstream и TensorRT parity gate
|
||||
|
||||
Дата: 2026-08-26
|
||||
|
||||
Режим: diagnostic shadow
|
||||
|
||||
Worker: `worker-006`, NVIDIA GeForce RTX 4090
|
||||
|
||||
Production acceptance: **нет**
|
||||
|
||||
## Решение
|
||||
|
||||
Полный официальный COCO val2017 gate принят. Закреплённый RF-DETR Large
|
||||
checkpoint воспроизвёл опубликованное upstream-качество в официальном PyTorch
|
||||
пути, а развёрнутый TensorRT engine сохранил это качество практически точно.
|
||||
|
||||
Диагноз: `upstream-and-tensorrt-parity-passed`.
|
||||
|
||||
Следовательно, наблюдавшиеся в Mission Core пропуски поведенчески значимых
|
||||
объектов нельзя объяснять деградацией RF-DETR checkpoint, ONNX/TensorRT
|
||||
конвертацией или декодированием TensorRT outputs. Следующий поиск должен быть в
|
||||
downstream admission: class mapping, valid-FOV, confidence/area gates,
|
||||
risk-class policy, temporal delivery и доменном покрытии городского источника.
|
||||
|
||||
## Строгий контракт
|
||||
|
||||
- dataset: все 5 000 изображений COCO val2017;
|
||||
- categories: все официальные COCO categories;
|
||||
- preprocessing: официальный RF-DETR Large, `704x704`;
|
||||
- predictions: top 300, confidence prefilter `0.0`;
|
||||
- custom area filtering: выключен;
|
||||
- crowd handling: официальный `pycocotools.COCOeval`;
|
||||
- published reference: AP@[.50:.95] `0.565`, AP50 `0.751`;
|
||||
- upstream tolerance: `0.01`;
|
||||
- PyTorch/TensorRT parity tolerance: `0.005`;
|
||||
- navigation, safety, command и actuation authority: `false`.
|
||||
|
||||
## Результат
|
||||
|
||||
| Метрика | Официальный PyTorch | TensorRT/Triton | Абсолютная дельта |
|
||||
|---|---:|---:|---:|
|
||||
| AP@[.50:.95] | 0.565100 | 0.565133 | 0.000033 |
|
||||
| AP50 | 0.751158 | 0.751285 | 0.000127 |
|
||||
| AP75 | 0.613005 | 0.613402 | 0.000397 |
|
||||
| AP small | 0.388411 | 0.389311 | 0.000900 |
|
||||
| AP medium | 0.610420 | 0.610540 | 0.000120 |
|
||||
| AP large | 0.740038 | 0.739485 | 0.000553 |
|
||||
| Prediction count | 1 499 907 | 1 499 909 | 2 |
|
||||
| Effective throughput | 35.094 FPS | 42.807 FPS | — |
|
||||
| Image p95 | 36.858 ms | 30.792 ms | — |
|
||||
|
||||
Полный прогон занял `375.912 s`. Оба admission checks приняты:
|
||||
|
||||
- upstream reproduction: `passed`;
|
||||
- TensorRT provider parity: `passed`.
|
||||
|
||||
## Immutable provenance
|
||||
|
||||
- profile: `m48t-rf-detr-large-upstream-coco-parity/v1`;
|
||||
- report identity SHA-256:
|
||||
`20a286d0190d1873d924260fc9b7c61288642e53b7206b2da81610da2989ef88`;
|
||||
- result file SHA-256:
|
||||
`48bb85081d733a0a839c7d1110fbf7f0da69234b45d38e5c4e85f28079883cbc`;
|
||||
- checkpoint SHA-256:
|
||||
`0f4e20e19a99c0f8a62b5685f57f6c8b5c371c59081feda6752a0561a79ccf38`;
|
||||
- annotations SHA-256:
|
||||
`e8c7f7908f1d7278341fae127d0da654f102f11bd7b21d8aeefa635b8c810b6f`;
|
||||
- TensorRT engine SHA-256:
|
||||
`986399ce706b7380472cf5e473232249fed6e628971d8007f6609e83128d46b8`;
|
||||
- PyTorch predictions SHA-256:
|
||||
`da5b895bf906ee8480405149d63a3d19f1d8af0179d9a457d5202d844dc07b9d`;
|
||||
- TensorRT predictions SHA-256:
|
||||
`bb3baa3997e303a467799eb0b8ed49005182d06495106d57575906087402709b`;
|
||||
- runtime:
|
||||
`nvcr.io/nvidia/tritonserver:26.06-py3@sha256:58df7489c3f2276f9591d500a012dee03e23d35543ce3c390b4c001e6bf90794`;
|
||||
- packages: RF-DETR `1.9.4`, PyTorch `2.9.1+cu130`, torchvision
|
||||
`0.24.1+cu130`, pycocotools `2.0.10`, Triton client `2.71.0`.
|
||||
|
||||
Worker evidence остаётся в
|
||||
`D:\NDC_MISSIONCORE\runtime\results\m48t-upstream-parity\full-coco2017-val-20260825T213600Z`.
|
||||
Компактная копия `result.json` и `progress.jsonl` сохранена локально в
|
||||
`.runtime/worker-results/m48t-upstream-parity-coco2017-val-full-v1/`.
|
||||
|
||||
Канонический `ndc-mission-core-triton` до и после прогона сохранил тот же
|
||||
container id и состояние `healthy`; его конфигурация не изменялась.
|
||||
|
||||
## Что этот gate не доказывает
|
||||
|
||||
- качество на RAVNOVES00 и будущих городских/полевых доменах;
|
||||
- полноту классов вне COCO, включая отдельный класс самоката;
|
||||
- корректность наших confidence, area и valid-FOV порогов;
|
||||
- отсутствие потерь между detector output, tracker и world-state graph;
|
||||
- безопасность navigation/actuation policy.
|
||||
|
||||
## Следующий gate
|
||||
|
||||
Провести downstream attribution replay на immutable RAVNOVES00: для каждого
|
||||
кадра сохранить один и тот же TensorRT output и посчитать, сколько объектов и
|
||||
каких risk-классов остаётся после каждой ступени:
|
||||
|
||||
1. raw top-300 output;
|
||||
2. COCO class mapping;
|
||||
3. confidence gate;
|
||||
4. valid-FOV и area gates;
|
||||
5. fixed risk-class qualification;
|
||||
6. tracker/temporal/world-state delivery.
|
||||
|
||||
Это локализует конкретную ступень потери `person`, animal, light-road-user и
|
||||
vehicle detections без добавления второй тяжёлой модели и без изменения FPS
|
||||
critical path. После attribution можно менять только доказанно виновный gate и
|
||||
повторять source-paced reference-graph load acceptance.
|
||||
Reference in New Issue
Block a user