Databricks Not defteri 'ni kullanarak Azure Databricks MLOps 'yi yönetme

Databricks
Blob Depolama
İzleyici

Bu senaryo, bir Orchestrator olarak Databricks Not defteri 'ni kullanarak Azure Databricks model eğitimi ve toplu Puanlama çalıştırmayı ve açık kaynaklı Mlflow platformunu kullanarak uçtan uca makine öğrenimi yaşam döngüsünü yönetmeyi içeren makine öğrenimi Işlemlerine (mlops) yönelik bir yaklaşım açıklamaktadır.

Olası kullanım örnekleri

Model eğitimi ve toplu Puanlama için büyük veri kümeleri (milyonlarca kayıt) kullanılırken, özellik Mühendisliği, model eğitimi ve diğerleri gibi MLOps aşamaları uzun süre çalışan süreçler haline gelebilir. Bu uzun süre çalışan görevlerin düzgün şekilde işlendiğinden ve her aşamanın dayanıklı bağlantısı devam ettikçe emin olmak için, MLOps aşamalarını yüksek ölçüde denetim ve esneklik ile yönetmek, izlemek ve çalıştırmak oldukça önemlidir.

MLflow projesi kullanmak, farklı MLOps aşamalarını düzenlemek için yaygın bir yaklaşımdır. Ancak, barındırma ve dağıtım sistemlerindeki sınırlamalar, MLflow kullanarak dayanıklı bağlantısı aşamalarını çalıştırmayı zorlaştırır. Alternatif olarak, Databricks Not defterini, model eğitimi veya toplu Puanlama için gereken farklı MLOps aşamalarını yöneten bir Orchestrator olarak kullanabilirsiniz.

Databricks Not defteri Orchestrator, mevcut bir Databricks kümesinde bir Databricks işi kullanılarak veya yeni bir kümede, pencere öğeleri, dizüstü bilgisayar kapsamlı kitaplıklar, işler ve daha fazlası gibi ek Databricks özelliklerinden yararlanarak düzenleme üzerinde daha fazla denetim elde etmenizi sağlayan bir yaklaşım ile yürütülebilir.

Mimari

Bu senaryodaki işlem aşağıdaki gibi çalışmaktadır:

  1. Sürekli tümleştirme ardışık düzenini yürütün. Bu şunları içerir:

    1. Birim testleri ve LINT denetimleri.

    2. ML kaynak kodu ve mlops kaynak kodu (tekerlek paketleri) paketleniyor.

  2. Sürekli dağıtım işlem hattını yürütün. Bu şunları içerir:

    1. ML ve mlops tekerleği paketleri dbfs Azure Databricks karşıya yükleniyor.

    2. Orchestrator Python kaynak dosyalarını Azure Databricks Not defterleri olarak içeri aktarma.

    3. Kaynak denetiminde depolanan iş şablonları (JSON dosyaları) başına Azure Databricks işleri oluşturma veya güncelleştirme.

  3. Gerekli parametrelerle model eğitimi veya Azure Databricks işlerinin toplu Puanlama tetikleyin veya zamanlayın.

  4. Azure Databricks iş, ilgili Orchestrator Not defterini çağırır.

  5. orchestrator not defteri, ML ve mlops tekerlek paketlerini not defteri kapsamındaki kitaplıklar olarak yüklemek için bir magic Python "pıp" komutu yürütür.

  6. orchestrator not defteri, mlops Python işlevini ve ilgili tekerlek paketlerinden aşama için ML python işlevini yürütür.

    Ayrıca, Azure Databricks işin belirli bir çalıştırması veya yeniden çalıştırılması için belirli MLOps aşamalarını etkinleştirmek veya devre dışı bırakmak üzere koşullu Python mantığı da uygulayabilirsiniz. Örneğin, MLOps aşaması "özellik Mühendisliği" yeniden çalıştırmak için devre dışı bırakılması gerekiyorsa, devre dışı bırakıldığında ayarlamak için bir Azure Databricks iş parametresi kullanabilirsiniz.

    Note: Bu adım tüm MLOps aşamaları için yinelenir.

  7. model eğitimi veya toplu puanlama sonuçları, hem mlflow yapıtları hem de Azure Depolama, kullanıma göre yayımlanabilir:

    1. MLflow model kayıt defteri, toplu Puanlama için eğitilen modeli depolamak için kullanılır.

    2. MLflow yapıtları, eğitim veya toplu işlem Puanlama sırasında istatistiksel sonuçlar içerebilir. Örneğin, PCA grafikleri, Box çizimleri, UMAP vb.

    3. Azure Depolama, toplu puanlama sonuçları içerebilir.

  8. Azure Databricks işi için bir çalıştırma izleniyor:

    1. MLflow parametreleri, model ile ilgili parametreleri (eğitim hiper parametreleri vb.) depolamak için kullanılır.

    2. MLflow ölçümleri, model performans ölçümlerini depolamak için kullanılır.

    3. Azure Izleyici, MLOps aşama günlüklerinin, izlemelerinin ve ölçümlerinin depolanması için kullanılır.

    4. Azure Izleyici, Azure Databricks kümelerinin genel izlenmesi için kullanılır.

