Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Takımıyla Tanışın

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:

pip install sm-serverless-benchmarking

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.

from sm_serverless_benchmarking import benchmark
from sm_serverless_benchmarking.utils import convert_invoke_args_to_jsonl
model_name = ""
example_invoke_args = [
        {'Body': '1,2,3,4,5', "ContentType": "text/csv"},
        {'Body': '6,7,8,9,10', "ContentType": "text/csv"}
        ]
example_args_file = convert_invoke_args_to_jsonl(example_invoke_args,
output_path=".")
r = benchmark.run_serverless_benchmarks(model_name, example_args_file)

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:

from sm_serverless_benchmarking.sagemaker_runner import run_as_sagemaker_job
run_as_sagemaker_job(
                    role="",
                    model_name="",
                    invoke_args_examples_file="",
                    )

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:

├── benchmarking_report
├── concurrency_benchmark_raw_results
├── concurrency_benchmark_summary_results
├── cost_analysis_summary_results
├── stability_benchmark_raw_results
├── stability_benchmark_summary_results

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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

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 SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

İ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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.

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

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.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.

Amazon SageMaker Sunucusuz Çıkarım Karşılaştırma Araç Seti PlatoBlockchain Veri Zekası ile tanışın. Dikey Arama. Ai.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.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi