Zephyrnet Logosu

Amazon SageMaker Edge Manager ve AWS IoT Greengrass ile uçta MLO'lar

Tarih:

Nesnelerin İnterneti (IoT), imalat, otomotiv ve enerji gibi birden çok sektördeki müşterilerin gerçek dünya ortamlarını izlemesini ve kontrol etmesini sağladı. Kameralar, termostatlar ve sensörler gibi çeşitli uç IoT cihazlarını dağıtarak veri toplayabilir, buluta gönderebilir ve anormallikleri, arızaları ve daha fazlasını tahmin etmek için makine öğrenimi (ML) modelleri oluşturabilirsiniz. Ancak kullanım durumu gerçek zamanlı tahmin gerektiriyorsa, IoT çözümünüzü uçta ML (ML@Edge) yetenekleriyle zenginleştirmeniz gerekir. ML@Edge ML modelinin yaşam döngüsünü uygulama yaşam döngüsünden ayıran ve veri hazırlama, model oluşturma, model derleme ve optimizasyon, model devreye alma (bir uç cihaz filosuna) içeren bir uçtan uca ML işlem hattı çalıştırmanıza izin veren bir kavramdır. model yürütme ve model izleme ve yönetme. Uygulamayı bir kez dağıtırsınız ve ML ardışık düzenini ihtiyaç duyduğunuz kadar çalıştırırsınız.

Tahmin edebileceğiniz gibi, ML@Edge konsepti tarafından önerilen tüm adımları uygulamak önemsiz değildir. Eksiksiz bir ML@Edge çözümünü uygulamak için geliştiricilerin yanıtlaması gereken birçok soru vardır, örneğin:

  • ML modellerini uçtaki bir filoda (yüzlerce, binlerce veya milyonlarca) nasıl çalıştırırım?
  • Modelimi uçta dağıtırken ve çalıştırırken nasıl güvenli hale getirebilirim?
  • Modelimin performansını nasıl izler ve gerekirse yeniden eğitirim?

Bu gönderide, tüm bu soruları nasıl yanıtlayacağınızı ve ML@Edge ardışık düzeninizi otomatikleştirmek için uçtan uca bir çözüm oluşturmayı öğreneceksiniz. nasıl kullanılacağını göreceksin Amazon SageMaker Kenar Yöneticisi, Amazon SageMaker Stüdyosu, ve AWS IoT Greengrass v2 ML modellerini oluşturma ve büyük uç cihaz filolarına dağıtma sürecini otomatikleştiren bir MLOps (ML Operasyonları) ortamı oluşturmak.

Sonraki bölümlerde, uç iş yüklerine odaklanan MLOps için eksiksiz bir çözüm oluşturmak için gereken tüm bileşenleri ve iş akışlarını ayrıntılandıran bir referans mimarisi sunuyoruz. Ardından, yeni bir model oluşturmak ve hazırlamak için bu çözümün otomatik olarak çalıştırdığı adımlara derinlemesine dalıyoruz. Ayrıca, ML modellerini dağıtmaya, çalıştırmaya ve izlemeye başlamak için uç cihazları nasıl hazırlayacağınızı ve cihaz filonuza dağıtılan ML modellerinin nasıl izleneceğini ve bakımını yapacağınızı gösteriyoruz.

Çözüme genel bakış

Sağlam makine öğrenimi modellerinin üretilmesi, belirli işlemleri (MLOps) izleyen yarı otomatik bir altyapı altında veri bilimciler, makine öğrenimi mühendisleri, veri mühendisleri ve iş paydaşları gibi birden çok kişinin işbirliğini gerektirir. Ayrıca, tüm bu farklı kişilere sorumlu oldukları bileşeni (iş akışından bağımsız olarak) geliştirme veya iyileştirme esnekliği ve çevikliği kazandırmak için ortamın modülerleştirilmesi önemlidir. Böyle bir altyapının bir örneği, hem bulutta hem de uç cihazlarda ML modellerinin bu işbirliğini ve üretilmesini sağlayan birden çok AWS hesabından oluşur. Aşağıdaki referans mimarisinde, makine öğrenimi modelleri oluşturmak ve bunları uçta dağıtmak için bu uçtan uca MLOps platformunu oluşturan birden çok hesabı ve hizmeti nasıl düzenlediğimizi gösteriyoruz.

Bu çözüm aşağıdaki hesaplardan oluşur:

  • Veri gölü hesabı – Veri mühendisleri, şirket içi veritabanları ve IoT cihazları dahil olmak üzere birden fazla veri kaynağından veri alır, depolar ve hazırlar.
  • Takım hesabı – BT operatörleri, uzak uç cihazlar için üretim öncesi ve üretim hesaplarında ML model paketlerinin otomatikleştirilmiş sürekli teslimi ve dağıtımı için CI/CD işlem hatlarını yönetir ve kontrol eder. CI/CD işlem hatlarının çalıştırılması, Amazon EventBridgeML modellerinin ve hedeflerinin değişiklik durum olaylarını izleyen AWS Kod Ardışık Düzeni.
  • Deneme ve geliştirme hesabı – Veri bilimcileri, ML'ye dayalı iş sorunlarını çözmek için birden fazla modelleme tekniği ve algoritma ile araştırma yapabilir ve deney yapabilir ve konsept çözümlerinin kanıtını oluşturabilir. Makine öğrenimi mühendisleri ve veri bilimcileri, bir kavram kanıtını ölçeklendirmek için işbirliği yaparak otomatikleştirilmiş iş akışları oluşturur. Amazon SageMaker Ardışık Düzenleri veri hazırlamak ve makine öğrenimi modelleri oluşturmak, eğitmek ve paketlemek. İşlem hatlarının dağıtımı, CI/CD işlem hatları aracılığıyla yürütülürken, modellerin sürüm kontrolü, Amazon SageMaker model kaydı. Veri bilimcileri, birden çok model sürümünün metriklerini değerlendirir ve CI/CD ardışık düzenini tetikleyerek en iyi modelin üretime yükseltilmesini ister.
  • Ön üretim hesabı – Modelin üretim ortamına tanıtılmasından önce, simülasyon ortamında sağlamlığını sağlamak için modelin test edilmesi gerekir. Bu nedenle, üretim öncesi ortam, SageMaker model uç noktalarının otomatik olarak dağıtıldığı ve test edildiği üretim ortamının bir simülatörüdür. Test yöntemleri, çıkarım sonuçlarına ilişkin bir entegrasyon testi, stres testi veya makine öğrenimine özgü testler içerebilir. Bu durumda, üretim ortamı bir SageMaker model uç noktası değil, bir uç cihazdır. Üretim öncesi bir uç cihazı simüle etmek için iki yaklaşım mümkündür: Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) aynı donanım özelliklerine sahip bir örnek veya gerçek cihazlardan oluşan bir laboratuvar içi test ortamı kullanın. Bu altyapı ile CI/CD ardışık düzeni, modeli ilgili simülatöre dağıtır ve çoklu testleri otomatik olarak yürütür. Testler başarıyla çalıştırıldıktan sonra, CI/CD ardışık düzeni manuel onay gerektirir (örneğin, modeli üretime tanıtmak için IoT paydaşından).
  • Üretim hesabı – Modelin AWS Bulut üzerinde barındırılması durumunda, CI/CD ardışık düzeni, üretim hesabında bir SageMaker model uç noktası dağıtır. Bu durumda, üretim ortamı birden çok uç cihaz filosundan oluşur. Bu nedenle, CI/CD ardışık düzeni, modelleri ilgili cihaz filosuna dağıtmak için Edge Manager'ı kullanır.
  • Edge cihazları – Uzak uç cihazlar, Edge Manager kullanarak ML modellerini çalıştırabilen donanım cihazlarıdır. Bu cihazlardaki uygulamanın modelleri yönetmesine, modellere karşı çıkarım yapmasına ve verileri güvenli bir şekilde içine almasına olanak tanır. Amazon Basit Depolama Hizmeti (Amazon S3).

SageMaker projeleri bu hesapların her birinde kaynak sağlama sürecini otomatikleştirmenize yardımcı olur. Bu özelliği derinlemesine incelemiyoruz, ancak ML modellerini hesaplar arasında dağıtan bir SageMaker proje şablonunun nasıl oluşturulacağı hakkında daha fazla bilgi edinmek için göz atın Amazon SageMaker Pipelines ile çok hesaplı model dağıtımı.

Ön üretim hesabı: Dijital ikiz

Eğitim sürecinden sonra ortaya çıkan modelin değerlendirilmesi gerekmektedir. Ön üretim hesabında, simüle edilmiş bir Edge cihazınız var. temsil eder dijital ikiz ML modelinin üretimde çalıştığı uç aygıtın. Bu ortamın, klasik testleri (birim, entegrasyon ve duman gibi) gerçekleştirme ve geliştirme ekibi için bir oyun alanı olma gibi ikili bir amacı vardır. Bu cihaz, ML modelini yönetmek için gereken tüm bileşenlerin dağıtıldığı bir EC2 örneği kullanılarak simüle edilir.

İlgili hizmetler aşağıdaki gibidir:

  • AWS IoT Çekirdeği - Kullanırız AWS IoT Çekirdeği AWS IoT nesne nesneleri oluşturmak, bir cihaz filosu oluşturmak, bulutla etkileşime girebilmesi için cihaz filosunu kaydettirmek, uç cihazların kimliğini AWS IoT Core'da doğrulamak için X.509 sertifikaları oluşturmak, rol takma adını şu anda oluşturulan AWS IoT Core ile ilişkilendirmek için filo oluşturdu, kimlik bilgisi sağlayıcısı için AWS hesabına özel bir uç nokta edinin, resmi bir Amazon Kök CA dosyası edinin ve Amazon CA dosyasını Amazon S3'e yükleyin.
  • Amazon Sagemaker Neo – adaçayı Neo doğruluk kaybı olmadan daha hızlı çalışması için makine öğrenimi modellerini çıkarım için otomatik olarak optimize eder. DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX veya XGBoost ile halihazırda oluşturulmuş ve Amazon SageMaker'da veya başka bir yerde eğitilmiş makine öğrenimi modelini destekler. Ardından, SageMaker barındırma örneği veya Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip, Texas Instruments veya Xilinx işlemcilerine dayalı bir uç cihaz olabilen hedef donanım platformunuzu seçersiniz.
  • Kenar Yöneticisi – Sagemaker filolarındaki uç cihazı kaydetmek ve yönetmek için Edge Manager kullanıyoruz. Filolar, verileri toplamak ve analiz etmek için kullanabileceğiniz mantıksal olarak gruplandırılmış cihaz koleksiyonlarıdır. Ayrıca Edge Manager paketleyici, optimize edilmiş modeli paketler ve doğrudan dağıtılabilen bir AWS IoT Greengrass V2 bileşeni oluşturur. ML modellerini akıllı kameralar, akıllı hoparlörler, robotlar ve diğer SageMaker cihaz filolarından oluşan bir filoda çalıştırmak için Edge Manager'ı kullanabilirsiniz.
  • AWS IoT Greengrass V2 - AWS IoT Greengrass EC2 bulut sunucusu kullanarak bileşenleri simüle edilmiş cihazlara dağıtmanıza olanak tanır. EC2 bulut sunucularında AWS IoT Greengrass V2 aracısını kullanarak, Edge Manager aracısının ve modelinin cihazlara erişimini, yönetimini ve dağıtımını basitleştirebiliriz. AWS IoT Greengrass V2 olmadan, Edge Manager'ı kullanmak için cihazları ve filoları ayarlamak, aracıyı bir S3 yayın paketinden manuel olarak kopyalamanızı gerektirir. AWS IoT Greengrass V2 ve Edge Manager entegrasyonu ile AWS IoT Greengrass V2 bileşenlerini kullanmak mümkündür. Bileşenler, uç cihazları AWS IoT Greengrass aracılığıyla AWS hizmetlerine veya üçüncü taraf hizmetlerine bağlayabilen önceden oluşturulmuş yazılım modülleridir.
  • Edge Manager aracısı – Edge Manager aracısı, EC2 bulut sunucusunda AWS IoT Greengrass V2 aracılığıyla dağıtılır. Aracı, aynı anda birden fazla model yükleyebilir ve uç cihazlarda yüklü modellerle çıkarım yapabilir. Aracının yükleyebileceği model sayısı, cihazdaki kullanılabilir bellek tarafından belirlenir.
  • Amazon S3 – Edge Manager aracısından alınan çıkarsama verilerini depolamak için bir S3 kovası kullanıyoruz.

ML modellerini gerçek uç cihazlara taşımadan önce test etmek için bir üretim öncesi hesabı dijital ikiz olarak tanımlayabiliriz. Bu, aşağıdaki avantajları sunar:

  • Çeviklik ve esneklik – Veri bilimcilerin ve makine öğrenimi mühendislerinin, makine öğrenimi modelinin ve ilişkili komut dosyalarının (ön işleme ve çıkarım komut dosyaları) cihaz kenarında çalışıp çalışmayacağını hızla doğrulaması gerekir. Ancak, büyük işletmelerdeki IoT ve veri bilimi departmanları farklı varlıklar olabilir. Teknoloji yığınını bulutta aynı şekilde çoğaltarak, veri bilimcileri ve makine öğrenimi mühendisleri, dağıtımdan önce yapıtları yineleyebilir ve birleştirebilir.
  • Hızlandırılmış risk değerlendirmesi ve üretim süresi – Uç cihazda dağıtım, sürecin son aşamasıdır. Her şeyi yalıtılmış ve bağımsız bir ortamda doğruladıktan sonra, kalite, performans ve entegrasyon açısından uç noktanın gerektirdiği özelliklere bağlı kalmasını sağlayın. Bu, yapı sürümlerini düzeltmek ve yinelemek için IoT departmanındaki diğer kişilerin daha fazla katılımını önlemeye yardımcı olur.
  • İyileştirilmiş ekip işbirliği ve gelişmiş kalite ve performans – Geliştirme ekibi, uç donanım ölçümlerini analiz ederek ve üçüncü taraf araçlarla etkileşim düzeyini (ör. G/Ç oranı) ölçerek makine öğrenimi modelinin etkisini anında değerlendirebilir. Ardından, IoT ekibi yalnızca üretim ortamına dağıtımdan sorumludur ve yapıların bir üretim ortamı için doğru olduğundan emin olabilir.
  • Test için entegre oyun alanı – Makine öğrenimi modellerinin hedefi göz önüne alındığında, geleneksel bir iş akışındaki üretim öncesi ortam, bulut ortamının dışında bir uç cihaz tarafından temsil edilmelidir. Bu, başka bir karmaşıklık düzeyi sunar. Metrikleri ve geri bildirimleri toplamak için entegrasyonlar gereklidir. Bunun yerine, dijital ikiz simülasyon ortamı kullanılarak etkileşimler azaltılır ve pazara sunma süresi kısaltılır.

Üretim hesabı ve uç ortamı

Testler tamamlandıktan ve yapı kararlılığı sağlandıktan sonra, işlem hatları aracılığıyla üretim dağıtımına geçebilirsiniz. Yapıt dağıtımı, bir işleç yapıtı onayladıktan sonra programlı olarak gerçekleşir. Ancak, erişim AWS Yönetim Konsolu filolarla ilişkili meta verileri izleyebilmeleri ve dolayısıyla dağıtılan ML modelinin sürümüne ve yaşam döngüsüyle ilişkili diğer metriklere ilişkin içgörüye sahip olmaları için operatörlere salt okunur modda verilir.

Uç cihaz filoları, AWS üretim hesabına aittir. Bu hesap, bulut ve uç cihazlar arasında iletişime izin vermek için belirli güvenlik ve ağ yapılandırmalarına sahiptir. Üretim hesabında dağıtılan ana AWS hizmetleri, tüm cihaz filolarını yönetmekten, veri toplamaktan ve ML modellerini çalıştırmaktan sorumlu olan Edge Manager ve IoT nesne nesnelerini, sertifikaları, rol diğer adını ve uç noktaları yöneten AWS IoT Core'dur.

Aynı zamanda, ML modellerini yönetmek için hizmetler ve bileşenler içeren bir uç cihaz yapılandırmamız gerekiyor. Ana bileşenler aşağıdaki gibidir:

  • AWS IoT Greengrass V2
  • Edge Manager aracısı
  • AWS IoT sertifikaları
  • Çıkarım sürecini düzenlemekten sorumlu olan Application.py (uç veri kaynağından bilgi alma ve Edge Manager aracısını ve yüklü ML modelini kullanarak çıkarım gerçekleştirme)
  • Çıkarsanan verileri depolamak için Amazon S3 veya data lake hesabına bağlantı

Otomatik makine öğrenimi ardışık düzeni

Artık kuruluş ve referans mimarisinin bileşenleri hakkında daha fazla bilgi sahibi olduğunuza göre, geliştirme hesabı içindeki ML modelini oluşturmak, eğitmek ve değerlendirmek için kullandığımız ML ardışık düzenini daha derinlemesine inceleyebiliriz.

Bir boru hattı (kullanılarak oluşturulmuş Amazon SageMaker Model Oluşturma İşlem Hatları), bir JSON ardışık düzen tanımı tarafından tanımlanan bir dizi birbirine bağlı adımdır. Bu işlem hattı tanımı, Yönlendirilmiş Döngüsel Grafik (DAG) kullanarak bir işlem hattını kodlar. Bu DAG, işlem hattınızın her adımı için gereksinimler ve bunlar arasındaki ilişkiler hakkında bilgi verir. Bir işlem hattının DAG'sinin yapısı, adımlar arasındaki veri bağımlılıkları tarafından belirlenir. Bu veri bağımlılıkları, bir adımın çıktısının özellikleri girdi olarak başka bir adıma geçirildiğinde oluşturulur.

Veri bilimi ekiplerinin makine öğrenimi modellerinin yeni sürümlerinin oluşturulmasını kolayca otomatikleştirmesini sağlamak için, makine öğrenimi modellerini sürekli beslemek ve iyileştirmek için doğrulama adımlarını ve otomatik verileri ve ayrıca ardışık düzen tetiklemeyi etkinleştirmek için model izleme stratejilerini tanıtmak önemlidir. Aşağıdaki diyagram örnek bir boru hattını göstermektedir.

Otomasyonları ve MLOps yeteneklerini etkinleştirmek için, farklı adımlarda ve ML kullanım senaryolarında paylaşılabilen yeniden kullanılabilir kod yapıları oluşturmak için modüler bileşenler oluşturmak önemlidir. Bu, geçişi otomatikleştirerek uygulamayı bir deneme aşamasından üretim aşamasına hızlı bir şekilde taşımanıza olanak tanır.

ML modellerinin sürekli eğitimini ve sürümlenmesini sağlamak için bir ML ardışık düzeni tanımlama adımları aşağıdaki gibidir:

  • Ön İşleme – Makine öğrenimi algoritmasını eğitmek için veri temizleme, özellik mühendisliği ve veri kümesi oluşturma süreci
  • Eğitim – ML model yapaylığının yeni bir versiyonunu oluşturmak için geliştirilen ML algoritmasını eğitme süreci
  • Değerlendirme – Eğitim aşamasında görülmeyen yeni veriler üzerinde model davranışıyla ilgili temel metrikleri çıkarmak için oluşturulan ML modelinin değerlendirme süreci
  • kayıtlar – Çıkarılan metrikleri oluşturulan yapıyla bağlayarak yeni eğitilmiş makine öğrenimi modeli yapıtının sürüm oluşturma süreci

