Python için Azure Machine Learning SDK'sı nedir?
Veri bilimciler ve yapay zeka geliştiricileri, Azure Machine Learning hizmetiyle makine öğrenmesi iş akışları oluşturmak ve çalıştırmak için Python için Azure Machine Learning SDK'sını kullanır. Jupyter Notebooks, Visual Studio Code veya sık kullandığınız Python IDE dahil olmak üzere herhangi bir Python ortamında hizmetle etkileşim kurabilirsiniz.
SDK'nın başlıca alanları şunlardır:
- Makine öğrenmesi denemelerinde kullanılan veri kümelerinizi keşfetme, hazırlama ve bunların yaşam döngüsünü yönetme.
- Makine öğrenmesi denemelerinizi izlemek, günlüğe kaydetmek ve düzenlemek için bulut kaynaklarını yönetme.
- Modelleri yerel olarak veya GPU hızlandırmalı model eğitimi gibi bulut kaynaklarını kullanarak eğitme.
- Yapılandırma parametrelerini ve eğitim verilerini kabul eden otomatik makine öğrenmesini kullanın. Tahminleri çalıştırmaya yönelik en iyi modeli bulmak için algoritmaları ve hiper parametre ayarlarını otomatik olarak yineler.
- Eğitilen modellerinizi herhangi bir uygulamada kullanılabilecek RESTful hizmetlerine dönüştürmek için web hizmetlerini dağıtma.
Kullanmaya nasıl başlayacağınızı gösteren adım adım yönergeler için öğreticiyi deneyin.
Aşağıdaki bölümlerde SDK'daki en önemli sınıflardan bazılarına genel bakış bilgileri ve bu sınıfları kullanmak için yaygın tasarım desenleri sağlanır. SDK'yı almak için yükleme kılavuzuna bakın.
Kararlı ve deneysel karşılaştırması
Python için Azure Machine Learning SDK'sı aynı SDK'da hem kararlı hem de deneysel özellikler sağlar.
Özellik/yetenek durumu | Description |
---|---|
Kararlı özellikler |
Üretime hazır Bu özellikler çoğu kullanım örneği ve üretim ortamı için önerilir. Bunlar daha az sıklıkta ve deneysel özelliklerle güncelleştirilir. |
Deneysel özellikler |
Gelişimsel Bu özellikler, üretim kullanımı için hazır veya tam olarak test edilmeyebilir güncelleştirmeler & yeni geliştirilen özelliklerdir. Özellikler genellikle işlevsel olsa da bazı hataya neden olan değişiklikler içerebilir. Deneysel özellikler SDK'nın hataya neden olan hatalarını çözmek için kullanılır ve yalnızca test süresi boyunca güncelleştirmeleri alır. Deneysel özellikler, önizleme aşamasında olan özellikler olarak da adlandırılır. Adından da belirtildiği gibi deneysel (önizleme) özellikler deneme amaçlıdır ve hatasız veya kararlı olarak kabul edilmez. Bu nedenle, yalnızca özelliklerin ve güncelleştirmelerin erken sürümlerini denemek isteyen ve hataların ve aksaklıkların raporlanmasında yer almayı planlayan ileri düzey kullanıcılara deneysel özellikleri öneririz. |
Deneysel özellikler, SDK başvurusundaki bir not bölümüyle etiketlenir ve Azure Machine Learning belgelerinde(önizleme) gibi metinlerle gösterilir.
Çalışma alanı
Ad Alanı: azureml.core.workspace.Workspace
Workspace
sınıfı bulutta makine öğrenmesi modellerini denemek, eğitmek ve dağıtmak için kullanabileceğiniz temel kaynaklardan biridir. Azure aboneliğinizi ve kaynak grubunuzu kolayca kullanılan bir nesneye bağlar.
Mevcut örnekleri (Depolama, Key Vault, App-Insights ve Azure Container Registry-ACR) yeniden kullanmak ve özel uç nokta yapılandırması ve işlem hedefi gibi ek ayarları değiştirmek için Çalışma Alanı oluşturma yönteminin tüm parametrelerini görüntüleyin.
Aşağıdaki kodu kullanarak sınıfı dışarı aktarın ve yeni bir çalışma alanı oluşturun. Önceden mevcut olan ve çalışma alanı için kullanmak istediğiniz bir Azure kaynak grubunuz varsa create_resource_group
değerini False
olarak ayarlayın. Bazı işlevlerde Azure kimlik doğrulaması kimlik bilgileri istenebilir.
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2'
)
Çalışma alanını önce bir yapılandırma JSON dosyasına yazarak birden çok ortamda aynı çalışma alanını kullanın. Bu abonelik, kaynak ve çalışma alanı adı verilerinizi kaydeder.
ws.write_config(path="./file-path", file_name="ws_config.json")
Yapılandırma dosyasını okuyarak çalışma alanınızı yükleyin.
from azureml.core import Workspace
ws_other_environment = Workspace.from_config(path="./file-path/ws_config.json")
Alternatif olarak, yapılandırma dosyalarını kullanmadan mevcut çalışma alanını yüklemek için statik get()
yöntemini kullanın.
from azureml.core import Workspace
ws = Workspace.get(name="myworkspace", subscription_id='<azure-subscription-id>', resource_group='myresourcegroup')
Aşağıdaki kod örneklerinde ws
değişkeni bir Workspace
nesnesini temsil eder.
Deneme
Ad Alanı: azureml.core.experiment.Experiment
Experiment
sınıfı, deneme koleksiyonunu (tek tek model çalıştırmaları) temsil eden bir diğer temel bulut kaynağıdır. Aşağıdaki kod Workspace
öğesinin içinden adıyla Experiment
nesnesini getirir veya ad yoksa yeni bir Experiment
nesnesi oluşturur.
from azureml.core.experiment import Experiment
experiment = Experiment(workspace=ws, name='test-experiment')
Aşağıdaki kodu çalıştırarak Workspace
içinde yer alan tüm Experiment
nesnelerinin listesini alın.
list_experiments = Experiment.list(ws)
Experiment
içinden Run
nesnelerinin (denemeler) listesini almak için get_runs
işlevini kullanın. Aşağıdaki kod çalıştırmaları alır ve her çalıştırma kimliğini yazdırır.
list_runs = experiment.get_runs()
for run in list_runs:
print(run.id)
Denemeyi yürütmenin iki yolu vardır. Jupyter notebook'ta etkileşimli deneme yapıyorsanız start_logging
işlevini kullanın. Standart bir Python ortamından deneme gönderiyorsanız submit
işlevini kullanın. Her iki işlev de Run
nesnesi döndürür. Aşağıdaki kod örneklerinde experiment
değişkeni bir Experiment
nesnesini temsil eder.
Çalıştır
Ad Alanı: azureml.core.run.Run
Çalıştırma, bir denemenin tek bir yürütmesini temsil eder.
Run
denemenin zaman uyumsuz yürütmesini izlemek, denemenin çıkışını depolamak, sonuçları analiz etmek ve oluşturulan yapıtlara erişmek için kullandığınız nesnedir. Ölçümleri ve yapıtları Çalıştırma Geçmişi'nde günlüğe kaydetmek için Run
nesnesini deneme kodunuzun içinde kullanırsınız. İşlevsellik şunları içerir:
- Ölçümleri ve verileri depolama ve alma.
- Geçmiş çalıştırmaları kolayca arayabilmek için etiketleri ve alt hiyerarşiyi kullanma.
- Depolanmış model dosyalarını dağıtım için kaydetme.
- Çalıştırmanın özelliklerini depolama, değiştirme ve alma.
Experiment
nesnesini bir çalıştırma yapılandırması nesnesiyle göndererek Run
nesnesi oluşturun. Çalıştırmalarınıza özel kategoriler ve etiketler eklemek için tags
parametresini kullanın. Bunları daha sonra Experiment
nesnesinden kolayca bulabilir ve alabilirsiniz.
tags = {"prod": "phase-1-model-tests"}
run = experiment.submit(config=your_config_object, tags=tags)
Statik list
işlevini kullanarak Experiment
içinden tümRun
nesnelerinin listesini alın. Daha önce oluşturduğunuz etikete göre filtrelemek için tags
parametresini belirtin.
from azureml.core.run import Run
filtered_list_runs = Run.list(experiment, tags=tags)
Çalıştırmanın ayrıntılı çıkışını almak için get_details
işlevini kullanın.
run_details = run.get_details()
Bu işlevin çıkışı şunları içeren bir sözlüktür:
- Çalıştırma kimliği
- Durum
- Başlangıç ve bitiş zamanı
- İşlem hedefi (yerel - bulut)
- Çalıştırmada kullanılan bağımlılıklar ve sürümler
- Eğitime özgü veriler (model türüne göre farklılık gösterir)
Çalıştırmaları yapılandırma ve izlemeyi gösteren diğer örnekler için nasıl yapılır makalesine bakın.
Modelleme
Ad Alanı: azureml.core.model.Model
Model
sınıfı makine öğrenmesi modellerinin bulut gösterimleriyle çalışmak için kullanılır. Yöntemler, modelleri yerel dağıtım ortamlarıyla buluttaki Workspace
nesnesi arasında aktarmanıza yardımcı olur.
Azure bulutundaki modellerinizi çalışma alanınızda depolamak ve bunların sürümlerini oluşturmak için model kaydını kullanabilirsiniz. Kayıtlı modeller ad ve sürümle tanımlanır. Modeli var olan bir adla her kaydettiğinizde, kayıt defteri sürümü bir artırır. Azure Machine Learning yalnızca Azure Machine Learning modellerini değil Python 3 aracılığıyla yüklenebilen tüm modelleri destekler.
Aşağıdaki örnekte scikit-learn
ile basit bir yerel sınıflandırma modeli oluşturma, modeli Workspace
nesnesine kaydetme ve buluttan indirme işlemlerini gösterir.
Yaşlarına göre müşteri erimesini tahmin etmek için basit bir sınıflandırıcı (clf
) oluşturun. Ardından aynı dizinde .pkl
dosyasına modelin dökümünü alın.
from sklearn import svm
import joblib
import numpy as np
# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)
joblib.dump(value=clf, filename="churn-model.pkl")
Modeli çalışma alanınıza kaydetmek için register
işlevini kullanın. Yerel model yolunu ve model adını belirtin. Aynı adın birden çok kez kaydedilmesi yeni sürüm oluşturur.
from azureml.core.model import Model
model = Model.register(workspace=ws, model_path="churn-model.pkl", model_name="churn-model-test")
Artık model çalışma alanınıza kaydedildiğine göre, modellerinizi kolayca yönetebilir, indirebilir ve düzenleyebilirsiniz. Model nesnesini (örneğin başka bir ortamdaki) Workspace
nesnesinden almak için sınıf oluşturucusunu kullanın ve model adıyla isteğe bağlı parametreleri belirtin. Ardından download
işlevini kullanarak bulut klasörü yapısıyla birlikte modeli indirin.
from azureml.core.model import Model
import os
model = Model(workspace=ws, name="churn-model-test")
model.download(target_dir=os.getcwd())
Modeli Workspace
nesnesinden kaldırmak için delete
işlevini kullanın.
model.delete()
Kayıtlı bir modeliniz olduktan sonra bu modeli web hizmeti olarak dağıtmak sorunsuz bir işlemdir. İlk olarak bir görüntü oluşturur ve kaydedersiniz. Bu adım Python ortamını ve bağımlılıklarını yapılandırır; ayrıca web hizmeti isteği ve yanıt biçimlerini tanımlamak için bir betik vardır. Görüntüyü oluşturduktan sonra işlem hedefi için CPU çekirdeklerini ve bellek parametrelerini ayarlayan bir dağıtım yapılandırması oluşturursunuz. Sonra da görüntünüzü eklersiniz.
ComputeTarget, RunConfiguration ve ScriptRunConfig
Ad Alanı: azureml.core.compute.ComputeTarget
Ad Alanı: azureml.core.runconfig.RunConfiguration
Ad Alanı: azureml.core.script_run_config.ScriptRunConfig
ComputeTarget
sınıfı işlem hedeflerini oluşturmak ve yönetmek için soyut bir üst sınıftır. İşlem hedefi, makine öğrenmesi modellerinizi eğitebileceğiniz çeşitli kaynakları temsil eder. İşlem hedefi bir yerel makine olabileceği gibi Azure Machine Learning İşlem, Azure HDInsight veya uzak sanal makine gibi bir bulut kaynağı da olabilir.
Model eğitiminde güçlü sanal makinelerden yararlanmak için işlem hedeflerini kullanın ve kalıcı işlem hedefleri veya çalışma zamanında çağrılan geçici hedefler ayarlayın. İşlem hedeflerini ayarlamaya ve yönetmeye yönelik kapsamlı bir kılavuz için nasıl yapılır makalesine bakın.
Aşağıdaki kodda bir AmlCompute
(ComputeTarget
sınıfının alt sınıfı) hedefi oluşturmaya yönelik basit bir örnek gösterilir. Bu hedef Workspace
nesnenizde bir çalışma zamanı uzak işlem kaynağı oluşturur. İş gönderildiğinde kaynak otomatik olarak ölçeklendirilir. Çalıştırma bittiğinde de otomatik olarak silinir.
Basit scikit-learn
erime modelini yeniden kullanın ve bunu geçerli dizinde kendi dosyası (train.py
) içinde oluşturun. Dosyanın sonunda outputs
adlı yeni bir dizin oluşturun. Bu adım joblib.dump()
tarafından serileştirilen eğitilmiş modelinizi depolamak için bulutta (çalışma alanınız) bir dizin oluşturur.
# train.py
from sklearn import svm
import numpy as np
import joblib
import os
# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)
os.makedirs("outputs", exist_ok=True)
joblib.dump(value=clf, filename="outputs/churn-model.pkl")
Ardından RunConfiguration
nesnesinin örneğini oluşturarak ve tür ile boyutu ayarlayarak işlem hedefini oluşturursunuz. Bu örnekte en küçük kaynak boyutu (1 CPU çekirdeği, 3,5 GB bellek) kullanılır.
list_vms
değişkeni desteklenen sanal makinelerin listesini ve onların boyutlarını içerir.
from azureml.core.runconfig import RunConfiguration
from azureml.core.compute import AmlCompute
list_vms = AmlCompute.supported_vmsizes(workspace=ws)
compute_config = RunConfiguration()
compute_config.target = "amlcompute"
compute_config.amlcompute.vm_size = "STANDARD_D1_V2"
CondaDependencies
sınıfını kullanarak uzak işlem kaynağının Python ortamı için bağımlılıkları oluşturun.
train.py
dosyası, ortamda yüklenmesi gereken scikit-learn
ve numpy
kullanır. Ayrıca bağımlılıkların sürümlerini de belirtebilirsiniz.
dependencies
nesnesini kullanarak compute_config
içinde ortamı ayarlayın.
from azureml.core.conda_dependencies import CondaDependencies
dependencies = CondaDependencies()
dependencies.add_pip_package("scikit-learn")
dependencies.add_pip_package("numpy==1.15.4")
compute_config.environment.python.conda_dependencies = dependencies
Artık denemeyi göndermeye hazırsınız.
ScriptRunConfig
sınıfını kullanarak işlem hedefi yapılandırmasını ekleyin ve train.py
eğitim betiğinin yolunu/dosyasını belirtin.
submit()
işlevinin config
parametresini belirterek denemeyi gönderin. Ortam başlatıldığında ve model eğitildiğinde zaman uyumsuz çalıştırma çıkışını görmek için sonuç çalıştırmasında wait_for_completion
çağrısı yapın.
Uyarı
Parametrelerde ScriptRunConfig
kullanılan belirli karakterlerle ilgili sınırlamalar şunlardır:
-
"
Bash$
komutlarını ayırmak için ayrılmış karakterler olarak kabul edildiklerinde , ,;
ve\
karakterleri arka uç tarafından kaçış olarak kabul edilir. - Windows'da
(
yerel çalıştırmalar için ,!
^
)
%
<
,>
,&
ve|
karakterleri kaçış olarak kaydedilir.
from azureml.core.experiment import Experiment
from azureml.core import ScriptRunConfig
script_run_config = ScriptRunConfig(source_directory=os.getcwd(), script="train.py", run_config=compute_config)
experiment = Experiment(workspace=ws, name="compute_target_test")
run = experiment.submit(config=script_run_config)
run.wait_for_completion(show_output=True)
Çalıştırma bittikten sonra eğitilen model dosyası churn-model.pkl
çalışma alanınızda kullanılabilir durumda olur.
Ortam
Ad Alanı: azureml.core.environment
Azure Machine Learning ortamları, eğitim ve puanlama betiklerinizin çevresinde Python paketlerini, ortam değişkenlerini ve yazılım ayarlarını belirtir. Python'a ek olarak PySpark, Docker ve R'yi ortamlar için de yapılandırabilirsiniz. Ortamlar dahili olarak, işlem hedefinde eğitim ve puanlama işlemlerini çalıştırmak için kullanılan Docker görüntüleriyle sonuçlanabilir. Ortamlar, Çeşitli işlem hedefleri ve işlem türleri arasında yeniden üretilebilir, denetlenebilir ve taşınabilir makine öğrenmesi iş akışlarını etkinleştiren Machine Learning çalışma alanınızdaki yönetilen ve sürümlenmiş varlıklardır.
Aşağıdakiler için bir Environment
nesne kullanabilirsiniz:
- Eğitim betiğinizi geliştirin.
- Büyük ölçekte model eğitimi için Azure Machine Learning İşlem'de aynı ortamı yeniden kullanma.
- Modelinizi belirli bir işlem türüne bağlı kalmadan aynı ortamla dağıtın.
Aşağıdaki kod, sınıfı SDK'dan içeri aktarır Environment
ve ortam nesnesinin örneğini oluşturur.
from azureml.core.environment import Environment
Environment(name="myenv")
Conda, pip veya özel tekerlek dosyalarını kullanarak bir ortama paket ekleyin. Her paket bağımlılığını ortamın CondaDependency
PythonSection
öğesine eklemek için sınıfını kullanarak belirtin.
Aşağıdaki örnek ortama ekler. 1.17.0 sürümünü numpy
ekler. Ayrıca paketini ortamına myenv
eklerpillow
. Örnek sırasıyla yöntemini ve add_pip_package()
yöntemini kullanıradd_conda_package()
.
from azureml.core.environment import Environment
from azureml.core.conda_dependencies import CondaDependencies
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
# Installs numpy version 1.17.0 conda package
conda_dep.add_conda_package("numpy==1.17.0")
# Installs pillow package
conda_dep.add_pip_package("pillow")
# Adds dependencies to PythonSection of myenv
myenv.python.conda_dependencies=conda_dep
Eğitim çalıştırması göndermek için ortamınızı, işlem hedefinizi ve eğitim Python betiğinizi bir çalıştırma yapılandırmasında birleştirmeniz gerekir. Bu yapılandırma, çalıştırmaları göndermek için kullanılan bir sarmalayıcı nesnesidir.
Eğitim çalıştırması gönderdiğinizde, yeni bir ortamın oluşturulması birkaç dakika sürebilir. Süre, gerekli bağımlılıkların boyutuna bağlıdır. Ortamlar hizmet tarafından önbelleğe alınır. Bu nedenle, ortam tanımı değişmeden kaldığı sürece, tam kurulum süresini yalnızca bir kez kullanırsınız.
Aşağıdaki örnek, sarmalayıcı nesneniz olarak kullanacağınız ScriptRunConfig
yeri gösterir.
from azureml.core import ScriptRunConfig, Experiment
from azureml.core.environment import Environment
exp = Experiment(name="myexp", workspace = ws)
# Instantiate environment
myenv = Environment(name="myenv")
# Add training script to run config
runconfig = ScriptRunConfig(source_directory=".", script="train.py")
# Attach compute target to run config
runconfig.run_config.target = "local"
# Attach environment to run config
runconfig.run_config.environment = myenv
# Submit run
run = exp.submit(runconfig)
Çalıştırmayı göndermeden önce çalıştırma yapılandırmanızda bir ortam belirtmezseniz, sizin için varsayılan bir ortam oluşturulur.
Bir web hizmetini dağıtmak için ortamları kullanmak için Model dağıtma bölümüne bakın.
Pipeline, PythonScriptStep
Ad Alanı: azureml.pipeline.core.pipeline.Pipeline
Ad Alanı: azureml.pipeline.steps.python_script_step.PythonScriptStep
Azure Machine Learning işlem hattı, eksiksiz bir makine öğrenmesi görevinin otomatik iş akışıdır. Alt görevler işlem hattı içinde bir dizi adım olarak kapsüllenir. Azure Machine Learning işlem hattı bir Python betiği çağıran tek adım kadar basit olabilir. İşlem hatları şunlara yönelik işlevselliği içerir:
- İçeri aktarma, doğrulama ve temizleme, ham verileri kullanışlı hale getirme ve dönüştürme, normalleştirme ve hazırlamayı içeren veri hazırlığı
- Bağımsız değişkenleri, dosya yollarını ve günlük / raporlama yapılandırmalarını parametreleştirmeyi içeren eğitim yapılandırması
- Belirli veri kümelerini belirtmeyi, farklı donanım işlem kaynaklarını, dağıtılmış işlemeyi ve ilerleme durumu izlemeyi içerebilen verimli ve tekrarlanabilir şekilde eğitme ve doğrulama
- Sürüm oluşturma, ölçeklendirme, sağlama ve erişim denetimini içeren dağıtım
- Herhangi bir HTTP kitaplığından yeniden çalıştırmak için işlem hattını bir REST uç noktasında yayımlama
PythonScriptStep
, işlem kaynağında Python Betiği çalıştırmaya yönelik temel, yerleşik bir adımdır. Betik adını ve betiğin bağımsız değişkenleri, işlem hedefi, girişler ve çıkışlar gibi diğer isteğe bağlı parametreleri alır. Aşağıdaki kod basit bir PythonScriptStep
örneğidir. Bir train.py
betiği örneği için öğreticinin alt bölümüne bakın.
from azureml.pipeline.steps import PythonScriptStep
train_step = PythonScriptStep(
script_name="train.py",
arguments=["--input", blob_input_data, "--output", output_data1],
inputs=[blob_input_data],
outputs=[output_data1],
compute_target=compute_target,
source_directory=project_folder
)
En az bir adım oluşturulduktan sonra adımlar birbirine bağlanabilir ve basit, otomatik bir işlem hattı olarak yayımlanabilir.
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = experiment.submit(pipeline)
İşlem hattı iş akışı oluşturmayı gösteren kapsamlı bir örnek için gelişmiş öğreticiyi izleyin.
İşlem hatlarını oluşturma ve kullanma deseni
Azure Machine Learning işlem hattı bir Azure Machine Learning çalışma alanıyla ilişkilendirilir ve işlem hattı adımı söz konusu çalışma alanında bulunan bir işlem hedefiyle ilişkilendirilir. Daha fazla bilgi için çalışma alanları hakkındaki bu makaleye veya işlem hedeflerinin bu açıklamasına bakın.
İşlem hattı adımları için yaygın bir desen:
- Çalışma alanı, işlem ve depolamayı belirtin
- Şunları kullanarak giriş ve çıkış verilerini yapılandırın
- Mevcut azure veri depolarını kullanıma sunan veri kümesi
- Yazılan tablo verilerini kapsülleyen PipelineDataset
- Bir adım tarafından yazılan ve başka bir adım tarafından kullanılması amaçlanan ara dosya veya dizin verileri için kullanılan PipelineData
- Bir veya birden çok işlem hattı adımı tanımlayın
- Çalışma alanınızı ve adımlarınızı kullanan bir işlem hattı örneği oluşturun
- İşlem hattını göndereceğiniz bir deneme oluşturun
- Deneme sonuçlarını izleyin
Bu not defteri bu desenin iyi bir örneğidir. iş
Azure Machine Learning İşlem Hatları ve özellikle de bunların diğer işlem hattı türlerinden farkı hakkında daha fazla bilgi için bu makaleye bakın.
AutoMLConfig
Ad Alanı: azureml.train.automl.automlconfig.AutoMLConfig
Otomatik makine öğrenmesi eğitiminin parametrelerini yapılandırmak için AutoMLConfig
sınıfını kullanın. Otomatik makine öğrenmesi, makine öğrenmesi algoritmalarının ve hiper parametre ayarlarının birçok bileşimini kullanarak yinelemeler yapar. Ardından seçtiğiniz doğruluk ölçümü temelinde en uygun modeli bulur. Yapılandırma şunların belirtilmesine olanak tanır:
- Görev türü (sınıflandırma, regresyon, tahmin)
- Algoritma yineleme sayısı ve yineleme başına maksimum süre
- İyileştirilecek doğruluk ölçümü
- Blok listesine/izin verilenler listesine algoritmalar
- Çapraz doğrulama sayısı
- İşlem hedefleri
- Eğitim verileri
Not
Otomatik makine öğrenmesini kullanmak için yüklemenizde fazladan automl
kullanın.
Otomatik makine öğrenmesi denemelerini ayarlamaya yönelik ayrıntılı kılavuzlar ve örnekler için öğeticiye ve nasıl yapılır makalesine bakın.
Aşağıdaki kodda bir sınıflandırma modeli için otomatik makine öğrenmesi yapılandırma nesnesini oluşturma ve denemeyi gönderdiğiniz sırada bu nesneyi kullanma işlemleri gösterilir.
from azureml.train.automl import AutoMLConfig
automl_config = AutoMLConfig(task="classification",
X=your_training_features,
y=your_training_labels,
iterations=30,
iteration_timeout_minutes=5,
primary_metric="AUC_weighted",
n_cross_validations=5
)
Denemeyi göndermek için automl_config
nesnesini kullanın.
from azureml.core.experiment import Experiment
experiment = Experiment(ws, "automl_test_experiment")
run = experiment.submit(config=automl_config, show_output=True)
Denemeyi gönderdikten sonra, her yineleme bittikçe eğitimin doğruluğu çıkışta gösterilir. Çalıştırma bittiğinde AutoMLRun
nesnesi (Run
sınıfını genişleten nesne) döndürülür.
Model
nesnesi döndürmek için get_output()
işlevini kullanarak en uygun modeli alın.
best_model = run.get_output()
y_predict = best_model.predict(X_test)
Model dağıtma
Ad Alanı: azureml.core.model.InferenceConfig
Ad Alanı: azureml.core.webservice.webservice.Webservice
InferenceConfig
sınıfı, modeli ve web hizmetini barındırmak için gereken ortamı açıklayan yapılandırma ayarlarına yöneliktir.
Webservice
, modellerinize yönelik web hizmetlerini oluşturmak ve dağıtmak için soyut bir üst sınıftır. Model dağıtımına hazırlanma ve web hizmetlerini dağıtma hakkında ayrıntılı bir kılavuz için bu nasıl yapılır konusuna bakın.
Modelinizi bir web hizmeti olarak dağıtırken ortamları kullanabilirsiniz. Ortamlar, modelinizi hem eğitim işleminizde hem de çıkarım işleminizde aynı kitaplıkları kullanarak dağıtabileceğiniz, yeniden üretilebilir, bağlı bir iş akışı sağlar. Ortamlar dahili olarak Docker görüntüleri olarak uygulanır. Microsoft tarafından sağlanan görüntüleri veya kendi özel Docker görüntülerinizi kullanabilirsiniz. Daha önce dağıtımınız için sınıfını kullandıysanız ContainerImage
ortamlarla benzer bir iş akışı gerçekleştirme sınıfına bakın DockerSection
.
Bir web hizmetini dağıtmak için, dağıtım nesnenizde deploy()
ortamı, çıkarım işlemini, puanlama betiğini ve kayıtlı modeli birleştirin.
Aşağıdaki örnekte, ortamını myenv
kullanarak bir eğitim çalıştırmasını tamamladığınız ve bu modeli Azure Container Instances dağıtmak istediğiniz varsayılır.
from azureml.core.model import InferenceConfig, Model
from azureml.core.webservice import AciWebservice, Webservice
# Register the model to deploy
model = run.register_model(model_name = "mymodel", model_path = "outputs/model.pkl")
# Combine scoring script & environment in Inference configuration
inference_config = InferenceConfig(entry_script="score.py",
environment=myenv)
# Set deployment configuration
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1,
memory_gb = 1)
# Define the model, inference, & deployment configuration and web service name and location to deploy
service = Model.deploy(workspace = ws,
name = "my_web_service",
models = [model],
inference_config = inference_config,
deployment_config = deployment_config)
Bu örnek küçük ölçekli testlere ve hızlı dağıtımlara en uygun olan Azure Container Instances web hizmetini oluşturur. Modelinizi üretim ölçeğinde bir web hizmeti olarak dağıtmak için Azure Kubernetes Service'i (AKS) kullanın. Daha fazla bilgi için bkz. AksCompute sınıfı.
Veri kümesi
Ad Alanı: azureml.core.dataset.Dataset
Ad Alanı: azureml.data.file_dataset.FileDataset
Ad Alanı: azureml.data.tabular_dataset.TabularDataset
Dataset
sınıfı Azure Machine Learning içinde verileri incelemek ve yönetmek için temel bir kaynaktır. Özet istatistiklerle verilerinizi inceleyebilir, sürüm oluşturma ve yeniden üretebilme özelliklerini edinmek için Veri Kümesini AML çalışma alanınıza kaydedebilirsiniz. Veri kümeleri eğitim sırasında modeller tarafından kolayca kullanılır. Ayrıntılı kullanım örnekleri için nasıl yapılır kılavuzuna bakın.
-
TabularDataset
, bir dosyayı veya dosya listesini ayrıştırarak oluşturulan tablo biçimindeki verileri temsil eder. -
FileDataset
veri depolarındaki veya genel URL'lerden gelen bir veya birden çok dosyaya başvurur.
Aşağıdaki örnekte veri deposundaki tek bir yola işaret eden bir TabularDataset'in nasıl oluşturulduğu gösterilir.
from azureml.core import Dataset
dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'train-dataset/tabular/iris.csv')])
dataset.take(3).to_pandas_dataframe()
Aşağıdaki örnekte birden çok dosya URL'sine başvuran bir FileDataset
url'nin nasıl oluşturulacağı gösterilmektedir.
from azureml.core.dataset import Dataset
url_paths = [
'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'
]
dataset = Dataset.File.from_files(path=url_paths)
Sonraki adımlar
Python için Azure Machine Learning SDK'sını kullanmayı öğrenmek için bu sonraki adımları deneyin:
Python'da model oluşturma, eğitme ve dağıtma işlemlerini öğrenmek için öğreticiyi izleyin.
Sol taraftaki içindekiler tablosunu kullanarak bu sitedeki başvuru belgelerinde sınıfları ve modülleri arayın.