Exafunction, makine öğrenimi çıkarımı için en iyi fiyat performansının kilidini açmak amacıyla AWS Inferentia'yı destekler PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Exafunction, makine öğrenimi çıkarımı için en iyi fiyat performansını ortaya çıkarmak üzere AWS Inferentia'yı destekler

Tüm sektörlerde makine öğrenimi (ML) modelleri derinleşiyor, iş akışları daha karmaşık hale geliyor ve iş yükleri daha büyük ölçeklerde çalışıyor. Bu yatırım doğrudan daha iyi ürün ve deneyimlerle sonuçlandığından, bu modellerin daha doğru hale getirilmesi için önemli çaba ve kaynaklar harcanmaktadır. Öte yandan, bu modellerin üretimde verimli bir şekilde çalışmasını sağlamak, performans ve bütçe hedeflerine ulaşmanın anahtarı olmasına rağmen sıklıkla gözden kaçırılan önemsiz bir girişimdir. Bu yazıda Exafunction ve AWS Çıkarımları Üretimdeki makine öğrenimi modellerinin kolay ve uygun maliyetli dağıtımının kilidini açmak için birlikte çalışın.

Exfunction şirketlerin makine öğrenimini mümkün olduğunca geniş ölçekte verimli bir şekilde gerçekleştirmelerini sağlamaya odaklanmış bir start-up'tır. Ürünlerinden biri ExaDeployML iş yüklerine uygun ölçekte hizmet vermek için kullanımı kolay bir SaaS çözümü. ExaDeploy, kaynak kullanımını en üst düzeye çıkarmak için makine öğrenimi iş yüklerinizi karma kaynaklar (CPU ve donanım hızlandırıcılar) genelinde verimli bir şekilde düzenler. Ayrıca verimli ve güvenilir dağıtım sağlamak için otomatik ölçeklendirme, bilgi işlem ortak yerleşimi, ağ sorunları, hata toleransı ve daha fazlasıyla ilgilenir. AWS Inferentia tabanlı Amazon EC2 Inf1 bulut sunucuları bulutta en düşük çıkarım başına maliyeti sunmak amacıyla tasarlanmıştır. ExaDeploy artık Inf1 bulut sunucularını destekliyor ve bu da kullanıcıların hem donanım tabanlı hızlandırıcı tasarruflarından hem de optimize edilmiş kaynak sanallaştırma ve düzenlemenin yazılım tabanlı tasarruflarından geniş ölçekte yararlanmasına olanak tanıyor.

Çözüme genel bakış

ExaDeploy dağıtım verimliliğini nasıl çözüyor?

Bilgi işlem kaynaklarının verimli kullanımını sağlamak için uygun kaynak tahsisi, otomatik ölçeklendirme, bilgi işlem ortak yerleşimi, ağ maliyeti ve gecikme yönetimi, hata toleransı, sürüm oluşturma ve tekrarlanabilirlik ve daha fazlasını dikkate almanız gerekir. Her türlü verimsizlik, büyük ölçekte maliyetleri ve gecikmeyi önemli ölçüde etkiliyor ve birçok büyük şirket, dahili ekipler ve uzmanlık oluşturarak bu verimsizlikleri gideriyor. Ancak çoğu şirket için, şirketin arzu ettiği temel yetkinlik olmayan, genelleştirilebilir yazılım oluşturmanın bu mali ve organizasyonel yükünü üstlenmek pratik değildir.

ExaDeploy, Otonom Araç ve doğal dil işleme (NLP) uygulamaları gibi en karmaşık iş yüklerinin bazılarında görülenler de dahil olmak üzere, dağıtım verimliliğindeki bu sıkıntılı noktaları çözmek için tasarlanmıştır. ExaDeploy, bazı büyük toplu makine öğrenimi iş yüklerinde gecikme veya doğruluktan ödün vermeden bir mühendis günü kadar kısa entegrasyon süresiyle maliyetleri %85'in üzerinde azalttı. ExaDeploy'un binlerce eşzamanlı donanım hızlandırıcı kaynak örneğini herhangi bir sistem bozulması olmadan otomatik olarak ölçeklendirdiği ve yönettiği kanıtlanmıştır.

ExaDeploy'un temel özellikleri şunları içerir:

  • Bulutunuzda çalışır: Modellerinizin, girişlerinizin veya çıkışlarınızın hiçbiri özel ağınızdan asla ayrılmaz. Bulut sağlayıcınızın indirimlerini kullanmaya devam edin.
  • Paylaşılan hızlandırıcı kaynakları: ExaDeploy, birden fazla modelin veya iş yükünün hızlandırıcı kaynaklarını paylaşmasını sağlayarak kullanılan hızlandırıcıları optimize eder. Ayrıca birden fazla iş yükünün aynı modeli dağıtıp dağıtmadığını belirleyebilir ve ardından modeli bu iş yükleri arasında paylaşarak kullanılan hızlandırıcıyı optimize edebilir. Otomatik yeniden dengeleme ve düğüm boşaltma yetenekleri, kullanımı en üst düzeye çıkarır ve maliyetleri en aza indirir.

Exafunction, makine öğrenimi çıkarımı için en iyi fiyat performansının kilidini açmak amacıyla AWS Inferentia'yı destekler PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

  • Ölçeklenebilir sunucusuz dağıtım modeli: ExaDeploy, hızlandırıcı kaynak doygunluğuna göre otomatik ölçeklendirme yapar. Dinamik olarak 0'a veya binlerce kaynağa kadar ölçeklendirin.
  • Çeşitli hesaplama türleri için destek: Derin öğrenme modellerini tüm önemli makine öğrenimi çerçevelerinin yanı sıra isteğe bağlı C++ kodu, CUDA çekirdekleri, özel işlemler ve Python işlevlerinden de aktarabilirsiniz.
  • Dinamik model kaydı ve versiyonlama: Yeni modeller veya model versiyonları, sistemi yeniden kurmaya veya yeniden konuşlandırmaya gerek kalmadan kaydedilebilir ve çalıştırılabilir.
  • Noktadan noktaya yürütme: İstemciler doğrudan uzak hızlandırıcı kaynaklarına bağlanır, bu da düşük gecikme süresi ve yüksek verim sağlar. Durumu uzaktan bile saklayabilirler.
  • Eşzamansız yürütme: ExaDeploy, istemcilerin yerel hesaplamayı uzak hızlandırıcı kaynak çalışmasıyla paralelleştirmesine olanak tanıyan modellerin eşzamansız yürütülmesini destekler.
  • Hataya dayanıklı uzak işlem hatları: ExaDeploy, istemcilerin uzak hesaplamaları (modeller, ön işleme vb.) hata toleransı garantisiyle işlem hatları halinde dinamik olarak oluşturmasına olanak tanır. ExaDeploy sistemi, otomatik kurtarma ve tekrar oynatma özelliğiyle pod veya düğüm hatalarını ele alır, böylece geliştiricilerin hiçbir zaman hata toleransını sağlamayı düşünmesine gerek kalmaz.
  • Kullanıma hazır izleme: ExaDeploy, hızlandırıcı kaynak kullanımını ve diğer sistem ölçümlerini görselleştirmek için Prometheus ölçümleri ve Grafana kontrol panelleri sağlar.

ExaDeploy, AWS Inferentia'yı destekliyor

AWS Inferentia tabanlı Amazon EC2 Inf1 bulut sunucuları, derin öğrenmeye özgü çıkarım iş yükleri için tasarlanmıştır. Bu örnekler, mevcut nesil GPU çıkarım bulut sunucularına kıyasla 2.3 kata kadar aktarım hızı ve %70'e kadar maliyet tasarrufu sağlar.

ExaDeploy artık AWS Inferentia'yı destekliyor ve birlikte amaca yönelik olarak oluşturulmuş donanım hızlandırma ve uygun ölçekte optimize edilmiş kaynak düzenleme yoluyla elde edilen artan performansın ve maliyet tasarruflarının kilidini açıyor. Çok yaygın bir modern makine öğrenimi iş yükünü ele alarak ExaDeploy ve AWS Inferentia'nın birleşik avantajlarına bakalım: toplu, karma bilgi işlem iş yükleri.

Varsayımsal iş yükü özellikleri:

  • 15 ms yalnızca CPU ön işlem/işlem sonrası
  • Model çıkarımı (GPU'da 15 ms, AWS Inferentia'da 5 ms)
  • 10 istemci, her biri her 20 ms'de bir istekte bulunur
  • CPU:Inferentia:GPU'nun yaklaşık göreceli maliyeti 1:2:4'tür (c2.xlarge, inf5.xlarge ve g1dn.xlarge için Amazon EC4 On-Demand fiyatlandırmasına dayanmaktadır)

Aşağıdaki tablo, seçeneklerin her birinin nasıl şekillendiğini göstermektedir:

Kurmak Gerekli kaynaklar Ücret Gecikme
ExaDeploy'suz GPU İstemci başına 2 CPU, 2 GPU (toplam 20 CPU, 20 GPU) 100 30 ms
ExaDeploy'lu GPU 8 istemcide paylaşılan 10 GPU, istemci başına 1 CPU 42 30 ms
ExaDeploy olmadan AWS Inferentia İstemci başına 1 CPU, 1 AWS Inferentia (toplam 10 CPU, 10 Inferentia) 30 20 ms
ExaDeploy ile AWS Inferentia 3 istemcide paylaşılan 10 AWS Inferentia, istemci başına 1 CPU 16 20 ms

AWS Inferentia örneğinde ExaDeploy

Bu bölümde, ExaDeploy'u BERT PyTorch modelinde inf1 düğümlerine sahip bir örnek üzerinden yapılandırma adımlarını inceliyoruz. Bert-base modeli için ortalama 1140 örnek/sn işlem hacmi gördük; bu, bu tek model, tek iş yükü senaryosu için ExaDeploy tarafından çok az ek yük getirildiğini veya hiç ek yük getirilmediğini gösteriyor.

1. Adım: Bir kurulum yapın Amazon Elastik Kubernetes Hizmeti (Amazon EKS) kümesi

