Amazon Search, AWS Inferentia ile ML çıkarım maliyetlerini nasıl %85 oranında azalttı?

Amazon'un ürün arama motoru milyarlarca ürünü indeksler, dünya çapında yüz milyonlarca müşteriye hizmet verir ve dünyada en çok kullanılan hizmetlerden biridir. Amazon Arama ekibi, aşağıdakilere güç sağlayan makine öğrenimi (ML) teknolojisi geliştiriyor: Amazon.com arama motoru ve müşterilerin zahmetsizce arama yapmasına yardımcı olur. Harika bir müşteri deneyimi sunmak ve şirketin gerektirdiği büyük ölçekte çalışmak Amazon.com Bu ekip her zaman gerçek zamanlı gecikme ve verim gereksinimleriyle daha uygun maliyetli sistemler oluşturmanın yollarını arıyor. Ekip, model eğitimini ve çıkarımı hızlandırmak için derin öğrenme için optimize edilmiş donanımı ve derleyicileri sürekli olarak araştırırken, aynı zamanda operasyonel maliyetleri de azaltır.

Bu gönderide, Amazon Search'ün nasıl kullanıldığını açıklıyoruz AWS Çıkarımları, derin öğrenme çıkarımı iş yüklerini hızlandırmak için AWS tarafından oluşturulmuş yüksek performanslı bir hızlandırıcı amacı. Ekip, AWS Inferentia tabanlı Transformer tabanlı NLP modelleriyle düşük gecikmeli ML çıkarımı çalıştırıyor Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) Inf1 bulut sunucuları ve güçlü aktarım hızı ve gecikme performansını korurken altyapı maliyetlerinde %85'e kadar tasarruf sağlar.

Yineleme ve sorgu amacı tahmini için derin öğrenme

Amazon Marketplace'te arama yapmak, ASIN'ler (Amazon Standart Kimlik Numarası, ürünleri benzersiz şekilde tanımlayan 10 basamaklı alfasayısal bir sayı), ürün resimleri, metin açıklamaları ve sorgular gibi çeşitli girdilerle ilgilenen çok görevli, çok modlu bir sorundur. Özel bir kullanıcı deneyimi oluşturmak için, aramanın farklı yönleri için birçok modelden tahminler kullanılır. Bu bir zorluktur çünkü arama sistemi, en yüksek yükte saniyede on binlerce işlem (TPS) içeren binlerce modele sahiptir. Bu deneyimin iki bileşenine odaklanıyoruz:

  • Müşteri tarafından algılanan yinelenen tahminler – Bir kullanıcının sorgusuyla eşleşen ürünlerin en alakalı listesini göstermek için, müşterilerin ayırt etmekte zorlandıkları ürünleri belirlemek önemlidir.
  • Sorgu amacı tahmini – Arama sayfasını ve ürün düzenini müşterinin aradığı şeye daha iyi uyacak şekilde uyarlamak için, kullanıcının sorgusunun amacını ve türünü (örneğin, medyayla ilgili bir sorgu, yardım sorgusu ve diğer sorgu türleri) tahmin etmek önemlidir.

Bu tahminlerin her ikisi de Transformer model mimarileri, yani BERT tabanlı modeller kullanılarak yapılır. Aslında, her ikisi de temel olarak aynı BERT tabanlı modeli paylaşır ve her biri bu omurganın üzerine bir sınıflandırma/regresyon başlığı yığar.

Yinelenen tahmin, bir çift değerlendirilen ürün için girdi olarak (ürün türü, başlık, açıklama vb.) çeşitli metinsel özellikleri alır ve büyük veri kümeleri için periyodik olarak hesaplanır. Bu model, çok görevli bir tarzda uçtan uca eğitilmiştir. Amazon SageMaker İşleme işleri başlatmalarını otomatikleştirmek ve yalnızca kullanılan işlem süresi için ödeme yapmak için bu toplu iş yüklerini düzenli aralıklarla çalıştırmak için kullanılır. Bu toplu iş yükü kullanım senaryosu için çıkarım verimi gereksinimi toplam 8,800 TPS idi.

Amaç tahmini, kullanıcının metin sorgusunu girdi olarak alır ve günlük trafiği dinamik olarak sunmak ve Amazon Marketplace'teki kullanıcı deneyimini geliştirmek için gerçek zamanlı olarak gereklidir. Model, çok sınıflı bir sınıflandırma hedefi üzerinde eğitilmiştir. Bu model daha sonra Amazon Elastik Konteyner Hizmeti (Amazon ECS), hızlı otomatik ölçeklendirme ve kolay dağıtım tanımı ve yönetimi. Bu gerçek zamanlı bir kullanım durumu olduğundan, keyifli bir kullanıcı deneyimi sağlamak için P99 gecikmesinin 10 milisaniyenin altında olması gerekiyordu.

AWS Inferentia ve AWS Neuron SDK

EC2 Inf1 örnekleri derin öğrenme çıkarımı iş yüklerini hızlandırmak için AWS tarafından oluşturulan ilk makine öğrenimi hızlandırıcı amacı olan AWS Inferentia tarafından desteklenmektedir. Inf1 bulut sunucuları, karşılaştırılabilir GPU tabanlı EC2.3 bulut sunucularına kıyasla 70 kata kadar daha yüksek aktarım hızı ve %2'e kadar daha düşük çıkarım başına maliyet sunar. Seçtiğiniz çerçeveyi (PyTorch, TensorFlow, MXNet) kullanarak modellerinizi eğitmeye devam edebilir ve ardından yerleşik performans optimizasyonlarından yararlanmak için bunları AWS Inferentia'da kolayca dağıtabilirsiniz. Inf1 örneklerini kullanarak görüntü tanıma, nesne algılama, doğal dil işleme (NLP) ve modern öneri modellerinden çok çeşitli model türlerini dağıtabilirsiniz.

AWS Nöron EC2 Inf1 bulut sunucularının ML çıkarım performansını optimize eden bir derleyici, çalışma zamanı ve profil oluşturma araçlarından oluşan bir yazılım geliştirme kitidir (SDK). Neuron, TensorFlow ve PyTorch gibi popüler ML çerçeveleriyle yerel olarak entegre edilmiştir. Bu nedenle, derin öğrenme modellerini AWS Inferentia'da seçtiğiniz çerçeve tarafından sağlanan aynı tanıdık API'lerle dağıtabilir ve bulutta performans artışından ve en düşük çıkarım başına maliyetten yararlanabilirsiniz.

Lansmanından bu yana Neuron SDK, desteklediği modellerin genişliğini artırmaya devam ederken, performansı iyileştirmeye ve çıkarım maliyetlerini düşürmeye devam etti. Buna NLP modelleri (BERT'ler), görüntü sınıflandırma modelleri (ResNet, VGG) ve nesne algılama modelleri (OpenPose ve SSD) dahildir.

Düşük gecikme süresi, yüksek aktarım hızı ve maliyet tasarrufu için Inf1 bulut sunucularında devreye alın

Amazon Arama ekibi, yineleme tahmininde yüksek aktarım hızı gereksinimlerini ve sorgu amacı tahmininde düşük gecikme gereksinimini karşılarken maliyetten tasarruf etmek istedi. AWS Inferentia tabanlı Inf1 bulut sunucularına dağıtım yapmayı seçtiler ve yalnızca yüksek performans gereksinimlerini karşılamakla kalmadılar, aynı zamanda çıkarım maliyetlerinde %85'e varan tasarruf sağladılar.

Müşteri tarafından algılanan yinelenen tahminler

Inf1'in kullanımından önce, özel bir Amazon EMR'si küme, CPU tabanlı örnekler kullanılarak çalışıyordu. Donanım hızlandırmasına güvenmeden, saniyede toplam 8,800 işlemlik yüksek verim gereksinimini karşılamak için çok sayıda örnek gerekliydi. Ekip, her biri 1.6 AWS Inferentia hızlandırıcısı ve 4 NeuronCores (AWS Inferentia çipi başına 16 çekirdek) içeren inf4xlarge bulut sunucularına geçti. Tek bir NeuronCore için Transformer tabanlı modeli izlediler ve verimi en üst düzeye çıkarmak için NeuronCore başına bir mod yüklediler. Mevcut 16 NeuronCore'dan yararlanarak çıkarım maliyetlerini %85 oranında azalttılar (mevcut genel Amazon EC2 isteğe bağlı fiyatlandırmasına göre).

Sorgu amacı tahmini

99 milisaniye veya daha kısa P10 gecikme gereksinimi göz önüne alındığında, ekip modeli inf1.6xlarge bulut sunucularında mevcut her NeuronCore'a yükledi. Bunu kullanarak PyTorch Neuron ile kolayca yapabilirsiniz. meşale.neuron.DataParalel API. Inf1 dağıtımıyla model gecikmesi 3 milisaniyeydi, uçtan uca gecikme süresi yaklaşık 10 milisaniyeydi ve en yüksek yükte maksimum verim 16,000 TPS'ye ulaştı.

Örnek derleme ve dağıtım koduyla başlayın

Aşağıda, Inf1 bulut sunucularını kullanmaya başlamanıza ve Amazon Arama ekibi gibi performans ve maliyet avantajlarından yararlanmanıza yardımcı olacak bazı örnek kodlar yer almaktadır. kullanarak, bir PyTorch modeliyle nasıl derlenip çıkarım yapılacağını gösteriyoruz. PyTorch Nöron.

İlk olarak, model ile derlenir torch.neuron.trace():

m = torch.jit.load(f="./cpu_model.pt", map_location=torch.device('cpu'))
m.eval()
model_neuron = torch.neuron.trace(
    m,
    inputs,
    compiler_workdir="work_" + str(cores) + "_" + str(batch_size),
    compiler_args=[
        '--fp32-cast=all', '--neuroncore-pipeline-cores=' + str(cores)
    ])
model_neuron.save("m5_batch" + str(batch_size) + "_cores" + str(cores) +
                  "_with_extra_op_and_fp32cast.pt")

Olası argümanların tam listesi için trace yöntem, bkz. PyTorch-Neuron izleme Python API'sı. Gördüğünüz gibi, derleyici argümanları geçilebilir torch.neuron API doğrudan. Tüm FP32 operatörleri BF16 with --fp32-cast=all, dinamik aralığı korurken en yüksek performansı sağlar. Hassas dengeyi modellemek için performansı kontrol etmenize izin veren daha fazla döküm seçeneği mevcuttur. Her iki kullanım durumu için kullanılan modeller tek bir NeuronCore için derlenmiştir (hayır ardışık düzen).

Daha sonra modeli Inferentia'ya şu şekilde yüklüyoruz: torch.jit.loadve tahmin için kullanın. bu nöron çalışma zamanı modeli otomatik olarak NeuronCores'a yükler.

cm_cpd_preprocessing_jit = torch.jit.load(f=CM_CPD_PROC,
                                          map_location=torch.device('cpu'))
cm_cpd_preprocessing_jit.eval()
m5_model = torch.jit.load(f=CM_CPD_M5)
m5_model.eval()

input = get_input()
with torch.no_grad():
    batch_cm_cpd = cm_cpd_preprocessing_jit(input)
    input_ids, attention_mask, position_ids, valid_length, token_type_ids = (
        batch_cm_cpd['input_ids'].type(torch.IntTensor),
        batch_cm_cpd['attention_mask'].type(torch.HalfTensor),
        batch_cm_cpd['position_ids'].type(torch.IntTensor),
        batch_cm_cpd['valid_length'].type(torch.IntTensor),
        batch_cm_cpd['token_type_ids'].type(torch.IntTensor))
    model_res = m5_model(input_ids, attention_mask, position_ids, valid_length,
                         token_type_ids)

Sonuç

Amazon Search ekibi, yoğun trafik ve zorlu performans gereksinimleri altında AWS Inferentia tabanlı Inf85 bulut sunucularını kullanarak çıkarım maliyetlerini %1 oranında azaltmayı başardı. AWS Inferentia ve Neuron SDK, ekibe dağıtım sürecini eğitimden ayrı olarak optimize etme esnekliği sağladı ve çok yönlü araçlar ve tanıdık çerçeve API'leri aracılığıyla sığ bir öğrenme eğrisi ortaya koydu.

Bu gönderide sağlanan örnek kodla başlayarak performans ve maliyet avantajlarının kilidini açabilirsiniz. Ayrıca, uçtan uca kontrol edin Öğreticiler ML modellerini Inferentia üzerinde çalıştırmak için PyTorch ve TensorFlow.


yazarlar hakkında

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Joao Moura Amazon Web Services'de AI/ML Uzman Çözüm Mimarıdır. Çoğunlukla NLP kullanım örneklerine odaklanıyor ve müşterilerin derin öğrenme modeli eğitimini ve dağıtımını optimize etmesine yardımcı oluyor. Ayrıca makine öğrenimine özel donanım ve düşük kodlu makine öğrenimi çözümlerinin aktif bir savunucusudur.

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Weiqi Zhang Amazon makine öğrenimi uygulamaları için büyük ölçekli modeller üretmeye çalıştığı Search M5'te Yazılım Mühendisliği Yöneticisidir. İlgi alanları arasında bilgi alma ve makine öğrenimi altyapısı yer almaktadır.

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Jason Carlson Müşteri tarafından algılanan yinelemeler nedeniyle çalınan arama gösterimlerinin sayısını azaltmaya yardımcı olmak için makine öğrenimi ardışık düzenleri geliştirmeye yönelik bir Yazılım Mühendisidir. ML modelleri için verileri dağıtmaya ve beslemeye/işlemeye yardımcı olmak için çoğunlukla Apache Spark, AWS ve PyTorch ile çalışır. Boş zamanlarında kitap okumayı ve koşmayı sever.

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Shaohui Xi Arama Sorgusu Anlama Altyapı ekibinde bir SDE'dir. Düşük gecikme ve yüksek kullanılabilirlik ile büyük ölçekli derin öğrenme çevrimiçi çıkarım hizmetleri oluşturma çabalarına öncülük ediyor. İş dışında kayak yapmayı ve iyi yiyecekleri keşfetmeyi sever.

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Zhuoqi Zhang Arama Sorgusu Anlama Altyapı ekibinde Yazılım Geliştirme Mühendisidir. Derin öğrenme çevrimiçi çıkarım hizmetleri için gecikmeyi ve verimi artırmak için model hizmet çerçeveleri oluşturmaya çalışıyor. İş dışında basketbol oynamayı, snowboard yapmayı ve araba kullanmayı sever.

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Haowei Güneşi Arama Sorgusu Anlama Infra ekibinde bir yazılım mühendisidir. Derin öğrenme çevrimiçi çıkarım hizmetlerini destekleyen API'ler ve altyapı tasarlama üzerinde çalışıyor. İlgi alanları arasında hizmet API tasarımı, altyapı kurulumu ve bakım yer almaktadır. İş dışında koşmayı, yürüyüş yapmayı ve seyahat etmeyi sever.

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Jaspreet Singh Müşteri alışveriş deneyimini geliştirmek için büyük ölçekli temel modelleri üzerinde çalıştığı M5 ekibinde Uygulamalı Bilim Adamı. Araştırma ilgi alanları arasında çok görevli öğrenme, bilgi erişimi ve temsili öğrenme yer almaktadır.

Amazon Search, AWS Inferentia PlatoBlockchain Data Intelligence ile makine öğrenimi çıkarım maliyetlerini nasıl %85 azalttı? Dikey Arama. Ai.Shruti Koparkar AWS'de Kıdemli Ürün Pazarlama Müdürüdür. Müşterilerin makine öğrenimi ihtiyaçları için EC2 hızlandırılmış bilgi işlem altyapısını keşfetmelerine, değerlendirmelerine ve benimsemelerine yardımcı olur.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi