Toplu iş uç noktaları için iş ve giriş verileri oluşturma
Toplu iş uç noktaları, büyük miktarlarda veri üzerinde uzun toplu işlemler gerçekleştirmek için kullanılabilir. Bu tür veriler farklı yerlere yerleştirilebilir. Bazı toplu iş uç noktası türleri de giriş olarak değişmez parametreleri alabilir. Bu makale, bu girişlerin nasıl belirtileceğini kapsar.
Önkoşullar
Toplu iş uç noktasını başarıyla çağırmak ve iş oluşturmak için aşağıdakilere sahip olduğunuzdan emin olun:
Toplu iş uç noktası ve dağıtımı. Henüz bir tane yoksa bkz . Dağıtım oluşturmak için toplu iş uç noktalarındaki puanlama modellerini dağıtma.
Toplu uç nokta dağıtımı çalıştırma izinleri. Dağıtımı çalıştırmak için AzureML Veri Bilimci, Katkıda Bulunan ve Sahip rolleri kullanılabilir. Özel rol tanımları için, gereken belirli izinleri öğrenmek için bkz . Toplu iş uç noktaları üzerinde yetkilendirme.
Uç noktayı çağırmak için güvenlik sorumlusunu temsil eden geçerli bir Microsoft Entra Id belirteci. Bu sorumlu bir kullanıcı sorumlusu veya hizmet sorumlusu olabilir. Her durumda, bir uç nokta çağrıldıktan sonra belirteçle ilişkilendirilmiş kimlik altında bir toplu dağıtım işi oluşturulur. Çağırma için kendi kimlik bilgilerinizi aşağıdaki gibi kullanabilirsiniz:
Etkileşimli veya cihaz kodu kimlik doğrulaması kullanarak oturum açmak için Azure CLI'yi kullanın:
az login
Farklı kimlik bilgileri türlerini kullanarak toplu dağıtım işlerini başlatma hakkında daha fazla bilgi edinmek için bkz . Farklı kimlik bilgileri kullanarak işleri çalıştırma.
Uç noktanın dağıtıldığı işlem kümesinin giriş verilerini okuma erişimi vardır.
İpucu
Veri girişi olarak kimlik bilgisi olmayan bir veri deposu veya dış Azure Depolama Hesabı kullanıyorsanız, veri erişimi için işlem kümelerini yapılandırdığınızdan emin olun. İşlem kümesinin yönetilen kimliği, depolama hesabını bağlamak için kullanılır. İşin (çağırıcı) kimliği, ayrıntılı erişim denetimine ulaşmanıza olanak sağlayan temel verileri okumak için hala kullanılır.
İş oluşturmayla ilgili temel bilgiler
Bir toplu iş uç noktasından iş oluşturmak için bunu çağırmanız gerekir. Çağırma işlemi Azure CLI, Python için Azure Machine Learning SDK'sı veya REST API çağrısı kullanılarak yapılabilir. Aşağıdaki örneklerde, işlenmek üzere tek bir giriş veri klasörü alan bir toplu iş uç noktasını çağırmanın temelleri gösterilmektedir. Farklı giriş ve çıkışlara sahip örnekler için bkz. Girişleri ve çıkışları anlama.
invoke
Toplu iş uç noktaları altındaki işlemi kullanın:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
Belirli bir dağıtımı çağırma
Batch uç noktaları aynı uç nokta altında birden çok dağıtım barındırabilir. Kullanıcı aksini belirtmediği sürece varsayılan uç nokta kullanılır. Aşağıdaki gibi kullanılan dağıtımı değiştirebilirsiniz:
Bağımsız değişkenini --deployment-name
kullanın veya -d
dağıtımın adını belirtin:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--deployment-name $DEPLOYMENT_NAME \
--input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
İş özelliklerini yapılandırma
Oluşturulan işteki bazı özellikleri çağırma zamanında yapılandırabilirsiniz.
Not
İş özelliklerini yapılandırma işlemi şu ana kadar yalnızca İşlem hattı bileşeni dağıtımlarıyla toplu iş uç noktalarında kullanılabilir.
Deneme adını yapılandırma
Denemenin adını belirtmek için bağımsız değişkenini --experiment-name
kullanın:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--experiment-name "my-batch-job-experiment" \
--input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
Girişleri ve çıkışları anlama
Toplu iş uç noktaları, tüketicilerin toplu iş oluşturmak için kullanabileceği dayanıklı bir API sağlar. Aynı arabirim, dağıtımınızın beklediği girişleri ve çıkışları belirtmek için kullanılabilir. Uç noktanızın işi gerçekleştirmek için ihtiyaç duyduğu bilgileri geçirmek için girişleri kullanın.
Batch uç noktaları iki tür girişi destekler:
- Belirli bir depolama konumuna veya Azure Machine Learning varlığına yönelik işaretçiler olan veri girişleri.
- İşe geçirmek istediğiniz değişmez değerler (sayılar veya dizeler gibi) olan değişmez değer girişleri.
Girişlerin ve çıkışların sayısı ve türü, toplu dağıtım türüne bağlıdır. Model dağıtımları her zaman bir veri girişi gerektirir ve bir veri çıkışı üretir. Değişmez değer girişleri desteklenmez. Ancak işlem hattı bileşeni dağıtımları uç noktaları oluşturmak için daha genel bir yapı sağlar ve istediğiniz sayıda giriş (veri ve değişmez değer) ve çıkış belirtmenize olanak sağlar.
Aşağıdaki tabloda toplu dağıtımlar için girişler ve çıkışlar özetlemektedir:
Dağıtım türü | Girişin numarası | Desteklenen giriş türleri | Çıktının numarası | Desteklenen çıkış türleri |
---|---|---|---|---|
Model dağıtımı | 1 | Veri girişleri | 1 | Veri çıkışları |
İşlem hattı bileşeni dağıtımı | [0..N] | Veri girişleri ve değişmez değer girişleri | [0..N] | Veri çıkışları |
İpucu
Girişler ve çıkışlar her zaman adlandırılır. Bu adlar, bunları tanımlamak ve çağırma sırasında gerçek değeri geçirmek için anahtar görevi görür. Model dağıtımları için her zaman bir giriş ve çıkış gerektiğinden, çağırma sırasında ad yoksayılır. "sales_estimation" gibi kullanım örneğinizi en iyi açıklayan adı atayabilirsiniz.
Veri girişleri
Veri girişleri, verilerin yerleştirildiği bir konuma işaret eden girişlere başvurur. Toplu iş uç noktaları genellikle büyük miktarda veri tükettiğinden, giriş verilerini çağırma isteğinin bir parçası olarak geçiremezsiniz. Bunun yerine, toplu iş uç noktasının verileri aramak için gitmesi gereken konumu belirtirsiniz. Giriş verileri, performansı geliştirmek için hedef işlemde bağlanır ve akışa alınmıştır.
Batch uç noktaları, aşağıdaki depolama seçeneklerinde bulunan dosyaların okunmasını destekler:
- Klasör () ve Dosya (
uri_folder
uri_file
) gibi Azure Machine Learning Veri Varlıkları. - Azure Blob Depolama, Azure Data Lake Storage 1. Nesil ve Azure Data Lake Storage 2. Nesil dahil olmak üzere Azure Machine Learning Veri Depoları.
- Azure Data Lake Storage 1. Nesil, Azure Data Lake Storage 2. Nesil ve Azure Blob Depolama dahil olmak üzere Azure Depolama Hesapları.
- Yerel veri klasörleri/dosyaları (Azure Machine Learning CLI veya Python için Azure Machine Learning SDK'sı). Ancak bu işlem yerel verilerin üzerinde çalıştığınız çalışma alanının varsayılan Azure Machine Learning Veri Deposu'na yüklenmesine neden olur.
Önemli
Kullanımdan kaldırma bildirimi: (V1) türündeki FileDataset
veri kümeleri kullanım dışıdır ve gelecekte kullanımdan kaldırılacaktır. Bu işlevi kullanan mevcut toplu iş uç noktaları çalışmaya devam eder, ancak GA CLIv2 (2.4.0 ve üzeri) veya GA REST API (2022-05-01 ve üzeri) ile oluşturulan toplu iş uç noktaları V1 veri kümesini desteklemez.
Değişmez değer girişleri
Değişmez değer girişleri dizeler, sayılar ve boole değerleri gibi çağrı zamanında temsil edilebilen ve çözümlenebilen girişlere başvurur. Genellikle işlem hattı bileşeni dağıtımının bir parçası olarak uç noktanıza parametre geçirmek için değişmez değer girişleri kullanırsınız. Batch uç noktaları aşağıdaki değişmez değer türlerini destekler:
string
boolean
float
integer
Değişmez değer girişleri yalnızca işlem hattı bileşeni dağıtımlarında desteklenir. Bunların nasıl belirtileceğini öğrenmek için bkz . Değişmez değer girişleriyle iş oluşturma.
Veri çıkışları
Veri çıkışları, toplu işin sonuçlarının yerleştirilmesi gereken konuma başvurur. Çıkışlar ada göre tanımlanır ve Azure Machine Learning her adlandırılmış çıkışa otomatik olarak benzersiz bir yol atar. Ancak, gerekirse başka bir yol belirtebilirsiniz.
Önemli
Batch uç noktaları yalnızca Azure Blob Depolama veri depolarında çıkış yazmayı destekler. Hiyerarşik ad alanlarının etkin olduğu bir depolama hesabına yazmanız gerekiyorsa (Azure Datalake 2. Nesil veya ADLS 2. Nesil olarak da bilinir), hizmetler tam olarak uyumlu olduğundan bu tür depolama hizmetinin Azure Blob Depolama veri deposu olarak kaydedilebildiğine dikkat edin. Bu şekilde, toplu iş uç noktalarındaki çıkışları ADLS 2. Nesil'e yazabilirsiniz.
Veri girişleriyle iş oluşturma
Aşağıdaki örneklerde iş oluşturma, veri varlıklarından, veri depolarından ve Azure Depolama Hesaplarından veri girişleri alma işlemleri gösterilmektedir.
Veri varlığından veri girişi
Azure Machine Learning veri varlıkları (eski adıyla veri kümeleri), işler için giriş olarak desteklenir. Azure Machine Learning'de kayıtlı bir veri varlığında depolanan verileri kullanarak toplu uç nokta işini çalıştırmak için şu adımları izleyin:
Uyarı
Tablo (MLTable
) türünde veri varlıkları şu anda desteklenmemektedir.
İlk olarak veri varlığını oluşturun. Bu veri varlığı, toplu iş uç noktalarını kullanarak paralel olarak işlediğiniz birden çok CSV dosyasını içeren bir klasörden oluşur. Verileriniz zaten bir veri varlığı olarak kayıtlıysa bu adımı atlayabilirsiniz.
içinde
YAML
bir veri varlığı tanımı oluşturun:heart-dataset-unlabeled.yml
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json name: heart-dataset-unlabeled description: An unlabeled dataset for heart classification. type: uri_folder path: heart-classifier-mlflow/data
Ardından veri varlığını oluşturun:
az ml data create -f heart-dataset-unlabeled.yml
Girişi veya isteği oluşturun:
DATASET_ID=$(az ml data show -n heart-dataset-unlabeled --label latest | jq -r .id)
Not
Veri varlıkları kimliği gibi
/subscriptions/<subscription>/resourcegroups/<resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace>/data/<data-asset>/versions/<version>
görünür. Girişi belirtmenin bir yolu olarak da kullanabilirsinizazureml:/<datasset_name>@latest
.Uç noktayı çalıştırın:
Girdiyi
--set
belirtmek için bağımsız değişkenini kullanın:az ml batch-endpoint invoke --name $ENDPOINT_NAME \ --set inputs.heart_dataset.type="uri_folder" inputs.heart_dataset.path=$DATASET_ID
Model dağıtımına hizmet veren bir uç nokta için bağımsız değişkenini
--input
kullanarak veri girişini belirtebilirsiniz çünkü model dağıtımı her zaman yalnızca bir veri girişi gerektirir.az ml batch-endpoint invoke --name $ENDPOINT_NAME --input $DATASET_ID
Bağımsız değişken
--set
, birden çok giriş belirtildiğinde uzun komutlar üretme eğilimindedir. Böyle durumlarda, girişlerinizi birYAML
dosyaya yerleştirin ve uç nokta çağırmanız için ihtiyacınız olan girişleri belirtmek için kullanın--file
.inputs.yml
inputs: heart_dataset: azureml:/<datasset_name>@latest
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
Veri depolarından veri girişi
Azure Machine Learning kayıtlı veri depolarından alınan verilere toplu dağıtım işleri tarafından doğrudan başvurulabilir. Bu örnekte, önce Azure Machine Learning çalışma alanında bazı verileri varsayılan veri deposuna yükler ve ardından üzerinde bir toplu dağıtım çalıştırırsınız. Bir veri deposunda depolanan verileri kullanarak toplu uç nokta işini çalıştırmak için bu adımları izleyin.
Azure Machine Learning çalışma alanında varsayılan veri deposuna erişin. Verileriniz farklı bir depodaysa bunun yerine bu depoyı kullanabilirsiniz. Varsayılan veri depoyu kullanmanız gerekmez.
DATASTORE_ID=$(az ml datastore show -n workspaceblobstore | jq -r '.id')
Not
Veri depoları kimliği gibi
/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace>/datastores/<data-store>
görünür.İpucu
Çalışma alanındaki varsayılan blob veri deposuna workspaceblobstore adı verilir. Çalışma alanınızdaki varsayılan veri deposunun kaynak kimliğini zaten biliyorsanız bu adımı atlayabilirsiniz.
Bazı örnek verileri veri deposuna yüklemeniz gerekir. Bu örnekte, blob depolama hesabındaki klasördeki depoya
sdk/python/endpoints/batch/deploy-models/heart-classifier-mlflow/data
heart-disease-uci-unlabeled
dahil edilen örnek verileri zaten karşıya yüklediğiniz varsayılır. İlerlemeden önce bunu yaptığınızdan emin olun.Girişi veya isteği oluşturun:
Dosya yolunu aşağıdaki değişkene yerleştirin:
DATA_PATH="heart-disease-uci-unlabeled" INPUT_PATH="$DATASTORE_ID/paths/$DATA_PATH"
Not
Veri deposunun kaynak kimliğine yolun
paths
nasıl eklendiğini görün ve ardından gelenin içinde bir yol olduğunu belirtin.İpucu
Girişi belirtmenin bir yolu olarak da kullanabilirsiniz
azureml://datastores/<data-store>/paths/<data-path>
.Uç noktayı çalıştırın:
Girdiyi
--set
belirtmek için bağımsız değişkenini kullanın:az ml batch-endpoint invoke --name $ENDPOINT_NAME \ --set inputs.heart_dataset.type="uri_folder" inputs.heart_dataset.path=$INPUT_PATH
Model dağıtımına hizmet veren bir uç nokta için bağımsız değişkenini
--input
kullanarak veri girişini belirtebilirsiniz çünkü model dağıtımı her zaman yalnızca bir veri girişi gerektirir.az ml batch-endpoint invoke --name $ENDPOINT_NAME --input $INPUT_PATH --input-type uri_folder
Bağımsız değişken
--set
, birden çok giriş belirtildiğinde uzun komutlar üretme eğilimindedir. Böyle durumlarda, girişlerinizi birYAML
dosyaya yerleştirin ve uç nokta çağırmanız için ihtiyacınız olan girişleri belirtmek için kullanın--file
.inputs.yml
inputs: heart_dataset: type: uri_folder path: azureml://datastores/<data-store>/paths/<data-path>
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
Verileriniz bir dosyaysa, bunun yerine tür olarak kullanın
uri_file
.
Azure Depolama Hesaplarından veri girişi
Azure Machine Learning toplu uç noktaları, Azure Depolama Hesapları'ndaki bulut konumlarından verileri hem genel hem de özel olarak okuyabilir. Depolama hesabında depolanan verileri kullanarak bir toplu iş uç noktası işi çalıştırmak için aşağıdaki adımları kullanın:
Not
Depolama erişimlerinden verileri başarıyla okumak için gereken ek yapılandırma hakkında daha fazla bilgi edinmek için işlem kümelerini veri erişimi için yapılandırma bölümüne bakın.
Girişi veya isteği oluşturun:
Uç noktayı çalıştırın:
Girdiyi
--set
belirtmek için bağımsız değişkenini kullanın:az ml batch-endpoint invoke --name $ENDPOINT_NAME \ --set inputs.heart_dataset.type="uri_folder" inputs.heart_dataset.path=$INPUT_DATA
Model dağıtımına hizmet veren bir uç nokta için bağımsız değişkenini
--input
kullanarak veri girişini belirtebilirsiniz çünkü model dağıtımı her zaman yalnızca bir veri girişi gerektirir.az ml batch-endpoint invoke --name $ENDPOINT_NAME --input $INPUT_DATA --input-type uri_folder
Bağımsız değişken
--set
, birden çok giriş belirtildiğinde uzun komutlar üretme eğilimindedir. Böyle durumlarda, girişlerinizi birYAML
dosyaya yerleştirin ve uç nokta çağırmanız için ihtiyacınız olan girişleri belirtmek için kullanın--file
.inputs.yml
inputs: heart_dataset: type: uri_folder path: https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
Verileriniz bir dosyaysa, bunun yerine tür olarak kullanın
uri_file
.
Değişmez değer girişleriyle iş oluşturma
İşlem hattı bileşeni dağıtımları değişmez değer girişleri alabilir. Aşağıdaki örnekte değeri olan , türünde bir girişin score_mode
nasıl belirtilmesi gösterilmektedirappend
:string
Girişlerinizi bir YAML
dosyaya yerleştirin ve uç nokta çağırmanız için ihtiyacınız olan girişleri belirtmek için kullanın --file
.
inputs.yml
inputs:
score_mode:
type: string
default: append
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
Değeri belirtmek için bağımsız değişkenini --set
de kullanabilirsiniz. Ancak, birden çok giriş belirtildiğinde uzun komutlar üretme eğilimindedir:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--set inputs.score_mode.type="string" inputs.score_mode.default="append"
Veri çıkışlarıyla iş oluşturma
Aşağıdaki örnekte adlı score
çıkışın yerleştirildiği konumun nasıl değiştirileceği gösterilmektedir. Tamlık için, bu örneklerde adlı heart_dataset
bir giriş de yapılandırılır.
Çıkışları kaydetmek için Azure Machine Learning çalışma alanında varsayılan veri depoyu kullanın. Blob depolama hesabı olduğu sürece çalışma alanınızdaki diğer veri depolarını kullanabilirsiniz.
Veri çıkışı oluşturma:
DATA_PATH="batch-jobs/my-unique-path" OUTPUT_PATH="$DATASTORE_ID/paths/$DATA_PATH"
Eksiksizlik için bir veri girişi de oluşturun:
INPUT_PATH="https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
Not
Veri deposunun kaynak kimliğine yolun
paths
nasıl eklendiğini görün ve ardından gelenin içinde bir yol olduğunu belirtin.Dağıtımı çalıştırın:
İlgili içerik
- Toplu iş uç noktalarının sorunlarını giderme.
- Model dağıtımlarındaki çıktıları özelleştirme toplu dağıtımları.
- Giriş ve çıkışlarla özel bir puanlama işlem hattı oluşturun.
- Azure Data Factory'den toplu iş uç noktalarını çağırma.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin