Edge AI Uygulamalarında Performansı En Üst Düzeye Çıkarın - KDnuggets

Edge Yapay Zeka Uygulamalarında Performansı En Üst Düzeye Çıkarın – KDnuggets

Kaynak Düğüm: 2919295

Yapay zeka buluttan Edge'e geçtikçe, teknolojinin anormallik tespitinden akıllı alışveriş, gözetim, robot teknolojisi ve fabrika otomasyonu gibi uygulamalara kadar giderek genişleyen çeşitli kullanım durumlarında kullanıldığını görüyoruz. Bu nedenle, herkese uyan tek bir çözüm yoktur. Ancak kamera özellikli cihazların hızla büyümesiyle birlikte yapay zeka, güvenliği artırmak, operasyonel verimliliği artırmak ve daha iyi müşteri deneyimleri sağlamak için video izlemeyi otomatikleştirmek amacıyla gerçek zamanlı video verilerini analiz etmek ve sonuçta endüstrilerinde rekabet avantajı kazanmak için en yaygın şekilde benimsendi. . Video analizini daha iyi desteklemek için uç yapay zeka dağıtımlarında sistem performansını optimize etmeye yönelik stratejileri anlamalısınız.

  • Gerekli performans seviyelerini karşılamak veya aşmak için doğru boyutlu bilgi işlem motorlarının seçilmesi. Bir yapay zeka uygulaması için bu bilgi işlem motorlarının tüm görüntü hattının işlevlerini (yani video ön ve son işleme, sinir ağı çıkarımı) yerine getirmesi gerekir.

İster ayrı ister SoC'ye entegre olsun (AI çıkarımını bir CPU veya GPU'da çalıştırmak yerine) özel bir AI hızlandırıcı gerekli olabilir.

  • Verim ve gecikme arasındaki farkın anlaşılması; burada verim, verilerin bir sistemde işlenebilme hızıdır ve gecikme, sistem aracılığıyla veri işleme gecikmesini ölçer ve genellikle gerçek zamanlı yanıt vermeyle ilişkilendirilir. Örneğin, bir sistem saniyede 100 kare (verim) hızında görüntü verisi üretebilir ancak bir görüntünün sistemden geçmesi 100 ms (gecikme) alır.   
  • Artan ihtiyaçlara, değişen gereksinimlere ve gelişen teknolojilere (örneğin, artan işlevsellik ve doğruluk için daha gelişmiş yapay zeka modelleri) uyum sağlamak için gelecekte yapay zeka performansını kolayca ölçeklendirme yeteneğinin göz önünde bulundurulması. Modül formatındaki AI hızlandırıcıları veya ek AI hızlandırıcı yongalarını kullanarak performans ölçeklendirmesini gerçekleştirebilirsiniz.

Gerçek performans gereksinimleri uygulamaya bağlıdır. Tipik olarak video analitiği için sistemin kameralardan gelen veri akışlarını saniyede 30-60 kare hızında ve 1080p veya 4k çözünürlükte işlemesi beklenebilir. Yapay zeka destekli bir kamera tek bir akışı işleyebilir; bir uç cihaz birden fazla akışı paralel olarak işleyebilir. Her iki durumda da, uç yapay zeka sisteminin, kameranın sensör verilerini yapay zeka çıkarım bölümünün giriş gereksinimleriyle eşleşen bir formata dönüştürmek için ön işleme işlevlerini desteklemesi gerekir (Şekil 1).

Ön işleme işlevleri, girdiyi AI hızlandırıcıda çalışan modele beslemeden önce ham verileri alır ve yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme gibi görevleri gerçekleştirir. Ön işleme, ön işleme sürelerini azaltmak için OpenCV gibi verimli görüntü işleme kitaplıklarını kullanabilir. Son işleme, çıkarımın çıktısının analiz edilmesini içerir. Maksimum olmayan bastırma (NMS çoğu nesne algılama modelinin çıktısını yorumlar) ve sınırlayıcı kutular, sınıf etiketleri veya güven puanları gibi eyleme geçirilebilir bilgiler oluşturmak için görüntü görüntüleme gibi görevleri kullanır.

 

