Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Machine Learning bulut iş istasyonunda not defteri kullanarak eğitim betiği geliştirme adımları açıklanmaktadır. Eğitici, başlamak için gereken temel adımları kapsar:
- Bulut iş istasyonunu ayarlayın ve yapılandırın. Bulut iş istasyonunuz, model geliştirme gereksinimlerinizi desteklemek için ortamlarla önceden yapılandırılmış bir Azure Machine Learning işlem örneği tarafından desteklenir.
- Bulut tabanlı geliştirme ortamlarını kullanın.
- Model ölçümlerinizi izlemek için MLflow kullanın.
Önkoşullar
Azure Machine Learning'i kullanmak için bir çalışma alanı gerekir. Bir çalışma alanınız yoksa, çalışma alanı oluşturmaya başlamak ve bu çalışma alanını kullanma hakkında daha fazla bilgi edinmek için ihtiyacınız olan kaynakları oluşturma'yı tamamlayın.
Önemli
Azure Machine Learning çalışma alanınız yönetilen bir sanal ağ ile yapılandırılmışsa, genel Python paket depolarına erişime izin vermek için giden kuralları eklemeniz gerekebilir. Daha fazla bilgi için bkz . Senaryo: Genel makine öğrenmesi paketlerine erişme.
İşlem oluşturma veya başlatma
İşlem kaynaklarını çalışma alanınızdaki İşlem bölümünde oluşturabilirsiniz. İşlem örneği, Azure Machine Learning tarafından tamamen yönetilen bulut tabanlı bir iş istasyonudur. Bu öğretici serisi bir işlem örneği kullanır. Ayrıca kendi kodunuzu çalıştırmak ve model geliştirip test etmek için de kullanabilirsiniz.
- Azure Machine Learning stüdyosu oturum açın.
- Henüz açık değilse çalışma alanınızı seçin.
- Sol bölmede İşlem'i seçin.
- İşlem örneğiniz yoksa sayfanın ortasında Yeni ifadesini görürsünüz. Yeni'yi seçin ve formu doldurun. Tüm varsayılan değerleri kullanabilirsiniz.
- İşlem örneğiniz varsa listeden seçin. Durdurulduysa Başlat'ı seçin.
Visual Studio Code'ı (VS Code) açma
Çalışan bir işlem örneğiniz olduktan sonra bu örneğe çeşitli yollarla erişebilirsiniz. Bu öğreticide Visual Studio Code'dan işlem örneğinin nasıl kullanılacağı açıklanmaktadır. Visual Studio Code, işlem örnekleri oluşturmak için tam tümleşik bir geliştirme ortamı (IDE) sağlar.
İşlem örneği listesinde, kullanmak istediğiniz işlem örneği için VS Code (Web) veya VS Code (Masaüstü) bağlantısını seçin. VS Code (Masaüstü) seçeneğini belirlerseniz uygulamayı açmak isteyip istemediğinizi soran bir ileti görebilirsiniz.
Bu Visual Studio Code örneği, hesaplama örneğinize ve çalışma alanı dosya sisteminize bağlanır. Masaüstünüzde açsanız bile, gördüğünüz dosyalar çalışma alanınızdaki dosyalardır.
Prototip oluşturma için yeni bir ortam ayarlama
Betiğinizin çalışması için, kodun beklediği bağımlılıklar ve kitaplıklarla yapılandırılmış bir ortamda çalışıyor olmanız gerekir. Bu bölüm, kodunuz için uyarlanmış bir ortam oluşturmanıza yardımcı olur. Not defterinizin bağlandığı yeni Jupyter çekirdeğini oluşturmak için bağımlılıkları tanımlayan bir YAML dosyası kullanırsınız.
Dosyayı karşıya yükleyin.
Karşıya yüklediğiniz dosyalar bir Azure dosya paylaşımında depolanır ve bu dosyalar her işlem örneğine bağlanır ve çalışma alanı içinde paylaşılır.
azureml-examples/tutorials/get-started-notebooks/workstation_env.yml adresine gidin.
Sayfanın sağ üst köşesindeki üç nokta düğmesini (...) ve ardından İndir'i seçerek workstation_env.yml Conda ortam dosyasını bilgisayarınıza indirin.
Dosyayı bilgisayarınızdan Visual Studio Code penceresine sürükleyin. Dosya çalışma alanınıza yüklenir.
Dosyayı kullanıcı adı klasörünüzde taşıyın.
Önizlemek için dosyayı seçin. Belirttiği bağımlılıkları gözden geçirin. Şuna benzer bir şey görmelisiniz:
name: workstation_env # This file serves as an example - you can update packages or versions to fit your use case dependencies: - python=3.8 - pip=21.2.4 - scikit-learn=0.24.2 - scipy=1.7.1 - pandas>=1.1,<1.2 - pip: - mlflow-skinny - azureml-mlflow - psutil>=5.8,<5.9 - ipykernel~=6.0 - matplotlibÇekirdek oluşturma.
Şimdi terminali kullanarak workstation_env.yml dosyasını temel alan yeni bir Jupyter çekirdeği oluşturun.
- Visual Studio Code'un üst kısmındaki menüde Terminal > Yeni Terminal'i seçin.
Geçerli Conda ortamlarınızı görüntüleyin. Etkin ortam yıldız (*) ile işaretlenir.
conda env listcdYüklediğiniz workstation_env.yml dosyasının bulunduğu klasöre gitmek için kullanın. Örneğin, bunu kullanıcı klasörünüze yüklediyseniz şu komutu kullanın:cd Users/myusernameworkstation_env.yml klasörde olduğundan emin olun.
lsSağlanan Conda dosyasını temel alarak ortamı oluşturun. Ortamın oluşturulması birkaç dakika sürer.
conda env create -f workstation_env.ymlYeni ortamı etkinleştirin.
conda activate workstation_envNot
CommandNotFoundError'ı görürseniz,
conda init bashkomutunu çalıştırmak için yönergeleri izleyin, terminali kapatın ve sonra yeni bir tane açın. Ardından komutu yeniden deneyinconda activate workstation_env.Doğru ortamın etkin olduğunu doğrulayın ve *ile işaretlenmiş ortamı yeniden arayın.
conda env listEtkin ortamınızı temel alan yeni bir Jupyter çekirdeği oluşturun.
python -m ipykernel install --user --name workstation_env --display-name "Tutorial Workstation Env"Terminal penceresini kapatın.
Artık yeni bir çekirdeğiniz var. Ardından bir not defteri açıp bu çekirdeği kullanacaksınız.
Not defteri oluşturma
- Visual Studio Code'un üst kısmındaki menüde Dosya Yeni Dosya'yı >seçin.
- Yeni dosyanıza develop-tutorial.ipynb adını verin (veya başka bir ad kullanın). .ipynb uzantısını kullandığınızdan emin olun.
Çekirdeği ayarlama
- Yeni dosyanın sağ üst köşesinde Çekirdek Seç'i seçin.
- Azure ML işlem örneği (computeinstance-name) öğesini seçin.
- Oluşturduğunuz çekirdeği seçin: Öğretici İş İstasyonu Env. Çekirdeği görmüyorsanız, listenin üstündeki yenile düğmesini seçin.
Eğitim betiği geliştirme
Bu bölümde, UCI veri kümesinden hazırlanan test ve eğitim veri kümelerini kullanarak kredi kartı varsayılan ödemelerini tahmin eden bir Python eğitim betiği geliştirebilirsiniz.
Bu kod, eğitim için sklearn ve ölçümleri günlüğe kaydetmek için MLflow kullanır.
Eğitim betiğinde kullanacağınız paketleri ve kitaplıkları içeri aktaran kodla başlayın.
import os import argparse import pandas as pd import mlflow import mlflow.sklearn from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import classification_report from sklearn.model_selection import train_test_splitArdından, denemenin verilerini yükleyip işleyin. Bu öğreticide, İnternet'teki bir dosyadan verileri okuyacaksınız.
# load the data credit_df = pd.read_csv( "https://azuremlexamples.blob.core.windows.net/datasets/credit_card/default_of_credit_card_clients.csv", header=1, index_col=0, ) train_df, test_df = train_test_split( credit_df, test_size=0.25, )Verileri eğitim için hazırlama.
# Extracting the label column y_train = train_df.pop("default payment next month") # convert the dataframe values to array X_train = train_df.values # Extracting the label column y_test = test_df.pop("default payment next month") # convert the dataframe values to array X_test = test_df.valuesÖlçümleri ve sonuçları izleyebilmek için MLflow ile otomatik kaydetmeye başlamak için kod ekleyin. Model geliştirmenin yinelemeli yapısıyla MLflow, model parametrelerini ve sonuçlarını günlüğe kaydetmenize yardımcı olur. Modelinizin performansını karşılaştırmak ve anlamak için farklı çalıştırmalara bakın. Günlükler ayrıca Azure Machine Learning'de geliştirme aşamasından iş akışlarınızın eğitim aşamasına geçmeye hazır olduğunuzda bağlam sağlar.
# set name for logging mlflow.set_experiment("Develop on cloud tutorial") # enable autologging with MLflow mlflow.sklearn.autolog()Modeli eğitin.
# Train Gradient Boosting Classifier print(f"Training with data of shape {X_train.shape}") mlflow.start_run() clf = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) # Stop logging for this model mlflow.end_run()Not
MLflow uyarılarını yoksayabilirsiniz. İhtiyacınız olan sonuçlar takip edilmeye devam eder.
Kodun üstündeki Tümünü Çalıştır'ı seçin.
Yineleme
Artık model sonuçlarınız olduğuna göre, bir şeyi değiştirin ve modeli yeniden çalıştırın. Örneğin, farklı bir sınıflandırma tekniği deneyin:
# Train AdaBoost Classifier
from sklearn.ensemble import AdaBoostClassifier
print(f"Training with data of shape {X_train.shape}")
mlflow.start_run()
ada = AdaBoostClassifier()
ada.fit(X_train, y_train)
y_pred = ada.predict(X_test)
print(classification_report(y_test, y_pred))
# Stop logging for this model
mlflow.end_run()
Not
MLflow uyarılarını yoksayabilirsiniz. İhtiyacınız olan sonuçlar takip edilmeye devam eder.
Modeli çalıştırmak için Tümünü Çalıştır'ı seçin.
Sonuçları inceleme
İki farklı modeli denediğinize göre, hangi modelin daha iyi olduğuna karar vermek için MLFfow tarafından izlenen sonuçları kullanın. Doğruluk gibi ölçümlere veya senaryolarınız için en önemli olan diğer göstergelere başvurabilirsiniz. MLflow tarafından oluşturulan işlere bakarak bu sonuçları daha ayrıntılı bir şekilde gözden geçirebilirsiniz.
Azure Machine Learning stüdyosu çalışma alanınıza dönün.
Sol bölmede İşler'i seçin.
Bulutta geliştirme öğreticisi'ni seçin.
Denediğiniz modellerin her biri için bir tane olan iki iş gösterilir. Adlar otomatik olarak oluşturulur. İşi yeniden adlandırmak istiyorsanız, adın üzerine gelin ve yanındaki kalem düğmesini seçin.
İlk işin bağlantısını seçin. Ad, sayfanın en üstünde görünür. Burada kalem düğmesini kullanarak da yeniden adlandırabilirsiniz.
Sayfada özellikler, çıkışlar, etiketler ve parametreler gibi iş ayrıntıları gösterilir. Etiketler altında, modelin türünü açıklayan estimator_name görürsünüz.
MLflow tarafından günlüğe kaydedilen ölçümleri görüntülemek için Ölçümler sekmesini seçin. (Farklı bir eğitim kümeniz olduğundan sonuçlarınız farklı olacaktır.)
MLflow tarafından oluşturulan görüntüleri görüntülemek için Resimler sekmesini seçin.
Geri dönün ve diğer modelin ölçümlerini ve görüntülerini gözden geçirin.
Python betiği oluşturma
Şimdi model eğitimi için not defterinizden bir Python betiği oluşturacaksınız.
Visual Studio Code'da not defteri dosya adına sağ tıklayın ve Not Defterini Betik'e aktar'ı seçin.
Yeni betik dosyasını kaydetmek için Dosya > Kaydet'i seçin. buna train.py de.
Dosyaya bakın ve eğitim betiğinde istemediğiniz kodu silin. Örneğin, kullanmak istediğiniz modelin kodunu tutun ve kullanmak istemediğiniz modelin kodunu silin.
- Otomatik kayıt yapmaya başlayan kodu (
mlflow.sklearn.autolog()) tuttuğunuzdan emin olun. - Python betiğini etkileşimli olarak çalıştırdığınızda (burada yaptığınız gibi), deneme adını (
mlflow.set_experiment("Develop on cloud tutorial")) tanımlayan satırı tutabilirsiniz. İsterseniz, İşler bölümünde farklı bir giriş olarak görmek için ona farklı bir ad verebilirsiniz. Ancak bir eğitim işi için betiği hazırladığınızda bu satır geçerli değildir ve atlanmalıdır: iş tanımı deneme adını içerir. - Tek bir modeli eğittiğinizde, çalıştırmayı başlatmaya (
mlflow.start_run()) ve sonlandırmaya (mlflow.end_run()) yönelik satırlar gerekli değildir (bunların hiçbir etkisi yoktur), ancak bunları içinde bırakabilirsiniz.
- Otomatik kayıt yapmaya başlayan kodu (
Düzenlemelerinizi tamamladığınızda dosyayı kaydedin.
Artık tercih ettiğiniz modeli eğitmek için kullanabileceğiniz bir Python betiğiniz var.
Python betiğini çalıştırma
Şimdilik bu kodu Azure Machine Learning geliştirme ortamınız olan işlem örneğinizde çalıştırıyorsunuz. Öğretici: Model Eğitme, daha güçlü hesaplama kaynakları üzerinde eğitim betiğini daha ölçeklenebilir bir şekilde nasıl çalıştıracağınızı gösterir.
Bu öğreticide daha önce oluşturduğunuz ortamı Python sürümünüz (workstations_env) olarak seçin. Not defterinin sağ alt köşesinde ortam adını görürsünüz. Bunu seçin ve ardından Visual Studio Code'un üst kısmındaki ortamı seçin.
Kodun üstündeki Tümünü Çalıştır düğmesini seçerek Python betiğini çalıştırın.
Not
MLflow uyarılarını yoksayabilirsiniz. Otomatik kaydetme işleminden tüm ölçümleri ve görüntüleri almaya devam edersiniz.
Betik sonuçlarını inceleyin
Eğitim betiğinizin sonuçlarını görmek için Azure Machine Learning stüdyosu çalışma alanınızdaki İşler'e dönün. Eğitim verilerinin her bölmede değiştiğini, dolayısıyla sonuçların çalıştırmalar arasında farklılık gösterdiğini unutmayın.
Kaynakları temizleme
Diğer eğitimlere devam etmek istiyorsanız Sonraki adımlar'a geçin.
İşlem örneğini durdurma
Şimdi kullanmayacaksanız işlem örneğini durdurun:
- Stüdyoda, sol bölmede İşlem'i seçin.
- Sayfanın üst kısmında İşlem örnekleri'ni seçin.
- Listede işlem örneğini seçin.
- Sayfanın üst kısmında Durdur'u seçin.
Tüm kaynakları silme
Önemli
Oluşturduğunuz kaynaklar, diğer Azure Machine Learning öğreticileri ve nasıl yapılır makaleleri için önkoşul olarak kullanılabilir.
Oluşturduğunuz kaynaklardan hiçbirini kullanmayı planlamıyorsanız, ücret ödememek için bunları silin:
Azure portalındaki arama kutusuna Kaynak grupları yazın ve sonuçlardan seçin.
Listeden, oluşturduğunuz kaynak grubunu seçin.
Genel Bakış sayfasında Kaynak grubunu sil'i seçin.
Kaynak grubu adını girin. Ardından Sil'i seçin.
Sonraki adımlar
Daha fazla bilgi edinmek için bu kaynakları gözden geçirin:
- MLflow'da artefaktlar ve modeller
- Azure Machine Learning ile Git kullanma
- Çalışma alanınızda Jupyter not defterlerini çalıştırma
- Çalışma alanınızda işlem örneği terminaliyle çalışma
- Not defteri ve terminal oturumlarını yönetme
Bu öğreticide, kodun bulunduğu makinede prototip oluşturma, model oluşturmanın ilk adımları gösterilmektedir. Üretim eğitiminiz için bu eğitim betiğini daha güçlü uzak işlem kaynaklarında kullanmayı öğrenin: