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.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Python SDK azure-ai-ml v2 (geçerli)
Bu makalede , Azure Machine Learning Python SDK v2 ile Bir AutoML eğitim işi ayarlamayı öğrenin. AutoML sizin için bir algoritma ve hiper parametre seçer ve dağıtıma hazır bir model oluşturur. Bu makalede, AutoML denemelerini yapılandırmak için kullanabileceğiniz çeşitli seçeneklerin ayrıntıları sağlanır.
Kod içermeyen bir deneyimi tercih ediyorsanız , studio kullanıcı arabirimiyle tablosal veriler için 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 bkz . Başlamak için kaynak oluşturma.
SDK bilgilerini kullanmak için Python için Azure Machine Learning SDK v2'yi yükleyin.
SDK'yi iki yolla yükleyebilirsiniz:
- En son Azure Machine Learning Python SDK'sını içeren ve ML iş akışları için 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ükleyin.
Çalışma alanınızı ayarlama
Bir çalışma alanına bağlanmak için bir abonelik, kaynak grubu ve çalışma alanı sağlamanız gerekir.
Çalışma alanı ayrıntıları, Azure Machine Learning çalışma alanınıza bağlanmak için adresine gider MLClientazure.ai.ml .
Aşağıdaki örnek, klasör yapısındaki bir config.json dosyadan varsayılan çalışma alanı yapılandırması veya yapılandırmasıyla varsayılan Azure kimlik doğrulamasını kullanır. hiçbir config.jsonbulursa, aboneliğini oluştururken MLClientabonelik kimliğini, kaynak grubunu ve çalışma alanını el ile sağlamanız gerekir.
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
from azure.ai.ml import MLClient
try:
credential = DefaultAzureCredential()
credential.get_token("https://management.azure.com/.default")
except Exception:
credential = InteractiveBrowserCredential()
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ğını ve biçimini belirtme
SDK v2'de 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. AutoML v2 (Python SDK ve CLI/YAML), MLTable veri varlıklarını (v2) kabul eder. Geriye dönük uyumluluk için, aynı giriş veri kümesi özellikleri aracılığıyla kayıtlı bir Tablolu Veri Kümesi olan v1'den v1 Tablolu Veri Kümeleri'ni de destekler. v2'de kullanılabilen MLTable kullanmanızı öneririz. Bu örnekte veriler yerel ./train_data/bank_marketing_train_data.csv yolunda depolanır.
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, dosya biçimi ve yükleme yönergelerini içeren yeni bir ./train_data/MLTable dosyası oluşturur.
Artık ./train_data klasöründe MLTable tanım dosyası ve veri dosyası bank_marketing_train_data.csv.
MLTable hakkında daha fazla bilgi için bkz . Azure Machine Learning'de tablolarla çalışma.
Eğitim, doğrulama ve test verileri
Ayrı eğitim verileri ve doğrulama veri kümeleri belirtebilirsiniz. AutoML işinizin training_data fabrika işlevinde parametresine eğitim verileri sağlamanız gerekir.
Bir veya validation_data parametresini açıkça belirtmezsenizn_cross_validation, AutoML doğrulamanın nasıl yapılacağını 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 | AutoML, eğitim ve doğrulama verilerinin bölünmesi uygular. Varsayılan değer, doğrulama kümesi olarak ilk eğitim veri kümesinin 10% alır. AutoML daha sonra ölçüm hesaplaması için bu doğrulama kümesini kullanır. |
| 20.000 satırdan küçük veya buna eşit | AutoML çapraz doğrulama yaklaşımını uygular. Varsayılan katlama sayısı satır sayısına bağlıdır. Veri kümesi 1.000 satırdan azsa, AutoML on kat kullanır. Satırlar 1.000 ile 20.000 arasında veya buna eşitse, AutoML üç kat kullanır. |
Deneme çalıştırmak için işlem
Python SDK v2 (veya CLI v2) içeren AutoML işleri şu anda yalnızca Azure Machine Learning uzak işlem kümesinde veya işlem örneğinde desteklenmektedir. Python SDKv2 veya CLIv2 ile işlem oluşturma hakkında daha fazla bilgi için bkz. Azure Machine Learning CLI, SDK ve REST API ile modelleri eğitin.
Deneme ayarlarınızı yapılandırma
AutoML denemenizi yapılandırmak için çeşitli seçenekler kullanabilirsiniz. Bu yapılandırma parametreleri görev yönteminizde ayarlanır. ayrıca ve ayarlarıyla training iş eğitimi ayarlarını ve limits de ayarlayabilirsiniz.
Aşağıdaki örnekte, birincil ölçüm ve beş ç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
AutoML işinizi göndermeden önce çözmek istediğiniz makine öğrenmesi sorununun türünü belirleyin. Bu sorun, işinizin hangi işlevi kullandığını ve hangi model algoritmalarını uyguladığını belirler.
AutoML farklı görev türlerini destekler:
Tablosal veri tabanlı görevler
- sınıflandırma
- gerileme
- Tahmin
Görüntü işleme görevleri,
- Resimleri Sınıflandırma
- Nesne Algılama
Doğal dil işleme görevleri,
- Metin sınıflandırması
- Varlık Tanıma
Daha fazla bilgi için bkz . görev türleri. Tahmin işlerini ayarlama hakkında daha fazla bilgi için bkz. AutoML'yi zaman serisi tahmin modelini eğitecek şekilde ayarlama.
Desteklenen algoritmalar
AutoML, 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 veya modellerin listesini belirler. Dahil etmek veya dışlamak için kullanılabilir modellerle yinelemeleri daha fazla değiştirmek için işin yapılandırmasında allowed_training_algorithms veya blocked_training_algorithms parametrelerini kullanıntraining.
Aşağıdaki tabloda makine öğrenmesi görevi başına desteklenen algoritmaları inceleyin.
Diğer algoritmalarla:
- 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
Örneğin, her görev türünün not defterleri için bkz . automl-standalone-jobs.
Birincil ölçüm
parametresi, primary_metric iyileştirme için model eğitimi sırasında kullanılacak ölçümü belirler. Seçtiğiniz görev türü, seçebileceğiniz ölçümleri belirler.
İyileştirecek AutoML 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 boyutu, aralık ve sınıf dağıtımı dahil olmak üzere veri kümesi profilinize 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.
Bu ölçümlerin belirli tanımları hakkında bilgi edinmek için bkz. AutoML deneme sonuçlarını değerlendirme.
Çok sınıflı sınıflandırma senaryoları için ölçümler
Bu ölçümler tablosal veriler, görüntüler veya görüntü işleme ve doğal dil işleme metni (NLP-Metin) dahil olmak üzere tüm sınıflandırma senaryoları için geçerlidir.
, accuracy, recall_score_weightedve norm_macro_recall gibi precision_score_weightedeş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. AutoML tamamlandıktan sonra, iş gereksinimlerinize en uygun ölçümü temel alarak kazanan modeli seçebilirsiniz.
| Ölçü birimi | 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
Çok etiketli metin sınıflandırması için şu anda desteklenen tek birincil ölçüm 'Doğruluk'.
Çok etiketli görüntü sınıflandırması için desteklenen birincil ölçümler sabit listesinde ClassificationMultilabelPrimaryMetrics tanımlanır.
Varlık Tanıma adlı NLP Metni senaryoları için ölçümler
Varlık Tanıma (NER) adlı NLP metni için şu anda desteklenen tek birincil ölçüm 'Doğruluk'.
Regresyon senaryoları için ölçümler
r2_score, normalized_mean_absolute_errorve normalized_root_mean_squared_error tümü tahmin hatalarını en aza indirmeye çalışır.
r2_score ve normalized_root_mean_squared_error her ikisi de ortalama hata karesini 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 sahiptir. Daha büyük hataların daha fazla cezalandırılıp cezalandırılmayacağına bağlı olarak, kareli hatayı veya mutlak hatayı iyileştirmeyi seçebilirsiniz.
ile r2_score arasındaki normalized_root_mean_squared_error temel fark, bunların nasıl normalleştirildiği 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. Modelin yakalayabileceği 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 daha iyi bir seçim olabilir. Gerçek değerler ve tahminler arasındaki derece bağıntısını ölçer.
AutoML şu anda tahminler ve gözlemler arasındaki göreli farkı ölçen birincil ölçümleri desteklememektedir. , r2_scoreve normalized_mean_absolute_error ölçümlerinormalized_root_mean_squared_error, 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_errorile modeli seçebilirsiniz. Herhangi bir gözlem değeri sıfır olduğunda bu ölçümler tanımlanmamıştır, bu nedenle her zaman iyi seçenekler olmayabilir.
| Ölçü birimi | 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ına yönelik önerilere benzer.
| Ölçü birimi | 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 sabit listesinde ObjectDetectionPrimaryMetrics tanımlanır.
Görüntü Örneği Segmentasyonu senaryoları için ölçümler
Görüntü Örneği Segmentasyonu senaryoları için desteklenen birincil ölçümler sabit listesinde InstanceSegmentationPrimaryMetrics tanımlanır.
Veri özellik kazandırma
Her AutoML denemesinde verileriniz otomatik olarak sayılara ve sayı vektörlerine dönüştürülür. Veriler 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
Özellik normalleştirme, eksik verileri işleme ve metni sayısala dönüştürme gibi AutoML özellik geliştirme adımları, temel alınan modelin bir parçası haline gelir. Modeli tahminler için kullandığınızda, eğitim sırasında uygulanan özellik geliştirme adımları giriş verilerinize otomatik olarak uygulanır.
AutoML işlerini yapılandırırken ayarları etkinleştirebilir veya 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ının ve özellik geliştirme adımlarının otomatik olarak yapıldığını gösterir. Bu değer, varsayılan ayardır. |
"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ı kullanmanız gerektiğini gösterir. |
Aşağıdaki kod, bu durumda bir regresyon işi için özel özellik kazandırma sağlamayı 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() birkaç seçenek tanımlayabilirsiniz.
| Ölçütler | açıklama |
|---|---|
| Ölçüt yok | Herhangi bir çıkış parametresi tanımlamazsanız, birincil ölçümünüzde başka bir ilerleme kaydedilmeden deneme 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ı altı 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 geliştirme 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, AutoML 1 ay veya 43200 dakika değerini kullanır. |
enable_early_termination |
Puanın kısa vadede iyileşmemesi durumunda işin sonlandırılıp sonlandırılmayacağı. |
max_trials |
Bir iş sırasında deneyebileceğiniz algoritma ve hiper parametrelerin farklı bir bileşimine sahip en fazla deneme/çalıştırma sayısı. Belirtilmezse, varsayılan değer 1.000 denemedir. kullanıyorsanız enable_early_termination, AutoML daha az deneme kullanabilir. |
max_concurrent_trials |
Paralel olarak çalıştırılacak en fazla deneme sayısı (alt iş). Bu sayıyı kümenizin düğüm sayısıyla eşleştirmek iyi bir uygulamadır. |
Denemeyi çalıştırma
Çalıştırmak ve model oluşturmak için denemeyi gönderin.
Not
Aynı yapılandırma ayarları ve birincil ölçümle bir denemeyi birden çok kez çalıştırırsanız, her denemenin son ölçüm puanında ve oluşturulan modellerde çeşitleme görebilirsiniz. AutoML'nin kullandığı algoritmalar, deneme tarafından elde edilen modellerde küçük farklılıklara ve doğruluk gibi önerilen modelin son ölçüm puanına neden olabilecek doğal rastgeleliğe sahiptir. Aynı model adına sahip ancak kullanılan farklı hiper parametrelere sahip sonuçları da görebilirsiniz.
Uyarı
Çalışma alanınız üzerinden güvenlik duvarında veya Ağ Güvenlik Grubu'nda kurallar ayarladıysanız, gelen ve giden ağ trafiğini yapılandırma bölümünde tanımlanan şekilde gelen ve giden ağ trafiğine gerekli izinlerin verildiğini doğrulayın.
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
AutoML deneme alt çalıştırmalarını zaten başka bir deneme çalıştıran bir kümede çalıştırabilirsiniz. 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) işlevi görür. AutoML için bu, alt çalıştırma anlamına gelir. Tüm düğümler meşgulse, AutoML yeni bir denemeyi kuyruğa alır. Ücretsiz düğümler varsa, yeni deneme alt çalıştırmaları kullanılabilir düğümlerde veya sanal makinelerde paralel olarak çalıştırır.
Alt çalıştırmaları yönetmeye ve ne zaman çalıştırabileceklerini 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, istediğiniz eş zamanlı alt çalıştırma ve yineleme sayısıyla kümenin tüm düğümlerini aynı anda kullanırsınız.
Yapılandırmada max_concurrent_iterations yapılandırınlimits. 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 için, işlem örneği sanal makinesindeki çekirdek sayısıyla aynı olacak şekilde ayarlayabilirsiniz max_concurrent_trials .
Modelleri ve ölçümleri keşfetme
AutoML, 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. AutoML 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 Azure Machine Learning stüdyosu kullanarak tek tıklamayla dağıtımı kullanabilirsiniz. Bkz. Modelinizi dağıtma.
İşlem hatlarında AutoML kullanma
AutoML'yi makine öğrenmesi işlemleri iş akışlarınızda kullanmak için Azure Machine Learning İşlem Hatlarınıza AutoML İşi adımları ekleyebilirsiniz. Bu yaklaşım, veri hazırlama betiklerinizi AutoML'ye bağlayarak iş akışınızın tamamını otomatikleştirmenizi sağlar. Ardından en iyi modeli kaydedin ve doğrulayın.
Bu kod, AutoML sınıflandırma bileşenine ve sonuçta elde edilen çıkışı gösteren bir komut bileşenine sahip örnek bir işlem hattıdır . Kod, farklı adımlardaki girişlere (eğitim ve doğrulama verileri) ve çıkışlara (en iyi model) başvurur.
# 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 ekleme hakkında daha fazla örnek için örnek deposuna bakın.
AutoML'i uygun ölçekte kullanma: 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 Terabayt (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 ayarlayın.
| Özellik | Açıklama |
|---|---|
| eğitim modu | Eğitim modunu gösterir: distributed veya non_distributed. varsayılan değeridir non_distributed. |
| maksimum_düğümler | Her deneme sürümüne 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 çalışı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 bkz . Uygun ölçekte tahmin yapma. Tahmin için dağıtılmış eğitimi kullanmak için , , training_modeenable_dnn_trainingve isteğe bağlı olarak iş nesnesinin max_nodes özelliklerini ayarlamanız max_concurrent_trialsgerekir.
| Özellik | Açıklama |
|---|---|
| eğitim modu | 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. |
| eşzamanlı maksimum deneme sayısı | Bu değer, paralel olarak eğitmek için en fazla deneme modeli sayısıdır. Varsayılan değer 1'tir. |
| maksimum_düğümler | 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.
İlgili içerik
- 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.