Microsoft Azure Machine Learning işlem hatları nelerdir?
ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v1Python SDK azureml v1
ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)
Azure Machine Learning işlem hattı, eksiksiz bir makine öğrenmesi görevinin bağımsız olarak yürütülebilir bir iş akışıdır. Azure Machine Learning işlem hattı, makine öğrenmesi modeli oluşturmanın en iyi yöntemlerini standartlaştırmaya yardımcı olur, ekibin büyük ölçekte yürütmesini sağlar ve model oluşturma verimliliğini artırır.
Azure Machine Learning işlem hatlarına neden ihtiyaç duyulmaktadır?
Makine öğrenmesi işlem hattının temeli, eksiksiz bir makine öğrenmesi görevini çok adımlı bir iş akışına bölmektir. Her adım, tek tek geliştirilebilen, iyileştirilebilen, yapılandırılabilen ve otomatikleştirilen yönetilebilir bir bileşendir. Adımlar iyi tanımlanmış arabirimler aracılığıyla bağlanır. Azure Machine Learning işlem hattı hizmeti, işlem hattı adımları arasındaki tüm bağımlılıkları otomatik olarak düzenler. Bu modüler yaklaşım iki temel avantaj sağlar:
- Makine öğrenmesi işlemi (MLOps) uygulamasını standart hale getirme ve ölçeklenebilir ekip işbirliğini destekleme
- Eğitim verimliliği ve maliyet azaltma
MLOps uygulamasını standart hale getirme ve ölçeklenebilir ekip işbirliğini destekleme
Makine öğrenmesi işlemi (MLOps), makine öğrenmesi modelleri oluşturma ve modeli üretime alma sürecini otomatikleştirir. Bu karmaşık bir işlemdir. Genellikle farklı becerilere sahip farklı ekiplerden işbirliği gerektirir. İyi tanımlanmış bir makine öğrenmesi işlem hattı, bu karmaşık süreci birden çok adımlı bir iş akışına soyutlayabilir ve her adımı her ekibin bağımsız olarak çalışabileceği belirli bir göreve eşleyebilir.
Örneğin, tipik bir makine öğrenmesi projesi veri toplama, veri hazırlama, model eğitimi, model değerlendirmesi ve model dağıtımı adımlarını içerir. Genellikle veri mühendisleri veri adımlarına odaklanır, veri bilimciler çoğu zaman model eğitimine ve değerlendirmesine harcar, makine öğrenmesi mühendisleri tüm iş akışının model dağıtımına ve otomasyonuna odaklanır. Makine öğrenmesi işlem hattıyla her ekibin yalnızca kendi adımlarını oluşturmak için çalışması gerekir. Adımları oluşturmanın en iyi yolu, makine öğrenmesi işlem hattında tek adımda çalışan bağımsız bir kod parçası olan Azure Machine Learning bileşenini (v2) kullanmaktır. Farklı kullanıcılar tarafından oluşturulan tüm bu adımlar son olarak işlem hattı tanımı aracılığıyla tek bir iş akışıyla tümleştirilir. İşlem hattı, projedeki herkes için bir işbirliği aracıdır. İşlem hattı tanımlama işlemi ve tüm adımları, her şirketin tercih edilen DevOps uygulaması tarafından standartlaştırılabilir. İşlem hattı daha fazla sürüme dönüştürülebilir ve otomatikleştirilebilir. ML projeleri bir işlem hattı olarak tanımlanıyorsa, en iyi MLOps uygulaması zaten uygulanır.
Eğitim verimliliği ve maliyet azaltma
Makine öğrenmesi işlem hattı, MLOps'yi uygulamaya alma aracı olmasının yanı sıra büyük model eğitiminin verimliliğini de artırır ve maliyeti azaltır. Örnek olarak modern doğal dil modeli eğitimi alma. Büyük miktarlarda verilerin ön işlenmesini ve GPU yoğun transformatör modeli eğitimi gerektirir. Modelin her seferinde eğitmek saatler ve günler sürer. Model oluşturulurken, veri bilimcisi farklı eğitim kodunu veya hiper parametreleri test etmek ve en iyi model performansını elde etmek için eğitimi birçok kez çalıştırmak ister. Bu eğitimlerin çoğunda genellikle bir eğitimden diğerine küçük değişiklikler yapılır. Veri işlemeden model eğitimine kadar her tam eğitim gerçekleştiğinde bu önemli bir israf olacaktır. Makine öğrenmesi işlem hattını kullanarak, hangi adımların sonucunun değişmediği otomatik olarak hesaplanabilir ve önceki eğitimdeki çıkışları yeniden kullanabilir. Ayrıca, makine öğrenmesi işlem hattı her adımı farklı hesaplama kaynaklarında çalıştırmayı destekler. Bu nedenle yoğun bellekli veri işleme, yüksek bellekli CPU makinelerinde çalışır ve yoğun hesaplama eğitimi pahalı GPU makinelerinde çalıştırılabilir. Hangi adımın hangi makine türü üzerinde çalıştırılacağı düzgün bir şekilde seçilerek eğitim maliyeti önemli ölçüde azaltılabilir.
En iyi yöntemleri kullanmaya başlama
Bir makine öğrenmesi projesinin zaten sahip olduğu şeye bağlı olarak, makine öğrenmesi işlem hattı oluşturmanın başlangıç noktası farklılık gösterebilir. İşlem hattı oluşturmaya yönelik birkaç tipik yaklaşım vardır.
İlk yaklaşım genellikle daha önce işlem hattı kullanmamış olan ve MLOps gibi işlem hattından yararlanmak isteyen ekip için geçerlidir. Bu durumda veri bilimciler genellikle sık kullandıkları araçları kullanarak yerel ortamlarında bazı makine öğrenmesi modelleri geliştirmişlerdir. Makine öğrenmesi mühendislerinin veri bilimciler tarafından üretime alınması gerekir. Çalışma, özgün not defterinden veya Python kodundan bazı gereksiz kodları temizlemeyi, yerel verilerden eğitim girişini parametreli değerlere dönüştürmeyi, eğitim kodunu gerektiği şekilde birden çok adıma bölmeyi, her adımın birim testini gerçekleştirmeyi ve son olarak tüm adımları bir işlem hattına sarmayı içerir.
Ekipler işlem hatlarını tanıdıktan sonra ve işlem hatlarını kullanarak daha fazla makine öğrenmesi projesi yapmak istediğinde, ilk yaklaşımı ölçeklendirmenin zor olduğunu fark eder. İkinci yaklaşım, her biri belirli bir makine öğrenmesi sorununu çözmeye çalışan birkaç işlem hattı şablonu ayarlamaktır. Şablon, kaç adım, her adımın giriş ve çıkışları ve bunların bağlantıları dahil olmak üzere işlem hattı yapısını önceden tanımlar. Ekip, yeni bir makine öğrenmesi projesi başlatmak için ilk olarak bir şablon deposu oluşturur. Ekip lideri daha sonra üyelere üzerinde çalışması gereken adımı atar. Veri bilimciler ve veri mühendisleri düzenli işlerini yapar. Sonuçtan memnun olduklarında, kodlarını önceden tanımlanmış adımlara uyacak şekilde yapılandırırlar. Yapılandırılmış kodlar iade edildikten sonra işlem hattı yürütülebilir veya otomatikleştirilebilir. Herhangi bir değişiklik olursa, her üyenin işlem hattı kodunun geri kalanına dokunmadan yalnızca kendi kod parçası üzerinde çalışması gerekir.
Bir ekip, makine öğrenmesi işlem hatlarından ve yeniden kullanılabilir bileşenlerden oluşan bir koleksiyon oluşturduğunda, önceki işlem hattını kopyalayarak makine öğrenmesi işlem hattını oluşturmaya başlayabilir veya mevcut yeniden kullanılabilir bileşeni birbirine bağlayabilir. Bu aşamada ekibin genel üretkenliği önemli ölçüde geliştirilecektir.
Azure Machine Learning, işlem hattı oluşturmak için farklı yöntemler sunar. DevOps uygulamalarını bilen kullanıcılar için CLI kullanmanızı öneririz. Python hakkında bilgi sahibi olan veri bilimciler için Azure Machine Learning SDK v2 kullanarak işlem hatları yazmanızı öneririz. Kullanıcı arabirimini kullanmayı tercih eden kullanıcılar, kayıtlı bileşenleri kullanarak işlem hatları oluşturmak için tasarımcıyı kullanabilir.
Hangi Azure işlem hattı teknolojisini kullanmalıyım?
Azure bulutu, her biri farklı bir amaca sahip çeşitli işlem hattı türleri sağlar. Aşağıdaki tabloda farklı işlem hatları ve bunların ne için kullanıldığı listelenir:
Senaryo | Birincil kişilik | Azure teklifi | İşletim sistemi teklifi | Kurallı boru | Güçlü |
---|---|---|---|---|---|
Model düzenleme (Makine öğrenmesi) | Veri bilimcisi | Azure Machine Learning İşlem Hatları | Kubeflow İşlem Hatları | Veri -> Model | Dağıtım, önbelleğe alma, kod öncelikli, yeniden kullanma |
Veri düzenleme (Veri hazırlığı) | Veri mühendisi | Azure Data Factory işlem hatları | Apache Airflow | Veri -> Veri | Kesin tipli hareket, veri odaklı etkinlikler |
Kod ve uygulama düzenleme (CI/CD) | Uygulama Geliştiricisi / İşlemler | Azure Pipelines | Jenkins | Kod + Model -> Uygulama/Hizmet | En açık ve esnek etkinlik desteği, onay kuyrukları, aşamalar ve gating |
Sonraki adımlar
Azure Machine Learning işlem hatları, erken geliştirme aşamalarında değer sunmaya başlayan güçlü bir tesistir.
- Azure Machine Learning CLI v2 ile işlem hatlarını tanımlama
- Azure Machine Learning SDK v2 ile işlem hatlarını tanımlama
- Tasarımcı ile işlem hatlarını tanımlama
- CLI v2 işlem hattı örneğini deneyin
- Python SDK v2 işlem hattı örneğini deneyin
- İşlem hattında kullanılabilecek SDK ve CLI v2 ifadeleri hakkında bilgi edinin.