Azure Machine Learning CLI ve Python SDK'sı ile tablosal veriler için AutoML eğitimini ayarlama
ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)
Bu kılavuzda, Azure Machine Learning Python SDK v2 ile otomatik makine öğrenmesi, AutoML, eğitim işi ayarlamayı öğrenin. Otomatik ML sizin için bir algoritma ve hiper parametre seçer ve dağıtıma hazır bir model oluşturur. Bu kılavuzda, otomatik ML denemelerini yapılandırmak için kullanabileceğiniz çeşitli seçeneklerin ayrıntıları sağlanır.
Kod yok deneyimini tercih ediyorsanız, Azure Machine Learning stüdyosu kod içermeyen AutoML eğitimi de ayarlayabilirsiniz.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.
- Azure Machine Learning çalışma alanı. Kaynağınız yoksa Başlamak için kaynak oluşturma makalesindeki adımları kullanabilirsiniz.
SDK bilgilerini kullanmak için Python için Azure Machine Learning SDK v2'yi yükleyin.
SDK'yı yüklemek için
- En son Azure Machine Learning Python SDK'sını zaten yüklemiş olan ve ML iş akışları için önceden yapılandırılmış bir işlem örneği oluşturun. Daha fazla bilgi için bkz . Azure Machine Learning işlem örneği oluşturma.
- SDK'yi yerel makinenize yükleme
Çalışma alanınızı ayarlama
Bir çalışma alanına bağlanmak için bir abonelik, kaynak grubu ve çalışma alanı adı sağlamanız gerekir.
Çalışma alanı ayrıntıları, gerekli Azure Machine Learning çalışma alanına bir tanıtıcı almak için içinde kullanılır MLClient
azure.ai.ml
.
Aşağıdaki örnekte, varsayılan Azure kimlik doğrulaması varsayılan çalışma alanı yapılandırmasıyla birlikte veya klasörler yapısına kopyalamış olabileceğiniz herhangi bir config.json
dosyadan kullanılır. Bulunamazsa config.json
, oluştururken MLClient
subscription_id, resource_group ve çalışma alanını el ile tanıtmalısınız.
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
credential = DefaultAzureCredential()
ml_client = None
try:
ml_client = MLClient.from_config(credential)
except Exception as ex:
print(ex)
# Enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
Veri kaynağı ve biçimi
SDK v2'de AutoML'ye eğitim verileri sağlamak için mlTable aracılığıyla buluta yüklemeniz gerekir.
MLTable'a veri yükleme gereksinimleri:
- Veriler tablo biçiminde olmalıdır.
- Tahmin edilecek değer olan hedef sütun verilerde olmalıdır.
Eğitim verilerine uzak işlemden erişilebilir olmalıdır. Otomatik ML v2 (Python SDK ve CLI/YAML), MLTable veri varlıklarını (v2) kabul eder, ancak geriye dönük uyumluluk için aynı giriş veri kümesi özellikleri aracılığıyla v1'den (kayıtlı Tablolu Veri Kümesi) v1 Tablolu Veri Kümeleri'ni de destekler. Ancak, v2'de kullanılabilen MLTable'ı kullanmanız önerilebilir. Bu örnekte, verilerin yerel yolda depolandığını varsayarız. ./train_data/bank_marketing_train_data.csv
Aşağıdaki örnekte olduğu gibi mltable Python SDK'sını kullanarak mlTable oluşturabilirsiniz:
import mltable
paths = [
{'file': './train_data/bank_marketing_train_data.csv'}
]
train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')
Bu kod, ./train_data/MLTable
dosya biçimini ve yükleme yönergelerini içeren yeni bir dosya oluşturur.
./train_data
Artık klasörde MLTable tanım dosyasının yanı sıra veri dosyası da bank_marketing_train_data.csv
vardır.
MLTable hakkında daha fazla bilgi için mltable nasıl yapılır makalesine bakın
Eğitim, doğrulama ve test verileri
Ayrı eğitim verileri ve doğrulama veri kümeleri belirtebilirsiniz, ancak eğitim verilerinin training_data
otomatik ML işinizin fabrika işlevindeki parametresine sağlanması gerekir.
Bir veya n_cross_validation
parametresini açıkça belirtmezsenizvalidation_data
, otomatik ML doğrulamanın nasıl gerçekleştirildiğini belirlemek için varsayılan teknikleri uygular. Bu belirleme, veri kümesindeki parametrenize training_data
atanan satır sayısına bağlıdır.
Eğitim veri boyutu | Doğrulama tekniği |
---|---|
20.000'den büyük satır | Eğit/doğrulama veri bölme uygulanır. Varsayılan değer, doğrulama kümesi olarak ilk eğitim veri kümesinin %10'unu almaktır. Buna karşılık, bu doğrulama kümesi ölçüm hesaplaması için kullanılır. |
20.000 satırdan küçük veya buna eşit | Çapraz doğrulama yaklaşımı uygulanır. Varsayılan katlama sayısı satır sayısına bağlıdır. Veri kümesi 1.000 satırdan azsa 10 kat kullanılır. Satırlar 1.000 ile 20.000 arasında veya buna eşitse üç kat kullanılır. |
Deneme çalıştırmak için işlem
Python SDK v2 (veya CLI v2) içeren otomatik ML işleri şu anda yalnızca Azure Machine Learning uzak işlemde (küme veya işlem örneği) desteklenmektedir.
Python SDKv2 (veya CLIv2) ile işlem oluşturma hakkında daha fazla bilgi edinin.
Deneme ayarlarınızı yapılandırma
Otomatik ML denemenizi yapılandırmak için kullanabileceğiniz çeşitli seçenekler vardır. Bu yapılandırma parametreleri görev yönteminizde ayarlanır. ayrıca ve limits
ayarlarıyla training
iş eğitimi ayarlarını ve çıkış ölçütlerini de ayarlayabilirsiniz.
Aşağıdaki örnekte, birincil ölçüm ve 5 çapraz doğrulama katlandığında doğruluğu belirten bir sınıflandırma görevi için gerekli parametreler gösterilmektedir.
from azure.ai.ml.constants import AssetTypes
from azure.ai.ml import automl, Input
# note that this is a code snippet -- you might have to modify the variable values to run it successfully
# make an Input object for the training data
my_training_data_input = Input(
type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
)
# configure the classification job
classification_job = automl.classification(
compute=my_compute_name,
experiment_name=my_exp_name,
training_data=my_training_data_input,
target_column_name="y",
primary_metric="accuracy",
n_cross_validations=5,
enable_model_explainability=True,
tags={"my_custom_tag": "My custom value"}
)
# Limits are all optional
classification_job.set_limits(
timeout_minutes=600,
trial_timeout_minutes=20,
max_trials=5,
enable_early_termination=True,
)
# Training properties are optional
classification_job.set_training(
blocked_training_algorithms=["logistic_regression"],
enable_onnx_compatible_models=True
)
Makine öğrenmesi görev türünüzü seçin (ML sorunu)
Otomatik ML işinizi gönderebilmeniz için önce, çözmekte olduğunuz makine öğrenmesi sorununun türünü belirlemeniz gerekir. Bu sorun, otomatik ML işinizin hangi işlevi kullandığını ve hangi model algoritmalarını uyguladığını belirler.
Otomatik ML tablosal veri tabanlı görevleri (sınıflandırma, regresyon, tahmin), görüntü işleme görevlerini (Görüntü Sınıflandırması ve Nesne Algılama gibi) ve doğal dil işleme görevlerini (Metin sınıflandırması ve Varlık Tanıma görevleri gibi) destekler. Daha fazla bilgi için görev türleriyle ilgili makalemize bakın. Tahmin işlerini ayarlama hakkında daha fazla bilgi için zaman serisi tahmin kılavuzumuza bakın.
Desteklenen algoritmalar
Otomatik makine öğrenmesi, otomasyon ve ayarlama işlemi sırasında farklı modelleri ve algoritmaları dener. Kullanıcı olarak algoritmayı belirtmeniz gerekmez.
Görev yöntemi uygulanacak algoritmaların/modellerin listesini belirler. allowed_training_algorithms
Yinelemeleri training
dahil etmek veya dışlamak üzere kullanılabilir modellerle daha fazla değiştirmek için AutoML işinin yapılandırmasındaki veya blocked_training_algorithms
parametrelerini kullanın.
Aşağıdaki bağlantı listesinde, aşağıda listelenen makine öğrenmesi görevi başına desteklenen algoritmaları inceleyebilirsiniz.
Sınıflandırma | Regresyon | Zaman Serileri Tahmini |
---|---|---|
Lojistik Regresyon* | Elastik Ağ* | AutoARIMA |
Açık GBM* | Açık GBM* | Peygamber |
Gradyan Artırma* | Gradyan Artırma* | Elastik Ağ |
Karar Ağacı* | Karar Ağacı* | Açık GBM |
K En Yakın Komşular* | K En Yakın Komşular* | En Yakın K Komşu |
Doğrusal SVC* | LARS Kement* | Karar Ağacı |
Destek Vektör Sınıflandırması (SVC)* | Stokastik Gradyan Azalma (SGD)* | Arimax |
Rastgele Orman* | Rastgele Orman | LARS Kement |
Aşırı Rastgele Ağaçlar* | Aşırı Rastgele Ağaçlar* | Aşırı Rastgele Ağaçlar* |
Xgboost* | Xgboost* | Rastgele Orman |
Naive Bayes* | Xgboost | TCNForecaster |
Stokastik Gradyan Azalma (SGD)* | Stokastik Gradyan Azalma (SGD) | Gradyan Artırma |
ExponentialSmoothing | ||
SeasonalNaive | ||
Ortalama | ||
Naive | ||
SeasonalAverage |
Aşağıda ek algoritmalar bulunur.
- Görüntü Sınıflandırması Çok Sınıflı Algoritmalar
- Görüntü SınıflandırmaSı Çok Etiketli Algoritmalar
- Görüntü Nesnesi Algılama Algoritmaları
- NLP Metin Sınıflandırması Çok Etiketli Algoritmalar
- Varlık Tanıma (NER) Algoritmaları Adlı NLP Metni
Her görev türünün not defterleri gibi bu bağlantıyı izleyin.
Birincil ölçüm
parametresi, primary_metric
iyileştirme için model eğitimi sırasında kullanılacak ölçümü belirler. Seçebileceğiniz kullanılabilir ölçümler, seçtiğiniz görev türüne göre belirlenir.
İyileştirme için otomatik ML için birincil ölçüm seçmek birçok faktöre bağlıdır. Öncelikle iş gereksinimlerinizi en iyi şekilde temsil eden bir ölçüm seçmenizi öneririz. Ardından ölçümün veri kümesi profilinize (veri boyutu, aralık, sınıf dağıtımı vb.) uygun olup olmadığını göz önünde bulundurun. Aşağıdaki bölümlerde, görev türüne ve iş senaryosuna göre önerilen birincil ölçümler özetlenmiştir.
Otomatik makine öğrenmesi sonuçlarını anlama bölümünde bu ölçümlerin belirli tanımları hakkında bilgi edinin.
Çok sınıflı sınıflandırma senaryoları için ölçümler
Bu ölçümler tablosal veriler, görüntüler/görüntü işleme ve NLP-Metin gibi tüm sınıflandırma senaryoları için geçerlidir.
, recall_score_weighted
, norm_macro_recall
ve precision_score_weighted
gibi accuracy
eşik bağımlı ölçümler, küçük, büyük sınıf dengesizliği (sınıf dengesizliği) olan veya beklenen ölçüm değeri 0,0 veya 1,0'a çok yakın olan veri kümeleri için iyileştirilmeyebilir. Bu gibi durumlarda, AUC_weighted
birincil ölçüm için daha iyi bir seçim olabilir. Otomatik ML tamamlandıktan sonra, iş gereksinimlerinize en uygun ölçümü temel alarak kazanan modeli seçebilirsiniz.
Metric | Örnek kullanım örnekleri |
---|---|
accuracy |
Görüntü sınıflandırması, Yaklaşım analizi, Değişim sıklığı tahmini |
AUC_weighted |
Sahtekarlık algılama, Görüntü sınıflandırma, Anomali algılama/istenmeyen posta algılama |
average_precision_score_weighted |
Duygu analizi |
norm_macro_recall |
Değişim sıklığı tahmini |
precision_score_weighted |
Çok etiketli sınıflandırma senaryoları için ölçümler
Metin sınıflandırması için desteklenen tek birincil ölçüm şu anda çok etiketli 'Doğruluk'.
Görüntü sınıflandırması çoklu etiketi için desteklenen birincil ölçümler ClassificationMultilabelPrimaryMetrics Sabit Listesi'nde tanımlanır
NLP Metin NER (Adlandırılmış Varlık Tanıma) senaryoları için ölçümler
- NLP Metin NER (Adlandırılmış Varlık Tanıma) için şu anda 'Doğruluk' desteklenen tek birincil ölçümdür.
Regresyon senaryoları için ölçümler
r2_score
ve normalized_mean_absolute_error
normalized_root_mean_squared_error
tümü tahmin hatalarını en aza indirmeye çalışıyor. r2_score
ve normalized_root_mean_squared_error
her ikisi de ortalama hataları en aza indirirken normalized_mean_absolute_error
hataların ortalama mutlak değerini en aza indirir. Mutlak değer, hataları hem tüm büyüklüklerde hem de kare olarak değerlendirir ve daha büyük mutlak değerlere sahip hatalar için çok daha büyük bir cezaya sahip olur. Daha büyük hataların daha fazla cezalandırılıp cezalandırılmayacağına bağlı olarak, hata karesini veya mutlak hatayı iyileştirmeyi seçebilirsiniz.
ile normalized_root_mean_squared_error
arasındaki r2_score
temel fark, normalleştirilmeleri ve anlamlarıdır. normalized_root_mean_squared_error
kök ortalaması hata karesi aralığına göre normalleştirilmiştir ve tahmin için ortalama hata büyüklüğü olarak yorumlanabilir. r2_score
ortalama hata karesi, veri varyansı tahminiyle normalleştirilir. Model tarafından yakalanabilecek varyasyonun oranıdır.
Not
r2_score
ve normalized_root_mean_squared_error
ayrıca birincil ölçümlerle benzer şekilde davranır. Sabit bir doğrulama kümesi uygulanırsa, bu iki ölçüm aynı hedefi, ortalama kare hatasını en iyi duruma getirir ve aynı model tarafından iyileştirilir. Yalnızca bir eğitim kümesi mevcut olduğunda ve çapraz doğrulama uygulandığında, için normalleştirici normalized_root_mean_squared_error
eğitim kümesi aralığı olarak sabitlendiğinden bunlar biraz farklı olabilir, ancak her katlama için varyans olduğu için için normalleştiricisi r2_score
her katlama için farklılık gösterebilir.
Derece, tam değer yerine ilgi çekiciyse, spearman_correlation
gerçek değerler ve tahminler arasındaki derece bağıntısını ölçen daha iyi bir seçim olabilir.
AutoML şu anda tahminler ve gözlemler arasındaki göreli farkı ölçen birincil ölçümleri desteklememektedir. , normalized_mean_absolute_error
ve normalized_root_mean_squared_error
ölçümlerir2_score
, mutlak farkın ölçüleridir. Örneğin, bir tahmin bir gözlemden 10 birim farklıysa, gözlem 20 birim veya 20.000 birim olduğunda bu ölçümler aynı değeri hesaplar. Buna karşılık göreli ölçü olan yüzde farkı sırasıyla %50 ve %0,05 hataları verir! Göreli farkı iyileştirmek için AutoML'yi desteklenen bir birincil ölçümle çalıştırabilir ve ardından en iyi mean_absolute_percentage_error
veya root_mean_squared_log_error
ile modeli seçebilirsiniz. Herhangi bir gözlem değeri sıfır olduğunda bu ölçümlerin tanımsız olduğunu, bu nedenle her zaman iyi seçenekler olmayabileceğini unutmayın.
Metric | Örnek kullanım örnekleri |
---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
Fiyat tahmini (ev/ürün/ipucu), Puan tahminlerini gözden geçirme |
r2_score |
Havayolu gecikmesi, Maaş tahmini, Hata çözümleme süresi |
normalized_mean_absolute_error |
Zaman Serisi Tahmin senaryoları için ölçümler
Öneriler, regresyon senaryolarında belirtilenlere benzer.
Metric | Örnek kullanım örnekleri |
---|---|
normalized_root_mean_squared_error |
Fiyat tahmini (tahmin), Stok iyileştirme, Talep tahmini |
r2_score |
Fiyat tahmini (tahmin), Stok iyileştirme, Talep tahmini |
normalized_mean_absolute_error |
Görüntü Nesnesi Algılama senaryoları için ölçümler
- Görüntü Nesnesi Algılama için, desteklenen birincil ölçümler ObjectDetectionPrimaryMetrics Sabit Listesi'nde tanımlanır
Görüntü Örneği Segmentasyonu senaryoları için ölçümler
- Görüntü Örneği Segmentasyonu senaryolarında, desteklenen birincil ölçümler InstanceSegmentationPrimaryMetrics Sabit Listesi'nde tanımlanır
Veri özellik kazandırma
Her otomatik ML denemesinde verileriniz otomatik olarak sayılara ve sayı vektörlerine dönüştürülür ve ayrıca farklı ölçeklerdeki özelliklere duyarlı algoritmalara yardımcı olmak için ölçeklendirilir ve normalleştirilir. Bu veri dönüşümlerine özellik kazandırma adı verilir.
Not
Otomatik makine öğrenmesi özellik geliştirme adımları (özellik normalleştirme, eksik verileri işleme, metni sayısala dönüştürme vb.) temel alınan modelin bir parçası haline gelir. Modeli tahminler için kullanırken, eğitim sırasında uygulanan özellik geliştirme adımları giriş verilerinize otomatik olarak uygulanır.
Otomatik ML işlerinizi yapılandırırken ayarları etkinleştirebilir/devre dışı bırakabilirsiniz featurization
.
Aşağıdaki tabloda özellik geliştirme için kabul edilen ayarlar gösterilmektedir.
Özellik Kazandırma Yapılandırması | Açıklama |
---|---|
"mode": 'auto' |
Ön işlemenin bir parçası olarak veri korumaları ve özellik geliştirme adımlarının otomatik olarak gerçekleştirildiğini gösterir. Varsayılan ayar. |
"mode": 'off' |
Özellik geliştirme adımının otomatik olarak yapılmaması gerektiğini gösterir. |
"mode": 'custom' |
Özelleştirilmiş özellik geliştirme adımının kullanılması gerektiğini gösterir. |
Aşağıdaki kod, bu durumda bir regresyon işi için özel özellik oluşturmanın nasıl sağlandığını gösterir.
from azure.ai.ml.automl import ColumnTransformer
transformer_params = {
"imputer": [
ColumnTransformer(fields=["CACH"], parameters={"strategy": "most_frequent"}),
ColumnTransformer(fields=["PRP"], parameters={"strategy": "most_frequent"}),
],
}
regression_job.set_featurization(
mode="custom",
transformer_params=transformer_params,
blocked_transformers=["LabelEncoding"],
column_name_and_types={"CHMIN": "Categorical"},
)
Çıkış ölçütü
İş tamamlanmadan önce denemenizi sonlandırmak için işlevde set_limits()
tanımlayabileceğiniz birkaç seçenek vardır.
Ölçütler | açıklama |
---|---|
Ölçüt yok | Herhangi bir çıkış parametresi tanımlamazsanız deneme, birincil ölçümünüzde başka bir ilerleme kaydedilmeden devam eder. |
timeout |
Denemenizin ne kadar süreyle çalışmaya devam etmesi gerektiğini dakika cinsinden tanımlar. Belirtilmezse, varsayılan işin toplam zaman aşımı 6 gündür (8.640 dakika). 1 saatten kısa veya buna eşit bir zaman aşımı (60 dakika) belirtmek için veri kümenizin boyutunun 10.000.000'den (satır çarpı sütunu) büyük olmadığından veya hata sonuçlarından emin olun. Bu zaman aşımı kurulum, özellik kazandırma ve eğitim çalıştırmalarını içerir, ancak tüm denemeler (alt işler) tamamlandıktan sonra bu eylemlerin gerçekleşmesi gerektiğinden sürecin sonundaki benzer ve model açıklanabilirlik çalıştırmalarını içermez. |
trial_timeout_minutes |
Her denemenin (alt iş) sonlandırılabilmesi için çalıştırabileceği en uzun süre (dakika cinsinden). Belirtilmezse 1 ay veya 43200 dakika değeri kullanılır |
enable_early_termination |
Kısa vadede puanın iyileşmemesi durumunda işin sonlandırılıp sonlandırılmayacağı |
max_trials |
AutoML işi sırasında deneyebileceğiniz farklı bir algoritma ve hiper parametre bileşimine sahip deneme/çalıştırma sayısı üst sınırı. Belirtilmezse, varsayılan değer 1000 deneme sürümüdür. Kullanılan deneme sayısının kullanılması enable_early_termination daha küçük olabilir. |
max_concurrent_trials |
Paralel olarak yürütülecek en fazla deneme sayısını (alt iş) temsil eder. Bu sayıyı kümenizin düğüm sayısıyla eşleştirmek iyi bir uygulamadır |
Denemeyi çalıştırma
Not
Aynı yapılandırma ayarları ve birincil ölçümle bir denemeyi birden çok kez çalıştırırsanız, büyük olasılıkla her denemenin son ölçüm puanında ve oluşturulan modellerde çeşitleme görürsünüz. Otomatik ML'nin kullandığı algoritmalar, deneme tarafından elde edilen modellerde ve doğruluk gibi önerilen modelin son ölçüm puanında küçük farklılıklara neden olabilecek doğal rastgeleliğe sahiptir. Büyük olasılıkla aynı model adına sahip ancak kullanılan farklı hiper parametrelere sahip sonuçlar görürsünüz.
Uyarı
Çalışma alanınız üzerinden güvenlik duvarında ve/veya Ağ Güvenlik Grubu'nda kurallar ayarladıysanız, Gelen ve giden ağ trafiğini yapılandırma bölümünde tanımlandığı gibi gelen ve giden ağ trafiğine gerekli izinlerin verildiğini doğrulayın.
Çalıştırmak ve model oluşturmak için denemeyi gönderin. MLClient
önkoşullarında oluşturulduktan sonra çalışma alanında aşağıdaki komutu çalıştırabilirsiniz.
# Submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
classification_job
) # submit the job to the backend
print(f"Created job: {returned_job}")
# Get a URL for the status of the job
returned_job.services["Studio"].endpoint
Kümelerde birden çok alt çalıştırma
Otomatik ML denemesi alt çalıştırmaları, zaten başka bir deneme çalıştıran bir kümede gerçekleştirilebilir. Ancak zamanlama, kümenin kaç düğümü olduğuna ve bu düğümlerin farklı bir deneme çalıştırmak için kullanılabilir olup olduğuna bağlıdır.
Kümedeki her düğüm, tek bir eğitim çalıştırması gerçekleştirebilen tek bir sanal makine (VM) görevi görür; otomatik ML için bu, alt çalıştırma anlamına gelir. Tüm düğümler meşgulse yeni bir deneme kuyruğa alınır. Ancak ücretsiz düğümler varsa, yeni deneme otomatik ML alt çalıştırmalarını kullanılabilir düğümlerde/VM'lerde paralel olarak çalıştırır.
Alt çalıştırmaları yönetmeye ve ne zaman gerçekleştirilebileceklerini yönetmeye yardımcı olmak için deneme başına ayrılmış bir küme oluşturmanızı ve denemenizin sayısını max_concurrent_iterations
kümedeki düğüm sayısıyla eşleştirmenizi öneririz. Bu şekilde, kümenin tüm düğümlerini istediğiniz eş zamanlı alt çalıştırma/yineleme sayısıyla aynı anda kullanırsınız.
Yapılandırmada limits
yapılandırınmax_concurrent_iterations
. Yapılandırılmamışsa, deneme başına varsayılan olarak yalnızca bir eş zamanlı alt çalıştırmaya/yinelemeye izin verilir.
İşlem örneği söz konusu olduğunda, max_concurrent_trials
işlem örneği VM'sindeki çekirdek sayısıyla aynı olacak şekilde ayarlanabilir.
Modelleri ve ölçümleri keşfetme
Otomatik ML, eğitim sonuçlarınızı izlemeniz ve değerlendirmeniz için seçenekler sunar.
Her çalıştırma için sağlanan performans grafiklerinin ve ölçümlerin tanımları ve örnekleri için bkz . Otomatik makine öğrenmesi denemesi sonuçlarını değerlendirme.
Özellik geliştirme özeti almak ve belirli bir modele hangi özelliklerin eklendiğini anlamak için bkz . Özellik geliştirme şeffaflığı.
Modelin sayfasındaki Azure Machine Learning kullanıcı arabiriminden, belirli bir modeli eğitirken kullanılan hiper parametreleri görüntüleyebilir ve ayrıca kullanılan iç modelin eğitim kodunu görüntüleyebilir ve özelleştirebilirsiniz.
Modelleri kaydetme ve dağıtma
Bir modeli test ettikten ve üretimde kullanmak istediğinizi onayladıktan sonra, daha sonra kullanmak üzere kaydedebilirsiniz.
İpucu
Kayıtlı modeller için tek tıklamayla dağıtım Azure Machine Learning stüdyosu aracılığıyla kullanılabilir. Kayıtlı modellerin stüdyodan nasıl dağıtılacağına bakın.
İşlem hatlarında AutoML
MLOps iş akışlarınızda AutoML'yi kullanmak için Azure Machine Learning İşlem Hatlarınıza AutoML İşi adımları ekleyebilirsiniz. Bu, veri hazırlama betiklerinizi AutoML'ye bağlayıp ardından en iyi modeli kaydedip doğrulayarak iş akışınızın tamamını otomatikleştirmenizi sağlar.
Aşağıda, AutoML sınıflandırma bileşenine ve sonuçta elde edilen AutoML çıkışını gösteren bir komut bileşenine sahip örnek bir işlem hattı verilmiştir. Girişlere (eğitim ve doğrulama verileri) ve çıkışlara (en iyi model) farklı adımlarda nasıl başvurıldığına dikkat edin.
# Define pipeline
@pipeline(
description="AutoML Classification Pipeline",
)
def automl_classification(
classification_train_data,
classification_validation_data
):
# define the automl classification task with automl function
classification_node = classification(
training_data=classification_train_data,
validation_data=classification_validation_data,
target_column_name="y",
primary_metric="accuracy",
# currently need to specify outputs "mlflow_model" explictly to reference it in following nodes
outputs={"best_model": Output(type="mlflow_model")},
)
# set limits and training
classification_node.set_limits(max_trials=1)
classification_node.set_training(
enable_stack_ensemble=False,
enable_vote_ensemble=False
)
command_func = command(
inputs=dict(
automl_output=Input(type="mlflow_model")
),
command="ls ${{inputs.automl_output}}",
environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:latest"
)
show_output = command_func(automl_output=classification_node.outputs.best_model)
pipeline_job = automl_classification(
classification_train_data=Input(path="./training-mltable-folder/", type="mltable"),
classification_validation_data=Input(path="./validation-mltable-folder/", type="mltable"),
)
# set pipeline level compute
pipeline_job.settings.default_compute = compute_name
# submit the pipeline job
returned_pipeline_job = ml_client.jobs.create_or_update(
pipeline_job,
experiment_name=experiment_name
)
returned_pipeline_job
# ...
# Note that this is a snippet from the bankmarketing example you can find in our examples repo -> https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs/pipelines/1h_automl_in_pipeline/automl-classification-bankmarketing-in-pipeline
İşlem hatlarınıza AutoML'yi ekleme hakkında daha fazla örnek için lütfen örnek depomuza göz atın.
Uygun ölçekte AutoML: dağıtılmış eğitim
Büyük veri senaryolarında AutoML, sınırlı bir model kümesi için dağıtılmış eğitimi destekler:
Dağıtılmış algoritma | Desteklenen görevler | Veri boyutu sınırı (yaklaşık) |
---|---|---|
LightGBM | Sınıflandırma, regresyon | 1 TB |
TCNForecaster | Tahmin | 200 GB |
Dağıtılmış eğitim algoritmaları, model eğitimi için verilerinizi otomatik olarak bölümlere ayırır ve birden çok işlem düğümüne dağıtır.
Not
Çapraz doğrulama, grup modelleri, ONNX desteği ve kod oluşturma şu anda dağıtılmış eğitim modunda desteklenmiyor. Ayrıca AutoML, kullanılabilir özellik oluşturucuları ve doğrulama, açıklanabilirlik ve model değerlendirmesi için kullanılan alt örnekleme verilerini kısıtlama gibi seçimler yapabilir.
Sınıflandırma ve regresyon için dağıtılmış eğitim
Sınıflandırma veya regresyon için dağıtılmış eğitimi kullanmak için iş nesnesinin training_mode
ve max_nodes
özelliklerini ayarlamanız gerekir.
Özellik | Açıklama |
---|---|
training_mode | Eğitim modunu gösterir; distributed veya .non_distributed varsayılan değeridir non_distributed . |
max_nodes | Her AutoML denemesine göre eğitim için kullanılacak düğüm sayısı. Bu ayar 4'ten büyük veya buna eşit olmalıdır. |
Aşağıdaki kod örneği, sınıflandırma işi için bu ayarların bir örneğini gösterir:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
classification_job.set_training(
allowed_training_algorithms=["LightGBM"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes for each trial
classification_job.set_limits(
max_nodes=4,
# other limit settings
)
Not
Sınıflandırma ve regresyon görevleri için dağıtılmış eğitim şu anda birden çok eşzamanlı denemeyi desteklememektedir. Model denemeleri düğümleri kullanarak max_nodes
her denemede sırayla yürütülür. Sınır max_concurrent_trials
ayarı şu anda yok sayılır.
Tahmin için dağıtılmış eğitim
Dağıtılmış eğitimin tahmin görevleri için nasıl çalıştığını öğrenmek için ölçek düzeyinde tahmin makalemize bakın. Tahmin için dağıtılmış eğitimi kullanmak için , , max_nodes
enable_dnn_training
ve isteğe bağlı olarak iş nesnesinin max_concurrent_trials
özelliklerini ayarlamanız training_mode
gerekir.
Özellik | Açıklama |
---|---|
training_mode | Eğitim modunu gösterir; distributed veya .non_distributed varsayılan değeridir non_distributed . |
enable_dnn_training | Derin sinir ağı modellerini etkinleştirmek için bayrak ekleyin. |
max_concurrent_trials | Bu, paralel olarak eğitmek için en fazla deneme modeli sayısıdır. Varsayılan değer 1'tir. |
max_nodes | Eğitim için kullanılacak toplam düğüm sayısı. Bu ayar 2'den büyük veya buna eşit olmalıdır. Tahmin görevleri için her deneme modeli $\text{max}\left(2, \text{floor}( \text{max_nodes} / \text{max_concurrent_trials}) \right)$ düğümleri kullanılarak eğitilir. |
Aşağıdaki kod örneği, bir tahmin işi için bu ayarların bir örneğini gösterir:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
forecasting_job.set_training(
enable_dnn_training=True,
allowed_training_algorithms=["TCNForecaster"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes
# Train 2 trial models in parallel => 2 nodes per trial
forecasting_job.set_limits(
max_concurrent_trials=2,
max_nodes=4,
# other limit settings
)
Tam yapılandırma kodu örnekleri için yapılandırma ve iş gönderimi ile ilgili önceki bölümlere bakın.
Sonraki adımlar
- Modelin nasıl ve nereye dağıtılacağı hakkında daha fazla bilgi edinin.
- Zaman serisi tahmin modelini eğitmek için AutoML'yi ayarlama hakkında daha fazla bilgi edinin.