Dikelola oleh Arm ML Tooling
Dokumen ini memberikan gambaran umum tentang API eksperimental untuk menggabungkan berbagai teknik guna mengoptimalkan model pembelajaran mesin untuk penerapan.
Ringkasan
Pengoptimalan kolaboratif adalah proses menyeluruh yang mencakup berbagai teknik untuk menghasilkan model yang, pada penerapannya, menunjukkan keseimbangan terbaik antara karakteristik target seperti kecepatan inferensi, ukuran model, dan akurasi.
Ide optimasi kolaboratif adalah untuk membangun teknik individual dengan menerapkannya satu demi satu untuk mencapai efek optimasi yang terakumulasi. Berbagai kombinasi optimasi berikut dimungkinkan:
- Pemangkasan berat badan
- Pengelompokan berat badan
Kuantisasi
Permasalahan yang muncul ketika mencoba menggabungkan teknik-teknik ini adalah bahwa penerapan salah satu teknik biasanya akan merusak hasil teknik sebelumnya, sehingga merusak manfaat keseluruhan penerapan semuanya secara bersamaan; misalnya, pengelompokan tidak mempertahankan ketersebaran yang disebabkan oleh API pemangkasan. Untuk mengatasi masalah ini, kami memperkenalkan teknik optimasi kolaboratif eksperimental berikut:
- Pengelompokan yang melestarikan ketersebaran
- Pelatihan sadar kuantisasi pelestarian ketersebaran (PQAT)
- Pelatihan sadar kuantisasi pelestarian klaster (CQAT)
- Pelatihan sadar kuantisasi ketersebaran dan pelestarian klaster
Ini menyediakan beberapa jalur penerapan yang dapat digunakan untuk mengompresi model pembelajaran mesin dan memanfaatkan akselerasi perangkat keras pada waktu inferensi. Diagram di bawah menunjukkan beberapa jalur penerapan yang dapat dieksplorasi dalam mencari model dengan karakteristik penerapan yang diinginkan, dengan node daun merupakan model siap penerapan, yang berarti model tersebut terkuantisasi sebagian atau seluruhnya dan dalam format tflite. Isian hijau menunjukkan langkah-langkah yang memerlukan pelatihan ulang/penyempurnaan dan batas merah putus-putus menyoroti langkah-langkah pengoptimalan kolaboratif. Teknik yang digunakan untuk mendapatkan model pada node tertentu ditunjukkan pada label yang sesuai.
Jalur penerapan langsung, hanya kuantisasi (pasca pelatihan atau QAT) dihilangkan pada gambar di atas.
Idenya adalah untuk mencapai model yang dioptimalkan sepenuhnya pada tingkat ketiga dari pohon penerapan di atas; namun, tingkat pengoptimalan lainnya terbukti memuaskan dan mencapai trade-off latensi/akurasi inferensi yang diperlukan, sehingga tidak diperlukan pengoptimalan lebih lanjut. Proses pelatihan yang disarankan adalah menelusuri tingkat pohon penerapan yang berlaku untuk skenario penerapan target secara berulang dan melihat apakah model memenuhi persyaratan latensi inferensi dan, jika tidak, gunakan teknik pengoptimalan kolaboratif yang sesuai untuk mengompresi model lebih jauh dan mengulanginya. hingga model sepenuhnya dioptimalkan (dipangkas, dikelompokkan, dan dikuantisasi), jika diperlukan.
Gambar di bawah menunjukkan plot kepadatan kernel berat sampel yang melewati jalur optimasi kolaboratif.
Hasilnya adalah model penerapan terkuantisasi dengan jumlah nilai unik yang berkurang serta sejumlah bobot sparse yang signifikan, bergantung pada target sparsity yang ditentukan pada waktu pelatihan. Selain keunggulan kompresi model yang signifikan, dukungan perangkat keras tertentu dapat memanfaatkan model yang jarang dan terkelompok ini untuk mengurangi latensi inferensi secara signifikan.
Hasil
Berikut adalah beberapa hasil akurasi dan kompresi yang kami peroleh saat bereksperimen dengan jalur pengoptimalan kolaboratif PQAT dan CQAT.
Pelatihan Sadar Kuantisasi Pelestarian Ketersebaran (PQAT)
Model | Barang | Dasar | Model yang Dipangkas (50% ketersebaran) | Model QAT | Model PQAT |
---|---|---|---|---|---|
DS-CNN-L | Akurasi Teratas FP321 | 95,23% | 94,80% | (INT8 palsu) 94,721% | (INT8 palsu) 94,128% |
kuantisasi bilangan bulat penuh INT8 | 94,48% | 93,80% | 94,72% | 94,13% | |
Kompresi | 528.128 → 434.879 (17,66%) | 528.128 → 334.154 (36,73%) | 512.224 → 403.261 (21,27%) | 512.032 → 303.997 (40,63%) | |
Mobilenet_v1-224 | Akurasi 1 Teratas FP32 | 70,99% | 70,11% | (INT8 palsu) 70,67% | (INT8 palsu) 70,29% |
kuantisasi bilangan bulat penuh INT8 | 69,37% | 67,82% | 70,67% | 70,29% | |
Kompresi | 4.665.520 → 3.880.331 (16,83%) | 4.665.520 → 2.939.734 (37,00%) | 4.569.416 → 3.808.781 (16,65%) | 4.569.416 → 2.869.600 (37,20%) |
Pelatihan Sadar Kuantisasi Pelestarian Klaster (CQAT)
Model | Barang | Dasar | Model Berkelompok | Model QAT | Model CQAT |
---|---|---|---|---|---|
Mobilenet_v1 di CIFAR-10 | Akurasi Teratas FP321 | 94,88% | 94,48% | (INT8 palsu) 94,80% | (INT8 palsu) 94,60% |
kuantisasi bilangan bulat penuh INT8 | 94,65% | 94,41% | 94,77% | 94,52% | |
Ukuran | 3,00 MB | 2,00 MB | 2,84MB | 1,94MB | |
Mobilenet_v1 di ImageNet | Akurasi 1 Teratas FP32 | 71,07% | 65,30% | (INT8 palsu) 70,39% | (INT8 palsu) 65,35% |
kuantisasi bilangan bulat penuh INT8 | 69,34% | 60,60% | 70,35% | 65,42% | |
Kompresi | 4.665.568 → 3.886.277 (16,7%) | 4.665.568 → 3.035.752 (34,9%) | 4.569.416 → 3.804.871 (16,7%) | 4.569.472 → 2.912.655 (36,25%) |
Hasil CQAT dan PCQAT untuk model yang dikelompokkan per saluran
Hasil di bawah ini diperoleh dengan teknik clustering per channel . Mereka menggambarkan bahwa jika lapisan konvolusional model dikelompokkan per saluran, maka akurasi model akan lebih tinggi. Jika model Anda memiliki banyak lapisan konvolusional, sebaiknya lakukan pengelompokan per saluran. Rasio kompresinya tetap sama, namun akurasi model akan lebih tinggi. Pipa pengoptimalan model adalah 'clustered -> cluster melestarikan QAT -> kuantisasi pasca pelatihan, int8' dalam eksperimen kami. Model Berkelompok -> CQAT, int8 terkuantisasi Berkelompok per saluran -> CQAT, int8 terkuantisasi DS-CNN-L 95,949% 96,44% MobileNet-V2 71,538% 72,638% MobileNet-V2 (dipangkas) 71,45% 71,901%
Contoh
Untuk contoh end-to-end teknik pengoptimalan kolaboratif yang dijelaskan di sini, lihat buku catatan contoh CQAT , PQAT , sparsity-preserving clustering , dan PCQAT .