Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları ile yüksek değerli araştırmayı iyileştirin

AWS müşterilerimizin çoğu bir hizmet olarak araştırma, analiz ve iş zekası sağlar. Bu tür araştırma ve iş zekası, son müşterilerinin pazarların ve rakiplerin önünde kalmasını, büyüme fırsatlarını belirlemesini ve sorunları proaktif olarak ele almasını sağlar. Örneğin, finansal hizmetler sektörü müşterilerimizden bazıları, eğilimleri anlamalarına ve portföy stratejilerini belirlemelerine yardımcı olmak için hisse senetleri, riskten korunma fonları ve yatırım yönetimi şirketleri için araştırma yapar. Sağlık endüstrisinde, sağlık araştırmalarının giderek daha büyük bir kısmı artık bilgi tabanlıdır. Çok sayıda araştırma, başlangıçta teşhis, tedavi veya diğer araştırma projeleri için toplanan ve şimdi yeni araştırma amaçları için kullanılan verilerin analizini gerektirir. Bu tür sağlık araştırmaları, yeni vakalardan kaçınmak için etkili birincil korumaya, erken teşhis için ikincil korumaya ve daha iyi hastalık yönetimi için önlemeye yol açmıştır. Araştırma sonuçları yalnızca yaşam kalitesini iyileştirmekle kalmıyor, aynı zamanda sağlık harcamalarının azaltılmasına da yardımcı oluyor.

Müşteriler, genel ve özel kaynaklardan gelen bilgileri sindirme eğilimindedir. Ardından, bir eğilimi özetlemek ve belirlemek ve bu bilgilere dayalı içgörüler oluşturmak için yerleşik veya özel doğal dil işleme (NLP) modellerini uygularlar. Bu tür araştırma görevleri için kullanılan NLP modelleri, büyük modellerle ilgilenir ve genellikle, derlemin boyutu ve şu anda maliyet açısından optimize edilmemiş özel uç noktalar dikkate alınarak özetlenecek uzun makaleler içerir. Bu uygulamalar, günün farklı saatlerinde gelen trafik patlaması alır.

Müşterilerin, sıfıra küçültme ve çıkarım yeteneklerini gerektiği gibi artırma yeteneğinden büyük ölçüde yararlanacağına inanıyoruz. Bu, araştırma maliyetini optimize eder ve yine de çıkarımların kalitesinden ödün vermez. Bu gönderi, Hugging Face'in onunla birlikte nasıl Amazon Adaçayı Yapıcı asenkron çıkarım bunu başarmaya yardımcı olabilir.

TensorFlow, PyTorch ve Apache MXNet gibi birden çok derin öğrenme çerçevesiyle metin özetleme modelleri oluşturabilirsiniz. Bu modeller tipik olarak, değişen boyutlarda çok sayıda metin belgesinden oluşan büyük bir girdi yüküne sahiptir. Gelişmiş derin öğrenme modelleri, model çıkarımından önce bilgi işlem yoğun ön işleme gerektirir. İşlem süreleri birkaç dakika kadar uzun olabilir, bu da yükleri bir HTTP API üzerinden geçirerek gerçek zamanlı çıkarım çalıştırma seçeneğini ortadan kaldırır. Bunun yerine, aşağıdaki gibi bir nesne deposundan girdi yüklerini eşzamansız olarak işlemeniz gerekir: Amazon Basit Depolama Hizmeti (Amazon S3) otomatik kuyruğa alma ve önceden tanımlanmış bir eşzamanlılık eşiği ile. Sistem, görevler tamamlandığında kaynakları temizleyerek durum bildirimleri alabilmeli ve gereksiz maliyetleri azaltabilmelidir.

SageMaker, veri bilimcilerin ve geliştiricilerin, makine öğrenimi için özel olarak oluşturulmuş geniş bir dizi yeteneği bir araya getirerek yüksek kaliteli makine öğrenimi (ML) modellerini hızla hazırlamasına, oluşturmasına, eğitmesine ve dağıtmasına yardımcı olur. SageMaker, XGBoost (konteyner, SDK), Scikit-Öğren (konteyner, SDK), PyTorch (konteyner, SDK), Tensör Akışı (konteyner, SDK) ve Apache MXNet (konteyner, SDK).

