İşbirliğine Dayalı Optimizasyon

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Arm ML Tooling tarafından korunur

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

genel bakış

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

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

Bu teknikleri birbirine zincirleme girişiminde bulunulduğunda ortaya çıkan sorun, birini uygulamanın tipik olarak önceki tekniğin sonuçlarını yok etmesi ve hepsini aynı anda uygulamanın genel faydasını bozması; örneğin, kümeleme, budama API'sinin sağladığı seyrekliği korumaz. Bu sorunu çözmek için aşağıdaki deneysel işbirlikçi optimizasyon tekniklerini tanıtıyoruz:

Bunlar, bir makine öğrenimi modelini sıkıştırmak ve çıkarım anında donanım hızlandırmasından yararlanmak için kullanılabilecek birkaç dağıtım yolu sağlar. Aşağıdaki şema, yaprak düğümlerin kısmen veya tamamen nicelleştirilmiş ve tflite biçiminde oldukları anlamına gelen, dağıtıma hazır modeller olduğu, istenen dağıtım özelliklerine sahip modelin aranmasında keşfedilebilecek birkaç dağıtım yolunu göstermektedir. Yeşil dolgu, yeniden eğitim/ince ayarın gerekli olduğu adımları gösterir ve kesikli kırmızı kenarlık, ortak çalışma 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 niceleme (eğitim sonrası veya QAT) dağıtım yolu, yukarıdaki şekilde atlanmıştır.

Buradaki fikir, yukarıdaki dağıtım ağacının üçüncü seviyesinde tamamen optimize edilmiş modele ulaşmaktır; bununla birlikte, diğer optimizasyon düzeylerinden herhangi biri tatmin edici olabilir ve gerekli çıkarım gecikmesi/doğruluk değiş tokuşunu sağlayabilir, bu durumda daha fazla optimizasyona gerek yoktur. Önerilen eğitim süreci, hedef dağıtım senaryosu için geçerli olan dağıtım ağacının seviyelerini yinelemeli olarak gözden geçirmek ve modelin çıkarım gecikmesi gereksinimlerini karşılayıp karşılamadığını görmek ve değilse, modeli daha fazla sıkıştırmak ve tekrarlamak için ilgili işbirlikçi optimizasyon tekniğini kullanmak olacaktır. Gerekirse model tamamen optimize edilene (budanan, kümelenen ve nicelenen) kadar.

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

collaborative optimization density plot

Sonuç, eğitim zamanında belirtilen hedef seyrekliğe bağlı olarak, azaltılmış sayıda benzersiz değerin yanı sıra önemli sayıda seyrek ağırlık içeren nicelleştirilmiş bir dağıtım modelidir. Önemli model sıkıştırma avantajlarının yanı sıra, belirli 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şbirlikçi optimizasyon yolları ile denemeler yaparken elde ettiğimiz bazı doğruluk ve sıkıştırma sonuçları verilmiştir.

Seyrekliği koruyan Kuantizasyon farkında eğitim (PQAT)

modeli Öğeler taban çizgisi Budanmış Model (%50 seyreklik) QAT Modeli PQAT Modeli
DS-CNN-L FP32 İlk 1 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ümeyi koruyan Kuantizasyon farkında eğitim (CQAT)

modeli Öğeler taban çizgisi Kümelenmiş Model QAT Modeli CQAT Modeli
CIFAR-10'da Mobilenet_v1 FP32 İlk 1 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.84 MB 1,94 MB
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 teknik kümeleme ile elde edilmiştir. Modelin evrişimli katmanları kanal başına kümelenirse, model doğruluğunun daha yüksek olduğunu gösterirler. Modelinizde çok sayıda evrişim 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 olacaktır. Model optimizasyonu işlem hattı, deneylerimizde 'kümelenmiş -> küme koruma QAT -> eğitim sonrası niceleme, int8' şeklindedir.

modeli Kümelenmiş -> CQAT, int8 nicelenmiş Kanal başına kümelenmiş -> CQAT, int8 nicelenmiş
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şbirlikçi optimizasyon tekniklerinin uçtan uca örnekleri için lütfen CQAT , PQAT , seyrekliği koruyan kümeleme ve PCQAT örnek not defterlerine bakın.