SageMaker işlem hattının nasıl oluşturulacağına ilişkin daha fazla ayrıntıyı aşağıda görebilirsiniz. defter.

EventBridge kullanarak CI/CD işlem hatlarını tetikleyin

Modeli oluşturmayı bitirdiğinizde dağıtım sürecini başlatabilirsiniz. Önceki bölümde tanımlanan SageMaker işlem hattının son adımı, belirli SageMaker model kayıt grubuna modelin yeni bir sürümünü kaydeder. ML modelinin yeni bir sürümünün dağıtımı, model kayıt durumu kullanılarak yönetilir. Bu adım, bir ML model sürümünü manuel olarak onaylayarak veya reddederek, EventBridge tarafından yakalanan bir olayı başlatır. Bu olay, daha sonra üretim öncesi ve üretim hesaplarına dağıtılan AWS IoT Greengrass bileşeninin yeni bir sürümünü oluşturmak için yeni bir işlem hattı (bu sefer CI/CD) başlatabilir. Aşağıdaki ekran görüntüsü tanımlı EventBridge kuralımızı göstermektedir.

Bu kural, durumdaki model paketlerinin güncellemelerini arayarak SageMaker model paket grubunu izler. Approved or Rejected.

EventBridge kuralı daha sonra kullanarak yeni bir AWS IoT Greengrass bileşeni oluşturma iş akışını başlatan CodePipeline'ı hedefleyecek şekilde yapılandırılır. Amazon SageMaker Neo ve Kenar Yöneticisi.

Hedef mimari için ML modellerini optimize edin

Neo, uç cihazlarda (ve bulutta) çıkarım yapmak için ML modellerini optimize etmenize olanak tanır. Hedef mimariye dayalı olarak daha iyi performans için ML modellerini otomatik olarak optimize eder ve modeli orijinal çerçeveden ayırarak hafif bir çalışma zamanında çalıştırmanıza olanak tanır.

Aşağıdakilere bakın defter Neo kullanarak bir PyTorch Resnet18 modelinin nasıl derleneceğine dair bir örnek için.

AWS IoT Greengrass bileşenini dahil ederek dağıtım paketini oluşturun

Edge Manager, modelleri bir uç cihaz filosuna yönetmenize, güvenli hale getirmenize, dağıtmanıza ve izlemenize olanak tanır. Aşağıdakilerde defter, minimalist bir uç cihaz filosunun nasıl oluşturulacağına dair daha fazla ayrıntı görebilir ve bu özellik ile bazı deneyler yapabilirsiniz.

Filoyu yapılandırdıktan ve modeli derledikten sonra, modeli filoya dağıtılmak üzere hazırlayan bir Edge Manager paketleme işi çalıştırmanız gerekir. Boto3 SDK'yı kullanarak bir paketleme işine başlayabilirsiniz. Parametrelerimiz için optimize edilmiş model ve model meta verilerini kullanıyoruz. Aşağıdaki parametreleri ekleyerek OutputConfig, iş ayrıca şu modelle bir AWS IoT Greengrass V2 bileşeni hazırlar:

  • PresetDeploymentType
  • PresetDeploymentConfig

Aşağıdaki koda bakın:

import boto3
import time

SageMaker_client = boto3.client('SageMaker')

SageMaker_client.create_edge_packaging_job(
    EdgePackagingJobName="mlops-edge-packaging-{}".format(int(time.time()*1000)),
    CompilationJobName=compilation_job_name,
    ModelName="PytorchMLOpsEdgeModel",
    ModelVersion="1.0.0",
    RoleArn=role,
    OutputConfig={
        'S3OutputLocation': 's3://{}/model/'.format(bucket_name),
        "PresetDeploymentType": "GreengrassV2Component",
        "PresetDeploymentConfig": json.dumps(
            {"ComponentName": component_name, "ComponentVersion": component_version}
        ),
    }
)

ML modellerini geniş ölçekte uçta dağıtın

Şimdi modeli uç cihaz filonuza dağıtmanın zamanı geldi. İlk olarak, gerekli özelliklere sahip olduğumuzdan emin olmalıyız. AWS Kimlik ve Erişim Yönetimi (BEN) izinleri IoT cihazlarımızı tedarik etmek ve buna bileşenleri dağıtmak için. Cihazları IoT platformumuza yerleştirmeye başlamak için iki temel öğeye ihtiyacımız var:

  • IAM politikası – Bu politika, kullanıcıya veya provizyonu gerçekleştiren role bağlı bu tür cihazların otomatik olarak sağlanmasına izin verir. IoT şeyini ve grubunu oluşturmak ve ayrıca gerekli politikaları cihaza eklemek için IoT yazma izinlerine sahip olmalıdır. Daha fazla bilgi için bkz. Yükleyicinin kaynakları sağlaması için minimum IAM politikası.
  • IAM rolü – bu rol, oluşturduğumuz IoT nesnelerine ve gruplarına bağlıdır. Bu rolü temel izinlerle tedarik sırasında oluşturabilirsiniz, ancak Amazon S3'e erişim veya AWS Anahtar Yönetim Hizmeti (AWS KMS) daha sonra gerekli olabilir. Bu rolü önceden oluşturabilir ve cihazı sağladığımızda yeniden kullanabilirsiniz. Daha fazla bilgi için bkz. AWS ile etkileşim için çekirdek cihazları yetkilendirin.

