AWS Lambda PlatoBlockchain Veri Zekasında bir makine öğrenimi çıkarımı veri yakalama çözümü dağıtın. Dikey Arama. Ai.

AWS Lambda'da makine öğrenimi çıkarımı veri yakalama çözümü dağıtın

Makine öğrenimi (ML) tahminlerinin izlenmesi, dağıtılan modellerin kalitesinin artırılmasına yardımcı olabilir. Verileri üretimde yapılan çıkarımlardan yakalamak, dağıtılan modellerinizi izlemenize ve model kalitesindeki sapmaları tespit etmenize olanak sağlayabilir. Bu sapmaların erken ve proaktif tespiti, modelleri yeniden eğitmek, yukarı yönlü sistemleri denetlemek veya kalite sorunlarını düzeltmek gibi düzeltici eylemler gerçekleştirmenizi sağlar.

AWS Lambda geniş ölçekte gerçek zamanlı makine öğrenimi çıkarımı sağlayabilen sunucusuz bir bilgi işlem hizmetidir. Bu gönderide Lambda ML çıkarım iş yüküne dağıtılabilecek örnek bir veri yakalama özelliğini gösteriyoruz.

Aralık 2020'de Lambda, ambalaj formatı olarak konteyner görsellerine yönelik desteği tanıttı. Bu özellik, dağıtım paketi boyutu sınırını 500 MB'tan 10 GB'a çıkardı. Bu özelliğin kullanıma sunulmasından önce paket boyutu kısıtlaması, TensorFlow veya PyTorch gibi makine öğrenimi çerçevelerinin Lambda işlevlerine dağıtılmasını zorlaştırıyordu. Lansmanın ardından artan paket boyutu sınırı, ML'yi Lambda'ya dağıtmak için uygun ve çekici bir iş yükü haline getirdi. 2021'de ML çıkarımı, Lambda hizmetindeki en hızlı büyüyen iş yükü türlerinden biriydi.

Amazon Adaçayı YapıcıAmazon'un tam olarak yönetilen makine öğrenimi hizmeti, kendi model izleme özelliğini içerir. Ancak bu gönderideki örnek proje, ML çıkarımı için Lambda kullanan müşteriler için model izlemede kullanılmak üzere veri yakalamanın nasıl gerçekleştirileceğini gösterir. Proje, çıkarım işlevinin performansı ve gecikmesi üzerindeki etkiyi en aza indirmek amacıyla çıkarım verilerini yakalamak için Lambda uzantılarını kullanıyor. Lambda uzantılarının kullanılması, işlev geliştiricileri üzerindeki etkiyi de en aza indirir. Bir uzantı aracılığıyla entegre edilerek izleme özelliği birden fazla işleve uygulanabilir ve merkezi bir ekip tarafından bakımı yapılabilir.

Çözüme genel bakış

Bu proje, distilbert tabanlı, önceden eğitilmiş bir soru yanıtlama modeli kullanarak gerçek zamanlı çıkarım sağlayan sunucusuz bir uygulamanın kaynak kodunu ve destek dosyalarını içerir. Proje, Hugging Face soru ve cevap doğal dil işleme (NLP) modelini kullanıyor. PyTorch doğal dil çıkarımı görevlerini gerçekleştirmek için. Proje ayrıca model tahminleri için çıkarım verileri yakalamayı gerçekleştirecek bir çözüm içerir. Lambda işlevi yazıcısı, çıkarım isteği girişinden ve tahmin sonucundan uzantıya hangi verilerin gönderileceğini tam olarak belirleyebilir. Bu çözümde modelden gelen girdiyi ve yanıtı uzantıya gönderiyoruz. Uzantı daha sonra verileri periyodik olarak bir Amazon Basit Depolama Hizmeti (Amazon S3) kovası. Veri yakalama uzantısını bir konteyner görüntüsü olarak oluşturuyoruz. makefile. Daha sonra Lambda çıkarım fonksiyonunu bir kapsayıcı görüntü olarak oluşturuyoruz ve uzantı kapsayıcı görüntüsünü bir kapsayıcı görüntü katmanı olarak ekliyoruz. Aşağıdaki şemada mimariye genel bir bakış gösterilmektedir.

Lambda uzantıları Lambda işlevlerini artırmanın bir yoludur. Bu projede, çıkarım isteğini ve çıkarımdan elde edilen tahmini günlüğe kaydetmek için harici bir Lambda uzantısı kullanıyoruz. Harici uzantı, Lambda çalışma zamanı ortamında ayrı bir işlem olarak çalışarak çıkarım işlevi üzerindeki etkiyi azaltır. Ancak işlev, CPU, bellek ve depolama gibi kaynakları Lambda işleviyle paylaşır. Optimum kaynak kullanılabilirliğini sağlamak için Lambda işlevine yeterli bellek ayırmanızı öneririz. (Testlerimizde çıkarım Lambda işlevine 5 GB bellek ayırdık ve optimum kaynak kullanılabilirliğini ve çıkarım gecikmesini gördük). Bir çıkarım tamamlandığında Lambda hizmeti yanıtı hemen döndürür ve uzantının isteği ve yanıtı S3 klasörüne kaydetmeyi bitirmesini beklemez. Bu düzende izleme uzantısı çıkarım gecikmesini etkilemez. Lambda uzantıları hakkında daha fazla bilgi edinmek için bu video serilerine göz atın.

Proje içeriği

Bu proje, AWS Sunucusuz Uygulama Modeli (AWS SAM) komut satırı arayüzü (CLI). Bu komut satırı aracı, geliştiricilerin uygulamaları başlatmasına ve yapılandırmasına olanak tanır; yerel olarak paketleyin, oluşturun ve test edin; ve AWS Cloud'a dağıtın.

Bu projenin kaynak kodunu adresinden indirebilirsiniz. GitHub deposu.

Bu proje aşağıdaki dosya ve klasörleri içerir:

  • app/app.py – ML çıkarımına yönelik kod da dahil olmak üzere, uygulamanın Lambda işlevine ilişkin kod.
  • uygulama/Docker dosyası – Çıkarım işlevini paketleyen kapsayıcı görüntüsünü oluşturmak için Dockerfile, Hugging Face'ten indirilen model ve katman olarak oluşturulan Lambda uzantısı. .zip işlevlerinin aksine, katmanlar kapsayıcıyla paketlenmiş Lambda işlevlerine işlev oluşturma sırasında eklenemez. Bunun yerine katmanı oluştururuz ve içeriğini kap görüntüsüne kopyalarız.
  • uzantıları – Model monitörü uzantı dosyaları. Bu Lambda uzantısı, girişi çıkarım işlevine ve karşılık gelen tahmini bir S3 klasörüne kaydetmek için kullanılır.
  • uygulama/model – Hugging Face’ten indirilen model.
  • app/requirements.txt – Konteynere kurulacak Python bağımlılıkları.
  • olaylar – İşlevi test etmek için kullanabileceğiniz çağırma olayları.
  • şablon.yaml – Uygulamanın AWS kaynaklarını tanımlayan bir tanımlayıcı dosya.

Uygulama, Lambda işlevleri ve bir Amazon API Ağ Geçidi API'dir. Bu kaynaklar, template.yaml Bu projedeki dosya. AWS kaynaklarını eklemek için uygulama kodunuzu güncelleyen aynı dağıtım sürecini kullanarak şablonu güncelleyebilirsiniz.

Önkoşullar

Bu izlenecek yol için aşağıdaki ön koşullara sahip olmalısınız:

Örnek uygulamayı dağıtma

Uygulamanızı ilk kez oluşturmak için aşağıdaki adımları tamamlayın:

  • Aşağıdaki kodu kabuğunuzda çalıştırın. (Bu aynı zamanda uzantıyı da oluşturacaktır):
  • Model monitör uygulamasının Docker görüntüsünü oluşturun. Yapı içerikleri şurada bulunur: .aws-sam rehber
docker build -t serverless-ml-model-monitor:latest .

docker tag serverless-ml-model-monitor:latest .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • Amazon ECR'ye giriş yapın:
aws ecr get-login-password --region us-east-1 docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com

  • Amazon ECR'de bir depo oluşturun:

aws ecr create-repositoryrepository-name serverless-ml-model-monitor--image-scanning-configuration scanOnPush=true--region us-east-1

  • Container görüntüsünü Amazon ECR'ye aktarın:
docker push .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • 1 numaralı satırın yorumunu iptal edin uygulama/Docker dosyası ve doğru ECR veri havuzu görüntüsünü işaret edecek şekilde düzenleyin, ardından #6 ve #7 satırlarının açıklamasını kaldırın. uygulama/Docker dosyası:
WORKDIR /opt
COPY --from=layer /opt/ .

  • Uygulamayı yeniden oluşturun:

Lambda, konteyner görüntüsü paketleme türü için Lambda katmanlarını doğrudan desteklemediğinden yeniden oluşturuyoruz. Öncelikle model izleme bileşenini konteyner görüntüsü olarak oluşturmamız, bunu Amazon ECR'ye yüklememiz ve ardından bu görüntüyü model izleme uygulamasında konteyner katmanı olarak kullanmamız gerekiyor.

  • Son olarak Lambda işlevini, API Ağ Geçidini ve uzantıyı dağıtın:
sam deploy --guided

Bu komut, uygulamanızı bir dizi istemle paketler ve AWS'ye dağıtır:

  • Yığın adı : Dağıtılanın adı AWS CloudFormation yığın. Bu, hesabınıza ve Bölgenize özel olmalıdır ve proje adınızla eşleşen bir şey iyi bir başlangıç ​​noktası olabilir.
  • AWS Bölgesi : Uygulamanızı dağıttığınız AWS Bölgesi.
  • Dağıtmadan önce değişiklikleri onaylayın : Olarak ayarlanmışsa yes, manuel inceleme için çalıştırılmadan önce tüm değişiklik kümeleri size gösterilir. Hayır olarak ayarlanırsa AWS SAM CLI, uygulama değişikliklerini otomatik olarak dağıtır.
  • AWS SAM CLI IAM rolü oluşturmaya izin ver : Bu örnek de dahil olmak üzere birçok AWS SAM şablonu, AWS Kimlik ve Erişim Yönetimi AWS hizmetlerine erişim sağlamak üzere dahil edilen Lambda işlevleri için gerekli (IAM) rolleri. Varsayılan olarak, bunların kapsamı gerekli minimum izinlere kadar daraltılmıştır. IAM rollerini oluşturan veya değiştiren bir CloudFormation yığınını dağıtmak için CAPABILITY_IAM değeri capabilities sağlanmalı. Bu istem aracılığıyla izin sağlanmadıysa bu örneği dağıtmak için açıkça iletmeniz gerekir --capabilities CAPABILITY_IAM için sam deploy Komut.
  • Bağımsız değişkenleri samconfig.toml dosyasına kaydedin : Olarak ayarlanmışsa yes, seçimleriniz proje içindeki bir yapılandırma dosyasına kaydedilir, böylece gelecekte çalıştırabilirsiniz. sam deploy Değişiklikleri uygulamanıza dağıtmak için parametreler olmadan.

API Ağ Geçidi uç noktası URL'nizi dağıtımdan sonra görüntülenen çıktı değerlerinde bulabilirsiniz.

Uygulamayı test edin

Uygulamayı test etmek için Postman veya curl kullanarak API Ağ Geçidi uç noktasına bir istek gönderin. Örneğin:

curl -X POST -H "Content-Type: text/plain" https://.execute-api.us-east-1.amazonaws.com/Prod/nlp-qa -d '{"question": "Where do you live?", "context": "My name is Clara and I live in Berkeley."}'

Aşağıdaki kod gibi bir çıktı görmelisiniz. ML modeli bağlamdan çıkarım yaptı ve sorumuzun cevabını döndürdü.

{
    "Question": "Where do you live?",
    "Answer": "Berkeley",
    "score": 0.9113729596138
}

Birkaç dakika sonra S3 klasöründe bir dosya görmelisiniz nlp-qamodel-model-monitoring-modelmonitorbucket- giriş ve çıkarım günlüğe kaydedilir.

Temizlemek

Oluşturduğunuz örnek uygulamayı silmek için AWS CLI'yi kullanın:

aws cloudformation delete-stack --stack-name 

