VMware, GitLab, Amazon MWAA ve Amazon SageMaker'ı kullanarak sıfırdan bir MLOps işlem hattını nasıl oluşturdu?

VMware, GitLab, Amazon MWAA ve Amazon SageMaker'ı kullanarak sıfırdan bir MLOps işlem hattını nasıl oluşturdu?

Kaynak Düğüm: 2009167

Bu gönderi, VMware Carbon Black'te Makine Öğrenimi Mühendisi Mahima Agarwal ve Kıdemli Mühendislik Müdürü Deepak Mettem ile birlikte yazılmıştır.

VMware Karbon Siyahı tüm modern siber saldırılara karşı koruma sağlayan ünlü bir güvenlik çözümüdür. Ürün tarafından üretilen terabaytlarca veriyle güvenlik analitiği ekibi, kritik saldırıları ortaya çıkarmak ve gürültüden kaynaklanan yeni tehditleri aydınlatmak için makine öğrenimi (ML) çözümleri oluşturmaya odaklanır.

VMware Carbon Black ekibinin, makine öğrenimi yaşam döngüsündeki iş akışlarını düzenleyip otomatikleştiren ve model eğitimi, değerlendirmeler ve dağıtımlara olanak tanıyan özel bir uçtan uca MLOps ardışık düzeni tasarlaması ve oluşturması çok önemlidir.

Bu işlem hattını oluşturmanın iki ana amacı vardır: veri bilimcileri son aşama model geliştirme için desteklemek ve modelleri yüksek hacimli ve gerçek zamanlı üretim trafiğinde sunarak üründeki yüzey modeli tahminlerini desteklemek. Bu nedenle VMware Carbon Black ve AWS, aşağıdakileri kullanarak özel bir MLOps ardışık düzeni oluşturmayı seçti: Amazon Adaçayı Yapıcı kullanım kolaylığı, çok yönlülüğü ve tamamen yönetilen altyapısı için. Makine öğrenimi eğitimimizi ve dağıtım işlem hatlarımızı aşağıdakileri kullanarak düzenliyoruz: Apache Airflow için Amazon Tarafından Yönetilen İş Akışları (Amazon MWAA), otomatik ölçeklendirme veya altyapı bakımı konusunda endişelenmemize gerek kalmadan programlı olarak yazma iş akışlarına ve işlem hatlarına daha fazla odaklanmamızı sağlıyor.

Bu ardışık düzen ile, bir zamanlar Jupyter not defteri tabanlı makine öğrenimi araştırması, artık veri bilimcilerin çok az manuel müdahalesi ile modelleri üretime dağıtan otomatik bir süreç haline geldi. Daha önce, bir modeli eğitme, değerlendirme ve devreye alma süreci bir günden fazla sürebilirdi; bu uygulamayla, her şey yalnızca bir tetikleyici uzağınızda ve toplam süreyi birkaç dakikaya indirdi.

Bu gönderide, VMware Carbon Black ve AWS mimarları, aşağıdakileri kullanarak özel makine öğrenimi iş akışlarını nasıl oluşturduğumuzu ve yönettiğimizi tartışıyor Gitlab, Amazon MWAA ve SageMaker. Şimdiye kadar başardıklarımızı, boru hattındaki diğer geliştirmeleri ve yol boyunca öğrenilen dersleri tartışıyoruz.

Çözüme genel bakış

Aşağıdaki diyagram, makine öğrenimi platformu mimarisini göstermektedir.

Üst Düzey Çözüm Tasarımı

Üst Düzey Çözüm Tasarımı

Bu makine öğrenimi platformu, çeşitli kod havuzlarında farklı modeller tarafından tüketilmek üzere tasarlandı ve tasarlandı. Ekibimiz, tüm kod havuzlarını korumak için bir kaynak kod yönetim aracı olarak GitLab'ı kullanıyor. Model deposu kaynak kodundaki herhangi bir değişiklik, kullanılarak sürekli olarak entegre edilir. Gitlab CIardışık düzendeki müteakip iş akışlarını çağıran (model eğitimi, değerlendirme ve dağıtım).

Aşağıdaki mimari diyagram, uçtan uca iş akışını ve MLOps ardışık düzenimizde yer alan bileşenleri göstermektedir.

Uçtan Uca İş Akışı

Uçtan Uca İş Akışı

Makine öğrenimi modeli eğitimi, değerlendirmesi ve dağıtım ardışık düzenleri, Amazon MWAA kullanılarak düzenlenir. Yönlendirilmiş döngüsüz grafiği (DAG). DAG, nasıl çalıştırılmaları gerektiğini söylemek için bağımlılıklar ve ilişkilerle birlikte düzenlenen bir görevler koleksiyonudur.