AWS IoT Greengrass yükleme ve sağlama

IAM politikasını ve rolünü yerine getirdikten sonra, otomatik kaynak sağlama ile AWS IoT Greengrass Core yazılımını yükleyin. IoT kaynaklarını manuel adımları izleyerek sağlamak mümkün olsa da, AWS IoT Greengrass v2 çekirdeğinin kurulumu sırasında bu kaynakları otomatik olarak sağlamaya yönelik uygun bir prosedür vardır. Bu, yeni cihazları platforma hızlı bir şekilde eklemek için tercih edilen seçenektir. Ayrıca default-jdkgibi diğer paketlerin yüklenmesi gerekir. curl, unzip, ve python3.

Cihazımızı sağladığımızda, IoT şey adı Edge Manager'da tanımlanan uç cihazla tam olarak aynı olmalıdır, aksi takdirde veriler hedef S3 kovasına yakalanmaz.

Yükleyici, mevcut değilse, yükleme sırasında AWS IoT Greengrass rolünü ve diğer adını oluşturabilir. Ancak, minimum izinlerle oluşturulurlar ve Amazon S3 gibi diğer hizmetlerle etkileşim kurmak için manuel olarak daha fazla ilke eklenmesi gerekir. Bu IAM kaynaklarını daha önce gösterildiği gibi önceden oluşturmanızı ve ardından hesaba yeni cihazlar eklerken bunları yeniden kullanmanızı öneririz.

Model ve çıkarım bileşeni ambalajı

Kodumuz geliştirildikten sonra, hem kodu (çıkarım için) hem de ML modellerimizi bileşen olarak cihazlarımıza yerleştirebiliriz.

ML modeli SageMaker'da eğitildikten sonra, bir Sagemaker derleme işi kullanarak modeli Neo ile optimize edebilirsiniz. Elde edilen derlenmiş model yapıları daha sonra Edge Manager paketleyici kullanılarak bir GreenGrass V2 bileşenine paketlenebilir. Ardından, özel bir bileşen olarak kaydedilebilir. Bileşenlerim AWS IoT Greengrass konsolundaki bölüm. Bu bileşen, cihazımızdaki model yapaylığını indirmek ve sıkıştırmasını açmak için gerekli yaşam döngüsü komutlarını zaten içerir, böylece çıkarım kodu, yakalanan görüntüleri göndermek için yükleyebilir.

Çıkarım koduyla ilgili olarak, konsolu kullanarak bir bileşen oluşturmalıyız veya AWS Komut Satırı Arayüzü (AWS CLI). İlk olarak, kaynak çıkarım kodumuzu ve gerekli bağımlılıkları Amazon S3'e paketliyoruz. Kodu yükledikten sonra, aşağıdaki örnekteki gibi .yaml veya JSON'da bir tarif kullanarak bileşenimizi oluşturabiliriz:

---
RecipeFormatVersion: 2020-01-25
ComponentName: dummymodel.inference
ComponentVersion: 0.0.1
ComponentDescription: Deploys inference code to a client
ComponentPublisher: Amazon Web Services, Inc.
ComponentDependencies:
  aws.GreenGrass.TokenExchangeService:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
  dummymodel:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
Manifests:
  - Platform:
      os: linux
      architecture: "*"
    Lifecycle:
      install: |-
        apt-get install python3-pip
        pip3 install numpy
        pip3 install sysv_ipc
        pip3 install boto3
        pip3 install grpcio-tools
        pip3 install grpcio
        pip3 install protobuf
        pip3 install SageMaker
        tar xf {artifacts:path}/sourcedir.tar.gz
      run:
        script: |-
          sleep 5 && sudo python3 {work:path}/inference.py 
    Artifacts:
      - URI: s3://BUCKET-NAME/path/to/inference/sourcedir.tar.gz
        Permission:
          Execute: OWNER

Bu örnek tarif, bileşenimizin adını ve açıklamasını ve ayrıca komut dosyası çalıştırma komutumuzdan önce gerekli ön koşulları gösterir. Tarif, cihazdaki bir çalışma klasörü ortamında yapıyı açar ve çıkarım kodumuzu çalıştırmak için bu yolu kullanırız. Böyle bir tarifi oluşturmak için AWS CLI komutu:

aws greengrassv2 create-component-version --region $REGION 
                                          --inline-recipe fileb://path/to/recipe.yaml

Artık AWS IoT Greengrass konsolunda oluşturulan bu bileşeni görebilirsiniz.

Bileşen versiyonunun önemli olduğuna ve tarif dosyasında belirtilmesi gerektiğine dikkat edin. Aynı sürüm numarasını tekrarlamak bir hata döndürür.

