Amazon SageMaker Sunucusuz Çıkarım makine öğrenimi (ML) modellerini dağıtmanızı ve ölçeklendirmenizi kolaylaştıran, amaca yönelik oluşturulmuş bir çıkarım seçeneğidir. Uç nokta çağrılarının seyrek ve öngörülemez olduğu hizmetler için ideal olan, kullanım başına ödeme modeli sağlar. Uzun süre çalışan bir bulut sunucusu tarafından desteklenen gerçek zamanlı barındırma uç noktasının aksine, sunucusuz uç noktalara yönelik bilgi işlem kaynakları talep üzerine sağlanır, böylece bulut sunucusu türlerini seçme veya ölçeklendirme politikalarını yönetme ihtiyacını ortadan kaldırır.
Aşağıdaki üst düzey mimari, sunucusuz bir uç noktanın nasıl çalıştığını göstermektedir. Bir istemci, AWS tarafından yönetilen altyapı tarafından desteklenen bir uç noktayı çağırır.
Ancak sunucusuz uç noktalar, saniyeler içinde gerçekleşen soğuk başlatmalara yatkındır ve bu nedenle aralıklı veya öngörülemeyen iş yükleri için daha uygundur.
Maliyet ve performans açısından sunucusuz bir uç noktanın doğru dağıtım seçeneği olup olmadığının belirlenmesine yardımcı olmak için şunları geliştirdik: SageMaker Sunucusuz Çıkarım Kıyaslama Araç Seti, farklı uç nokta yapılandırmalarını test eder ve en uygun olanı karşılaştırılabilir bir gerçek zamanlı barındırma örneğiyle karşılaştırır.
Bu yazıda araç setini tanıtacağız ve konfigürasyonu ve çıktıları hakkında genel bir bakış sunacağız.
Çözüme genel bakış
Araç kitini şuradan indirebilir ve yükleyebilirsiniz: GitHub repo. Başlamak çok kolay: sadece kütüphaneyi kurun, bir Adaçayı Yapıcı modelive modelinizin adını, yük gövdesi ve içerik türü de dahil olmak üzere örnek çağırma parametreleri kümesini içeren JSON satırları biçimli bir dosyayla birlikte sağlayın. Örnek çağırma bağımsız değişkenlerinin bir listesini bir JSON satır dosyasına veya görüntüler, video veya ses gibi ikili veriler için bir seçme dosyasına dönüştürmek için bir kolaylık işlevi sağlanır.
Araç kitini yükleyin
Öncelikle kıyaslama kitaplığını pip kullanarak Python ortamınıza yükleyin:
Aşağıdaki kodu bir programdan çalıştırabilirsiniz. Amazon SageMaker Stüdyosu örnek SageMaker dizüstü bilgisayar örneği, veya herhangi bir örnek programlı erişim AWS'ye ve uygun AWS Kimlik ve Erişim Yönetimi (IAM) izinleri. Gerekli IAM izinleri şu belgede belgelenmiştir: GitHub repo. IAM'ye yönelik ek rehberlik ve örnek politikalar için bkz. Amazon SageMaker, IAM ile Nasıl Çalışır?. Bu kod, iki örnek kayıt içeren bir CSV girişi bekleyen bir model üzerinde varsayılan parametre kümesiyle bir kıyaslama çalıştırır. Uç noktanın farklı giriş yükleriyle nasıl performans gösterdiğini analiz etmek için temsili bir örnek kümesi sağlamak iyi bir uygulamadır.
Ek olarak, karşılaştırmayı bir SageMaker İşleme işi olarak çalıştırabilirsiniz; bu, çok sayıda çağrıya sahip, daha uzun süre çalışan karşılaştırmalar için daha güvenilir bir seçenek olabilir. Aşağıdaki koda bakın:
Bunun, karşılaştırma süresi boyunca ml.m5.large SageMaker Processing örneğini çalıştırmanın ek maliyetine yol açacağını unutmayın.
Her iki yöntem de, karşılaştırılacak bellek yapılandırmalarının listesi ve her yapılandırmanın kaç kez çağrılacağı gibi yapılandırılacak bir dizi parametreyi kabul eder. Çoğu durumda, varsayılan seçenekler bir başlangıç noktası olarak yeterli olacaktır, ancak bkz. GitHub repo Her parametrenin tam listesi ve açıklamaları için.
Karşılaştırma yapılandırması
Karşılaştırmanın ne yaptığını ve hangi çıktıları ürettiğini derinlemesine incelemeden önce, sunucusuz uç noktaların yapılandırılmasına ilişkin birkaç temel kavramı anlamak önemlidir.
Var iki temel yapılandırma seçeneği: MemorySizeInMB
ve MaxConcurrency
. MemorySizeInMB
örneğe ayrılan bellek miktarını yapılandırır ve 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB veya 6144 MB olabilir. vCPU'ların sayısı da ayrılan bellek miktarıyla orantılı olarak ölçeklenir. MaxConcurrency
parametresi, bir uç noktanın kaç eşzamanlı isteğe hizmet verebileceğini ayarlar. Birlikte MaxConcurrency
1'den, sunucusuz bir uç nokta aynı anda yalnızca tek bir isteği işleyebilir.
Özetlemek gerekirse, MemorySizeInMB
parametresi, dikey ölçeklenebilirlik için bir mekanizma sağlayarak belleği ve bilgi işlem kaynaklarını daha büyük modellere hizmet verecek şekilde ayarlamanıza olanak tanır. MaxConcurrency
yatay ölçeklenebilirlik için bir mekanizma sağlayarak uç noktanızın daha fazla eşzamanlı isteği işlemesine olanak tanır.
Bir uç noktayı çalıştırmanın maliyeti büyük ölçüde bellek boyutuna göre belirlenir ve maksimum eşzamanlılığın arttırılmasıyla ilişkili herhangi bir maliyet yoktur. Ancak, tüm uç noktalarda maksimum eşzamanlılık için Bölge başına bir hesap sınırı vardır. Bakınız SageMaker uç noktaları ve kotaları En son sınırlar için.
Karşılaştırma çıktıları
Bu göz önüne alındığında, sunucusuz bir uç noktayı kıyaslamanın amacı, en uygun maliyetli ve güvenilir bellek boyutu ayarını ve beklenen trafik modellerinizi işleyebilecek minimum maksimum eşzamanlılığı belirlemektir.
Araç varsayılan olarak iki kıyaslama çalıştırır. Bunlardan ilki, belirtilen bellek yapılandırmalarının her biri için bir uç nokta dağıtan ve sağlanan örnek yüklerle her uç noktayı çağıran bir kararlılık kıyaslamasıdır. Bu kıyaslamanın amacı en etkili ve kararlı MemorySizeInMB ayarını belirlemektir. Karşılaştırma, çağrı gecikmelerini yakalar ve her uç nokta için çağrı başına beklenen maliyeti hesaplar. Daha sonra maliyeti benzer bir gerçek zamanlı barındırma örneğiyle karşılaştırır.
Kıyaslama tamamlandığında, araç belirtilen aralıkta birkaç çıktı üretir. result_save_path
aşağıdaki dizin yapısına sahip dizin:
The benchmarking_report
dizini, bu yazıda özetlediğimiz tüm özet çıktıları içeren birleştirilmiş bir rapor içerir. Ek dizinler, ek analizler için kullanabileceğiniz ham ve ara çıktıları içerir. Bakın GitHub repo Her çıktı yapısının daha ayrıntılı bir açıklaması için.
Bilgisayar görüşü MobileNetV2 TensorFlow modeline hizmet eden bir uç nokta için birkaç gerçek kıyaslama çıktısını inceleyelim. Bu örneği yeniden oluşturmak isterseniz, bkz. örnek defterler GitHub deposundaki dizin.
Birleştirilmiş raporun ilk çıktısı, her biri için minimum, ortalama, orta ve maksimum gecikme ölçümlerini sağlayan bir özet tablosudur. MemorySizeInMB
Başarılı bellek boyutu yapılandırması. Aşağıdaki tabloda gösterildiği gibi, ortalama çağrı gecikmesi (invocation_latency_mean
) bellek yapılandırması 3072 MB'a çıkarıldıkça gelişmeye devam etti, ancak daha sonra gelişme durdu.
Yüksek düzeyde tanımlayıcı istatistiklere ek olarak, her bellek yapılandırması için istemciden gözlemlenen gecikme dağılımını gösteren bir grafik sağlanır. Yine 1024 MB konfigürasyonunun diğer seçenekler kadar performanslı olmadığını ancak 2048 ve üzeri konfigürasyonlarda performans açısından çok ciddi bir fark olmadığını gözlemleyebiliyoruz.
Amazon Bulut İzleme her uç nokta konfigürasyonuyla ilişkili ölçümler de sağlanır. Buradaki önemli bir ölçüm şudur: ModelSetupTime
, uç nokta soğuk durumda çağrıldığında modelin yüklenmesinin ne kadar sürdüğünü ölçer. Bir uç nokta sıcak durumda başlatıldığından, metrik raporda her zaman görünmeyebilir. A cold_start_delay
Dağıtılmış bir uç noktada karşılaştırmayı başlatmadan önce uykuda kalınacak saniye sayısını belirtmek için parametre mevcuttur. Bu parametrenin 600 saniye gibi daha yüksek bir sayıya ayarlanması, soğuk durum çağrısı olasılığını artıracak ve bu ölçümün yakalanma şansını artıracaktır. Ek olarak, bu ölçümün, bu bölümün ilerleyen kısımlarında ele alacağımız eşzamanlı çağrı kıyaslaması ile yakalanma olasılığı çok daha yüksektir.
Aşağıdaki tabloda her bellek yapılandırması için CloudWatch tarafından yakalanan ölçümler gösterilmektedir.
Bir sonraki grafik, farklı bellek yapılandırmalarının performans ve maliyet değişimlerini göstermektedir. Bir satır, uç noktayı 1 milyon kez çağırmanın tahmini maliyetini, diğeri ise ortalama yanıt gecikmesini gösterir. Bu ölçümler, hangi uç nokta yapılandırmasının en uygun maliyetli olduğu konusunda karar vermenizi sağlayabilir. Bu örnekte, ortalama gecikmenin 2048 MB'tan sonra sabitleştiğini ancak maliyetin artmaya devam ettiğini görüyoruz; bu da bu model için 2048 bellek boyutu yapılandırmasının en uygun seçenek olacağını gösteriyor.
Maliyet ve kararlılık karşılaştırmasının nihai çıktısı, önerilen bir bellek yapılandırmasının yanı sıra, sunucusuz bir uç noktayı çalıştırmanın maliyetini benzer bir SageMaker barındırma örneğiyle karşılaştıran bir tablodur. Araç, toplanan verilere dayanarak 2048 MB yapılandırmanın bu model için en uygun yapılandırma olduğunu belirledi. Her ne kadar 3072 yapılandırması kabaca 10 milisaniye daha iyi gecikme süresi sağlasa da bu, maliyette %30'luk bir artışla birlikte 4.55 milyon istek başına 5.95 Dolar'dan 1 Dolar'a çıkıyor. Ek olarak, çıktı, sunucusuz bir uç noktanın, aylık 88.72 milyonun altında çağrı isteği olduğunda benzer bir gerçek zamanlı barındırma örneğine kıyasla %1'ye kadar tasarruf sağlayacağını ve 8.5 milyon istekten sonra gerçek zamanlı bir uç noktayla aynı seviyede olduğunu gösteriyor.
İkinci tür kıyaslama isteğe bağlıdır ve çeşitli testleri test eder. MaxConcurency
Farklı trafik düzenleri altında ayarlar. Bu kıyaslama genellikle en uygun değer kullanılarak çalıştırılır. MemorySizeInMB
kararlılık kıyaslamasından yapılandırma. Bu kıyaslama için iki temel parametre, aşağıdakilerin bir listesidir: MaxConcurency
uç noktanın test edildiği simüle edilmiş eşzamanlı istemcilerin sayısını belirleyen istemci çarpanlarının bir listesiyle birlikte test edilecek ayarlar.
Örneğin, ayarlayarak concurrency_benchmark_max_conc parameter
[4, 8]'e ve concurrency_num_clients_multiplier
[1, 1.5, 2]'ye kadar iki uç nokta başlatılır: biri MaxConcurency
4 ve diğer 8. Her uç nokta daha sonra bir (MaxConcurency
x çarpanı) simüle edilmiş eşzamanlı istemcilerin sayısı; bu, 4 eşzamanlılığa sahip uç nokta için 4, 6 ve 8 eşzamanlı istemciyle yük testi kıyaslamalarına karşılık gelir.
Bu karşılaştırmanın ilk çıktısı gecikme ölçümlerini, kısıtlama istisnalarını ve her biriyle ilişkili saniye başına işlem ölçümlerini (TPS) gösteren bir tablodur. MaxConcurrency
farklı sayıda eşzamanlı istemciyle yapılandırma. Bu ölçümler uygun olanı belirlemeye yardımcı olur MaxConcurrency
Beklenen trafik yükünü işlemek için ayar. Aşağıdaki tabloda, maksimum eşzamanlılık 8 ile yapılandırılan bir uç noktanın, saniyede ortalama 16 işlemle yapılan 2,500 çağrıdan yalnızca iki kısıtlama istisnası dışında 24'ya kadar eşzamanlı istemciyi işleyebildiğini görebiliriz.
Sonraki çıktı kümesi her biri için bir grafik sağlar. MaxConcurrency
Farklı yükler altında gecikme dağılımını gösteren ayar. Bu örnekte, bir uç noktanın olduğunu görebiliriz. MaxConcurrency
4 ayarı, çağrı gecikmesinde minimum artışla 8'e kadar eşzamanlı istemciyle tüm istekleri başarıyla işleyebildi.
Son çıktı, her biri için CloudWatch ölçümlerini içeren bir tablo sağlar. MaxConcurrency
konfigürasyon. Her bellek yapılandırması için gecikme dağılımını gösteren ve her zaman soğuk başlatmayı görüntülemeyebilen önceki tablonun aksine ModelSetupTime
metrik, çağrı isteklerinin daha fazla olması ve daha fazla sayıda olması nedeniyle bu metriğin bu tabloda görünme olasılığı çok daha yüksektir. MaxConcurrency
.
Sonuç
Bu yazıda SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Setini tanıttık ve yapılandırması ve çıktıları hakkında genel bir bakış sunduk. Araç, gerçekçi trafik modelleriyle farklı yapılandırmaların yük testini yaparak sunucusuz çıkarım konusunda daha bilinçli bir karar vermenize yardımcı olabilir. Sunucusuz bir uç nokta dağıtarak bekleyebileceğiniz performansı ve maliyet tasarrufunu kendi gözlerinizle görmek için kıyaslama araç setini kendi modellerinizle deneyin. Lütfen şuraya bakın: GitHub repo ek belgeler ve örnek not defterleri için.
Ek kaynaklar
yazarlar hakkında
Simon Zamarin ana odak noktası müşterilerin veri varlıklarından değer elde etmelerine yardımcı olan bir AI / ML Çözümleri Mimarıdır. Simon boş zamanlarında aileyle vakit geçirmekten, bilim kurgu okumaktan ve çeşitli DIY ev projeleri üzerinde çalışmaktan hoşlanıyor.
Dhaval Patel AWS'de Baş Makine Öğrenimi Mimarıdır. Dağıtılmış bilgi işlem ve yapay zeka ile ilgili sorunlar üzerinde büyük işletmelerden orta ölçekli girişimlere kadar çeşitli kuruluşlarla çalıştı. NLP ve bilgisayarla görme alanları dahil olmak üzere derin öğrenmeye odaklanmaktadır. Müşterilerin SageMaker'da yüksek performanslı model çıkarımı yapmasına yardımcı olur.
Rishabh Ray Chaudhury Amazon SageMaker'da makine öğrenimi çıkarımına odaklanan Kıdemli Ürün Yöneticisidir. AWS'deki makine öğrenimi müşterilerinin iş yüklerini ölçeklendirmelerine yardımcı olmak için yenilik yapma ve yeni deneyimler oluşturma konusunda tutkulu. Boş zamanlarında seyahat etmekten ve yemek yapmaktan hoşlanıyor. Onu şurada bulabilirsin LinkedIn.
- Gelişmiş (300)
- AI
- yapay zeka
- AI sanat üreteci
- yapay zeka robotu
- Amazon Adaçayı Yapıcı
- Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti
- yapay zeka
- yapay zeka sertifikası
- bankacılıkta yapay zeka
- yapay zeka robotu
- yapay zeka robotları
- yapay zeka yazılımı
- AWS Makine Öğrenimi
- blockchain
- blockchain konferans ai
- zeka
- konuşma yapay zekası
- kripto konferans ai
- dal-e
- derin öğrenme
- google ai
- makine öğrenme
- Platon
- plato yapay zekası
- Plato Veri Zekası
- Plato Oyunu
- PlatoVeri
- plato oyunu
- ölçek ai
- sözdizimi
- zefirnet