Üst düzeyde, çözüm mimarisi üç ana bileşen içerir:

  • Makine öğrenimi ardışık düzeni kod deposu
  • Makine öğrenimi modeli eğitimi ve değerlendirme ardışık düzeni
  • Makine öğrenimi modeli dağıtım ardışık düzeni

Bu farklı bileşenlerin nasıl yönetildiğini ve birbirleriyle nasıl etkileşime girdiklerini tartışalım.

Makine öğrenimi ardışık düzeni kod deposu

Model deposu, MLOps deposunu aşağı akış ardışık düzeni olarak entegre ettikten ve bir veri bilimcisi, model deposunda kod işledikten sonra, bir GitLab çalıştırıcısı, o depoda tanımlanan standart kod doğrulamasını ve testi yapar ve kod değişikliklerine dayalı olarak MLOps ardışık düzenini tetikler. Bu tetikleyiciyi farklı depolarda etkinleştirmek için Gitlab'ın çoklu proje ardışık düzenini kullanıyoruz.

MLOps GitLab işlem hattı, belirli bir dizi aşamayı çalıştırır. Pylint kullanarak temel kod doğrulaması yapar, modelin eğitim ve çıkarım kodunu Docker görüntüsü içinde paketler ve kapsayıcı görüntüsünü Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR'si). Amazon ECR, yüksek performanslı barındırma sunan, tam olarak yönetilen bir kapsayıcı kayıt defteridir, böylece uygulama görüntülerini ve yapıtlarını istediğiniz yere güvenilir bir şekilde dağıtabilirsiniz.

Makine öğrenimi modeli eğitimi ve değerlendirme ardışık düzeni

Görüntü yayınlandıktan sonra, eğitim ve değerlendirmeyi tetikler Apache Hava Akışı boru hattı üzerinden AWS Lambda işlev. Lambda, sunucuları tedarik etmeden veya yönetmeden hemen hemen her tür uygulama veya arka uç hizmeti için kod çalıştırmanıza izin veren, sunucusuz, olay odaklı bir bilgi işlem hizmetidir.

Ardışık düzen başarıyla tetiklendikten sonra Eğitim ve Değerlendirme DAG'sini çalıştırır ve bu da SageMaker'da model eğitimini başlatır. Bu eğitim hattının sonunda, belirlenen kullanıcı grubu, e-posta yoluyla eğitim ve model değerlendirme sonuçlarını içeren bir bildirim alır. Amazon Basit Bildirim Servisi (Amazon SNS) ve Slack. Amazon SNS, A2A ve A2P mesajlaşma için tam olarak yönetilen pub/sub hizmetidir.

Değerlendirme sonuçlarının titiz bir şekilde analiz edilmesinin ardından, yeni eğitilen modelin performansı önceki sürüme kıyasla daha iyiyse, veri bilimcisi veya makine öğrenimi mühendisi yeni modeli dağıtabilir. Modellerin performansı, modele özgü metriklere (F1 puanı, MSE veya karışıklık matrisi gibi) dayalı olarak değerlendirilir.

Makine öğrenimi modeli dağıtım ardışık düzeni

Kullanıcı, dağıtımı başlatmak için aynı Lambda işlevi aracılığıyla Dağıtım DAG'sini tetikleyen GitLab işini başlatır. Ardışık düzen başarıyla çalıştıktan sonra SageMaker uç noktasını yeni modelle oluşturur veya günceller. Bu ayrıca Amazon SNS ve Slack kullanarak e-posta üzerinden uç nokta ayrıntılarını içeren bir bildirim gönderir.

Boru hatlarından herhangi birinde arıza olması durumunda, kullanıcılar aynı iletişim kanalları üzerinden bilgilendirilir.

SageMaker, düşük gecikme süresi ve yüksek iş hacmi gereksinimleri olan çıkarım iş yükleri için ideal olan gerçek zamanlı çıkarım sunar. Bu uç noktalar tamamen yönetilir, yük dengelidir ve otomatik olarak ölçeklendirilir ve yüksek kullanılabilirlik için birden çok Erişilebilirlik Alanına dağıtılabilir. İşlem hattımız, başarılı bir şekilde çalıştıktan sonra bir model için böyle bir uç nokta oluşturur.

Aşağıdaki bölümlerde, farklı bileşenleri genişletiyor ve ayrıntılara dalıyoruz.

GitLab: Paket modelleri ve tetikleme ardışık düzenleri

