Uçta görsel kalite denetimi için uçtan uca bir MLOps işlem hattı oluşturun – Bölüm 1 | Amazon Web Hizmetleri

Uçta görsel kalite denetimi için uçtan uca bir MLOps işlem hattı oluşturun – Bölüm 1 | Amazon Web Hizmetleri

Bir makine öğrenimi (ML) modelinin üretim ortamında başarılı bir şekilde konuşlandırılması büyük ölçüde uçtan uca bir ML ardışık düzenine dayanır. Böyle bir boru hattını geliştirmek zor olsa da, bir projeyle uğraşırken daha da karmaşık hale geliyor. Edge ML kullanım örneği. Uçta makine öğrenimi, ML modellerini yerel olarak uç cihazlarına çalıştırma yeteneğini getiren bir kavramdır. Bu modelleri uçta dağıtmak, izlemek ve sürdürmek için sağlam bir MLOps işlem hattı gereklidir. MLOps ardışık düzeni, veri etiketlemeden model eğitimi ve dağıtımına kadar tüm makine öğrenimi yaşam döngüsünün otomatikleştirilmesine olanak tanır.

Uçta bir MLOps işlem hattının uygulanması, artan operasyonel ek yük nedeniyle otomasyon, entegrasyon ve bakım süreçlerini daha zorlu hale getiren ek karmaşıklıklar ortaya çıkarır. Ancak, amaca yönelik olarak oluşturulmuş hizmetleri kullanmak Amazon Adaçayı Yapıcı ve AWS IoT Greengrass bu çabayı önemli ölçüde azaltmanıza olanak tanır. Bu seride, SageMaker, AWS IoT Greengrass ve AWS Bulut Geliştirme Kiti (AWS CDK'sı).

Bu yazı genel MLOps işlem hattı mimarisinin tasarlanmasına odaklanmaktadır; Bölüm 2 ve Bölüm 3 Bu serinin her bir bileşeninin uygulanmasına odaklanılmaktadır. Ekte örnek bir uygulama sunduk. GitHub deposu kendinizi denemeniz için. AWS'de MLOps'u uçta kullanmaya yeni başlıyorsanız, bkz. Amazon SageMaker Edge Manager ve AWS IoT Greengrass ile uçta MLO'lar genel bakış ve referans mimarisi için.

Kullanım örneği: Metal etiketlerin kalitesinin incelenmesi

Bir makine öğrenimi mühendisi olarak üzerinde çalıştığınız iş senaryosunu anlamak önemlidir. MLOps işlem hattı mimarisine dalmadan önce bu yazı için örnek kullanım senaryosuna bakalım. Özelleştirilmiş bagaj etiketleri oluşturmak için metal etiketleri kazıyan bir üreticinin üretim hattını hayal edin. Ham metal etiketlerin çizik gibi kusurlara karşı manuel olarak incelenmesi gerektiğinden kalite güvence süreci maliyetlidir. Bu süreci daha verimli kılmak amacıyla, hatalı etiketleri sürecin başında tespit etmek için ML'yi kullanıyoruz. Bu, üretim sürecinin sonraki aşamalarında maliyetli kusurların önlenmesine yardımcı olur. Model, çizik gibi olası kusurları neredeyse gerçek zamanlı olarak tespit etmeli ve işaretlemelidir. Üretim atölyesi ortamlarında genellikle bağlantısızlıkla veya kısıtlı bant genişliğiyle ve artan gecikmeyle uğraşmak zorunda kalırsınız. Bu nedenle görsel kalite denetimi için üretim alanında yerel olarak çıkarım yapabilen ve bağlantıyla ilgili gereksinimleri azaltabilen son teknoloji bir makine öğrenimi çözümü uygulamak istiyoruz. Örneğimizi basit tutmak için, tespit edilen çizikleri sınırlayıcı kutularla işaretleyen bir model eğitiyoruz. Aşağıdaki resim, veri kümemizdeki üç çizik işaretli bir etiket örneğidir.

Çizikler ile metal etiket

Boru hattı mimarisini tanımlama

Artık kullanım durumumuz ve ele almayı hedeflediğimiz, uçtaki nesne algılama etrafında dönen spesifik makine öğrenimi sorunu konusunda netlik kazandık. Şimdi MLOps işlem hattımız için bir mimari taslağı hazırlamanın zamanı geldi. Bu aşamada henüz teknolojilere veya belirli hizmetlere bakmıyoruz, daha ziyade boru hattımızın üst düzey bileşenlerine bakıyoruz. Hızlı bir şekilde yeniden eğitmek ve dağıtmak için veri etiketlemeden eğitime ve çıkarıma kadar uçtan uca tüm süreci otomatikleştirmemiz gerekiyor. Bununla birlikte, uç bir durum için bir işlem hattı kurmayı özellikle zorlaştıran birkaç zorluk vardır:

  • Bu sürecin farklı bölümlerini oluşturmak farklı beceri setleri gerektirir. Örneğin, veri etiketleme ve eğitim güçlü bir veri bilimi odağına sahiptir, uç konuşlandırma bir Nesnelerin İnterneti (IoT) uzmanı gerektirir ve tüm sürecin otomatikleştirilmesi genellikle DevOps becerisine sahip biri tarafından yapılır.
  • Kuruluşunuza bağlı olarak tüm bu süreç birden fazla ekip tarafından bile uygulanabilir. Kullanım durumumuz için etiketleme, eğitim ve dağıtımdan ayrı ekiplerin sorumlu olduğu varsayımıyla çalışıyoruz.
  • Daha fazla rol ve beceri seti, takım ve süreçler söz konusu olduğunda farklı gereksinimler anlamına gelir. Örneğin, veri bilimcileri tanıdık dizüstü bilgisayar ortamlarını izlemek ve bu ortamda çalışmak isteyebilirler. MLOps mühendisleri kod olarak altyapı (IaC) araçlarını kullanarak çalışmak isterler ve bu konuya daha aşina olabilirler. AWS Yönetim Konsolu.

Bu, boru hattı mimarimiz açısından ne anlama geliyor?

İlk olarak, farklı ekiplerin bağımsız çalışmasına olanak tanıyan uçtan uca sistemin ana bileşenlerini açıkça tanımlamak çok önemlidir. İkinci olarak, işbirliği verimliliğini artırmak için ekipler arasında iyi tanımlanmış arayüzler tanımlanmalıdır. Bu arayüzler, ekipler arasındaki kesintilerin en aza indirilmesine yardımcı olarak, tanımlanmış arayüzlere bağlı kaldıkları sürece iç süreçlerini gerektiği gibi değiştirmelerine olanak tanır. Aşağıdaki diyagram, bilgisayarlı görüntü işleme hattımız için bunun nasıl görünebileceğini göstermektedir.

MLOps boru hattı karalaması

MLOps işlem hattının genel mimarisini ayrıntılı olarak inceleyelim:

  1. Süreç, bir başlangıç ​​eğitim veri seti oluşturmak üzere üretim ortamındaki bir uç kamera cihazı kullanılarak yakalanan metal etiketlerin ham görüntülerinin toplanmasıyla başlar.
  2. Bir sonraki adım, bu görüntülerin etiketlenmesini ve kusurların sınırlayıcı kutular kullanılarak işaretlenmesini içerir. Kullanılan eğitim verilerinin izlenebilirliğini ve hesap verebilirliğini sağlamak için etiketli veri kümesini versiyonlamak önemlidir.
  3. Etiketli bir veri kümesine sahip olduktan sonra modelimizi eğitmeye, ince ayar yapmaya, değerlendirmeye ve versiyonlandırmaya devam edebiliriz.
  4. Model performansımızdan memnun olduğumuzda modeli bir uç cihaza dağıtabilir ve uçta canlı çıkarımlar gerçekleştirebiliriz.
  5. Model üretimde çalışırken, kenar kamera cihazı daha önce görülmemiş kusurları ve uç durumları içeren değerli görüntü verileri üretiyor. Bu verileri modelimizin performansını daha da artırmak için kullanabiliriz. Bunu başarmak için modelin düşük güvenle tahmin ettiği veya hatalı tahminler yaptığı görüntüleri kaydediyoruz. Bu görüntüler daha sonra ham veri setimize geri eklenir ve tüm süreç yeniden başlatılır.

Ham görüntü verilerinin, etiketli veri kümesinin ve eğitilmiş modelin, farklı işlem hatları arasında iyi tanımlanmış arayüzler olarak hizmet ettiğini unutmamak önemlidir. MLOps mühendisleri ve veri bilimcileri, bu yapıtları tutarlı bir şekilde ürettikleri sürece kendi üretim hatları içindeki teknolojileri seçme esnekliğine sahiptir. En önemlisi kapalı bir geri bildirim döngüsü kurduk. Üretimde yapılan hatalı veya güven düzeyi düşük tahminler, veri kümemizi düzenli olarak artırmak ve modeli otomatik olarak yeniden eğitmek ve geliştirmek için kullanılabilir.

Hedef mimari

Artık üst düzey mimari oluşturulduğuna göre, bir adım daha derine inip bunu AWS hizmetleriyle nasıl oluşturabileceğimize bakmanın zamanı geldi. Bu yazıda gösterilen mimarinin, tüm veri bilimi sürecinin tam kontrolünü elinize almak istediğinizi varsaydığını unutmayın. Ancak uç noktada kalite kontrolüne yeni başlıyorsanız, şunu öneririz: Amazon Vision for Vision. ML kodunu oluşturmanıza, sürdürmenize veya anlamanıza gerek kalmadan kendi kalite kontrol modelinizi eğitmeniz için bir yol sağlar. Daha fazla bilgi için bkz. Amazon Lookout for Vision artık uçta ürün kusurlarının görsel denetimini destekliyor.

Ancak kontrolü tamamen elinize almak istiyorsanız aşağıdaki şemada bir mimarinin nasıl görünebileceği gösterilmektedir.

MLOps işlem hattı mimarisi

Daha önce olduğu gibi iş akışını adım adım inceleyelim ve hangi AWS hizmetlerinin gereksinimlerimize uygun olduğunu belirleyelim:

  1. Amazon Basit Depolama Hizmeti (Amazon S3) ham görüntü verilerini depolamak için kullanılıyor çünkü bize düşük maliyetli bir depolama çözümü sağlıyor.
  2. Etiketleme iş akışı aşağıdakiler kullanılarak düzenlenir: AWS Basamak İşlevlerietiketleme iş akışının adımlarını düzenlemeyi kolaylaştıran sunucusuz bir iş akışı motorudur. Bu iş akışının bir parçası olarak kullanıyoruz Amazon SageMaker Yer Gerçeği etiketleme işlerini ve yönetilen insan iş gücünü kullanarak etiketlemeyi tamamen otomatikleştirmek. AWS Lambda verileri hazırlamak, etiketleme işlerini başlatmak ve etiketleri depolamak için kullanılır. Amazon SageMaker Özellik Mağazası.
  3. SageMaker Özellik Mağazası etiketleri saklar. Özelliklerimizi merkezi olarak yönetmemize ve paylaşmamıza olanak tanıyor ve bize yerleşik veri sürümü oluşturma yetenekleri sağlayarak satış hattımızı daha sağlam hale getiriyor.
  4. Model oluşturma ve eğitim hattını aşağıdakileri kullanarak düzenliyoruz: Amazon SageMaker Ardışık Düzenleri. Yerleşik adımlarla gereken diğer SageMaker özellikleriyle bütünleşir. SageMaker Eğitim işleri Model eğitimini otomatikleştirmek için kullanılır ve SageMaker İşleme işleri Verileri hazırlamak ve model performansını değerlendirmek için kullanılır. Bu örnekte, şunu kullanıyoruz: Ultralitik YOLOv8 Bir nesne algılama modelini eğitmek ve dışa aktarmak için Python paketi ve model mimarisi Onnx Taşınabilirlik için ML model formatı.
  5. Performans kabul edilebilir ise eğitilen model kayıt altına alınır. Amazon SageMaker Model Kaydı artımlı sürüm numarası eklenmiş olarak. Model eğitimi ve uç dağıtım adımları arasında arayüzümüz olarak görev yapar. Modellerin onay durumunu da buradan yönetiyoruz. Kullanılan diğer hizmetlere benzer şekilde tamamen yönetilir, dolayısıyla kendi altyapımızı çalıştırmamız gerekmez.
  6. Edge dağıtım iş akışı, etiketleme iş akışına benzer şekilde Step Functions kullanılarak otomatikleştirilir. Yeni model bileşenleri oluşturmak ve ardından bileşenleri uç cihaza dağıtmak amacıyla AWS IoT Greengrass gibi gerekli çeşitli AWS hizmeti API'lerini kolayca çağırmak için Step Functions'ın API entegrasyonlarını kullanabiliriz.
  7. AWS IoT Greengrass, uç cihaz çalışma zamanı ortamı olarak kullanılır. Modelimizin dağıtım yaşam döngüsünü ve uçtaki çıkarım bileşenlerini yönetir. Basit API çağrılarını kullanarak modelimizin ve çıkarım bileşenlerimizin yeni sürümlerini kolayca dağıtmamıza olanak tanır. Ayrıca uçtaki ML modelleri genellikle tek başına çalışmaz; çeşitli şeyleri kullanabiliriz AWS ve topluluk diğer hizmetlere bağlanmak için AWS IoT Greengrass bileşenlerini sağladı.

Özetlenen mimari, daha önce gösterilen üst düzey mimarimize benzer. Amazon S3, SageMaker Özellik Mağazası ve SageMaker Model Registry, farklı işlem hatları arasındaki arayüz görevi görür. Çözümü çalıştırma ve çalıştırma çabasını en aza indirmek için mümkün olan her yerde yönetilen ve sunucusuz hizmetleri kullanıyoruz.

Sağlam bir CI/CD sistemiyle birleşme

Veri etiketleme, model eğitimi ve uç dağıtım adımları çözümümüzün temelini oluşturur. Bu nedenle, bu parçaların herhangi birindeki temel kod veya verilerle ilgili herhangi bir değişiklik, tüm düzenleme sürecinin yeni bir çalışmasını tetiklemelidir. Bunu başarmak için, bu hattı, kod ve altyapı değişikliklerini sürümlendirilmiş bir kod deposundan üretime otomatik olarak dağıtmamıza olanak tanıyan bir CI/CD sistemine entegre etmemiz gerekiyor. Önceki mimariye benzer şekilde ekip özerkliği burada önemli bir husustur. Aşağıdaki diyagramda AWS hizmetleri kullanıldığında bunun nasıl görünebileceği gösterilmektedir.

CI/CD ardışık düzeni

CI/CD mimarisini inceleyelim:

  1. AWS CodeCommit Git depomuz gibi davranır. Basitlik adına, sağladığımız örnekte farklı parçaları (etiketleme, model eğitimi, uç dağıtımı) tek bir git deposundaki alt klasörler aracılığıyla ayırdık. Gerçek dünya senaryosunda her takım, her parça için farklı depolar kullanabilir.
  2. Altyapı dağıtımı, AWS CDK kullanılarak otomatikleştirilir ve her bir parça (etiketleme, eğitim ve uç), bağımsız dağıtımlara izin vermek için kendi AWS CDK uygulamasına sahip olur.
  3. AWS CDK işlem hattı özelliği şunları kullanır: AWS Kod Ardışık Düzeni Altyapıyı ve kod dağıtımlarını otomatikleştirmek için.
  4. AWS CDK, her adım için iki kod hattı dağıtır: varlık hattı ve iş akışı hattı. Herhangi bir varlık değişikliği olmaması durumunda (örneğin, eğitim için yeni görseller mevcut olduğunda) iş akışlarını ayrı olarak başlatmamıza olanak sağlamak için iş akışını varlık dağıtımından ayırdık.
    • Varlık kodu ardışık düzeni, iş akışının başarılı bir şekilde çalışması için gereken tüm altyapıyı dağıtır; AWS Kimlik ve Erişim Yönetimi (IAM) rolleri, Lambda işlevleri ve eğitim sırasında kullanılan kapsayıcı görüntüleri.
    • İş akışı kodu ardışık düzeni, gerçek etiketleme, eğitim veya uç dağıtım iş akışını çalıştırır.
  5. Varlık ardışık düzenleri, taahhüt sırasında ve önceki bir iş akışı ardışık düzeni tamamlandığında otomatik olarak tetiklenir.
  6. Tüm süreç bir program kullanılarak bir programa göre tetiklenir. Amazon EventBridge düzenli yeniden eğitim kuralı.

CI/CD entegrasyonuyla uçtan uca zincirin tamamı artık tamamen otomatiktir. İşlem hattı, git depomuzdaki kod değiştiğinde ve veri değişikliklerine uyum sağlayacak bir programa göre tetiklenir.

İleriyi düşünmek

Açıklanan çözüm mimarisi, uçta uçtan uca bir MLOps işlem hattı oluşturmak için temel bileşenleri temsil eder. Ancak gereksinimlerinize bağlı olarak ek işlevler eklemeyi düşünebilirsiniz. Aşağıda bazı örnekler verilmiştir:

Sonuç

Bu yazıda, AWS hizmetlerini kullanarak uçta görsel kalite denetimi için uçtan uca bir MLOps işlem hattı oluşturmaya yönelik mimarimizi özetledik. Bu mimari, veri etiketlemeyi, model geliştirmeyi ve uç konuşlandırmayı kapsayan tüm süreci kolaylaştırarak modelin yeni sürümlerini hızlı ve güvenilir bir şekilde eğitmemize ve uygulamamıza olanak tanır. Sunucusuz ve yönetilen hizmetlerle, odak noktamızı altyapıyı yönetmek yerine iş değeri sağlamaya yönlendirebiliriz.

In Bölüm 2 Bu seride bir seviye daha derine ineceğiz ve bu mimarinin uygulanmasına, özellikle etiketleme ve model oluşturmaya daha detaylı bakacağız. Doğrudan koda geçmek istiyorsanız, ekteki koda göz atabilirsiniz. GitHub repo.


yazarlar hakkında

Michael RothMichael 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öhrleJö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 LangerJohannes 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.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi