Microsoft Azure Machine Learning işlem hatları nelerdir?

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:

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.