GitLab'ı kod depomuz olarak ve ardışık düzen olarak model kodunu paketlemek ve aşağı akış Airflow DAG'lerini tetiklemek için kullanıyoruz.

Çok projeli ardışık düzen

Çoklu proje GitLab ardışık düzen özelliği, üst ardışık düzenin (yukarı akış) bir model deposu ve alt ardışık düzenin (aşağı akış) MLOps deposu olduğu durumlarda kullanılır. Her depo bir .gitlab-ci.yml tutar ve yukarı akış işlem hattında etkinleştirilen aşağıdaki kod bloğu, aşağı akış MLOps işlem hattını tetikler.

trigger: project: path/to/ml-ops branch: main strategy: depend

Yukarı akış boru hattı, model kodunu, paketleme ve yayınlama CI işlerinin tetiklendiği aşağı akış boru hattına gönderir. Model kodunu konteyner haline getirmek ve Amazon ECR'de yayınlamak için kullanılan kod, MLOps ardışık düzeni tarafından korunur ve yönetilir. ACCESS_TOKEN gibi değişkenleri gönderir (altında oluşturulabilir) Ayarlar, giriş), JOB_ID (yukarı akış yapıtlarına erişmek için) ve $CI_PROJECT_ID (model deposunun proje kimliği) değişkenleri, böylece MLOps ardışık düzeni model kod dosyalarına erişebilir. İle iş eserleri Gitlab'ın bir özelliği olan aşağı akış deposu, aşağıdaki komutu kullanarak uzak yapılara erişir:

curl --output artifacts.zip --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/jobs/42/artifacts"

Model deposu, onu tetikleyen aşamayı genişleterek aynı depodaki birden fazla model için aşağı akış işlem hatlarını kullanabilir. uzanır Aynı yapılandırmayı farklı aşamalarda yeniden kullanmanıza izin veren GitLab anahtar sözcüğü.

Model görüntüsünü Amazon ECR'de yayınladıktan sonra MLOps ardışık düzeni, Lambda kullanarak Amazon MWAA eğitim ardışık düzenini tetikler. Kullanıcı onayından sonra, aynı Lambda işlevini kullanarak model dağıtımı Amazon MWAA işlem hattını da tetikler.

Semantik sürüm oluşturma ve sürümleri aşağı akışa geçirme

ECR görüntülerini ve SageMaker modellerini sürümlemek için özel kod geliştirdik. MLOps işlem hattı, model kodunun kapsayıcı haline getirildiği aşamanın bir parçası olarak görüntüler ve modeller için anlamsal sürüm oluşturma mantığını yönetir ve sürümleri yapıtlar olarak sonraki aşamalara aktarır.

yeniden eğitim

Yeniden eğitim, makine öğrenimi yaşam döngüsünün çok önemli bir yönü olduğu için, yeniden eğitim yeteneklerini boru hattımızın bir parçası olarak uyguladık. Model yeniden eğitim sürüm numarası ve zaman damgasına dayalı olarak yeniden eğitim olup olmadığını belirlemek için SageMaker list-models API'sini kullanıyoruz.

Yeniden eğitim boru hattının günlük programını kullanarak yönetiyoruz GitLab'ın zamanlama ardışık düzenleri.

Terraform: Altyapı kurulumu

Bu çözüm, bir Amazon MWAA kümesine, ECR depolarına, Lambda işlevlerine ve SNS konusuna ek olarak AWS Kimlik ve Erişim Yönetimi (IAM) rolleri, kullanıcıları ve politikaları; Amazon Basit Depolama Hizmeti (Amazon S3) paketleri ve bir Amazon Bulut İzleme günlük iletici.

Boru hattımız boyunca yer alan hizmetler için altyapı kurulumunu ve bakımını kolaylaştırmak için Terraform altyapıyı kod olarak uygulamak. Altyapı güncellemeleri gerektiğinde, kod değişiklikleri, değişiklikleri doğrulayan ve çeşitli ortamlara dağıtan (örneğin, geliştirme, aşama ve üretim hesaplarında bir IAM politikasına izin ekleme) kurduğumuz bir GitLab CI ardışık düzenini tetikler.

Amazon ECR, Amazon S3 ve Lambda: Ardışık düzen kolaylaştırma

