mct-bench
Zbudowałem narzędzie wiersza poleceń łączące kwantyzację modeli, eksport ONNX i pomiary na CPU. Na 10 000 obrazów testowych Fashion-MNIST dokładność W4A8 spadła z 94,76% do 94,22%, a plik ONNX powiększył się o około 0,18%.
Projekt
Narzędzie łączy pobranie publicznie dostępnego, wytrenowanego modelu CNN z kwantyzacją po treningu, eksportem ONNX i oceną. Model bazowy i modele po kwantyzacji mierzy w tych samych ustawieniach środowiska wykonawczego, zachowując również wyniki bez poprawy.
Obok tabel Markdown i CSV zapisuje JSON z warunkami pomiaru i surowymi próbkami, indeksy obrazów, skróty zasobów oraz wykonywalne pliki ONNX. Każdemu porównaniu towarzyszą informacje potrzebne do jego powtórzenia.
Jak to działa
Przygotowanie modelu i obrazów
Wczytywany jest publiczny, wytrenowany model; osobne obrazy służą do dostrojenia konwersji, a osobne do pomiaru dokładności.
Zmiana precyzji liczb
Oryginał pozostaje punktem odniesienia; niezależnie powstają z niego warianty z zaokrąglonymi wartościami liczbowymi, zapisywane jako pliki do uruchomienia.
Porównanie dokładności, rozmiaru i czasu
Wyeksportowane modele są uruchamiane na tych samych obrazach i przy tych samych ustawieniach CPU; porównanie obejmuje dokładność, rozmiar całego pliku i czas wykonania.
Kalibracja korzysta ze zbioru treningowego, ocena ze zbioru testowego, a każdy wariant jest oceniany na tych samych obrazach. Wagi publicznego modelu są wczytywane do ustalonej architektury PyTorch; przed pomiarem porównywane są wyjścia i sprawdzana rzeczywista liczba bitów kwantyzatorów.
Zarówno dokładność, jak i czas mierzone są na wyeksportowanych plikach ONNX przy wspólnych ustawieniach CPU. Rozmiar dotyczy całego pliku. Pomiar czasu pomija rozgrzewkę, zmienia kolejność wykonywania modeli i zachowuje surowe próbki.
Co wynika z dokumentacji
Na zbiorze 10 000 obrazów testowych Fashion-MNIST dokładność W4A8 zmieniła się z 94,76% na 94,22%, a rozmiar pliku ONNX wzrósł o około 0,18%. Samo ustawienie kwantyzacji nie zmniejszyło więc pliku przeznaczonego do dystrybucji.
Wybrany format eksportu zapisuje skwantyzowane wartości wag jako dane zmiennoprzecinkowe. Oddzielne odnotowanie precyzji liczbowej, typu zapisu i środowiska wykonawczego pozwala wyjaśnić, dlaczego oczekiwane zmniejszenie rozmiaru nie nastąpiło.
- Obrazy do oceny
- 10 000
- Dokładność · FP32 → W4A8
- 94,76% → 94,22%
- Zmiana rozmiaru ONNX
- Wzrost o ok. 0,18%
Zakres
Wyniki dotyczą pojedynczego zbioru danych i pojedynczego modelu i nie stanowią podstawy do uogólnień. Obejmują wybrany format eksportu ONNX i CPU komputera, a nie upakowany zapis niskobitowy ani przyspieszenie na urządzeniu docelowym. Małe różnice czasu we współdzielonym środowisku nie dowodzą przewagi wydajnościowej.