Edge AI Uygulamalarında Performansı En Üst Düzeye Çıkarın
Şekil 1. Yapay zeka modeli çıkarımı için, işleme öncesi ve sonrası işlevler genellikle bir uygulama işlemcisinde gerçekleştirilir.
 

Yapay zeka modeli çıkarımı, uygulamanın yeteneklerine bağlı olarak çerçeve başına birden fazla sinir ağı modelinin işlenmesi gibi ek zorluklarla karşılaşabilir. Bilgisayarla görme uygulamaları genellikle birden fazla modelden oluşan bir işlem hattı gerektiren birden fazla yapay zeka görevini içerir. Ayrıca bir modelin çıktısı genellikle bir sonraki modelin girdisidir. Başka bir deyişle, bir uygulamadaki modeller çoğunlukla birbirine bağlıdır ve sırayla çalıştırılması gerekir. Yürütülecek modellerin tam seti statik olmayabilir ve kare kare bile dinamik olarak değişebilir. 

Birden fazla modeli dinamik olarak çalıştırmanın zorluğu, modelleri depolamak için özel ve yeterince büyük belleğe sahip harici bir yapay zeka hızlandırıcı gerektirir. Çoğu zaman bir SoC içindeki entegre AI hızlandırıcı, paylaşılan bellek alt sistemi ve SoC'deki diğer kaynakların getirdiği kısıtlamalar nedeniyle çoklu model iş yükünü yönetemez.

Örneğin, hareket tahminine dayalı nesne izleme, izlenen nesneyi gelecekteki bir konumda tanımlamak için kullanılan bir vektörü belirlemek için sürekli algılamalara dayanır. Bu yaklaşımın etkinliği sınırlıdır çünkü gerçek yeniden tanımlama yeteneğinden yoksundur. Hareket tahminiyle, kaçırılan tespitler, tıkanmalar veya nesnenin anlık olarak bile görüş alanından çıkması nedeniyle bir nesnenin izi kaybolabilir. Bir kez kaybolduğunda nesnenin izini yeniden ilişkilendirmenin bir yolu yoktur. Yeniden tanımlamanın eklenmesi bu sınırlamayı çözer ancak görsel bir görünüm yerleştirme (yani bir görüntü parmak izi) gerektirir. Görünüm yerleştirmeleri, birinci ağ tarafından algılanan nesnenin sınırlayıcı kutusunun içinde bulunan görüntüyü işleyerek bir özellik vektörü oluşturmak için ikinci bir ağa ihtiyaç duyar. Bu yerleştirme, zaman veya mekandan bağımsız olarak nesneyi yeniden tanımlamak için kullanılabilir. Görüş alanında tespit edilen her nesne için gömmelerin oluşturulması gerektiğinden, sahne yoğunlaştıkça işleme gereksinimleri de artar. Yeniden tanımlamayla nesne izleme, yüksek doğruluk / yüksek çözünürlük / yüksek kare hızı algılama gerçekleştirme ve yerleştirme ölçeklenebilirliği için yeterli ek yük ayırma arasında dikkatli bir değerlendirme gerektirir. İşleme gereksinimini çözmenin bir yolu, özel bir yapay zeka hızlandırıcı kullanmaktır. Daha önce de belirtildiği gibi SoC'nin yapay zeka motoru, paylaşılan bellek kaynaklarının eksikliği nedeniyle sıkıntı yaşayabilir. Model optimizasyonu, işleme gereksinimini azaltmak için de kullanılabilir, ancak performansı ve/veya doğruluğu etkileyebilir.

