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:
- Seyrekliği koruyan kümeleme
- Seyrekliği koruyan kuantizasyon farkındalığı eğitimi (PQAT)
- Küme koruyucu kuantizasyon farkındalığı eğitimi (CQAT)
- Seyreklik ve kümeyi koruyan kuantizasyon farkındalığı eğitimi
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.
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.
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.