Xiaocha Medium'dan derlendi
Qubit Raporu | Genel Hesap QbitAI
Geçen yıl TensorFlow, model boyutunu 4 kata kadar azaltabilen ve çalışma hızını 3 kata kadar artırabilen bir model optimizasyon aracını resmi olarak piyasaya sürdü.
Son zamanlarda, model optimizasyonuna "lüks paket" e Keras'ı temel alan yeni bir araç eklendi. Budama optimizasyonu aracı.
AI modellerini eğitmek bazen çok fazla donanım kaynağı gerektirir, ancak herkes 4 GPU'luk lüks bir konfigürasyona sahip değildir. Budama optimizasyonu, modelin boyutunu küçültmenize ve daha düşük bir maliyetle çıkarım yapmanıza yardımcı olabilir.
Ağırlık budaması nedir?
Ağırlık Budama optimizasyonu, ağırlık tensöründeki gereksiz değerleri ortadan kaldırmak, sinir ağı katmanları arasındaki bağlantı sayısını azaltmak, hesaplamaya dahil olan parametreleri azaltmak ve böylece işlem sayısını azaltmaktır.
Bunun avantajı, ağın depolama alanını sıkıştırmaktır, özellikle seyrek tensörler özellikle sıkıştırma için uygundur. Örneğin, işlemden sonra MNIST'in% 90 seyreklik modeli 12MB'den 2MB'ye sıkıştırılabilir.
Ek olarak, ağırlık budaması, nicelemeyle uyumludur ve bileşik faydalar sağlar. Eğitim sonrası niceleme yoluyla, budanmış model 2MB'den sadece 0.5MB'ye daha da sıkıştırılabilir.
TensorFlow resmi olarak gelecekte TensorFlow Lite'ın seyrek gösterim ve hesaplamalar için destek ekleyeceğini ve böylece çalışan belleğin sıkıştırma avantajlarını artıracağını ve performans iyileştirmelerini sunacağını vaat ediyor.
Optimizasyon etkisi
Ağırlık budama optimizasyonu, görüntü işlemeden CNN'den konuşma işleme RNN'ye kadar farklı görevler ve farklı model türleri için kullanılabilir. Aşağıdaki tablo, bazı deneysel sonuçları göstermektedir.
Örnek olarak Almancadan İngilizceye çevrilen GNMT modelini ele alalım, orijinal modelin BLEU'su 29.47'dir. % 80 seyrekliği belirtin Optimizasyondan sonra, tensördeki sıfır olmayan parametreler, doğrulukta neredeyse hiç kayıp olmaksızın 211M'den 44M'ye sıkıştırılabilir.
Talimatlar
Mevcut ağırlık budama API'si Keras'ı temel alır, böylece geliştiriciler bu teknolojiyi mevcut herhangi bir Keras eğitim modeline kolayca uygulayabilir.
Geliştirici, nihai hedef seyrekliği (örneğin,% 50) ve budama gerçekleştirme planını (örneğin, 2000 adımda budama, 4000 adımda durdurma ve her 100 adımda bir gerçekleştirme) ve budama yapısının isteğe bağlı yapılandırmasını belirleyebilir. .
tensorflow_model_optimization'ı tfmot olarak içe aktar model = build_your_model () pruning_schedule = tfmot.sparsity.keras.PolynomialDecay ( initial_sparsity = 0.0, final_sparsity = 0.5, begin_step = 2000, end_step = 4000) model_for_pruning = tfmot.sparsity.keras.prune_low_magnitude (model, pruning_schedule = pruning_schedule) ... model_for_pruning.fitÜç farklı tensör, solda seyreklik yok, merkezde birden fazla bireysel 0 değeri ve sağda 1x2 seyrek blok var.
Eğitim ilerledikçe budama işlemi yapılmaya başlanır. Bu süreçte eleme tensöründe sıfıra en yakın ağırlığı mevcut seyreklik hedefine ulaşılana kadar ortadan kaldıracaktır.
Budama programının yürütülmesi planlandığı her seferde, mevcut seyreklik hedefi yeniden hesaplanır ve seyreklik,% 0'dan başlayıp biten nihai hedef seyrekliğe ulaşmak için yavaşça yükselen fonksiyona göre kademeli olarak arttırılır.
Kullanıcı ayrıca bu yükselme işlevini gerektiği gibi ayarlayabilir. Bazı durumlarda, nihai hedef seyrekliğe ulaşıldığında sistemde daha fazla ince ayar yapmak için eğitim süreci, belirli bir adım belirli bir yakınsama düzeyine ulaştıktan sonra optimizasyonu başlatacak şekilde programlanabilir veya budama, toplam eğitim adımlarının sayısından önce sona erebilir.
Ağırlık tensörü budama animasyonu, siyah noktalar sıfır olmayan ağırlıkları gösterir.Eğitim ilerledikçe seyreklik kademeli olarak artar
GitHub adresi:
https://github.com/tensorflow/model-optimization
Resmi eğitim:
https://www.tensorflow.org/model_optimization/guide/pruning/pruning_with_keras
- Bitiş -
Samimi işe alım
Qubit, editörleri / muhabirleri işe alıyor ve merkezi Pekin, Zhongguancun'da bulunuyor. Yetenekli ve hevesli öğrencilerin bize katılmasını dört gözle bekliyoruz! Ayrıntılar için, lütfen QbitAI diyalog arayüzünde "işe alım" kelimesiyle yanıt verin.
Qubit QbitAI · Toutiao İmzalama Yazarı
' ' Yapay zeka teknolojisi ve ürünlerindeki yeni eğilimleri takip edin