Akıllı bir kamerada veya uç cihazda, entegre SoC (yani ana bilgisayar işlemcisi) video karelerini alır ve daha önce tanımladığımız ön işleme adımlarını gerçekleştirir. Bu işlevler SoC'nin CPU çekirdekleri veya GPU'su (varsa) ile gerçekleştirilebilir, ancak aynı zamanda SoC'deki özel donanım hızlandırıcılar (örn. görüntü sinyali işlemcisi) tarafından da gerçekleştirilebilir. Bu ön işleme adımları tamamlandıktan sonra, SoC'ye entegre edilen AI hızlandırıcı, bu nicelenmiş girişe sistem belleğinden doğrudan erişebilir veya ayrı bir AI hızlandırıcı olması durumunda, giriş daha sonra çıkarım için genellikle USB veya PCIe arayüzü. 

Entegre bir SoC, CPU'lar, GPU'lar, AI hızlandırıcı, görüntü işlemcileri, video kodlayıcılar/kod çözücüler, görüntü sinyal işlemcisi (ISP) ve daha fazlasını içeren bir dizi hesaplama birimi içerebilir. Bu hesaplama birimlerinin tümü aynı bellek veriyolunu paylaşır ve dolayısıyla aynı belleğe erişim sağlar. Ayrıca, CPU ve GPU'nun da çıkarımda rol oynaması gerekebilir ve bu birimler konuşlandırılmış bir sistemde diğer görevleri yürütmekle meşgul olacaktır. Sistem düzeyinde ek yükten kastettiğimiz budur (Şekil 2).

Çoğu geliştirici, sistem düzeyindeki ek yükün toplam performans üzerindeki etkisini dikkate almadan, yanlışlıkla SoC'deki yerleşik AI hızlandırıcının performansını değerlendirir. Örnek olarak, bir SoC'ye entegre edilmiş 50 TOPS yapay zeka hızlandırıcı üzerinde 100 çıkarım/saniye (IPS) değerinde bir kıyaslama sonucu elde edebilecek bir YOLO kıyaslaması çalıştırmayı düşünün. Ancak diğer tüm hesaplama birimlerinin aktif olduğu konuşlandırılmış bir sistemde, bu 50 TOPS, 12 TOPS gibi bir değere düşebilir ve %25'lik cömert bir kullanım faktörü varsayıldığında genel performans yalnızca 25 IPS sağlayabilir. Platform sürekli olarak video akışlarını işliyorsa sistem yükü her zaman bir faktördür. Alternatif olarak, ayrı bir yapay zeka hızlandırıcıyla (örneğin, Kinara Ara-1, Hailo-8, Intel Myriad X) sistem düzeyinde kullanım %90'dan fazla olabilir çünkü ana bilgisayar SoC'si çıkarım işlevini başlattığında ve yapay zeka modelinin girişini aktardığında Hızlandırıcı, model ağırlıklarına ve parametrelerine erişim için ayrılmış belleğini kullanarak otonom bir şekilde çalışır.

 

Edge AI Uygulamalarında Performansı En Üst Düzeye Çıkarın
Şekil 2. Paylaşılan bellek veri yolu, burada tahmini değerlerle gösterilen sistem düzeyindeki performansı yönetecektir. Gerçek değerler uygulama kullanım modelinize ve SoC'nin bilgi işlem birimi yapılandırmasına göre değişiklik gösterir.

Bu noktaya kadar yapay zeka performansını saniyedeki kare sayısı ve TOPS cinsinden tartıştık. Ancak düşük gecikme süresi, bir sistemin gerçek zamanlı yanıt vermesini sağlamak için bir başka önemli gereksinimdir. Örneğin oyunlarda, özellikle hareket kontrollü oyunlarda ve sanal gerçeklik (VR) sistemlerinde, kusursuz ve duyarlı bir oyun deneyimi için düşük gecikme süresi kritik öneme sahiptir. Otonom sürüş sistemlerinde, güvenlikten ödün vermemek için gerçek zamanlı nesne algılama, yaya tanıma, şerit algılama ve trafik işareti tanıma açısından düşük gecikme hayati önem taşıyor. Otonom sürüş sistemleri, tespitten fiili eyleme kadar genellikle 150 ms'den daha az uçtan uca gecikme süresi gerektirir. Benzer şekilde, üretimde, gerçek zamanlı kusur tespiti ve anormallik tanıma için düşük gecikme önemlidir ve robotik rehberlik, verimli çalışmayı sağlamak ve üretimin aksama süresini en aza indirmek için düşük gecikmeli video analitiğine bağlıdır.

Genel olarak bir video analiz uygulamasında gecikmenin üç bileşeni vardır (Şekil 3):

  • Veri yakalama gecikmesi, kamera sensörünün bir video karesini yakalamasından, karenin analiz sistemi tarafından işlenmek üzere kullanılabilir hale gelmesine kadar geçen süredir. Hızlı sensöre ve düşük gecikmeli işlemciye sahip bir kamera seçerek, en uygun kare hızlarını seçerek ve etkili video sıkıştırma formatlarını kullanarak bu gecikmeyi optimize edebilirsiniz.
  • Veri aktarımı gecikmesi, yakalanan ve sıkıştırılmış video verilerinin kameradan uç cihazlara veya yerel sunuculara gitme süresidir. Bu, her uç noktada meydana gelen ağ işleme gecikmelerini içerir.
  • Veri işleme gecikmesi, uç cihazların çerçeve sıkıştırmasını açma ve analitik algoritmalar (örn. hareket tahminine dayalı nesne izleme, yüz tanıma) gibi video işleme görevlerini gerçekleştirme süresini ifade eder. Daha önce de belirtildiği gibi, her video karesi için birden fazla AI modeli çalıştırması gereken uygulamalar için işleme gecikmesi daha da önemlidir.

 

Edge AI Uygulamalarında Performansı En Üst Düzeye Çıkarın
Şekil 3. Video analiz hattı veri yakalama, veri aktarımı ve veri işleme aşamalarından oluşur.
 

Veri işleme gecikmesi, çip boyunca ve bilgi işlem ile bellek hiyerarşisinin çeşitli düzeyleri arasındaki veri hareketini en aza indirecek şekilde tasarlanmış bir mimariye sahip bir AI hızlandırıcı kullanılarak optimize edilebilir. Ayrıca gecikmeyi ve sistem düzeyinde verimliliği artırmak için mimarinin, daha önce tartıştığımız çok modelli uygulamaları daha iyi desteklemek amacıyla modeller arasında sıfır (veya sıfıra yakın) geçiş süresini desteklemesi gerekir. Hem gelişmiş performans hem de gecikme süresine ilişkin bir diğer faktör algoritmik esneklikle ilgilidir. Başka bir deyişle, bazı mimariler yalnızca belirli yapay zeka modellerinde en iyi davranışı sağlayacak şekilde tasarlanmıştır, ancak hızla değişen yapay zeka ortamıyla birlikte, her geçen gün daha yüksek performans ve daha iyi doğruluk için yeni modeller ortaya çıkıyor. Bu nedenle model topolojisi, operatörler ve boyut konusunda pratik kısıtlamalara sahip olmayan bir uç yapay zeka işlemcisi seçin.

Bir uç yapay zeka cihazında performansı en üst düzeye çıkarmak için performans ve gecikme gereksinimleri ve sistem yükü de dahil olmak üzere dikkate alınması gereken birçok faktör vardır. Başarılı bir strateji, SoC'nin yapay zeka motorundaki bellek ve performans sınırlamalarının üstesinden gelmek için harici bir yapay zeka hızlandırıcıyı dikkate almalıdır.
 
 
CH Chee Başarılı bir ürün pazarlama ve yönetim yöneticisi olan Chee, kurumsal ve tüketici de dahil olmak üzere birçok pazar için vizyon tabanlı yapay zeka, bağlantı ve video arayüzlerine odaklanarak yarı iletken endüstrisinde ürün ve çözümlerin tanıtımı konusunda geniş deneyime sahiptir. Bir girişimci olarak Chee, halka açık bir yarı iletken şirketi tarafından satın alınan iki video yarı iletken start-up'ının kurucu ortağı oldu. Chee, ürün pazarlama ekiplerine liderlik ediyor ve harika sonuçlar elde etmeye odaklanan küçük bir ekiple çalışmaktan hoşlanıyor.
 

Zaman Damgası:

Den fazla KDNuggets