Optimasi Kolaboratif

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:

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:

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.

collaborative optimization

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.

collaborative optimization density plot

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 .