Modelimiz ve çıkarım kodumuz bileşen olarak ayarlandıktan sonra bunları dağıtmaya hazırız.

AWS IoT Greengrass kullanarak uygulamayı ve modeli dağıtın

Önceki bölümlerde, çıkarım kodunu ve ML modellerini nasıl paketleyeceğinizi öğrendiniz. Artık, çıkarım kodumuzun uç cihazdaki modelle etkileşime girmesi için gereken hem bileşenleri hem de yapılandırmaları içeren birden çok bileşenle bir dağıtım oluşturabiliriz.

Edge Manager aracısı, tüm Edge Manager özelliklerini etkinleştirmek için her bir uç cihaza yüklenmesi gereken bileşendir. SageMaker konsolunda, ilişkili bir S3 kovası olan tanımlanmış bir cihaz filomuz var. Filoyla ilişkili tüm uç cihazlar, verilerini yakalayacak ve bu S3 yoluna bildirecektir. Aracı, AWS IoT Greengrass v2'de bir bileşen olarak dağıtılabilir; bu, aracının bağımsız modda dağıtılmasına kıyasla yüklemeyi ve yapılandırmayı kolaylaştırır. Aracıyı bir bileşen olarak dağıtırken, cihaz filosu ve S3 yolu gibi yapılandırma parametrelerini belirtmemiz gerekir.

Yeni oluşturduğumuz model ve kod için özel bileşenlerle bir dağıtım yapılandırması oluşturuyoruz. Bu kurulum, dağıtımdaki bileşenlerin yanı sıra dağıtım adını ve hedefini listeleyen bir JSON dosyasında tanımlanır. Filo adını ve kepçeyi belirttiğimiz Edge Manager aracısında olduğu gibi her bileşenin yapılandırma parametrelerini ekleyebilir ve güncelleyebiliriz.

{
    "targetArn": "targetArn",
    "deploymentName": "dummy-deployment",
    "components": {
        "aws.GreenGrass.Nucleus": {
            "version": "2.5.3",
        },
        "aws.GreenGrass.Cli": {
            "version": "2.5.3"
        },
        "aws.GreenGrass.SageMakerEdgeManager": {
            "version": 1.1.0,
            "configurationUpdate": {
                "merge": {
                "DeviceFleetName": "FLEET-NAME",
                "BucketName": "BUCKET-NAME-URI"
                }
            }
        },
        "dummymodel.inference": {
            "version": "0.0.1"
        },
        "dummymodel": {
            "version": "0.0.1"
        }
    }
}

Yalnızca modeli, çıkarım bileşenlerini ve aracıyı değil, bileşen olarak AWS IoT Greengrass CLI ve çekirdeğini de eklediğimizi belirtmekte fayda var. İlki, cihazda yerel olarak belirli dağıtımlarda hata ayıklamaya yardımcı olabilir. İkincisi, gerekirse cihazın kendisinden gerekli ağ erişimini yapılandırmak için (örneğin, proxy ayarları) ve ayrıca AWS IoT Greengrass v2 çekirdeğinin OTA yükseltmesini yapmak istemeniz durumunda dağıtıma eklenir. Çekirdek, aygıta yüklendiğinden dağıtılmaz ve yalnızca yapılandırma güncellemesi uygulanır (yükseltme yapılmadığı sürece). Dağıtmak için, önceki yapılandırma üzerinde aşağıdaki komutu çalıştırmamız yeterlidir. Dağıtımın uygulanacağı hedef ARN'yi (bir IoT şeyi veya IoT grubu) ayarlamayı unutmayın. Bu bileşenleri konsoldan da dağıtabiliriz.

aws greengrassv2 create-deployment --region $REGION 
                                   --cli-input-json file://path/to/deployment.json

Uçta dağıtılan ML modellerini izleyin ve yönetin

Artık uygulamanız uç cihazlarda çalıştığına göre, yönetim, bakım ve görünürlüğü iyileştirmek için filoyu nasıl izleyeceğinizi anlamanın zamanı geldi. SageMaker konsolunda seçin Kenar Yöneticisi gezinme bölmesinde, ardından Uç cihaz filoları. Buradan filonuzu seçin.

Filonun ayrıntı sayfasında, filonuzun her cihazında çalışan modellerin bazı meta verilerini görebilirsiniz. Filo raporu her 24 saatte bir oluşturulur.

Her cihaz tarafından Edge Agent aracılığıyla yakalanan veriler, json line formatında (JSONL) bir S3 klasörüne gönderilir. Yakalanan verileri gönderme süreci, uygulama açısından yönetilir. Bu nedenle, bu verileri nasıl ve ne sıklıkta göndereceğinize karar vermekte özgürsünüz.