İşlem hattımızı kolaylaştırmak için aşağıdaki temel hizmetleri kullanıyoruz:

  • Amazon ECR'si – Model kapsayıcı görüntülerinin uygun şekilde alınmasını sağlamak ve sürdürmek için, bunları semantik sürümlerle etiketliyoruz ve her biri için ayarlanmış ECR depolarına yüklüyoruz. ${project_name}/${model_name} Terraform aracılığıyla. Bu, farklı modeller arasında iyi bir yalıtım katmanı sağlar ve özel algoritmalar kullanmamıza ve çıkarım isteklerini ve yanıtları istenen model bildirim bilgilerini (model adı, sürüm, eğitim veri yolu vb.) içerecek şekilde biçimlendirmemize olanak tanır.
  • Amazon S3 – Model eğitimi verilerini, model başına eğitilmiş model yapılarını, Airflow DAG'leri ve ardışık düzenlerin gerektirdiği diğer ek bilgileri sürdürmek için S3 gruplarını kullanıyoruz.
  • Lambda – Airflow kümemiz, güvenlik hususları için ayrı bir VPC'de konuşlandırıldığından, DAG'lere doğrudan erişilemez. Bu nedenle, DAG adıyla belirtilen herhangi bir DAG'yi tetiklemek için yine Terraform ile sürdürülen bir Lambda işlevi kullanırız. Uygun IAM kurulumu ile GitLab CI işi, yapılandırmalardan istenen eğitim veya dağıtım DAG'lerine kadar geçen Lambda işlevini tetikler.

Amazon MWAA: Eğitim ve dağıtım ardışık düzenleri

Daha önce de belirtildiği gibi, eğitim ve dağıtım işlem hatlarını düzenlemek için Amazon MWAA kullanıyoruz. adresinde bulunan SageMaker operatörlerini kullanıyoruz. Airflow için Amazon sağlayıcı paketi SageMaker ile entegre etmek için (jinja şablonlamasından kaçınmak için).

Bu eğitim hattında aşağıdaki operatörleri kullanıyoruz (aşağıdaki iş akışı şemasında gösterilmiştir):

MWAA Eğitim Boru Hattı

MWAA Eğitim Boru Hattı

Dağıtım boru hattında aşağıdaki işleçleri kullanıyoruz (aşağıdaki iş akışı şemasında gösterilmiştir):

Model Dağıtım İşlem Hattı

Model Dağıtım İşlem Hattı

Hata/başarı mesajlarını ve değerlendirme sonuçlarını her iki ardışık düzende yayınlamak için Slack ve Amazon SNS kullanıyoruz. Slack, aşağıdakiler de dahil olmak üzere mesajları özelleştirmek için çok çeşitli seçenekler sunar:

  • SnsPublish Operatörü - Kullanırız SnsPublish Operatörü kullanıcı e-postalarına başarı/başarısızlık bildirimleri göndermek için
  • Gevşek API – Biz yarattık gelen web kancası URL'si boru hattı bildirimlerini istenen kanala almak için

CloudWatch ve VMware Wavefront: İzleme ve günlük kaydı

Uç nokta izlemeyi ve günlüğe kaydetmeyi yapılandırmak için bir CloudWatch kontrol paneli kullanıyoruz. Her projeye özgü çeşitli operasyonel ve model performans ölçümlerinin görselleştirilmesine ve izlenmesine yardımcı olur. Bazılarını izlemek için ayarlanan otomatik ölçeklendirme politikalarına ek olarak, CPU ve bellek kullanımındaki değişiklikleri, saniye başına istekleri, yanıt gecikmelerini ve model metriklerini sürekli olarak izliyoruz.

CloudWatch, proje düzeyindeki diğer hizmetlerin yanı sıra model uç noktaları için metrikleri görselleştirebilmesi için bir VMware Tanzu Wavefront panosuyla bile entegre edilmiştir.

İş avantajları ve sırada ne var?

ML ardışık düzenleri, ML hizmetleri ve özellikleri için çok önemlidir. Bu gönderide, AWS'nin yeteneklerini kullanan uçtan uca makine öğrenimi kullanım örneğini ele aldık. Projelerde ve modellerde yeniden kullanabileceğimiz SageMaker ve Amazon MWAA kullanarak özel bir ardışık düzen oluşturduk ve model eğitiminden üretim dağıtımına kadar geçen süreyi 10 dakikaya kadar azaltan makine öğrenimi yaşam döngüsünü otomatik hale getirdik.

Makine öğrenimi yaşam döngüsü yükünün SageMaker'a kaydırılmasıyla, model eğitimi ve dağıtımı için optimize edilmiş ve ölçeklenebilir altyapı sağladı. SageMaker ile sunulan model, milisaniyelik gecikmeler ve izleme yetenekleriyle gerçek zamanlı tahminler yapmamıza yardımcı oldu. Kurulum kolaylığı ve altyapı yönetimi için Terraform'u kullandık.

Bu ardışık düzen için sonraki adımlar, model eğitimi ardışık düzenini ister programlanmış ister model kayması algılamaya dayalı olsun, yeniden eğitim yetenekleriyle geliştirmek, daha hızlı ve nitelikli model dağıtımı için gölge dağıtımını veya A/B testini desteklemek ve makine öğrenimi köken takibini geliştirmek olacaktır. değerlendirmeyi de planlıyoruz. Amazon SageMaker Ardışık Düzenleri çünkü GitLab entegrasyonu artık destekleniyor.

Öğrenilen Dersler

Bu çözümü oluşturmanın bir parçası olarak, erkenden genelleme yapmanız gerektiğini ancak aşırı genelleme yapmamanız gerektiğini öğrendik. Mimari tasarımı ilk bitirdiğimizde, en iyi uygulama olarak model kodu için kod şablonu oluşturmaya ve uygulamaya çalıştık. Bununla birlikte, geliştirme sürecinin o kadar erken bir aşamasındaydı ki, şablonlar ya çok genelleştirilmiş ya da gelecekteki modeller için yeniden kullanılamayacak kadar ayrıntılıydı.

İlk modeli ardışık düzen aracılığıyla teslim ettikten sonra, önceki çalışmalarımızdan elde edilen içgörülere dayalı olarak şablonlar doğal bir şekilde ortaya çıktı. Bir boru hattı ilk günden itibaren her şeyi yapamaz.

Model denemesi ve üretimi genellikle çok farklı (hatta bazen çelişen) gereksinimlere sahiptir. Bu gereksinimleri ekip olarak baştan dengelemek ve buna göre önceliklendirme yapmak çok önemlidir.

Ayrıca, bir hizmetin tüm özelliklerine ihtiyacınız olmayabilir. Bir hizmetin temel özelliklerini kullanmak ve modüler bir tasarıma sahip olmak, daha verimli geliştirmenin ve esnek bir işlem hattının anahtarıdır.

Sonuç

Bu gönderide, veri bilimcilerin çok az manuel müdahalesi ile modelleri üretime dağıtma sürecini otomatikleştiren SageMaker ve Amazon MWAA kullanarak nasıl bir MLOps çözümü oluşturduğumuzu gösterdik. Eksiksiz bir MLOps çözümü oluşturmak için SageMaker, Amazon MWAA, Amazon S3 ve Amazon ECR gibi çeşitli AWS hizmetlerini değerlendirmenizi öneririz.

*Apache, Apache Airflow ve Airflow tescilli ticari markalar veya tescilli ticari markalardır. Apache Yazılım Vakfı Amerika Birleşik Devletleri ve/veya diğer ülkelerde.


Yazarlar Hakkında

 Deepak Mettem VMware, Karbon Siyahı Birimi'nde Kıdemli Mühendislik Müdürüdür. O ve ekibi, müşterilere gerçek zamanlı olarak makine öğrenimi tabanlı çözümler sunmak için yüksek düzeyde kullanılabilir, ölçeklenebilir ve dayanıklı akış tabanlı uygulamalar ve hizmetler oluşturmak için çalışıyor. Kendisi ve ekibi, veri bilimcilerin üretimde makine öğrenimi modellerini oluşturmaları, eğitmeleri, dağıtmaları ve doğrulamaları için gerekli araçları oluşturmaktan da sorumludur.

Mahima Agarwal VMware, Carbon Black Unit'te Makine Öğrenimi Mühendisidir.
VMware CB SBU için makine öğrenimi platformunun temel bileşenlerini ve mimarisini tasarlama, oluşturma ve geliştirme üzerinde çalışıyor.

Vamshi Krishna Enabothala AWS'de Kıdemli Uygulamalı Yapay Zeka Uzmanı Mimardır. Yüksek etkili verileri, analitiği ve makine öğrenimi girişimlerini hızlandırmak için farklı sektörlerden müşterilerle birlikte çalışıyor. AI ve ML'deki öneri sistemleri, NLP ve bilgisayarla görme alanları hakkında tutkulu. İş dışında, Vamshi bir RC meraklısıdır, RC ekipmanları (uçaklar, arabalar ve dronlar) inşa eder ve ayrıca bahçecilikten hoşlanır.

Sahil Thapar Kurumsal Çözümler Mimarıdır. AWS Cloud üzerinde yüksek düzeyde kullanılabilir, ölçeklenebilir ve esnek uygulamalar oluşturmalarına yardımcı olmak için müşterilerle birlikte çalışır. Şu anda kapsayıcılar ve makine öğrenimi çözümlerine odaklanmaktadır.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi