İşbirliğine Dayalı Optimizasyon

Arm ML Tooling tarafından sürdürülmektedir

Bu belge, makine öğrenimi modellerini dağıtım için optimize etmek amacıyla çeşitli teknikleri birleştirmeye yönelik deneysel API'lere genel bir bakış sağlar.

Genel Bakış

İşbirliğine dayalı optimizasyon, dağıtım sırasında çıkarım hızı, model boyutu ve doğruluk gibi hedef özellikleri arasında en iyi dengeyi sergileyen bir model üretmek için çeşitli teknikleri kapsayan kapsamlı bir süreçtir.

İşbirlikçi optimizasyonların amacı, birikmiş optimizasyon etkisini elde etmek için bunları birbiri ardına uygulayarak bireysel teknikleri geliştirmektir. Aşağıdaki optimizasyonların çeşitli kombinasyonları mümkündür:

Bu teknikleri bir arada zincirlemeye çalışırken ortaya çıkan sorun, birinin uygulanmasının tipik olarak önceki tekniğin sonuçlarını yok etmesi ve hepsinin aynı anda uygulanmasının genel faydasını bozmasıdır; örneğin kümeleme, budama API'sinin getirdiği seyrekliği korumaz. Bu sorunu çözmek için aşağıdaki deneysel işbirliğine dayalı optimizasyon tekniklerini sunuyoruz:

Bunlar, bir makine öğrenimi modelini sıkıştırmak ve çıkarım zamanında donanım ivmesinden yararlanmak için kullanılabilecek çeşitli dağıtım yolları sağlar. Aşağıdaki şemada, yaprak düğümlerin konuşlandırmaya hazır modeller olduğu, yani bunların kısmen veya tamamen kuantize edilmiş ve tflite formatında olduğu, arzu edilen konuşlandırma özelliklerine sahip model arayışında keşfedilebilecek çeşitli konuşlandırma yolları gösterilmektedir. Yeşil dolgu, yeniden eğitimin/ince ayarın gerekli olduğu adımları gösterir ve kesikli kırmızı kenarlık, işbirliğine dayalı optimizasyon adımlarını vurgular. Belirli bir düğümde bir model elde etmek için kullanılan teknik, ilgili etikette belirtilmiştir.

collaborative optimization

Doğrudan, yalnızca nicelemeli (eğitim sonrası veya QAT) dağıtım yolu yukarıdaki şekilde ihmal edilmiştir.

Buradaki fikir, yukarıdaki dağıtım ağacının üçüncü seviyesinde tamamen optimize edilmiş modele ulaşmaktır; ancak diğer optimizasyon düzeylerinden herhangi biri tatmin edici olabilir ve gerekli çıkarım gecikmesi/doğruluk dengesini sağlayabilir; bu durumda daha fazla optimizasyona gerek kalmaz. Önerilen eğitim süreci, hedef dağıtım senaryosuna uygulanabilir dağıtım ağacı düzeylerini yinelemeli olarak gözden geçirmek ve modelin çıkarım gecikmesi gereksinimlerini karşılayıp karşılamadığını görmek ve karşılamıyorsa modeli daha da sıkıştırmak ve tekrarlamak için ilgili işbirlikçi optimizasyon tekniğini kullanmak olacaktır. Gerekirse model tamamen optimize edilinceye kadar (budanmış, kümelenmiş ve nicelenmiş).

Aşağıdaki şekil, işbirlikçi optimizasyon hattından geçen numune ağırlığı çekirdeğinin yoğunluk grafiklerini göstermektedir.

collaborative optimization density plot

Sonuç, eğitim zamanında belirlenen hedef seyrekliğine bağlı olarak, önemli sayıda seyrek ağırlığın yanı sıra, azaltılmış sayıda benzersiz değere sahip nicelenmiş bir dağıtım modelidir. Önemli model sıkıştırma avantajlarının yanı sıra, özel donanım desteği, çıkarım gecikmesini önemli ölçüde azaltmak için bu seyrek, kümelenmiş modellerden yararlanabilir.

Sonuçlar

Aşağıda PQAT ve CQAT işbirliğine dayalı optimizasyon yollarını denediğimizde elde ettiğimiz bazı doğruluk ve sıkıştırma sonuçları verilmiştir.

Seyrekliği koruyan Niceleme farkındalığı eğitimi (PQAT)

Modeli Öğeler Temel Budanmış Model (%50 seyreklik) QAT Modeli PQAT Modeli
DS-CNN-L FP32 En İyi1 Doğruluk %95,23 %94,80 (Sahte INT8) %94,721 (Sahte INT8) %94,128
INT8 tam tamsayı nicemleme %94,48 %93,80 %94,72 %94,13
Sıkıştırma 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 İlk 1 Doğruluk %70,99 %70,11 (Sahte INT8) %70,67 (Sahte INT8) %70,29
INT8 tam tamsayı nicemleme %69,37 %67,82 %70,67 %70,29
Sıkıştırma 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)

Küme koruyucu Niceleme farkındalığı eğitimi (CQAT)

Modeli Öğeler Temel Kümelenmiş Model QAT Modeli CQAT Modeli
CIFAR-10'da Mobilenet_v1 FP32 En İyi1 Doğruluk %94,88 %94,48 (Sahte INT8) %94,80 (Sahte INT8) %94,60
INT8 tam tamsayı nicemleme %94,65 %94,41 %94,77 %94,52
Boyut 3,00 MB 2,00 MB 2,84MB 1,94MB
ImageNet'te Mobilenet_v1 FP32 İlk 1 Doğruluk %71,07 %65,30 (Sahte INT8) %70,39 (Sahte INT8) %65,35
INT8 tam tamsayı nicemleme %69,34 %60,60 %70,35 %65,42
Sıkıştırma 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)

Kanal başına kümelenmiş modeller için CQAT ve PCQAT sonuçları

Aşağıdaki sonuçlar kanal başına kümeleme tekniği ile elde edilmiştir. Modelin evrişimli katmanlarının kanal başına kümelenmesi durumunda model doğruluğunun daha yüksek olacağını göstermektedir. Modelinizde çok sayıda evrişimsel katman varsa kanal başına kümeleme yapmanızı öneririz. Sıkıştırma oranı aynı kalır ancak model doğruluğu daha yüksek olur. Deneylerimizde model optimizasyon hattı 'kümelenmiş -> kümeyi koruyan QAT -> eğitim sonrası kuantizasyon, int8' şeklindedir.

Modeli Kümelenmiş -> CQAT, int8 nicemlenmiş Kanal başına kümelenmiş -> CQAT, int8 nicemlenmiş
DS-CNN-L %95,949 %96,44
MobileNet-V2 %71,538 %72,638
MobileNet-V2 (budanmış) %71,45 %71,901

Örnekler

Burada açıklanan işbirliğine dayalı optimizasyon tekniklerinin uçtan uca örnekleri için lütfen CQAT , PQAT , seyrekliği koruyan kümeleme ve PCQAT örnek not defterlerine bakın.