Bu verileri, veri kaymasını ve model kalitesini izleme, yeni bir veri kümesi oluşturma, bir veri gölünü zenginleştirme ve daha pek çok şey için kullanabilirsiniz. Bu verilerin nasıl kullanılacağına ilişkin basit bir örnek, kullanıcıların uygulamanızla etkileşim kurma biçiminde bazı veri sapmaları tespit ettiğinizde ve yeni bir model eğitmeniz gerektiğinde verilebilir. Ardından, yakalanan verilerle yeni bir veri kümesi oluşturur ve onu geliştirme hesabına geri kopyalarsınız. Bu, yeni bir model oluşturan ve dağıtılan çözümün performansını korumak için tüm filoya yeniden dağıtan ortamınızın yeni bir çalışmasını otomatik olarak başlatabilir.

Sonuç

Bu yayında, AWS hizmetlerini kullanarak MLOps ve ML@Edge'i birleştiren eksiksiz bir çözümü nasıl oluşturacağınızı öğrendiniz. Böyle bir çözüm oluşturmak önemsiz değildir, ancak bu gönderide sunulan referans mimarinin size ilham verebileceğini ve kendi iş zorluklarınız için sağlam bir mimari oluşturmanıza yardımcı olacağını umuyoruz. Ayrıca, bu mimarinin yalnızca mevcut MLOps ortamınızla entegre olan parçalarını veya modüllerini de kullanabilirsiniz. Her seferinde tek bir modülün prototipini oluşturarak ve bu zorluğun her bir parçasını ele almak için uygun AWS hizmetlerini kullanarak, sağlam bir MLOps ortamının nasıl oluşturulacağını öğrenebilir ve ayrıca nihai mimariyi daha da basitleştirebilirsiniz.

Bir sonraki adım olarak, makine öğreniminizi uç yaşam döngüsünde yönetmek için Sagemaker Edge Manager'ı denemenizi öneririz. Edge Manager'ın nasıl çalıştığı hakkında daha fazla bilgi için bkz. SageMaker Edge Manager ile modelleri uçta dağıtın .


yazarlar hakkında

Bruno Piston Milano merkezli AWS için bir AI/ML Uzman Çözüm Mimarıdır. Teknik ihtiyaçlarını derinlemesine anlamalarına ve AWS Cloud ve Amazon Machine Learning yığınından en iyi şekilde yararlanan Yapay Zeka ve Makine Öğrenimi çözümleri tasarlamalarına yardımcı olmak için her büyüklükteki müşteriyle birlikte çalışır. Uzmanlık alanı uçtan uca Makine Öğrenimi, Makine Öğrenimi Sanayileşme ve MLOps'tur. Arkadaşlarıyla vakit geçirmekten, yeni yerler keşfetmekten ve yeni yerlere seyahat etmekten hoşlanıyor.

Matteo Calabrese AWS Profesyonel Hizmetler ekibinde bir AI/ML Müşteri Teslim Mimarıdır. EMEA'daki büyük kuruluşlarla AI/ML projelerinde çalışarak onlara makine öğrenimi üretim iş yüklerini önerme, tasarlama, sunma, ölçeklendirme ve optimize etme konularında yardımcı olur. Ana uzmanlığı, ML Operasyonu (MLOps) ve Edge at Machine Learning'dir. Amacı, AWS'nin en iyi uygulamalarını sağlayarak iş sonuçlarına değer verme ve hızlandırma sürelerini kısaltmak. Boş zamanlarında yürüyüş yapmaktan ve seyahat etmekten hoşlanır.

Raul Diaz Garcia AWS Profesyonel Hizmetler ekibinde bir Kıdemli Veri Bilimcisidir. EMEA genelindeki büyük kurumsal müşterilerle birlikte çalışarak, IoT alanında Bilgisayarla Görme ve Makine Öğrenimi ile ilgili çözümleri etkinleştirmelerine yardımcı oluyor.

Sokratis Kartakis Amazon Web Servisleri için Kıdemli Makine Öğrenimi Uzmanı Çözüm Mimarıdır. Sokratis, kurumsal müşterilerin AWS hizmetlerinden yararlanarak ve işletim modellerini, yani MLOps temellerini ve en iyi geliştirme uygulamalarından yararlanan dönüşüm yol haritasını şekillendirerek Makine Öğrenimi (ML) çözümlerini endüstriyelleştirmelerine odaklanıyor. Enerji, perakende, sağlık, finans/bankacılık, motor sporları vb. alanlarda yenilikçi uçtan uca üretim düzeyinde ML ve Nesnelerin İnterneti (IoT) çözümlerini icat etmek, tasarlamak, yönetmek ve uygulamak için 15 yıldan fazla zaman harcadı. Sokratis boş zamanlarını ailesi ve arkadaşlarıyla geçirmeyi veya motosiklet sürmeyi sever.

Samir Araujo AWS'de AI/ML Çözümleri Mimarıdır. Müşterilerin, AWS'yi kullanarak iş zorluklarını çözen AI/ML çözümleri oluşturmasına yardımcı olur. Bilgisayarla görme, doğal dil işleme, tahmin, uçta ML ve daha fazlasıyla ilgili çeşitli AI/ML projeleri üzerinde çalışıyor. Boş zamanlarında donanım ve otomasyon projeleri ile oynamayı seviyor ve robotiğe özel bir ilgi duyuyor.

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?