Azure Machine Learning işlem hatları
Veri bilimcisi olarak, modelleri eğitmek ve yönetmek için öncelikle Azure Machine Learning ile çalışacaksınız. Denemeden sonra, Azure (DevOps) İşlem Hatları veya GitHub Actions ile otomasyona izin vermek için çalışmanızı üretim Python koduna dönüştürmeniz gerekir.
Azure Machine Learning'de denemeler
Azure Machine Learning, çalışmanızı düzenlemenize yardımcı olan bir dizi özellik sağlar. Örneğin, Azure Machine Learning ile şunları yapabilirsiniz:
- Veri gölünde depolanan verileri kolayca yeniden kullanmak için veri kümelerini kaydedin.
- Gereksinimlerinize bağlı olarak uzak işlem örnekleri veya kümeleri üzerinde model eğitin.
- Çalışmanızı kolayca karşılaştırmak için denemelerle yürütülen tüm betiklerinizi izleyin.
- Eğitilen modelleri kaydedin ve toplu veya gerçek zamanlı tüketim için bir model dağıtın.
Veri bilimcisi olarak çalışmalarınızın çoğu denemelerden oluşur: modeli eğitmek için farklı yapılandırmaları test etme ve üretime hangi modelin dağıtılacağına karar vermek için performans ölçümlerini gözden geçirme.
Jupyter not defterinde (.ipynb dosyalar) denemeler yaptığınız varsayıldığında, denemeyi üretim Python koduna dönüştürmek için şunları yapın:
- Tüm gereksiz kod kaldırılıyor.
- Kodu işlevler halinde yeniden düzenleme.
- Python betiklerinde (
.pydosyalar) ilgili işlevleri birleştirme. - Her Python betiği için birim testleri oluşturma.
- Betikleri otomatik hale getirilebilen bir iş akışında gruplandırmak için bir işlem hattı oluşturun.
Kodunuz üretime hazır olduktan sonra Azure Machine Learning işlem hatları ile betiklerin yürütülmesini otomatikleştirebilirsiniz.
Azure Machine Learning işlem hatları oluşturma
İşlem hattı kavramı çeşitli araçlarda bulunur ve genellikle görevleri belirli bir sırada gruplandırmak için bir yol sağlar. İşlem hattının temel avantajı, işlem hattını zamanlayabilir veya çalıştırılacak şekilde tetikleyebilirsiniz.
Azure Machine Learning çalışma alanında bir Azure Machine Learning işlem hattı oluşturulur. İşlem hattı oluşturmak için Python betikleriyle adımları tanımlayabilirsiniz.
İsteğe bağlı olarak, Azure Machine Learning bileşenleriyle bir işlem hattı oluşturabilirsiniz. Bir bileşen oluşturduğunuzda betik, Azure Machine Learning çalışma alanında gerekli ortam gibi meta verilerle depolanır. Bileşenler aynı çalışma alanı içindeki herkes tarafından paylaşılabilir ve kullanılabilir, böylece başkalarının hızla yeni işlem hatları oluşturması kolaylaşır ve bu da çalışmanızı temel alır.
Otomasyon için kullanılabilecek bir işlem hattı oluşturmak için YAML'de CLI (v2) komutu kullanılarak tetiklenebilen bir işlem hattı işi tanımlamanız önerilir.
İşlem hattını tanımlayan YAML dosyasının aşağıdaki bilgileri belirtmesi gerekir:
- Çalıştırılacaklar: Python betikleri veya bileşenleri olarak tanımlanan adımlar.
- Nasıl çalıştırılır: Adımların bekleyebilecekleri tüm girişler veya çıkışlar.
- Nerede çalıştırılır: Kodu yürütmek için gereken işlem (genellikle bir Azure Machine Learning işlem kümesi).
Örneğin, ham verileri giriş olarak alan, dönüştüren ve modeli eğiten bir işlem hattı dosyada pipeline-job.yml tanımlanabilir:
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc-taxi-pipeline-example
experiment_name: nyc-taxi-pipeline-example
jobs:
transform-job:
type: command
raw_data:
type: uri_folder
path: ./data
outputs:
transformed_data:
mode: rw_mount
code: src/transform
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
compute: azureml:cpu-cluster
command: >-
python transform.py
--raw_data ${{inputs.raw_data}}
--transformed_data ${{outputs.transformed_data}}
train-job:
type: command
inputs:
training_data: ${{parent.jobs.transform-job.outputs.transformed_data}}
outputs:
model_output:
mode: rw_mount
test_data:
mode: rw_mount
code: src/train
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
compute: azureml:cpu-cluster
command: >-
python train.py
--training_data ${{inputs.training_data}}
--test_data ${{outputs.test_data}}
--model_output ${{outputs.model_output}}
İşlem hattını Azure Machine Learning'de çalıştırmak için aşağıdaki CLI komutunu kullanırsınız:
az ml job create --file pipeline-job.yml
İşlem hattının yürütülmesi tamamlandıktan sonra işlem hattını ve yürütülen adımlarını Azure Machine Learning çalışma alanında gözden geçirebilirsiniz.
İpucu
CLI ile Azure Machine Learning'de işlem hattı oluşturmayı öğrenin (v2)
Makine öğrenmesi iş yüklerinizi bir işlem hattındaki Python betiklerine ve grup görevlerine dönüştürdüğünüzde modeliniz üretime hazır olur. İşlem hattını bir YAML dosyasında tanımlamak, CLI (v2) ile işlem hattı çalıştırmasını tetikleyerek eğitimi ve yeniden eğitme işlemini otomatikleştirmenizi sağlar. Azure (DevOps) İşlem Hatlarından veya GitHub Actions'tan işlem hattı YAML dosyasına başvuran bir CLI komutu çalıştırabilirsiniz.