SageMaker, yeni veriler üzerinde çıkarımlar oluşturmak için eğitimli makine öğrenimi modellerini dağıtmak için dört seçenek sunar.
  1. Gerçek zamanlı çıkarım uç noktalar, ms ile saniye arasında düşük gecikme süresi gereksinimleriyle işlenmesi gereken iş yükleri için uygundur.
  2. Toplu dönüştürme büyük veri yığınları üzerinde çevrimdışı tahminler için idealdir.
  3. Amazon SageMaker Sunucusuz Çıkarım (önizleme modundadır ve bu yazı itibariyle üretim iş yükleri için önerilmez), makine öğrenimi modellerini dağıtmanızı ve ölçeklendirmenizi kolaylaştıran amaca yönelik oluşturulmuş bir çıkarım seçeneğidir. Sunucusuz Çıkarım, trafikteki sıçramalar arasında boşta kalma süreleri olan ve soğuk başlatmaları tolere edebilen iş yükleri için idealdir.
  4. Eşzamansız Çıkarım uç noktalar gelen istekleri sıraya koyar. İstek boyutlarının büyük olduğu (1 GB'a kadar) ve çıkarım işleme sürelerinin dakikalar düzeyinde (15 dakikaya kadar) olduğu iş yükleri için idealdirler. Eşzamansız çıkarım, işlenecek istek olmadığında örnek sayısını otomatik olarak sıfıra ölçeklendirerek maliyetlerden tasarruf etmenizi sağlar.

Çözüme genel bakış

Bu gönderide, bir PEGASUS modeli metin özetleme yapmak için önceden eğitilmiş Sarılma Yüz için SageMaker barındırma hizmetleri. Modeli sadelik için Hugging Face'deki gibi kullanıyoruz. Ancak, yapabilirsiniz özel bir veri kümesine dayalı olarak modelde ince ayar yapın. Ayrıca mevcut diğer modelleri de deneyebilirsiniz. Sarılma Yüz Modeli Hub. Ayrıca, tahminler alabileceğiniz bu modeli barındıran bir eşzamansız çıkarım uç noktası sağlıyoruz.

Zaman uyumsuz çıkarım uç noktasının çıkarım işleyicisi, girdi yükü olarak bir makale bekler. Makalenin özet metni çıktıdır. Çıktı, eğilimleri analiz etmek için veritabanında depolanır veya daha fazla analiz için akış yönünde beslenir. Bu aşağı akış analizi, araştırmaya yardımcı olan veri içgörülerini türetir.

Eşzamansız çıkarım uç noktalarının, kullanıcı tanımlı eşzamanlılık ve tamamlama bildirimlerine sahip olmanızı nasıl sağladığını gösteriyoruz. Trafik azaldığında ölçeği sıfıra indirmek ve istek kuyruğu dolduğunda yeniden ölçeklendirmek için uç noktanın arkasındaki örneklerin otomatik olarak ölçeklenmesini yapılandırırız.

Ayrıca kullanıyoruz Amazon Bulut İzleme kuyruk boyutunu, toplam işlem süresini ve işlenen çağrıları izlemek için ölçümler.

Aşağıdaki şemada, asenkron bir çıkarım bitiş noktası kullanarak çıkarım gerçekleştirirken gerekli adımları gösteriyoruz.

Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

  1. Bizim önceden eğitilmiş PEGASUS ML modeli ilk olarak ölçeklendirme uç noktasında barındırılır.
  2. Kullanıcı, özetlenecek makaleyi bir giriş S3 klasörüne yükler.
  3. Eşzamansız çıkarım uç noktası, bir API kullanılarak çağrılır.
  4. Çıkarım tamamlandıktan sonra sonuç, çıkış S3 kovasına kaydedilir.
  5. An Amazon Basit Bildirim Servisi (Amazon SNS) bildirimi, tamamlanan başarıyı veya başarısızlığı bildiren kullanıcıya gönderilir.

Eşzamansız bir çıkarım uç noktası oluşturun

Gerçek zamanlı barındırılan uç noktaya benzer eşzamansız çıkarım uç noktası oluştururuz. Adımlar, bir SageMaker modeli oluşturmayı, ardından uç noktayı yapılandırmayı ve uç noktayı dağıtmayı içerir. İki uç nokta türü arasındaki fark, eşzamansız çıkarım uç noktası yapılandırmasının bir AsyncInferenceConfig bölüm. Burada, uç nokta çağrısından elde edilen sonuçlar için S3 çıkış yolunu belirtiriz ve isteğe bağlı olarak başarı ve başarısızlık bildirimleri için SNS konularını dahil ederiz. Ayrıca, müşteri tarafından belirlenen şekilde, örnek başına maksimum eşzamanlı çağrı sayısını da belirtiriz. Aşağıdaki koda bakın:

AsyncInferenceConfig={ "OutputConfig": { "S3OutputPath": f"s3://{bucket}/{bucket_prefix}/output", # Optionally specify Amazon SNS topics for notifications "NotificationConfig": { "SuccessTopic": success_topic, "ErrorTopic": error_topic, } }, "ClientConfig": { "MaxConcurrentInvocationsPerInstance": 2 #increase this value up to throughput peak for ideal performance } }

Eşzamansız çıkarım için bir uç nokta yapılandırması oluşturmaya yönelik API hakkında ayrıntılar için bkz. Eşzamansız Çıkarsama Uç Noktası Oluşturun.

Eşzamansız çıkarım uç noktasını çağırın

Aşağıdaki ekran görüntüsü, girdi yükümüz olarak kullandığımız kısa bir makaleyi göstermektedir:
Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

Aşağıdaki kod, makaleyi bir input.json Amazon S3'e dosya:

sm_session.upload_data( input_location, bucket=sm_session.default_bucket(), key_prefix=prefix, extra_args={"ContentType": "text/plain"})

Uç noktayı çağırmak için giriş yükü dosyasına yönelik Amazon S3 URI'sini kullanırız. Yanıt nesnesi, tamamlandıktan sonra sonuçları almak için Amazon S3'teki çıktı konumunu içerir:

response = sm_runtime.invoke_endpoint_async(EndpointName=endpoint_name, InputLocation=input_1_s3_location)
output_location = response['OutputLocation']

Aşağıdaki ekran görüntüsü, özetleme sonrası örnek çıktıyı gösterir:
Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

Eşzamansız bir çıkarım uç noktasını çağırmak üzere API hakkında ayrıntılar için bkz. Eşzamansız Çıkarsama Uç Noktasını Çağırma.

Çağırma isteklerini kullanıcı tanımlı eşzamanlılıkla kuyruğa alın

Zaman uyumsuz çıkarım uç noktası, çağırma isteklerini otomatik olarak sıraya alır. Bu, çeşitli izleme ölçümlerine sahip tam olarak yönetilen bir kuyruktur ve başka bir yapılandırma gerektirmez. kullanır MaxConcurrentInvocationsPerInstance önceki istekler tamamlandıktan sonra kuyruktan gelen yeni istekleri işlemek için önceki uç nokta yapılandırmasındaki parametre. MaxConcurrentInvocationsPerInstance SageMaker istemcisi tarafından model kapsayıcısına gönderilen maksimum eşzamanlı istek sayısıdır. Hiçbir değer sağlanmazsa SageMaker sizin için en uygun değeri seçer.

Eşzamansız çıkarım uç noktası içindeki örnekleri otomatik ölçeklendirme

Otomatik ölçeklendirme politikasını minimum kapasite sıfır ve maksimum kapasite beş örnek olarak belirledik. Gerçek zamanlı barındırılan uç noktaların aksine, zaman uyumsuz çıkarım uç noktaları, minimum kapasiteyi sıfıra ayarlayarak örneklerin sıfıra indirilmesini destekler. kullanıyoruz ApproximateBacklogSizePerInstance Ölçeklendirmeyi daha da genişletmek için örnek başına beş hedef kuyruk biriktirme listesi ile ölçeklendirme ilkesi yapılandırması için metrik. Soğuma süresini belirledik ScaleInCooldown 120 saniyeye kadar ve ScaleOutCooldown 120 saniyeye kadar. için değer ApproximateBacklogSizePerInstance trafiğe ve ölçeklendirme hızına duyarlılığınıza göre seçilir. Ne kadar hızlı ölçeklendirirseniz, maliyetiniz o kadar az olur, ancak yeni istekler geldiğinde yeniden ölçeği büyütmeniz daha olasıdır. Ölçeklendirmeyi ne kadar yavaş yaparsanız, maliyetiniz o kadar artar, ancak daha az olasıdır. Yetersiz olduğunuzda bir istek gelir.

client = boto3.client('application-autoscaling') # Common class representing Application Auto Scaling for SageMaker amongst other services resource_id='endpoint/' + endpoint_name + '/variant/' + 'variant1' # This is the format in which application autoscaling references the endpoint response = client.register_scalable_target(
ServiceNamespace='sagemaker', #
ResourceId=resource_id,
ScalableDimension='sagemaker:variant:DesiredInstanceCount',
MinCapacity=0,
MaxCapacity=5
) response = client.put_scaling_policy(
PolicyName='Invocations-ScalingPolicy',
ServiceNamespace='sagemaker', # The namespace of the AWS service that provides the resource.
ResourceId=resource_id, # Endpoint name
ScalableDimension='sagemaker:variant:DesiredInstanceCount', # SageMaker supports only Instance Count
PolicyType='TargetTrackingScaling', # 'StepScaling'|'TargetTrackingScaling'
TargetTrackingScalingPolicyConfiguration={ 'TargetValue': 5.0, # The target value for the metric. 'CustomizedMetricSpecification': { 'MetricName': 'ApproximateBacklogSizePerInstance', 'Namespace': 'AWS/SageMaker', 'Dimensions': [{'Name': 'EndpointName', 'Value': endpoint_name }], 'Statistic': 'Average',
}, 'ScaleInCooldown': 120, # ScaleInCooldown - The amount of time, in seconds, after a scale-in activity completes before another scale in activity can start. 'ScaleOutCooldown': 120 # ScaleOutCooldown - The amount of time, in seconds, after a scale-out activity completes before another scale out activity can start.
# 'DisableScaleIn': True|False - indicates whether scale in by the target tracking policy is disabled.
# If the value is true, scale-in is disabled and the target tracking policy won't remove capacity from the scalable resource.
}
)

Eşzamansız bir çıkarım uç noktasını otomatik olarak ölçeklendirmek için API hakkında ayrıntılar için bkz. Eşzamansız Çıkarım Uç Noktasını Otomatik Ölçeklendirme.

Zaman uyumsuz çıkarım uç noktasından gelen bildirimleri yapılandırın

Her uç nokta çağırma sonucu için başarı ve hata bildirimleri için iki ayrı SNS konusu oluşturuyoruz:

sns_client = boto3.client('sns')
response = sns_client.create_topic(Name="Async-Demo-ErrorTopic2")
error_topic = response['TopicArn']
response = sns_client.create_topic(Name="Async-Demo-SuccessTopic2")
success_topic = response['TopicArn']

Bildirimler için diğer seçenekler arasında, S3 klasörünün çıktısının periyodik olarak kontrol edilmesi veya bir AWS Lambda dosya yükleme işlevi. SNS bildirimleri, daha önce açıklandığı gibi uç nokta yapılandırma bölümüne dahil edilmiştir.

Eşzamansız bir çıkarım uç noktasından bildirimlerin nasıl ayarlanacağına ilişkin ayrıntılar için bkz. Tahmin Sonuçlarını Kontrol Et.

Eşzamansız çıkarım uç noktasını izleyin

Zaman uyumsuz çıkarım uç noktasını, zaman uyumsuz çıkarıma özgü yerleşik ek CloudWatch ölçümleriyle izliyoruz. Örneğin, her durumda kuyruk uzunluğunu şu şekilde izliyoruz: ApproximateBacklogSizePerInstance ve toplam kuyruk uzunluğu ile ApproximateBacklogSize.

Metriklerin tam listesi için bkz. Eşzamansız Çıkarım Uç Noktalarını İzleme.

Yüksek performansla en uygun maliyetli örneği elde etmek için uç nokta yapılandırmasını optimize edebiliriz. Örneğin, Amazon Elastic Inference veya AWS Inferentia ile bir bulut sunucusu kullanabiliriz. Ayrıca, diğer model sunucu ve kapsayıcı parametrelerini ayarlarken eşzamanlılık düzeyini verim zirvesine kadar kademeli olarak artırabiliriz.

CloudWatch grafikleri

Önceki bölümde açıklanan otomatik ölçeklendirme ilkesiyle etkinleştirilen zaman uyumsuz çıkarım uç noktasına bir süre boyunca akan 10,000 çıkarım isteği trafiğini simüle ettik.

Aşağıdaki ekran görüntüsü, istekler akmaya başlamadan önceki örnek metriklerini göstermektedir. Çalışan sıfır örnekle canlı bir uç nokta ile başlıyoruz:
Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

Aşağıdaki grafik, BacklogSize ve BacklogSizePerInstance otomatik ölçeklendirme devreye girdikçe ve uç nokta üzerindeki yük, otomatik ölçeklendirme sürecinin bir parçası olarak sağlanan birden çok örnek tarafından paylaşıldıkça metrikler değişir.
Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

Aşağıdaki ekran görüntüsünde gösterildiği gibi, çıkarım sayısı arttıkça örnek sayısı arttı:
Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

Aşağıdaki ekran görüntüsü, ölçeklemenin uç noktayı sıfır çalışan örneklerin ilk durumuna nasıl geri getirdiğini gösterir:
Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.

Temizlemek

Tüm istekler tamamlandıktan sonra, gerçek zamanlı barındırılan uç noktaları silmeye benzer şekilde uç noktayı silebiliriz. Asenkron çıkarım uç noktalarının minimum kapasitesini sıfıra ayarlarsak, sıfıra ölçeklendikten sonra hiçbir örnek ücreti alınmayacağını unutmayın.

Uç noktanız için otomatik ölçeklendirmeyi etkinleştirdiyseniz, uç noktayı silmeden önce uç noktanın ölçeklenebilir bir hedef olarak kaydını sildiğinizden emin olun. Bunu yapmak için aşağıdaki kodu çalıştırın:

response = client.deregister_scalable_target(ServiceNamespace='sagemaker',ResourceId='resource_id',ScalableDimension='sagemaker:variant:DesiredInstanceCount')

Bu demoda kullanılan örnekler için ücretlendirileceğiniz için, kullanımdan sonra uç noktanızı silmeyi unutmayın.

sm_client.delete_endpoint(EndpointName=endpoint_name)

Ayrıca S3 nesnelerini ve SNS konularını da silmeniz gerekir. SNS bildirimlerini kullanmak ve bunlarla ilgili eylemde bulunmak için başka AWS kaynakları oluşturduysanız, bunları da silmek isteyebilirsiniz.

Sonuç

Bu gönderide, bir özetleme görevinin parçası olan tipik bir büyük girdi yükünü işlemek için SageMaker'ın yeni eşzamansız çıkarım yeteneğinin nasıl kullanılacağını gösterdik. Çıkarım için Hugging Face'den bir model kullandık ve bunu eşzamansız çıkarım uç noktasına yerleştirdik. Ani trafik, yüksek model işleme süreleri ve araştırma analitiğiyle ilgili büyük yüklerin ortak zorluklarını açıkladık. Eşzamansız çıkarım uç noktasının dahili kuyrukları yönetme, önceden tanımlanmış eşzamanlılık sınırları, yanıt bildirimlerini yapılandırma ve otomatik olarak sıfıra ölçeklendirme yeteneği, bu zorlukların üstesinden gelmemize yardımcı oldu. Bu örnek için tam kod şu adreste mevcuttur: GitHub.

SageMaker asenkron çıkarımına başlamak için, kontrol edin Eşzamansız Çıkarım.


Yazarlar Hakkında

Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.Dinesh Kumar Subramani Edinburgh, İskoçya merkezli UKIR KOBİ ekibiyle birlikte Kıdemli Çözüm Mimarıdır. Yapay zeka ve makine öğrenimi konusunda uzmanlaşmıştır. Dinesh, AWS hizmetleriyle ilgili sorunlarını çözmelerine yardımcı olmak için farklı sektörlerdeki müşterilerle çalışmaktan keyif alıyor. İş dışında ailesiyle vakit geçirmeyi, satranç oynamayı ve farklı türlerde müzik dinlemeyi seviyor.

Hugging Face ve Amazon SageMaker eşzamansız çıkarım uç noktaları PlatoBlockchain Veri Zekası ile yüksek değerli araştırmaları geliştirin. Dikey Arama. Ai.Raghu Rameşa Amazon SageMaker Hizmet ekibiyle birlikte bir ML Çözümleri Mimarıdır. Müşterilerin ML üretim iş yüklerini uygun ölçekte oluşturmasına, dağıtmasına ve SageMaker'a geçirmesine yardımcı olmaya odaklanıyor. Makine öğrenimi, yapay zeka ve bilgisayarla görme alanlarında uzmandır ve UT Dallas'tan Bilgisayar Bilimi alanında yüksek lisans derecesine sahiptir. Boş zamanlarında seyahat etmeyi ve fotoğraf çekmeyi sever.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi