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
- Amazon ECR'ye giriş yapın:
- Amazon ECR'de bir depo oluşturun:
aws ecr create-repository
repository-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:
- 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ı:
- 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:
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ğericapabilities
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çinsam 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:
Aşağıdaki kod gibi bir çıktı görmelisiniz. ML modeli bağlamdan çıkarım yaptı ve sorumuzun cevabını döndürdü.
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:
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
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.
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.
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.
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.
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.
- AI
- yapay zeka
- AI sanat üreteci
- yapay zeka robotu
- yapay zeka
- yapay zeka sertifikası
- bankacılıkta yapay zeka
- yapay zeka robotu
- yapay zeka robotları
- yapay zeka yazılımı
- AWS Lambda
- AWS Makine Öğrenimi
- blockchain
- blockchain konferans ai
- zeka
- konuşma yapay zekası
- kripto konferans ai
- dal-e
- derin öğrenme
- google ai
- makine öğrenme
- Platon
- plato yapay zekası
- Plato Veri Zekası
- Plato Oyunu
- PlatoVeri
- plato oyunu
- ölçek ai
- sözdizimi
- Teknik Nasıl Yapılır
- zefirnet