Avantajlar

Bu yaklaşım, uzun süre çalışan işlem sorununu gidermeye ek olarak olası avantajlar da sağlar:

  • MLflow projelerine alternatif

    • Bu yaklaşım, mevcut bir Databricks kümesinin yeniden kullanılmasını sağlar. Bir MLflow projesini Azure Databricks karşı çalıştırmak için yeni bir kümenin oluşturulması gerekir; var olan bir küme kullanılamaz. Ancak, bazı durumlarda Databricks üzerinde yeni bir küme oluşturmak mümkün değildir; Örneğin, Databricks hizmeti paylaşılıyorsa veya yeni kümeler oluşturmak için gerekli izinlere sahip değilseniz. Bu durumlarda bu yaklaşım bir geçici çözüm sunar.

    • Bu yaklaşım, dış sistemlerle etkileşime girmeden Işler veya düğüm havuzları gibi özellikleri kullanarak Databricks ekosistemi içinde tamamen kullanılabilir (örneğin, MLflow CLı). Databricks erişimi bir VPN 'nin arkasında kısıtlandığında bu işlem gerekli olabilir.

  • MLOps kodunun test edilebilirlik

    • MLOps paketlerinin birim testi, geliştirme sürecinizdeki hataların başlarında algılanabilmesini mümkün.

    • Düzenleme için not defterlerini kullanarak, Orchestrator kodu, Nuttergibi bir test çerçevesinin yardımıyla tümleştirme testleri kullanılarak test edilebilir.

Bileşenler

Bu senaryo aşağıdaki bileşenleri kullanır:

  • iş akışlarının verimliliğini artıran DevOps ilkelerine ve uygulamalarına göre mlops.

  • Mlflow, uçtan uca makine öğrenimi yaşam döngüsünü yönetmeye yönelik açık kaynaklı bir platformdur.

  • Microsoft Azure bulut hizmetleri platformu için iyileştirilmiş bir veri analizi platformu Azure Databricks.

  • Azure Blob depolama, Microsoft 'un bulut için nesne depolama çözümüdür. Blob depolama, çok miktarda yapılandırılmamış veriyi depolamak için iyileştirilmiştir.

  • Bulut ve şirket içi ortamlarınızdaki telemetri toplama, çözümleme ve üzerinde işlem yapmaya yönelik kapsamlı bir çözüm olan Azure izleyici.

Dikkat edilmesi gerekenler

Bu mimari, uzak ortamlarda yürütme için derleme desteği sağlamaz.

Alternatifler

Yeni Databricks kümeleri oluşturabiliyor ve MLflow CLı gibi dış sistemlerle etkileşime girebiliyorsanız, MLflow projelerini kullanarak bu iş yükü türlerini çalıştırmayı da düşünebilirsiniz. Bkz. Azure Databricks MLflow projelerini çalıştırma.

iş yükleriniz Azure Machine Learning kullanarak uzaktan yürütmeyi ve Azure kubernetes hizmeti (aks) gibi kapsayıcılı bir dağıtım çözümünü büyük ölçüde kullanıyorsa, mlflow ayrıca gereksinimlerinize daha uygun olabilir. Bkz. Mlflow ve Azure Machine Learning.

Fiyatlandırma

Bu kullanım durumuyla ilgili ücretler, kullanımınıza bağlı olarak aşağıdaki hizmetlere ait standart fiyatlandırmaya bağlıdır:

Bu senaryoyu dağıtın

Bu kavramın örnek bir uygulamasına, MLflow deposu kullanan Azure Databricks MLOps ' de erişilebilir. Bu örnek şunları sağlar:

  • Bir mlflow projelerinikullanmadan Python tabanlı MLOps çalıştırmanın bir yolu, ancak yine de uçtan uca makine öğrenimi yaşam döngüsünü yönetmek Için mlflow kullanıyor.

  • Birim test çalışmalarıyla birlikte makine öğrenimi kaynak kodu yapısının bir örneği.

  • Birim test çalışmalarıyla birlikte MLOps kod yapısının bir örneği.

  • Aboneliğinizde denenecek bir demo kurulum yapılandırması.

Sonraki adımlar

Azure 'da makine öğrenimi çözümü geliştirme hakkında daha fazla bilgi edinmek istiyor musunuz? Aşağıdaki makaleleri göz önünde bulundurun:

Bu mimari merkezi makalelerini de yararlı bulabilirsiniz: