Bu, uçta görsel kalite denetimi için bir MLOps işlem hattı tasarladığımız ve uyguladığımız serimizin 3. Bölümüdür. Bu yazıda uçtan uca MLOps işlem hattının uç dağıtım kısmının nasıl otomatikleştirileceğine odaklanıyoruz. Size nasıl kullanılacağını gösteriyoruz AWS IoT Greengrass model çıkarımını uçta yönetmek ve sürecin nasıl otomatikleştirileceğini AWS Basamak İşlevleri ve diğer AWS hizmetleri.
Çözüme genel bakış
In Bölüm 1 Bu seride, veri etiketlemeden model eğitimine ve uçta devreye almaya kadar tüm makine öğrenimi (ML) sürecini otomatikleştiren uçtan uca MLOps işlem hattımız için bir mimari hazırladık. İçinde Bölüm 2, işlem hattının etiketleme ve model eğitimi bölümlerinin nasıl otomatikleştirileceğini gösterdik.
Bu seri için kullanılan örnek kullanım durumu, üretim sürecinin bir parçası olarak kullanabileceğiniz, metal etiketlerdeki kusurları tespit edebilen bir görsel kalite kontrol çözümüdür. Aşağıdaki diyagram, bu serinin başında tanımladığımız MLOps işlem hattının üst düzey mimarisini göstermektedir. Henüz okumadıysanız göz atmanızı öneririz Bölüm 1.
Bir ML modelinin uç dağıtımını otomatikleştirme
Bir makine öğrenimi modeli eğitilip değerlendirildikten sonra, gelen veriler üzerinde tahminler yaparak iş değeri oluşturmak için bir üretim sistemine dağıtılması gerekir. Bu süreç, modellerin genellikle modellerin eğitildiği bulut ortamından uzakta bulunan cihazlara dağıtılması ve çalıştırılması gereken uç ortamda hızla karmaşık hale gelebilir. Aşağıda, uçta makine öğrenimine özgü zorluklardan bazıları yer almaktadır:
- Uç cihazlardaki kaynak kısıtlamaları nedeniyle makine öğrenimi modellerinin sıklıkla optimize edilmesi gerekir
- Uç cihazlar buluttaki bir sunucu gibi yeniden konuşlandırılamaz ve hatta değiştirilemez; bu nedenle sağlam bir model dağıtımına ve cihaz yönetimi sürecine ihtiyacınız vardır.
- Cihazlar ile bulut arasındaki iletişimin verimli ve güvenli olması gerekir çünkü genellikle güvenilmeyen düşük bant genişliğine sahip ağlardan geçer
Modeli ONNX formatında dışa aktarmanın yanı sıra AWS hizmetleriyle bu zorlukların üstesinden nasıl gelebileceğimizi görelim; bu, örneğin kısıtlama cihazları için model boyutunu azaltmak amacıyla niceleme gibi optimizasyonlar uygulamamıza olanak tanır. ONNX ayrıca en yaygın uç donanım platformları için optimize edilmiş çalışma süreleri sağlar.
Uç dağıtım sürecini ayrıntılı olarak ele almak için iki bileşene ihtiyacımız var:
- Modelin kendisini ve modeli yönetmek ve modelle etkileşim kurmak için bazı iş mantığını içeren, model teslimine yönelik bir dağıtım mekanizması
- Bunu sağlam ve tekrarlanabilir kılmak için tüm süreci düzenleyebilen bir iş akışı motoru
Bu örnekte, ele aldığımız tüm gerekli bileşenleri entegre eden otomatik uç dağıtım mekanizmamızı oluşturmak için farklı AWS hizmetlerini kullanıyoruz.
İlk olarak bir edge cihazını simüle ediyoruz. Uçtan uca iş akışında ilerlemenizi kolaylaştırmak için bir Amazon Elastik Bilgi İşlem Bulutu AWS IoT Greengrass Core yazılımını örneğe yükleyerek bir uç cihazı simüle etmek için (Amazon EC2) örneğini kullanın. Gerçek bir uç üretim cihazına dağıtmadan önce bir QA sürecindeki farklı bileşenleri doğrulamak için EC2 bulut sunucularını da kullanabilirsiniz. AWS IoT Greengrass, uç cihaz yazılımı oluşturmanıza, dağıtmanıza ve yönetmenize yardımcı olan bir Nesnelerin İnterneti (IoT) açık kaynaklı uç çalışma zamanı ve bulut hizmetidir. AWS IoT Greengrass, uç cihaz yazılımını güvenli ve ölçeklenebilir bir şekilde oluşturma, dağıtma ve yönetme çabasını azaltır. AWS IoT Greengrass Core yazılımını cihazınıza yükledikten sonra AWS IoT Greengrass'ı kullanarak özellik ve bileşen ekleyebilir veya kaldırabilir ve IoT cihaz uygulamalarınızı yönetebilirsiniz. Uçtan uca şifrelemeyi destekleyen, bulutla güvenli bir şekilde iletişim kurmak için kullanabileceğiniz StreamManager ve MQTT komisyoncu bileşenleri gibi hayatınızı kolaylaştıracak birçok yerleşik bileşen sunar. Çıkarım sonuçlarını ve görüntüleri verimli bir şekilde yüklemek için bu özellikleri kullanabilirsiniz.
Bir üretim ortamında, genellikle ML modelinin tahminler üretmesi gereken görüntüleri sağlayan endüstriyel bir kameranız olur. Kurulumumuz için, bu görüntü girişini, önceden ayarlanmış görüntüleri uç cihazdaki belirli bir dizine yükleyerek simüle ediyoruz. Daha sonra bu görüntüleri model için çıkarım girdisi olarak kullanırız.
Bulutla eğitilmiş bir makine öğrenimi modelini uç ortama dağıtmak ve bunu tahminler için kullanmak için genel dağıtım ve çıkarım sürecini birbirini takip eden üç adıma ayırdık:
- Hazırlamak – Eğitilen modeli uç konuşlandırma için paketleyin.
- Sürüş – Model ve çıkarım bileşenlerinin buluttan uç cihaza aktarılması.
- sonuç – Modeli yükleyin ve görüntü tahminleri için çıkarım kodunu çalıştırın.
Aşağıdaki mimari diyagramı bu üç adımlı sürecin ayrıntılarını ve bunu AWS hizmetleriyle nasıl uyguladığımızı göstermektedir.
Aşağıdaki bölümlerde, her adımın ayrıntılarını tartışıyoruz ve bu sürecin hem makine öğrenimi modelleri hem de karşılık gelen çıkarım kodu için otomatik ve tekrarlanabilir bir düzenlemeye ve CI/CD iş akışına nasıl yerleştirileceğini gösteriyoruz.
Hazırlamak
Uç cihazlar, güçlü CPU'ların ve GPU'ların makine öğrenimi modellerini kolayca çalıştırabildiği bir bulut ortamıyla karşılaştırıldığında genellikle sınırlı bilgi işlem ve belleğe sahiptir. Farklı model optimizasyon teknikleri, doğruluğu kaybetmeden tahmin hızını artırmak için belirli bir yazılım veya donanım platformuna yönelik bir model uyarlamanıza olanak tanır.
Bu örnekte, taşınabilirlik, olası optimizasyonlar ve optimize edilmiş kenar çalışma süreleri için eğitim hattındaki eğitilmiş modeli ONNX formatına aktardık ve modeli içinde kaydettik. Amazon SageMaker Model Kaydı. Bu adımda, sonraki dağıtım için en son kayıtlı modeli içeren yeni bir Greengrass model bileşeni oluşturuyoruz.
Sürüş
Bir modeli buluttan uç cihaza dağıtırken güvenli ve güvenilir bir dağıtım mekanizması çok önemlidir. AWS IoT Greengrass zaten güçlü ve güvenli bir uç dağıtım sistemi içerdiğinden, bunu dağıtım amaçlarımız için kullanıyoruz. Dağıtım sürecimize ayrıntılı olarak bakmadan önce AWS IoT Greengrass dağıtımlarının nasıl çalıştığına dair kısa bir özet yapalım. AWS IoT Greengrass dağıtım sisteminin temelinde şunlar yer alır: bileşenlerAWS IoT Greengrass Core çalıştıran bir uç cihaza dağıtılan yazılım modüllerini tanımlar. Bunlar sizin oluşturduğunuz özel bileşenler olabileceği gibi, tarafından sağlanan genel bileşenler de olabilir. AWS veya daha geniş Greengrass topluluğu. Bir dağıtımın parçası olarak birden fazla bileşen bir araya getirilebilir. Dağıtım yapılandırması, dağıtıma dahil edilen bileşenleri ve dağıtımın hedef cihazlarını tanımlar. Yeni bir dağıtım oluştururken bir dağıtım yapılandırma dosyasında (JSON) veya AWS IoT Greengrass konsolu aracılığıyla tanımlanabilir.
Aşağıdaki iki Greengrass bileşenini oluşturuyoruz ve bunlar daha sonra dağıtım süreci aracılığıyla uç cihaza dağıtılıyor:
- Paketlenmiş model (özel bileşen) – Bu bileşen ONNX formatında eğitilmiş ve ML modelini içerir.
- Çıkarım kodu (özel bileşen) – ML modelinin yanı sıra, veri hazırlama, çıkarım için modelle iletişim ve çıkarım sonuçlarının sonradan işlenmesi gibi görevleri yerine getirmek için bazı uygulama mantığını uygulamamız gerekir. Örneğimizde aşağıdaki görevleri yerine getirmek için Python tabanlı bir özel bileşen geliştirdik:
- Ultralytics YOLOv8 Python paketi gibi gerekli çalışma zamanı bileşenlerini yükleyin.
- Görüntüleri bir kamera canlı akışından almak yerine, hazırlanan görüntüleri belirli bir dizinden yükleyerek ve görüntü verilerini model giriş gereksinimlerine göre hazırlayarak bunu simüle ediyoruz.
- Hazırlanan görüntü verileriyle yüklenen modele karşı çıkarım çağrıları yapın.
- Tahminleri kontrol edin ve çıkarım sonuçlarını tekrar buluta yükleyin.
Oluşturduğumuz çıkarım koduna daha derinlemesine bakmak isterseniz GitHub repo.
sonuç
Yukarıda belirtilen bileşenlerin dağıtımı tamamlandıktan sonra uç cihazdaki model çıkarım işlemi otomatik olarak başlar. Özel çıkarım bileşeni, ML modelini yerel bir dizindeki görüntülerle düzenli olarak çalıştırır. Modelden döndürülen görüntü başına çıkarım sonucu, aşağıdaki içeriğe sahip bir tensördür:
- Güven puanları – Modelin tespitler konusunda ne kadar kendinden emin olduğu
- Nesne koordinatları – Görüntüdeki model tarafından tespit edilen çizik nesne koordinatları (x, y, genişlik, yükseklik)
Bizim durumumuzda çıkarım bileşeni, çıkarım sonuçlarının daha sonraki işlemler için okunabileceği AWS IoT'deki belirli bir MQTT konusuna gönderilmesiyle ilgilenir. Bu mesajlar, hata ayıklama amacıyla AWS IoT konsolundaki MQTT test istemcisi aracılığıyla görüntülenebilir. Bir üretim ortamında, hatalı metal etiketlerin üretim hattından çıkarılmasıyla ilgilenen başka bir sistemi otomatik olarak bilgilendirmeye karar verebilirsiniz.
orkestrasyon
Önceki bölümlerde görüldüğü gibi, bir ML modelini, karşılık gelen çıkarım kodunu ve gerekli çalışma zamanını veya aracıyı hazırlamak ve bir uç cihaza dağıtmak için birden fazla adım gerekir. Step Functions, bu özel adımları düzenlemenize ve iş akışını bir durum makinesi biçiminde tasarlamanıza olanak tanıyan, tam olarak yönetilen bir hizmettir. Bu hizmetin sunucusuz yapısı ve AWS hizmeti API entegrasyonları gibi yerel Step Functions yetenekleri, bu iş akışını hızlı bir şekilde kurmanıza olanak tanır. Yeniden denemeler veya günlüğe kaydetme gibi yerleşik yetenekler, sağlam orkestrasyonlar oluşturmak için önemli noktalardır. Durum makinesi tanımının kendisiyle ilgili daha fazla ayrıntı için bkz. GitHub deposu veya bu örneği hesabınıza dağıttıktan sonra Step Functions konsolundaki durum makinesi grafiğini kontrol edin.
Altyapı dağıtımı ve CI/CD'ye entegrasyon
Gerekli tüm altyapı bileşenlerini entegre etmek ve oluşturmak için CI/CD hattı, şurada gösterilenle aynı modeli izler: Bölüm 1 bu serinin. biz kullanıyoruz AWS Bulut Geliştirme Kiti (AWS CDK) gerekli işlem hatlarını dağıtmak için AWS Kod Ardışık Düzeni.
öğrenmeler
Otomatik, sağlam ve güvenli bir makine öğrenimi modeli uç dağıtım sistemi için bir mimari oluşturmanın birden çok yolu vardır ve bunlar genellikle kullanım senaryosuna ve diğer gereksinimlere oldukça bağlıdır. Ancak burada sizinle paylaşmak istediğimiz birkaç öğrenme var:
- Ek varsa önceden değerlendirin AWS IoT Greengrass bilgi işlem kaynağı gereksinimleri özellikle kısıtlı kenarlı cihazlarla kasanıza uyum sağlayın.
- İletim sırasında herhangi bir kurcalama olmadığından emin olmak için, uç cihazda çalıştırılmadan önce konuşlandırılan yapıtların bir doğrulama adımını entegre eden bir dağıtım mekanizması oluşturun.
- Bağımsız olarak dağıtabilmek için AWS IoT Greengrass'taki dağıtım bileşenlerini mümkün olduğunca modüler ve bağımsız tutmak iyi bir uygulamadır. Örneğin, nispeten küçük bir çıkarım kodu modülünüz varsa ancak boyut açısından büyük bir ML modeliniz varsa, yalnızca çıkarım kodu değiştiyse her ikisini de dağıtmak istemezsiniz. Bu, özellikle sınırlı bant genişliğiniz veya yüksek maliyetli uç cihaz bağlantınız olduğunda önemlidir.
Sonuç
Bu, uçta görsel kalite denetimi için uçtan uca bir MLOps hattı oluşturmaya yönelik üç bölümlük serimizi tamamlıyor. Model paketleme veya karmaşık dağıtım düzenlemesi gibi uçta bir makine öğrenimi modeli dağıtmanın getirdiği ek zorluklara baktık. Modellerimizi sağlam, güvenli, tekrarlanabilir ve izlenebilir bir şekilde üretime koyabilmek için boru hattını tam otomatik bir şekilde uyguladık. Bu seride geliştirilen mimariyi ve uygulamayı bir sonraki makine öğrenimi özellikli projeniz için başlangıç noktası olarak kullanmaktan çekinmeyin. Ortamınız için böyle bir sistemi nasıl tasarlayıp inşa edeceğiniz konusunda herhangi bir sorunuz varsa lütfen uzanmak. Diğer konular ve kullanım örnekleri için, bkz. Makine öğrenme ve IOT bloglar.
yazarlar hakkında
Michael Roth AWS'de, Almanya'daki Üretim müşterilerinin iş sorunlarını AWS teknolojisi aracılığıyla çözmelerini destekleyen Kıdemli Çözüm Mimarıdır. İşi ve ailesinin yanı sıra spor arabalarla da ilgileniyor ve İtalyan kahvesinden hoşlanıyor.
Jörg Wöhrle AWS'de Çözüm Mimarıdır ve Almanya'daki üretim müşterileriyle çalışmaktadır. Otomasyon tutkusuyla Joerg, AWS öncesi yaşamında yazılım geliştiricisi, DevOps mühendisi ve Site Güvenilirliği Mühendisi olarak çalıştı. Bulutun ötesinde hırslı bir koşucu ve ailesiyle kaliteli vakit geçirmekten hoşlanıyor. Dolayısıyla bir DevOps mücadeleniz varsa veya koşuya çıkmak istiyorsanız ona haber verin.
Johannes Langer AWS'de Kıdemli Çözüm Mimarıdır ve Almanya'daki kurumsal müşterilerle çalışmaktadır. Johannes, gerçek iş sorunlarını çözmek için makine öğrenimini uygulama konusunda tutkulu. Johannes, kişisel yaşamında ev yenileme projelerinde çalışmaktan ve ailesiyle açık havada vakit geçirmekten hoşlanıyor.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :vardır
- :dır-dir
- :Neresi
- $UP
- 150
- 7
- a
- Yapabilmek
- Hakkımızda
- Göre
- Hesap
- doğruluk
- gerçek
- eklemek
- ilave
- Ek
- ilerlemek
- Sonra
- karşı
- Danışman
- Türkiye
- izin vermek
- veriyor
- zaten
- Ayrıca
- her zaman
- Amazon
- Amazon EC2
- Amazon Web Servisleri
- hırslı
- an
- ve
- Başka
- herhangi
- api
- Uygulama
- uygulamaları
- Tamam
- Uygulanması
- mimari
- ARE
- AS
- bir kenara
- At
- otomatikleştirmek
- Otomatik
- otomata
- otomatik olarak
- Otomasyon
- uzakta
- AWS
- AWS IoT Greengrass
- Arka
- Bant genişliği
- BE
- Çünkü
- müşterimiz
- olmuştur
- önce
- Başlangıç
- dışında
- arasında
- Ötesinde
- Büyük
- birisinde
- her ikisi de
- Daha geniş
- komisyoncu
- inşa etmek
- bina
- yapılı
- yerleşik
- birlikte
- iş
- fakat
- by
- aramalar
- kamera
- CAN
- yetenekleri
- hangi
- arabalar
- dava
- durumlarda
- meydan okuma
- zorluklar
- değişmiş
- Kontrol
- denetleme
- müşteri
- bulut
- kod
- Kahve
- nasıl
- ortak
- iletişim kurmak
- Yakın İletişim
- karşılaştırıldığında
- karmaşık
- bileşen
- bileşenler
- hesaplamak
- emin
- yapılandırma
- Bağlantı
- ardışık
- konsolos
- kısıtlamaları
- içeren
- içerik
- çekirdek
- çekirdek yazılım
- uyan
- Ücret
- yaratmak
- Oluşturma
- görenek
- Müşteriler
- veri
- Veri Hazırlama
- karar vermek
- adanmış
- derin
- tanımlamak
- tanımlı
- tanımlar
- tanım
- teslim
- teslim
- bağımlı
- dağıtmak
- konuşlandırılmış
- dağıtma
- açılma
- dağıtımları
- Dizayn
- ayrıntı
- ayrıntılar
- belirlemek
- algılandı
- gelişmiş
- Geliştirici
- gelişme
- cihaz
- Cihaz
- farklı
- tartışmak
- tartışılan
- bölünmüş
- do
- Dont
- aşağı
- gereken
- sırasında
- her
- kolay
- kolayca
- kenar
- verimli
- verimli biçimde
- çaba
- ya
- gömmek
- şifreleme
- son uca
- Motor
- mühendis
- sağlamak
- kuruluş
- Tüm
- çevre
- özellikle
- değerlendirilir
- Hatta
- örnek
- aile
- uzak
- Moda
- hatalı
- Özellikler
- hissetmek
- az
- fileto
- uygun
- odak
- takip etme
- şu
- İçin
- Airdrop Formu
- biçim
- Ücretsiz
- itibaren
- tamamen
- fonksiyonlar
- daha fazla
- oluşturmak
- Almanya
- Go
- Tercih Etmenizin
- GPU'lar
- grafik
- sap
- olmuş
- donanım
- Var
- yükseklik
- yardımcı olur
- okuyun
- Yüksek
- üst düzey
- onu
- onun
- Ana Sayfa
- Ne kadar
- Nasıl Yapılır
- Ancak
- HTML
- http
- HTTPS
- if
- görüntü
- görüntüleri
- uygulamak
- uygulama
- uygulanan
- önemli
- iyileşme
- in
- dahil
- içerir
- Dahil olmak üzere
- Gelen
- Artırmak
- bağımsız
- Sanayi
- Altyapı
- giriş
- kurmak
- yükleme
- örnek
- entegre
- Entegre
- bütünleşme
- entegrasyonlar
- etkileşim
- ilgili
- Internet
- bir şeylerin interneti
- içine
- IOT
- IoT Cihazı
- IT
- İtalyan
- kendisi
- jpg
- json
- sadece
- tutmak
- anahtar
- Bilmek
- etiketleme
- son
- öğrenme
- izin
- hayat
- sevmek
- Sınırlı
- çizgi
- yaşamak
- yük
- yükleme
- yerel
- bulunan
- günlüğü
- mantık
- Bakın
- baktı
- kaybetme
- Çok
- makine
- makine öğrenme
- yapmak
- Yapımı
- yönetmek
- yönetilen
- yönetim
- üretim
- mekanizma
- Bellek
- mesajları
- metal
- Michael
- ML
- MLO'lar
- model
- modelleri
- modüler
- modül
- Modüller
- Daha
- çoğu
- çoklu
- yerli
- Tabiat
- gerek
- ihtiyaçlar
- yeni
- sonraki
- yok hayır
- nesne
- of
- Teklifler
- sık sık
- on
- açık kaynak
- optimize
- or
- orkestrasyon
- Diğer
- bizim
- dışarı
- açık havada
- tüm
- paket
- ambalaj
- Bölüm
- parçalar
- tutku
- tutkulu
- model
- başına
- kişisel
- boru hattı
- platform
- Platformlar
- Platon
- Plato Veri Zekası
- PlatoVeri
- Lütfen
- Nokta
- noktaları
- taşınabilirlik
- mümkün
- Çivi
- güçlü
- uygulama
- tahmin
- Tahminler
- hazırlık
- Hazırlamak
- hazırlanmış
- hazırlanması
- özel
- sorunlar
- süreç
- işleme
- üretmek
- üretim
- proje
- Projeler
- sağlanan
- sağlar
- halka açık
- amaçlı
- koymak
- Python
- Soru-Cevap
- kalite
- Sorular
- Hızlı
- hızla
- Okumak
- gerçek
- tekrarlamak
- tavsiye etmek
- azaltmak
- azaltır
- başvurmak
- ilişkin
- kayıtlı
- Nispeten
- güvenilirlik
- güvenilir
- Kaldır
- kaldırma
- tekrarlanabilir
- yerine
- gerektirir
- gereklidir
- Yer Alan Kurallar
- kaynak
- sonuç
- Sonuçlar
- gürbüz
- koşmak
- koşucu
- koşu
- ishal
- sagemaker
- aynı
- ölçeklenebilir
- çizik
- bölümler
- güvenli
- Güvenli
- görmek
- görüldü
- gönderme
- kıdemli
- Dizi
- sunucu
- Serverless
- hizmet
- Hizmetler
- set
- ayar
- kurulum
- paylaş
- meli
- şov
- gösterdi
- Gösteriler
- yer
- beden
- küçük
- So
- Yazılım
- çözüm
- Çözümler
- ÇÖZMEK
- biraz
- özel
- hız
- Harcama
- Spor
- XNUMX dakika içinde!
- başlar
- Eyalet
- adım
- Basamaklar
- basit
- dere
- sonraki
- böyle
- Destek
- sistem
- ele almak
- alır
- alma
- Hedef
- görevleri
- teknikleri
- Teknoloji
- şartlar
- test
- o
- The
- Devlet
- ve bazı Asya
- Onları
- sonra
- Bunlar
- işler
- Re-Tweet
- Bu
- üç
- üç aşamalı
- İçinden
- zaman
- için
- birlikte
- konu
- Konular
- izlenebilir
- eğitilmiş
- Eğitim
- transfer
- iki
- tipik
- benzersiz
- Yükleme
- us
- kullanım
- kullanım durumu
- Kullanılmış
- kullanma
- DOĞRULA
- değer
- Doğrulama
- çok
- üzerinden
- istemek
- Yol..
- yolları
- we
- ağ
- web hizmetleri
- İYİ
- ne zaman
- hangi
- bütün
- genişlik
- ile
- içinde
- olmadan
- İş
- işlenmiş
- iş akışı
- çalışma
- olur
- X
- henüz
- Sen
- zefirnet