Bizimle bir Amazon EKS kümesi oluşturulabilir Terraform AWS modülü. Örneğimiz için, bir kullandık inf1.xlarge AWS Inferentia için.

2. Adım: ExaDepoy'u kurun

İkinci adım ExaDeploy'u kurmaktır. Genel olarak ExaDeploy'un inf1 bulut sunucularına dağıtımı basittir. Kurulum çoğunlukla grafik işlem birimi (GPU) örneklerinde uygulanan prosedürün aynısını izler. Temel fark, model etiketini GPU'dan AWS Inferentia'ya değiştirmek ve modeli yeniden derlemektir. Örneğin, ExaDeploy'un uygulama programlama arayüzlerini (API'ler) kullanarak g4dn'den inf1 örneklerine geçmek için yalnızca yaklaşık 10 satırlık kodun değiştirilmesi gerekiyordu.

  • Basit bir yöntem Exafunction'ı kullanmaktır. Terraform AWS Kubernetes modülü or dümen tablosu. Bunlar, Amazon EKS kümesinde çalışacak temel ExaDeploy bileşenlerini dağıtır.
  • Modeli serileştirilmiş bir formatta derleyin (örneğin, TorchScript, TF kayıtlı modeller, ONNX, vb.). AWS Inferentia için şu adımları takip ettik: Bu eğitimde.
  • Derlenmiş modeli ExaDeploy'un modül deposuna kaydedin.
    with exa.ModuleRepository(MODULE_REPOSITORY_ADDRESS) as repo:
       repo.register_py_module(
           "BertInferentia",
           module_class="TorchModule",
           context_data=BERT_NEURON_TORCHSCRIPT_AS_BYTES,
           config={
               "_torchscript_input_names": ",".join(BERT_INPUT_NAMES).encode(),
               "_torchscript_output_names": BERT_OUTPUT_NAME.encode(),
               "execution_type": "inferentia".encode(),
           },
       )

  • Model için verileri hazırlayın (örn. ExaDeploy-specific).
    tokenizer = transformers.AutoTokenizer.from_pretrained(
       "bert-base-cased-finetuned-mrpc"
    )
    
    batch_encoding = tokenizer.encode_plus(
       "The company Exafunction is based in the Bay Area",
       "Exafunction’s headquarters are situated in Mountain View",
       max_length=MAX_LENGTH,
       padding="max_length",
       truncation=True,
       return_tensors="pt",
    )

  • Modeli istemciden uzaktan çalıştırın.
    with exa.Session(
       scheduler_address=SCHEDULER_ADDRESS,
       module_tag="BertInferentia",
       constraint_config={
           "KUBERNETES_NODE_SELECTORS": "role=runner-inferentia",
           "KUBERNETES_ENV_VARS": "AWS_NEURON_VISIBLE_DEVICES=ALL",
       },
    ) as sess:
       bert = sess.new_module("BertInferentia")
       classification_logits = bert.run(
           **{
               key: value.numpy()
               for key, value in batch_encoding.items()
           }
       )[BERT_OUTPUT_NAME].numpy()
    
       # Assert that the model classifies the two statements as paraphrase.
       assert classification_logits[0].argmax() == 1

ExaDeploy ve AWS Inferentia: Birlikte daha iyi

AWS Inferentia, model çıkarımı için aktarım hızının sınırlarını zorluyor ve bulutta en düşük çıkarım başına maliyeti sunuyor. Bununla birlikte şirketlerin Inf1'in fiyat-performans avantajlarından geniş ölçekte yararlanabilmesi için uygun düzenlemeye ihtiyacı var. Makine öğrenimi hizmeti, şirket içinde ele alındığında uzmanlık gerektiren, şirket hedeflerinden uzaklaştırılan ve çoğu zaman ürün zaman çizelgelerini geciktiren karmaşık bir sorundur. Exafunction'ın ML dağıtım yazılımı çözümü olan ExaDeploy, sektör lideri olarak ortaya çıktı. Sorunsuz entegrasyon deneyimleri ve birinci sınıf bir ekipten destek sağlarken, en karmaşık makine öğrenimi iş yüklerine bile hizmet eder. ExaDeploy ve AWS Inferentia birlikte, geniş ölçekte çıkarım iş yükleri için artan performansın ve maliyet tasarrufunun kilidini açar.

Sonuç

Bu yazıda size Exafunction'ın performans ML'si için AWS Inferentia'yı nasıl desteklediğini gösterdik. Exafunction ile uygulamalar oluşturma hakkında daha fazla bilgi için şu adresi ziyaret edin: Exfunction. Inf1'de derin öğrenme iş yükleri oluşturmaya yönelik en iyi uygulamalar için şu adresi ziyaret edin: Amazon EC2 Inf1 bulut sunucuları.


Yazarlar Hakkında

Nicholas Jiang, Yazılım Mühendisi, Exafunction

Jonathan Ma, Yazılım Mühendisi, Exafunction

Prem Nair, Yazılım Mühendisi, Exafunction

Anshul Ramachandran, Yazılım Mühendisi, Exafunction

Shruti Koparkar, Kıdemli Ürün Pazarlama Müdürü, AWS

Zaman Damgası:

Den fazla AWS Makine Öğrenimi