Model dağıtım desenleri
Bu makalede, ML yapıtlarını hazırlama ve üretime taşımaya yönelik iki yaygın desen açıklanmaktadır. Modellerde ve kodda yapılan değişikliklerin zaman uyumsuz yapısı, ml geliştirme işleminin izleyebilebileceği birden çok olası desen olduğu anlamına gelir.
Modeller kod tarafından oluşturulur, ancak sonuçta elde edilen model yapıtları ve bunları oluşturan kod zaman uyumsuz olarak çalışabilir. Başka bir ifadeyle, yeni model sürümleri ve kod değişiklikleri aynı anda gerçekleşmeyebilir. Örneğin, aşağıdaki senaryoları değerlendirin:
- Sahte işlemleri algılamak için modeli haftalık olarak yeniden eğiten bir ML işlem hattı geliştirirsiniz. Kod çok sık değişmeyebilir, ancak model yeni verileri birleştirmek için her hafta yeniden eğitilebilir.
- Belgeleri sınıflandırmak için büyük, derin bir sinir ağı oluşturabilirsiniz. Bu durumda, modeli eğitmek işlem açısından pahalı ve zaman alıcıdır ve modeli yeniden eğitmek çok seyrek gerçekleşebilir. Ancak bu modeli dağıtan, sunan ve izleyen kod, modeli yeniden eğitmeden güncelleştirilebilir.
İki desen, model yapıtı veya model yapıtını üreten eğitim kodunun üretime yükseltilmesi bakımından farklılık gösterir.
Kodu dağıtma (önerilen)
Databricks çoğu durumda "kod dağıtma" yaklaşımını önerir. Bu yaklaşım önerilen MLOps iş akışına dahil edilmiştir.
Bu düzende, modelleri eğitme kodu geliştirme ortamında geliştirilmiştir. Aynı kod hazırlama ve üretim aşamasına geçer. Model her ortamda eğitilir: başlangıçta model geliştirmenin bir parçası olarak geliştirme ortamında, tümleştirme testlerinin bir parçası olarak hazırlamada (sınırlı bir veri alt kümesinde) ve son modeli oluşturmak için üretim ortamında (tam üretim verilerinde).
Avantajlar:
- Üretim verilerine erişimin kısıtlandığı kuruluşlarda bu düzen, modelin üretim ortamındaki üretim verileri üzerinde eğitilmesini sağlar.
- Eğitim kodu gözden geçirildiğinden, test edildikten ve üretim için onaylandığından otomatik model yeniden eğitme daha güvenlidir.
- Destekleyici kod, model eğitim koduyla aynı deseni izler. Her ikisi de hazırlamada tümleştirme testlerini geçer.
Dezavantajlar:
- Veri bilimcilerinin işbirlikçilere kod vermeleri için öğrenme eğrisi dik olabilir. Önceden tanımlanmış proje şablonları ve iş akışları yararlı olur.
Ayrıca bu düzende veri bilimciler, ML'ye özgü sorunları belirleme ve düzeltme bilgisine sahip olduklarından üretim ortamındaki eğitim sonuçlarını gözden geçirebilmelidir.
Durumunuz modelin tam üretim veri kümesi üzerinde hazırlık aşamasında eğitilmesini gerektiriyorsa, hazırlamaya kod dağıtarak, modeli eğiterek ve ardından modeli üretime dağıtarak karma bir yaklaşım kullanabilirsiniz. Bu yaklaşım üretimde eğitim maliyetlerinden tasarruf sağlar, ancak hazırlama işlemine ek bir işlem maliyeti ekler.
Modelleri dağıtma
Bu düzende, model yapıtı geliştirme ortamındaki eğitim kodu tarafından oluşturulur. Yapıt daha sonra üretim ortamına dağıtılmadan önce hazırlama ortamında test edilir.
Aşağıdakilerden biri veya daha fazlası geçerli olduğunda bu seçeneği göz önünde bulundurun:
- Model eğitimi çok pahalı veya yeniden oluşturmak zordur.
- Tüm işler tek bir Azure Databricks çalışma alanında yapılır.
- Dış depolarla veya CI/CD işlemiyle çalışmıyorsunuz.
Avantajlar:
- Veri bilimciler için daha basit bir iletim
- Model eğitiminin pahalı olduğu durumlarda modeli yalnızca bir kez eğitin.
Dezavantajlar:
- Üretim verilerine geliştirme ortamından erişilemiyorsa (güvenlik nedeniyle doğru olabilir), bu mimari uygun olmayabilir.
- Otomatik model yeniden eğitme, bu düzende karmaşık bir işlemdir. Geliştirme ortamında yeniden eğitme işlemini otomatikleştirebilirsiniz, ancak modeli üretim ortamında dağıtmakla sorumlu olan ekip sonuçta elde edilen modeli üretime hazır olarak kabul etmeyebilir.
- Özellik mühendisliği, çıkarım ve izleme için kullanılan işlem hatları gibi destekleyici kodun üretime ayrı olarak dağıtılması gerekir.
Genellikle bir ortam (geliştirme, hazırlama veya üretim) Unity Kataloğu'ndaki bir kataloğa karşılık gelir. Bu düzeni uygulama hakkında ayrıntılı bilgi için yükseltme kılavuzuna bakın.
Aşağıdaki diyagram, farklı yürütme ortamlarında yukarıdaki dağıtım desenleri için kod yaşam döngüsünün karşıtlığını oluşturur.
Diyagramda gösterilen ortam, bir adımın çalıştırıldığı son ortamdır. Örneğin, modelleri dağıtma düzeninde geliştirme ortamında son birim ve tümleştirme testi gerçekleştirilir. Dağıtım kodu düzeninde, birim testleri ve tümleştirme testleri geliştirme ortamlarında çalıştırılır ve hazırlama ortamında son birim ve tümleştirme testi gerçekleştirilir.