Azure Databricks kullanarak MLOps'u düzenleme

Azure Databricks

Çözüm fikirleri

Bu makale bir çözüm fikridir. İçeriği olası kullanım örnekleri, alternatif hizmetler, uygulama konuları veya fiyatlandırma yönergeleri gibi daha fazla bilgiyle genişletmemizi isterseniz GitHub geri bildirimi sağlayarak bize bildirin.

Bu makale, Azure Databricks kullanan bir makine öğrenmesi işlemleri (MLOps) mimarisi ve işlemi sağlar. Bu işlem, makine öğrenmesi modellerini ve işlem hatlarını geliştirme aşamasından üretime taşımanın standartlaştırılmış bir yolunu tanımlar ve otomatik ve el ile gerçekleştirilen işlemleri dahil etme seçenekleri sunar.

Mimari

Diagram that shows a solution for using Azure Databricks for MLOps.

Bu mimarinin bir Visio dosyasını indirin.

İş Akışı

Bu çözüm, Azure Databricks kullanan sağlam bir MLOps işlemi sağlar. Mimarideki tüm öğeler eklenebilir olduğundan, gerektiğinde mimari boyunca diğer Azure ve üçüncü taraf hizmetleri tümleştirebilirsiniz. Bu mimari ve açıklama, MLOps'un Büyük Kitabı e-kitabından uyarlanmıştır. Bu e-kitap, burada açıklanan mimariyi daha ayrıntılı olarak inceler.

  • Kaynak denetimi: Bu projenin kod deposu not defterlerini, modülleri ve işlem hatlarını düzenler. Veri bilimciler güncelleştirmeleri ve yeni modelleri test etmek için geliştirme dalları oluşturur. Kod, Azure Databricks çalışma alanlarınızla eşitlemek için Databricks Repos tümleştirmesi ile git tarafından yedeklenen not defterlerinde veya IDE'lerde geliştirilmiştir. Kaynak denetimi, makine öğrenmesi işlem hatlarını geliştirme aşamasından hazırlamaya (test için), üretime (dağıtım için) kadar yükseltmektedir.

  • Lakehouse - üretim verileri: Veri bilimciler, üretim verilerine salt okunur erişime sahip oldukları geliştirme ortamında çalışır. (Alternatif olarak, veriler yansıtılabilir veya yeniden oluşturulabilir.) Geliştirme ve deneme için geliştirme depolama ortamına okuma/yazma erişimi de vardır. Verilerin Azure Data Lake Depolama Delta Lake biçiminde depolandığı veriler için Lakehouse mimarisini öneririz. Erişim denetimleri, Microsoft Entra kimlik bilgisi geçişi veya tablo erişim denetimleri ile tanımlanır.

Geliştirme

Geliştirme ortamında veri bilimciler ve mühendisler makine öğrenmesi işlem hatları geliştirir.

  1. Keşif veri analizi (EDA): Veri bilimciler etkileşimli ve yinelemeli bir süreçte verileri keşfeder. Bu geçici çalışma hazırlamaya veya üretime dağıtılmayabilir. Araçlar Databricks SQL, dbutils.data.summarize ve AutoML'yi içerebilir.

  2. Model eğitimive diğer makine öğrenmesi işlem hatları: Makine öğrenmesi işlem hatları, not defterlerinde ve/veya IDE'lerde modüler kod olarak geliştirilmiştir. Örneğin, model eğitim işlem hattı Feature Store'dan ve diğer Lakehouse tablolarından verileri okur. Günlük modeli parametrelerini ve ölçümlerini MLflow izleme sunucusuna eğitme ve ayarlama. Özellik Deposu API'sinde son model günlüğe kaydedilir. Bu günlükler modeli, girişlerini ve eğitim kodunu birbirine bağlar.

  3. İşleme kodu: Veri bilimcisi, makine öğrenmesi iş akışını üretime yükseltmek için kaynak denetimine özellik kazandırma, eğitim ve diğer işlem hatlarına yönelik kodu işler.

Hazırlama

Hazırlama ortamında CI altyapı testleri, üretimi taklit eden bir ortamda makine öğrenmesi işlem hatlarına dönüşür.

  1. Birleştirme isteği: Kaynak denetiminde projenin hazırlama (ana) dalında bir birleştirme (veya çekme) isteği gönderildiğinde, Azure DevOps gibi bir sürekli tümleştirme ve sürekli teslim (CI/CD) aracı testleri çalıştırır.

  2. Birim ve CI testleri: Birim testleri CI altyapısında, tümleştirme testleri ise Azure Databricks'te uçtan uca iş akışları çalıştırır. Testler başarılı olursa kod değişiklikleri birleştirilir.

  3. Yayın dalı oluşturma: Makine öğrenmesi mühendisleri güncelleştirilmiş makine öğrenmesi işlem hatlarını üretim ortamına dağıtmaya hazır olduğunda yeni bir sürüm oluşturabilirler. CI/CD aracındaki bir dağıtım işlem hattı, güncelleştirilmiş işlem hatlarını yeni iş akışları olarak yeniden dağıtır.

