Modeli izleme
Veri bilimcisi olarak en iyi makine öğrenmesi modelini eğitmek istiyorsunuz. Modeli uygulamak için bir uç noktaya dağıtmak ve bir uygulamayla tümleştirmek istiyorsunuz.
Zaman içinde modeli yeniden eğitmek istiyorsunuz. Örneğin, daha fazla eğitim veriniz olduğunda modeli yeniden eğitebilirsiniz.
Genel olarak, bir makine öğrenmesi modelini eğitdikten sonra modeli kurumsal ölçek için hazırlamak istersiniz. Modeli hazırlamak ve kullanıma hazır hale getirmek için şunları yapmak istiyorsunuz:
- Model eğitimini sağlam ve yeniden üretilebilir bir işlem hattına dönüştürün.
- Kodu ve modeli geliştirme ortamında test edin.
- Modeli bir üretim ortamında dağıtın.
- Uçtan uca işlemi otomatikleştirme .
MLOps mimarisi tasarlama
Bir modeli üretime getirmek, çözümünüzü ölçeklendirmeniz ve diğer ekiplerle birlikte çalışmanız gerektiği anlamına gelir. Diğer veri bilimciler, veri mühendisleri ve altyapı ekibiyle birlikte aşağıdaki yaklaşımı kullanmaya karar vekleyebilirsiniz:
- Tüm verileri, veri mühendisi tarafından yönetilen bir Azure Blob depolama alanında depolayın.
- Altyapı ekibi, Azure Machine Learning çalışma alanı gibi gerekli tüm Azure kaynaklarını oluşturur.
- Veri bilimciler en iyi yaptıkları şeye odaklanır: modeli geliştirme ve eğitme (iç döngü).
- Makine öğrenmesi mühendisleri eğitilen modelleri (dış döngü) dağıtır.
Sonuç olarak MLOps mimariniz aşağıdaki bölümleri içerir:
- Kurulum: Çözüm için gerekli tüm Azure kaynaklarını oluşturun.
- Model geliştirme (iç döngü):Modeli eğitmek ve değerlendirmek için verileri keşfedin ve işleyin.
- Sürekli tümleştirme: Modeli paketleyip kaydedin.
- Model dağıtımı (dış döngü): Modeli dağıtın.
- Sürekli dağıtım: Modeli test edin ve üretim ortamına yükseltin.
- İzleme: Modeli ve uç nokta performansını izleyin.
Daha büyük ekiplerle çalışırken, veri bilimcisi olarak MLOps mimarisinin tüm bölümlerinden sorumlu olmanız beklenmez. Modelinizi MLOps'a hazırlarken bir veri bilimcisi olarak, izleme ve yeniden eğitme için nasıl tasarım yapmanız gerektiğini düşünmelisiniz.
Modelin performansını izleme
Yalnızca gerektiğinde yeniden eğitmek istiyorsanız modelin performansını ve onu etkileyebilecek her şeyi izleyebilirsiniz:
- Performansı izleme: Modelinizin verimliliğini değerlendirmek için doğruluk oranı ve F1 skoru gibi önemli model metriklerini takip edin.
- Veri kaymasını algılama: Veri kayma, giriş verilerinin istatistiksel özellikleri zaman içinde değiştiğinde oluşur. Veri kaydığını algılamak, model performansını etkileyebilecek önemli değişiklikleri belirlemek için giriş özelliklerinin veya hedef değişkenlerin dağıtımlarının izlenmesini içerir.
- Kavram kaymasını tanımlama: Kavram kayma, giriş özellikleriyle hedef değişken arasındaki ilişkideki değişiklikleri ifade eder. Verilerdeki temel desenler geliştikçe kavram kayabilir. Kavram kaymasını tanımlama, modelin yeni verilerdeki performansını izlemeyi ve özellik-etiket ilişkilerindeki değişiklikleri aramayı içerir.
Modeli yeniden eğitin
Genel olarak, bir modeli yeniden eğitmek istediğinizde iki yaklaşım vardır:
- Bir zamanlamaya göre: Modelin her zaman en son sürümüne ihtiyacınız olduğunu bildiğinizde, modelinizi bir zamanlamaya göre her hafta veya her ay yeniden eğitmeye karar vekleyebilirsiniz.
- Ölçümlere göre: Modelinizi yalnızca gerektiğinde yeniden eğitmek istiyorsanız modelin performansını ve veri kaymasını izleyerek modeli ne zaman yeniden eğitmeniz gerektiğine karar verebilirsiniz.
Her iki durumda da yeniden eğitmek için tasarlamanız gerekir. Modelinizi kolayca yeniden eğitmek için kodunuzu otomasyona hazırlamanız gerekir.
Kodunuzu hazırlama
İdeal olarak, modelleri not defterleri yerine betiklerle eğitmelisiniz. Scriptler otomasyon için daha uygundur. Betiklere parametreler ekleyebilir ve eğitim verileri veya hiperparametre değerleri gibi giriş parametrelerini değiştirebilirsiniz. Betiklerinizi parametreleştirdiğinizde, gerekirse modeli yeni veriler üzerinde kolayca yeniden eğitebilirsiniz.
Kodunuzu hazırlamanın bir diğer önemli özelliği de kodu merkezi bir depoda barındırmaktır. Depo, bir projeyle ilgili tüm dosyaların depolandığı konumu ifade eder. Makine öğrenmesi projeleriyle Git tabanlı depolar kaynak denetimine ulaşmak için idealdir.
Projenize kaynak denetimi uyguladığınızda, proje üzerinde kolayca işbirliği yapabilirsiniz. Kodu güncelleştirerek modeli geliştirmek için birini atayabilirsiniz. Geçmiş değişiklikleri inceleyebilir ve ana depoya işlenmeden önce değişiklikleri gözden geçirebilirsiniz.
Kodunuzu otomatikleştirme
Kodunuzu otomatik olarak yürütmek istediğinizde, Azure Machine Learning işlerini betikleri çalıştıracak şekilde yapılandırabilirsiniz. Azure Machine Learning'de, betikleri çalıştırmak için de işlem hatları oluşturabilir ve zamanlayabilirsiniz.
Betiklerin Azure Machine Learning dışında gerçekleşen bir tetikleyiciye veya olaya göre çalıştırılmasını istiyorsanız Azure Machine Learning işini başka bir araçtan tetiklersiniz.
MLOps projelerinde yaygın olarak kullanılan iki araç Azure DevOps ve GitHub 'dır (Actions). Her iki araç da otomasyon işlem hatları oluşturmanıza olanak sağlar ve Azure Machine Learning işlem hatlarını tetikleyebilir.
Veri bilimcisi olarak Azure Machine Learning Python SDK'sı ile çalışmayı tercih edebilirsiniz. Ancak Azure DevOps ve GitHub gibi araçlarla çalışırken bunun yerine Azure Machine Learning CLI uzantısıyla gerekli kaynakları ve işleri yapılandırmayı tercih edebilirsiniz. Azure CLI, görevleri otomatikleştirmek için tasarlanmıştır ve Azure DevOps ve GitHub ile iyi bir şekilde tümleşir.
İpucu
MLOps hakkında daha fazla bilgi edinmek istiyorsanız makine öğrenmesi işlemlerine (MLOps) giriş bölümünü keşfedin veya GitHub Actions ile ilk MLOps otomasyon işlem hattınızı oluşturmayı deneyin