Dikelola oleh Arm ML Tooling
Dokumen ini memberikan ikhtisar tentang API eksperimental untuk menggabungkan berbagai teknik guna mengoptimalkan model pembelajaran mesin untuk penerapan.
Ringkasan
Optimasi kolaboratif adalah proses menyeluruh yang mencakup berbagai teknik untuk menghasilkan model yang, pada penerapan, menunjukkan keseimbangan terbaik dari karakteristik target seperti kecepatan inferensi, ukuran model, dan akurasi.
Ide optimasi kolaboratif adalah untuk membangun teknik individu dengan menerapkannya satu demi satu untuk mencapai akumulasi efek optimasi. Berbagai kombinasi pengoptimalan berikut dimungkinkan:
- Pemangkasan berat badan
- Pengelompokan berat badan
kuantisasi
Masalah yang muncul ketika mencoba untuk menyatukan teknik-teknik ini adalah bahwa menerapkan satu biasanya menghancurkan hasil dari teknik sebelumnya, merusak manfaat keseluruhan dari menerapkan semuanya secara bersamaan; misalnya, pengelompokan tidak mempertahankan sparity yang diperkenalkan oleh API pemangkasan. Untuk mengatasi masalah ini, kami memperkenalkan teknik optimasi kolaboratif eksperimental berikut:
- Pengelompokan yang melestarikan ketersebaran
- Pelatihan sadar kuantisasi yang melestarikan ketersebaran (PQAT)
- Pelatihan sadar kuantisasi (CQAT) melestarikan cluster
- Pelatihan sadar kuantisasi 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 ini menunjukkan beberapa jalur penerapan yang dapat dieksplorasi dalam mencari model dengan karakteristik penerapan yang diinginkan, di mana simpul daun adalah model siap-penyebaran, yang berarti mereka terkuantisasi sebagian atau seluruhnya dan dalam format tflite. Isi hijau menunjukkan langkah-langkah di mana pelatihan ulang/penyesuaian diperlukan 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 penyebaran 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, salah satu tingkat pengoptimalan lainnya dapat terbukti memuaskan dan mencapai trade-off latensi/akurasi inferensi yang diperlukan, dalam hal ini tidak diperlukan pengoptimalan lebih lanjut. Proses pelatihan yang direkomendasikan adalah secara iteratif melalui tingkat pohon penerapan yang berlaku untuk skenario penerapan target dan melihat apakah model memenuhi persyaratan latensi inferensi dan, jika tidak, gunakan teknik pengoptimalan kolaboratif yang sesuai untuk mengompresi model lebih jauh dan ulangi sampai model dioptimalkan sepenuhnya (dipangkas, dikelompokkan, dan dikuantisasi), jika diperlukan.
Gambar di bawah menunjukkan plot densitas kernel bobot sampel melalui jalur pengoptimalan kolaboratif.
Hasilnya adalah model penerapan terkuantisasi dengan pengurangan jumlah nilai unik serta sejumlah besar bobot jarang, tergantung pada ketersebaran target yang ditentukan pada waktu pelatihan. Selain keunggulan kompresi model yang signifikan, dukungan perangkat keras tertentu dapat memanfaatkan model yang jarang dan berkelompok ini untuk mengurangi latensi inferensi secara signifikan.
Hasil
Di bawah ini adalah beberapa hasil akurasi dan kompresi yang kami peroleh saat bereksperimen dengan jalur optimasi kolaboratif PQAT dan CQAT.
Pelatihan sadar kuantisasi (PQAT) yang melestarikan ketersebaran
Model | item | Dasar | Model yang Dipangkas (50% sparity) | Model QAT | Model PQAT |
---|---|---|---|---|---|
DS-CNN-L | Akurasi FP32 Top1 | 95,23% | 94,80% | (INT palsu8) 94,721% | (INT palsu8) 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 | FP32 Akurasi 1 Teratas | 70,99% | 70,11% | (INT palsu8) 70,67% | (INT palsu8) 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 (CQAT) yang melestarikan cluster
Model | item | Dasar | Model Berkelompok | Model QAT | Model CQAT |
---|---|---|---|---|---|
Mobilenet_v1 di CIFAR-10 | Akurasi FP32 Top1 | 94,88% | 94,48% | (INT Palsu8) 94,80% | (INT palsu8) 94,60% |
Kuantisasi bilangan bulat penuh INT8 | 94,65% | 94,41% | 94,77% | 94,52% | |
Ukuran | 3,00 MB | 2,00 MB | 2.84 MB | 1,94 MB | |
Mobilenet_v1 di ImageNet | FP32 Akurasi 1 Teratas | 71,07% | 65,30% | (INT palsu8) 70,39% | (INT palsu8) 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 konvolusi model dikelompokkan per saluran, maka akurasi model lebih tinggi. Jika model Anda memiliki banyak lapisan konvolusi, kami menyarankan untuk mengelompokkan per saluran. Rasio kompresi tetap sama, tetapi akurasi model akan lebih tinggi. Pipeline pengoptimalan model adalah 'clustered -> cluster melestarikan QAT -> kuantisasi pasca pelatihan, int8' dalam eksperimen kami. Model Terkelompok -> CQAT, int8 terkuantisasi Dikelompokkan 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 dari teknik pengoptimalan kolaboratif yang dijelaskan di sini, silakan merujuk ke CQAT , PQAT , sparsity-preserving clustering , dan notebook contoh PCQAT .