Yüksek hızlı 5G mobil ağların ortaya çıkmasıyla birlikte, işletmeler telekomünikasyon ağlarının ve bulutun yakınsamasından yararlanma fırsatıyla her zamankinden daha kolay konumlanıyor. Bugüne kadarki en belirgin kullanım durumlarından biri olan uçta makine öğrenimi (ML), kuruluşların gecikmeyi azaltmak ve uygulamalarının yanıt verebilirliğini artırmak için son müşterilerine daha yakın makine öğrenimi modelleri dağıtmasına olanak sağlamıştır. Örnek olarak, akıllı mekan çözümleri 5G ağları üzerinden kalabalık analitiği için gerçek zamanlıya yakın bilgisayar görüşünü kullanabilir ve şirket içi donanım ağ ekipmanına yapılan yatırımı en aza indirebilir. Perakendeciler, doğal dil işleme (NLP), gerçek zamanlı öneri sistemleri ve dolandırıcılık tespiti ile hareket halindeyken daha sorunsuz deneyimler sunabilir. Eşit yer ve hava robotları daha güvenli, daha otonom operasyonların kilidini açmak için makine öğrenimini kullanabilir.
Uçta makine öğrenimine giriş engelini azaltmak için, önceden eğitilmiş bir modelin dağıtılmasına ilişkin bir örnek göstermek istedik. Amazon Adaçayı Yapıcı için AWS Dalgaboyu, tümü 100'den az kod satırında. Bu gönderide, 5G ağ tabanlı uygulamalar için model çıkarım gecikmesini azaltmak amacıyla bir SageMaker modelini AWS Wavelength'e nasıl dağıtacağımızı gösteriyoruz.
Çözüme genel bakış
AWS'nin hızla genişleyen küresel altyapısı genelinde AWS Wavelength, bulut bilgi işlem ve depolamanın gücünü 5G ağlarının ucuna taşıyarak daha performanslı mobil deneyimlerin kilidini açar. AWS Wavelength ile sanal özel bulutunuzu (VPC), telekomünikasyon taşıyıcısının ağ ucuna karşılık gelen Dalga Boyu Bölgelerine genişletebilirsiniz. 29 şehirleri Dünya çapında. Aşağıdaki diyagram bu mimarinin bir örneğini göstermektedir.
Belirli bir Bölgedeki Dalga Boyu Bölgelerini şu şekilde seçebilirsiniz: AWS Yönetim Konsolu ya da AWS Komut Satırı Arayüzü (AWS CLI). AWS Wavelength'te coğrafi olarak dağıtılmış uygulamaları dağıtma hakkında daha fazla bilgi edinmek için bkz. AWS Wavelength üzerinde coğrafi olarak dağıtılmış Amazon EKS kümelerini dağıtın.
Bu gönderide ele alınan temelleri temel alarak, uçta makine öğrenimini AWS Wavelength'e dağıtmak üzere örnek bir iş yükü olarak ele alıyoruz. Örnek iş yükümüz olarak, önceden eğitilmiş bir modeli Amazon SageMaker Hızlı Başlangıç.
SageMaker, geliştiricilerin makine öğrenimi modellerini AWS ortamlarına kolayca dağıtmasına olanak tanıyan, tam olarak yönetilen bir makine öğrenimi hizmetidir. AWS, model eğitimi için bir dizi seçenek sunsa da; AWS Pazar Yeri modeller ve yerleşik SageMaker algoritmaları—açık kaynaklı makine öğrenimi modellerini dağıtmak için bir dizi teknik vardır.
JumpStart, SageMaker uç noktalarına sorunsuz bir şekilde dağıtılabilen önceden eğitilmiş modellerle yüzlerce yerleşik algoritmaya erişim sağlar. Öngörülü bakım ve bilgisayar görüşünden otonom sürüşe ve dolandırıcılık tespitine kadar JumpStart, konsolda tek tıkla devreye alma ile çeşitli popüler kullanım durumlarını destekler.
SageMaker, Dalga Boyu Bölgelerinde yerel olarak desteklenmediğinden, model yapıtlarının Bölgeden nasıl çıkarılacağını ve uca yeniden konuşlandırılacağını gösteriyoruz. Bunu yapmak için Amazon Elastik Kubernetes Hizmeti (Amazon EKS) Wavelength Bölgelerindeki kümeleri ve düğüm gruplarını, ardından JumpStart tarafından oluşturulan kapsayıcı görüntüsüyle bir dağıtım bildirimi oluşturma. Aşağıdaki diyagram bu mimariyi göstermektedir.
Önkoşullar
Bunu olabildiğince kolaylaştırmak için AWS hesabınızda Dalga Boyu Alanlarının etkinleştirildiğinden emin olun. Bu entegrasyonun yalnızca şurada mevcut olduğunu unutmayın: us-east-1
ve us-west-2
, ve kullanıyor olacaksınız us-east-1
Demo süresi boyunca.
AWS Wavelength'e kaydolmak için aşağıdaki adımları tamamlayın:
- Amazon VPC konsolunda şunu seçin: Bölgeleri altında Ayarlar Ve seç ABD Doğu (Verizon) / us-east-1-wl1.
- Klinik Yönet.
- seç Etkinleştirildi.
- Klinik Bölgeleri güncelle.
AWS Wavelength altyapısı oluşturun
Yerel SageMaker model çıkarım uç noktasını bir Kubernetes dağıtımına dönüştürmeden önce, bir Dalga Boyu Bölgesinde bir EKS kümesi oluşturabilirsiniz. Bunu yapmak için bir AWS Wavelength düğüm grubuyla bir Amazon EKS kümesi dağıtın. Daha fazlasını öğrenmek için ziyaret edebilirsiniz. AWS Containers Blog'daki bu kılavuz or Verizon'un 5GEdgeTutorials deposu böyle bir örnek için.
Daha sonra, bir AWS Bulut9 ortamı veya etkileşimli geliştirme ortamını (IDE) seçin, gerekli SageMaker paketlerini indirin ve Docker Oluşturma, JumpStart'ın önemli bir bağımlılığı.
JumpStart'ı kullanarak model yapıtları oluşturun
Öncelikle, sahip olduğunuzdan emin olun. AWS Kimlik ve Erişim Yönetimi SageMaker için (IAM) yürütme rolü. Daha fazlasını öğrenmek için ziyaret edin Adaçayı Yapıcı Rolleri.
- kullanma bu örnek, önceden oluşturulmuş bir modeli almak için SageMaker Yazılım Geliştirme Kitini (SDK) kullanan train_model.py adlı bir dosya oluşturun (değiştirin SageMaker yürütme rolünüzün Amazon Kaynak Adı (ARN) ile). Bu dosyada, bir modeli yerel olarak dağıtırsınız.
instance_type
özniteliğimodel.deploy()
tanımladığınız tüm gerekli model yapıtlarını kullanarak IDE'nizde bir Docker kapsayıcısı başlatan işlev:
- Ardından, ayarla
infer_model_id
kullanmak istediğiniz SageMaker modelinin kimliğine.
Tam liste için bkz. Önceden eğitilmiş Model Tablosu ile Yerleşik Algoritmalar. Örneğimizde, genellikle doğal dil işleme için kullanılan Transformers'tan Çift Yönlü Kodlayıcı Temsilleri (BERT) modelini kullanıyoruz.
- Çalıştır
train_model.py
JumpStart model yapıtlarını almak ve önceden eğitilmiş modeli yerel makinenize dağıtmak için komut dosyası:
Bu adım başarılı olursa, çıktınız aşağıdakine benzer:
Çıktıda sırayla üç yapı göreceksiniz: TensorFlow çıkarımı için temel görüntü, modele hizmet eden çıkarım betiği ve eğitilmiş modeli içeren yapılar. Bu yapılar ile özel bir Docker görüntüsü oluşturabilseniz de başka bir yaklaşım, SageMaker yerel modunun Docker görüntüsünü sizin için oluşturmasına izin vermektir. Sonraki adımlarda, yerel olarak çalışan kapsayıcı görüntüsünü ayıklıyoruz ve şuraya dağıtıyoruz: Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR) oluşturmanın yanı sıra model yapıtını ayrı olarak itin. Amazon Basit Depolama Hizmeti (Amazon S3).
Yerel mod yapıtlarını uzak Kubernetes dağıtımına dönüştürün
Artık SageMaker'ın yerel olarak çalıştığını onayladığınıza göre, çalışan kapsayıcıdan konuşlandırma bildirimini çıkaralım. Aşağıdaki adımları tamamlayın:
SageMaker yerel mod konuşlandırma bildiriminin konumunu tanımlayın: Bunu yapmak için, kök dizinimizde şu adla anılan dosyaları arayın: docker-compose.yaml
.
docker_manifest=$( find /tmp/tmp* -name "docker-compose.yaml" -printf '%T+ %pn' | sort | tail -n 1 | cut -d' ' -f2-)
echo $docker_manifest
SageMaker yerel mod model yapılarının konumunu belirleyin: Ardından, yapıyı Amazon s3'e yükledikten sonra her bir EKS çalışan düğümünde kullanılacak olan yerel SageMaker çıkarım kapsayıcısına bağlı temel birimi bulun.
model_local_volume = $(grep -A1 -w "volumes:" $docker_manifest | tail -n 1 | tr -d ' ' | awk -F: '{print $1}' | cut -c 2-) # Returns something like: /tmp/tmpcr4bu_a7</p>
Çalışan SageMaker çıkarım kapsayıcısının yerel kopyasını oluşturun: Ardından, makine öğrenimi çıkarım modelimizi çalıştıran şu anda çalışan kapsayıcı görüntüsünü bulacağız ve kapsayıcının yerel bir kopyasını oluşturacağız. Bu, Amazon ECR'den çekilecek kapsayıcı görüntüsünün kendi kopyasına sahip olmamızı sağlayacaktır.
# Find container ID of running SageMaker Local container
mkdir sagemaker-container
container_id=$(docker ps --format "{{.ID}} {{.Image}}" | grep "tensorflow" | awk '{print $1}')
# Retrieve the files of the container locally
docker cp $my_container_id:/ sagemaker-container/
harekete geçmeden önce model_local_volume
Amazon S3'e ileteceğimiz, çalışan Docker görüntüsünün bir kopyasını şimdi sagemaker-container
dizini, Amazon Elastic Container Registry'ye. değiştirdiğinizden emin olun region
, aws_account_id
, docker_image_id
ve my-repository:tag
veya takip et Amazon ECR kullanım kılavuzu. Ayrıca, nihai ECR Görüntüsü URL'sini not ettiğinizden emin olun (aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
), EKS dağıtımımızda kullanacağımız.
Artık çıkarım uç noktasına karşılık gelen bir ECR görüntümüz olduğuna göre, yeni bir Amazon S3 klasörü oluşturun ve SageMaker Yerel yapılarını kopyalayın (model_local_volume
) bu kovaya. Buna paralel olarak, Amazon EC2 bulut sunucularının klasör içindeki okuma nesnelerine erişmesini sağlayan bir Kimlik Erişim Yönetimi (IAM) oluşturun. değiştirdiğinizden emin olun Amazon S3 klasörünüz için küresel olarak benzersiz bir adla.
Ardından, her EC2 bulut sunucusunun başlatma sırasında model yapıtının bir kopyasını çekmesini sağlamak için EKS çalışan düğümlerinizin kullanıcı verilerini düzenleyin. Kullanıcı veri komut dosyanızda, başlatma sırasında S3 API'sini kullanarak her düğümün model yapılarını aldığından emin olun. değiştirdiğinizden emin olun Amazon S3 klasörünüz için küresel olarak benzersiz bir adla. Düğümün kullanıcı verilerinin EKS önyükleme betiğini de içereceği göz önüne alındığında, tüm kullanıcı verileri buna benzer görünebilir.
Artık mevcut docker bildirimini inceleyebilir ve kullanarak Kubernetes dostu bildirim dosyalarına çevirebilirsiniz. kompoze etmek, iyi bilinen bir dönüştürme aracı. Not: Bir sürüm uyumluluğu hatası alırsanız, version
docker-compose.yml dosyasının 27. satırındaki öznitelik “2”
.
Kompose'u çalıştırdıktan sonra dört yeni dosya göreceksiniz: Deployment
nesne, Service
nesne, PersistentVolumeClaim
nesne ve NetworkPolicy
nesne. Artık uç noktadaki Kubernetes'e akınınıza başlamak için ihtiyacınız olan her şeye sahipsiniz!
SageMaker model eserlerini konuşlandırın
AWS Cloud9 IDE'nize kubectl ve aws-iam-authenticator indirmiş olduğunuzdan emin olun. Değilse, kurulum kılavuzlarını takip edin:
Şimdi, aşağıdaki adımları tamamlayın:
Değiştirmek service/algo-1-ow3nv
hizmet türünü değiştirmek için nesne ClusterIP
için NodePort
. Örneğimizde, bağlantı noktası olarak 30,007 bağlantı noktasını seçtik. NodePort
:
Ardından, düğümünüz için güvenlik grubunda NodePort'a izin vermelisiniz. Bunu yapmak için, güvenlik grubu kimliğini alın ve NodePort'u izin verilenler listesine alın:
Ardından, algo-1-ow3nv-deployment.yaml
monte etmek için tezahür ettirin /tmp/model hostPath
kapsayıcı dizini. Yer değiştirmek daha önce oluşturduğunuz ECR görüntüsü ile:
Kompose'dan oluşturduğunuz bildirim dosyalarıyla, yapılandırmaları kümenize uygulamak için kubectl'i kullanın:
5G uç modeline bağlanın
Modelinize bağlanmak için aşağıdaki adımları tamamlayın:
Amazon EC2 konsolunda, EKS çalışan düğümünün operatör IP'sini alın veya taşıyıcı IP adresini doğrudan sorgulamak için AWS CLI'yi kullanın:
Artık, taşıyıcı IP adresi ayıklandığında, modele doğrudan NodePort'u kullanarak bağlanabilirsiniz. adlı bir dosya oluşturun. invoke.py
tonun pozitif mi yoksa negatif mi olduğunu belirlemek için bir duyarlılık analizcisine karşı çalıştırılacak metin tabanlı bir girdi sağlayarak BERT modelini doğrudan çağırmak için:
Çıktınız aşağıdakine benzemelidir:
Temizlemek
Oluşturulan tüm uygulama kaynaklarını yok etmek için AWS Wavelength çalışan düğümlerini, EKS kontrol düzlemini ve VPC içinde oluşturulan tüm kaynakları silin. Ek olarak, kapsayıcı görüntüsünü barındırmak için kullanılan ECR deposunu, SageMaker model yapıtlarını barındırmak için kullanılan S3 klasörlerini ve sagemaker-demo-app-s3 IAM
politikası.
Sonuç
Bu gönderide, SageMaker modellerini Amazon EKS ve AWS Wavelength kullanarak ağ ucuna dağıtmaya yönelik yeni bir yaklaşımı gösterdik. AWS Wavelength ile ilgili Amazon EKS en iyi uygulamaları hakkında bilgi edinmek için bkz. AWS Wavelength üzerinde coğrafi olarak dağıtılmış Amazon EKS kümelerini dağıtın. Ek olarak, Hızlı Başlangıç hakkında daha fazla bilgi edinmek için şu adresi ziyaret edin: Amazon SageMaker JumpStart Geliştirici Kılavuzu ya da Hızlı Başlangıç Mevcut Model Tablosu.
Yazarlar Hakkında
Robert Belson AWS Dünya Çapında Telekom İş Birimi'nde AWS Edge Bilişim konusunda uzmanlaşmış bir Geliştirici Avukatıdır. Otomasyon, hibrit ağ ve uç bulutu kullanarak iş zorluklarını çözmek için geliştirici topluluğu ve büyük kurumsal müşterilerle çalışmaya odaklanıyor.
Muhammed El-Mehdar AWS'de Dünya Çapında Telekom İş Birimi'nde Kıdemli Çözüm Mimarıdır. Ana odak noktası, müşterilerin Telco ve Kurumsal BT iş yüklerini AWS üzerinde oluşturmasına ve devreye almasına yardımcı olmaktır. AWS'ye katılmadan önce Mohammed, 13 yılı aşkın bir süredir Telco sektöründe çalışmaktadır ve LTE Paket Çekirdeği, 5G, IMS ve WebRTC alanlarında zengin bir deneyime sahiptir. Mohammed, Concordia Üniversitesi'nden Telekomünikasyon Mühendisliği alanında lisans derecesine sahiptir.
Evan Kravitz Amazon Web Services'de SageMaker JumpStart üzerinde çalışan bir yazılım mühendisidir. New York'ta yemek pişirmeyi ve koşuya çıkmayı seviyor.
Justin St.Arnauld BT endüstrisinde 15 yılı aşkın deneyime sahip Verizon'da Kamu Sektörü için Çözüm Mimarları Yardımcı Direktörüdür. Edge bilgi işlem ve 5G ağlarının gücünün tutkulu bir savunucusudur ve bu teknolojilerden yararlanan yenilikçi teknoloji çözümleri geliştirme konusunda uzmandır. Justin, Amazon Web Services'ın (AWS) müşterileri için son teknoloji çözümler sunma konusunda sunduğu yetenekler konusunda özellikle hevesli. Justin, boş zamanlarında en son teknoloji trendlerini takip etmekten ve bilgi ve içgörülerini sektördeki diğer kişilerle paylaşmaktan keyif alıyor.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/deploy-pre-trained-models-on-aws-wavelength-with-5g-edge-using-amazon-sagemaker-jumpstart/