Üretim

Makine öğrenmesi mühendisleri, makine öğrenmesi işlem hatlarının doğrudan son uygulamalara hizmet ettiği üretim ortamını yönetir. Üretim yenileme özellik tablolarındaki önemli işlem hatları, yeni modelleri eğitip dağıtın, çıkarım veya sunum çalıştırın ve model performansını izleyin.

  1. Özellik tablosu yenileme: Bu işlem hattı Verileri okur, özellikleri hesaplar ve Özellik Deposu tablolarına yazar. Akış modunda sürekli çalışır, bir zamanlamaya göre çalışır veya tetikler.

  2. Model eğitimi: Üretimde, model eğitimi veya yeniden eğitme işlem hattı tetiklenmiş veya en son üretim verileri üzerinde yeni bir model eğitmek üzere zamanlanmıştır. Modeller MLflow Model Kayıt Defteri'ne kaydedilir.

  3. Sürekli dağıtım: Yeni model sürümlerinin kaydedilmesi, modelin üretimde iyi performans göstermesini sağlamak için testler çalıştıran CD işlem hattını tetikler. Model testleri geçtikçe ilerleme durumu model aşaması geçişleri aracılığıyla Model Kayıt Defteri'nde izlenir. Kayıt defteri web kancaları otomasyon için kullanılabilir. Testler uyumluluk denetimlerini, yeni modeli geçerli üretim modeliyle karşılaştırmak için A/B testlerini ve altyapı testlerini içerebilir. Test sonuçları ve ölçümler Lakehouse tablolarına kaydedilir. İsteğe bağlı olarak modeller üretime geçirilmeden önce el ile oturum kapatmaları gerektirebilirsiniz.

  4. Model dağıtımı: Model üretime girerken puanlama veya sunum için dağıtılır. En yaygın dağıtım modları şunlardır:

    • Toplu iş veya akış puanlaması: Dakika veya daha uzun gecikme süreleri için toplu işlem ve akış en uygun maliyetli seçeneklerdir. Puanlama işlem hattı Özellik Deposu'ndan en son verileri okur, Model Kayıt Defteri'nden en son üretim modeli sürümünü yükler ve databricks işinde çıkarım gerçekleştirir. Lakehouse tablolarına, Java Veritabanı Bağlan ivity (JDBC) bağlantısına, düz dosyalara, ileti kuyruklarına veya diğer aşağı akış sistemlerine tahmin yayımlayabilir.
    • Çevrimiçi hizmet sunma (REST API'leri): Düşük gecikme süreli kullanım örnekleri için, çevrimiçi hizmet genellikle gereklidir. MLflow, Azure Databricks'te MLflow Model Sunma, bulut sağlayıcısı hizmet sistemleri ve diğer sistemlere model dağıtabilir. Her durumda, hizmet veren sistem Model Kayıt Defteri'nden en son üretim modeliyle başlatılır. Her istek için, çevrimiçi bir Özellik Mağazası'ndan özellikleri getirir ve tahminler yapar.
  5. İzleme: Sürekli veya düzenli iş akışları kayma, performans ve diğer ölçümler için giriş verilerini ve model tahminlerini izler. Delta Live Tables , ölçümleri Lakehouse tablolarında depolayarak izleme işlem hatlarının otomasyonunu basitleştirebilir. Databricks SQL, Power BI ve diğer araçlar panolar ve uyarılar oluşturmak için bu tablolardan okuyabilir.

  6. Yeniden eğitme: Bu mimari hem el ile hem de otomatik yeniden eğitme özelliklerini destekler. Zamanlanmış yeniden eğitme işleri, modellerin güncel kalmasını sağlamanın en kolay yoludur.

Bileşenler

  • Data Lakehouse. Lakehouse mimarisi, veri göllerinin ve veri ambarlarının en iyi öğelerini bir arada sunar ve genellikle veri gölleri tarafından sunulan düşük maliyetli, esnek nesne depolarıyla veri ambarlarında bulunan veri yönetimi ve performansı sunar.
    • Delta Lake , bir göl evi için açık kaynak veri biçimi için önerilen seçenektir. Azure Databricks verileri Data Lake Depolama'da depolar ve yüksek performanslı bir sorgu altyapısı sağlar.
  • MLflow , uçtan uca makine öğrenmesi yaşam döngüsünü yönetmeye yönelik açık kaynak bir projedir. Başlıca bileşenleri şunlardır:
  • Azure Databricks. Azure Databricks, kurumsal güvenlik özellikleri, yüksek kullanılabilirlik ve diğer Azure Databricks çalışma alanı özellikleriyle tümleştirmeler içeren yönetilen bir MLflow hizmeti sağlar.
    • Machine Learning için Databricks Runtime, AutoML ve Feature Store istemcileri gibi Machine Learning araçları için Azure Databricks'e ek olarak TensorFlow, PyTorch ve XGBoost gibi popüler makine öğrenmesi kitaplıklarını önceden yükleyerek makine öğrenmesi için iyileştirilmiş bir kümenin oluşturulmasını otomatikleştirir.
    • Özellik Deposu , özelliklerin merkezi bir deposudur. Özellik paylaşımını ve bulmayı sağlar ve model eğitimi ile çıkarım arasında veri dengesizliğini önlemeye yardımcı olur.
    • Databricks SQL. Databricks SQL, Lakehouse verileri üzerindeki SQL sorguları ve görselleştirmeler, panolar ve uyarılar için basit bir deneyim sağlar.
    • Databricks Repos , Azure Databricks çalışma alanında Git sağlayıcınızla tümleştirme sağlayarak not defterlerinin, kod ve IDE tümleştirmesinin işbirliğine dayalı geliştirilmesini basitleştirir.
    • İş akışları ve işler, Azure Databricks kümesinde etkileşimli olmayan kod çalıştırmanın bir yolunu sağlar. Makine öğrenmesi için işler veri hazırlama, özellik geliştirme, eğitim, çıkarım ve izleme için otomasyon sağlar.

Alternatifler

Bu çözümü Azure altyapınıza uyarlayabilirsiniz. Yaygın özelleştirmeler şunlardır:

  • Ortak bir üretim çalışma alanını paylaşan birden çok geliştirme çalışma alanı.
  • Mevcut altyapınız için bir veya daha fazla mimari bileşeni alışverişi. Örneğin, Databricks işlerini yönetmek için Azure Data Factory'yi kullanabilirsiniz.
  • Git ve Azure Databricks REST API'leri aracılığıyla mevcut CI/CD araçlarınızla tümleştirme.

Senaryo ayrıntıları

MLOps, makine öğrenmesi ve yapay zeka sistemlerinde hata riskini azaltmaya ve işbirliği ve araç verimliliğini artırmaya yardımcı olur. MLOps'a giriş ve bu mimariye genel bakış için bkz . Lakehouse'da MLOps Mimarisi Oluşturma.

Bu mimariyi kullanarak şunları yapabilirsiniz:

  • Makine öğrenmesi ve veri bilimi ekipleriyle iş paydaşlarınızı Bağlan. Bu mimari, veri bilim adamlarının geliştirme için not defterlerini ve IDE'leri kullanmasına olanak tanır. İş paydaşlarının databricks SQL'deki ölçümleri ve panoları görüntülemesine olanak tanır ve bunların tümü aynı Lakehouse mimarisi içindedir.
  • Makine öğrenmesi altyapınızı verimerkezli hale getirin. Bu mimari, makine öğrenmesi verilerini (özellik mühendisliği, eğitim, çıkarım ve izleme verileri) diğer veriler gibi ele alır. Makine öğrenmesi veri işleme için üretim işlem hatları, pano oluşturma ve diğer genel veri işleme araçlarını yeniden kullanır.
  • Modüllerde ve işlem hatlarında MLOps uygulayın. Her yazılım uygulamasında olduğu gibi, bu mimarideki modülerleştirilmiş işlem hatları ve kodlar tek tek bileşenlerin test edilmesine olanak tanır ve gelecekteki yeniden düzenleme maliyetini azaltır.
  • MLOps işlemlerinizi gerektiği gibi otomatikleştirin. Bu mimaride üretkenliği artırmaya ve insan hatası riskini azaltmaya yönelik adımları otomatikleştirebilirsiniz ancak her adımın otomatikleştirilmesine gerek kalmaz. Azure Databricks, otomasyon api'lerine ek olarak kullanıcı arabirimi ve el ile işlemlere izin verir.

Olası kullanım örnekleri

Bu mimari her tür makine öğrenmesi, derin öğrenme ve gelişmiş analiz için geçerlidir. Bu mimaride kullanılan yaygın makine öğrenmesi / yapay zeka teknikleri şunlardır:

  • Doğrusal modeller, ağaç tabanlı modeller ve hızlandırma gibi klasik makine öğrenmesi.
  • TensorFlow ve PyTorch gibi modern derin öğrenme.
  • İstatistikler, Bayes yöntemleri ve graf analizi gibi özel analizler.

Mimari hem küçük verileri (tek makine) hem de büyük verileri (dağıtılmış bilgi işlem ve GPU hızlandırmalı) destekler. Mimarinin her aşamasında, verilerinize ve sorun boyutlarınıza uyum sağlamak için işlem kaynaklarını ve kitaplıkları seçebilirsiniz.

Mimari, tüm sektör türleri ve iş kullanım örnekleri için geçerlidir. Bu ve benzer mimarileri kullanan Azure Databricks müşterileri, aşağıdaki gibi sektörlerdeki küçük ve büyük kuruluşları içerir:

  • Tüketici ürünleri ve perakende hizmetleri
  • Finansal hizmetler
  • Sağlık hizmetleri ve yaşam bilimleri
  • Bilgi teknolojisi

Örnekler için Databricks web sitesine bakın.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

Diğer katkıda bulunan:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar