← Wszystkie projekty

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%.

  • Python
  • Model Compression Toolkit
  • PyTorch
  • ONNX
  • ONNX Runtime
Kod dostępny

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

Zobacz, jak to działaŚledź ruch na diagramie lub przewijaj kolejne etapy.Ruch jest wyłączony. Nadal możesz wybierać etapy.

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.