Sonuç

Bu gönderide Lambda uzantısı olarak bir model izleme özelliği uyguladık ve bunu Lambda ML çıkarım iş yüküne dağıttık. Bu çözümü nasıl oluşturup kendi AWS hesabınıza dağıtacağınızı gösterdik. Son olarak monitörün işlevselliğini doğrulamak için bir testin nasıl çalıştırılacağını gösterdik.

Lütfen yorum bölümünde düşüncelerinizi veya sorularınızı belirtin. Daha fazla sunucusuz öğrenme kaynağı için şu adresi ziyaret edin: Sunucusuz Arazi.


Yazarlar Hakkında

AWS Lambda PlatoBlockchain Veri Zekasında bir makine öğrenimi çıkarımı veri yakalama çözümü dağıtın. Dikey Arama. Ai.Dan Tilki Sunucusuz Konusunda Dünya Çapındaki Uzman Kuruluşta Baş Uzman Çözüm Mimarıdır. Dan, ölçeklenebilir, hataya dayanıklı, yüksek performanslı, uygun maliyetli uygulamalar oluşturmak için sunucusuz hizmetlerden yararlanmalarına yardımcı olmak üzere müşterilerle birlikte çalışır. Dan, güzel Boulder, Colorado'da yaşayıp çalışabildiği için minnettar.

AWS Lambda PlatoBlockchain Veri Zekasında bir makine öğrenimi çıkarımı veri yakalama çözümü dağıtın. Dikey Arama. Ai.Newton Jain AWS Lambda'da makine öğrenimi, yüksek performanslı bilgi işlem (HPC) ve medya işleme müşterileri için yeni deneyimler oluşturmaktan sorumlu Kıdemli Ürün Yöneticisidir. Performansı artırmak, gecikmeyi azaltmak, ölçeklenebilirliği geliştirmek, güvenilirliği artırmak ve maliyeti azaltmak için yeni yeteneklerin geliştirilmesine liderlik ediyor. Ayrıca AWS müşterilerinin bilgi işlem yoğunluklu uygulamaları için etkili bir sunucusuz strateji tanımlamalarına da yardımcı oluyor.

AWS Lambda PlatoBlockchain Veri Zekasında bir makine öğrenimi çıkarımı veri yakalama çözümü dağıtın. Dikey Arama. Ai.Dikşa Sharma AWS'de Çözüm Mimarı ve Makine Öğrenimi Uzmanıdır. Müşterilerin, özellikle makine öğrenimi ve sunucusuz teknolojiler alanlarında bulutu benimsemelerini hızlandırmasına yardımcı oluyor. Diksha, müşterilere iş ve BT zorluklarını aşmada AWS'nin değerini gösteren özelleştirilmiş kavram kanıtları dağıtıyor. Müşterilerin AWS hakkındaki bilgilerini sağlar ve arzu ettikleri çözümü oluşturmak için müşterilerle birlikte çalışır.

AWS Lambda PlatoBlockchain Veri Zekasında bir makine öğrenimi çıkarımı veri yakalama çözümü dağıtın. Dikey Arama. Ai.Veda Raman Maryland merkezli makine öğrenimi için Kıdemli Uzman Çözüm Mimarıdır. Veda, verimli, güvenli ve ölçeklenebilir makine öğrenimi uygulamaları tasarlamalarına yardımcı olmak için müşterilerle birlikte çalışır. Veda, müşterilerin Makine öğrenimi için sunucusuz teknolojilerden yararlanmasına yardımcı olmakla ilgileniyor.

AWS Lambda PlatoBlockchain Veri Zekasında bir makine öğrenimi çıkarımı veri yakalama çözümü dağıtın. Dikey Arama. Ai. Josh Kahn Sunucusuz Alanında Dünya Çapında Teknoloji Lideri ve Baş Çözüm Mimarıdır. Yeni kurulan şirketlerden dünyanın en büyük kuruluşlarına kadar her büyüklükteki müşteriye AWS sunucusuz teknolojilerini etkili bir şekilde kullanma konusunda yardımcı olan, AWS'de sunucusuz uzmanlardan oluşan küresel bir topluluğa liderlik ediyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi