Azure Depolama ile Batch AI iş girişi ve çıkışını depolayın
bu kılavuzda, bir işi çalıştırırken giriş ve çıkış dosyalarını depolamak için Azure Depolama nasıl kullanılacağı açıklanmaktadır. Azure Depolama, Batch AI tarafından desteklenen çeşitli depolama seçeneklerinden biridir. Batch AI, azure Depolama sistemlerini bir Batch AI iş veya küme dosya sistemine bağlayarak bulutta depolanan dosyalara sorunsuz erişim sağlayan azure Depolama ile tümleşir.
Azure Depolama’ya Giriş
Azure Depolama, Microsoft’un bulut depolama çözümüdür. Batch AI, Azure Blob kapsayıcıları ve Azure dosya paylaşımlarını Batch AI işlere veya kümelerine bağlamayı destekleyerek, dosyalara yerel dosya FileSystem 'daymış gibi bir işten erişilmesine izin verir. Batch AI blobsigortasıIle Azure Blob kapsayıcıları ve Azure dosya paylaşımlarını SMB protokolü aracılığıyla takar. azure Depolama hakkında daha fazla bilgi için bkz. azure Depolama 'a giriş.
Azure Depolama veri kümelerini ve giriş betikleri depolayın
Batch AI ortamınız için Azure Depolama ' yi seçtiğinizde, giriş dosyalarınızı (veri kümeleri gibi) daha yüksek aktarım hızına sahip bir Blob kapsayıcısında depolamanızı ve eğitim çıktınızı akışı destekleyen bir dosya paylaşımında depolamanızı (iş eşzamanlı olarak çalışırken çıkış günlüklerinin okunmasına izin vermeyi) öneririz.
azure Depolama kullanabilmeniz için önce bir azure Depolama hesabı oluşturmanızgerekir. Batch AI, hem genel amaçlı v1 (GPv1) hem de genel amaçlı v2 (GPv2) Azure Depolama hesaplarından birimlerinin bağlanmasını destekler. Azure Depolama hesabı birden çok Blob kapsayıcısı veya dosya paylaşma örneği tutabilir. Oluşturulacak depolama hesabı türünü seçerken maliyet ve performans gereksinimlerinizi göz önünde bulundurun. Daha fazla bilgi için bkz. Azure depolama hesabına genel bakış.
Bir blob kapsayıcısı oluşturmak ve veri kümenizi bir Azure Blob kapsayıcısına yüklemek için aşağıdaki yöntemlerden birini seçin:
- web tabanlı guı ile karşıya yüklemek için Azure portal . az sayıda dosyayı karşıya yüklemek için Azure portal en basit işlemi sağlar.
- Azure Depolama , komut satırı aracılığıyla karşıya yüklemek için clı (dizin yüklemeyi destekler). Dosya dizinlerini karşıya yüklemek için kullanın
az storage blob upload-batch
. - Uygulama SDK 'larını kullanma da dahil olmak üzere diğer teknikler.
Benzer şekilde, bir Azure dosya paylaşımının oluşturulması için aşağıdaki yöntemlerden birini seçin:
Batch AI ile otomatik depolama
alternatif olarak, ile az batchai cluster create
parametresini kullanarak --use-auto-storage
bir azure dosya paylaşımının ve Blob kapsayıcısının (ve bu birimleri otomatik olarak bir Batch AI kümesine bağlayabilirsiniz) bir azure Depolama hesabı oluşturabilirsiniz. Daha fazla bilgi için burayabakın.
Azure Depolama bağlama
Bir işe birim bağlama
Azure Depolama bir birimi bağlamak, her iş için oluşturulan filesystem aracılığıyla erişilmesine izin verir. Bu nedenle, bir iş, dosyaları yerel dosyalar gibi bulut depolama alanına sorunsuz bir şekilde okuyup yazabilir.
azure Depolama birimini azure clı ile oluşturulan bir işe bağlamak için, çalışırken az batchai job create
dosyanızdaki özelliğini job.json
kullanın mountVolumes
. Örnek için, bkz. TensorFlow GPU dağıtılmış tarif. Şeması mountVolumes
:
{
"mountVolumes": {
"azureFileShares": [{
"azureFileUrl": "https://<STORAGE_ACCOUNT_NAME>.file.core.windows.net/<FILE_SHARE_NAME>",
"relativeMountPath": "<RELATIVE_MOUNT_PATH>"
}],
"azureBlobFileSystems": [{
"accountName": "<STORAGE_ACCOUNT_NAME>",
"containerName": "<BLOB_CONTAINER_NAME>",
"relativeMountPath": "<RELATIVE_MOUNT_PATH>"
}]
}
}
azureFileShares
ve azureBlobFileSystems
takılacak birimleri temsil eden nesne dizilerdir. Yer tutucuların açıklamaları:
- <RELATIVE_MOUNT_PATH > -birim bu yola bağlanır. Örneğin
relativeMountPath
, isejobs
, birim konumunda$AZ_BATCHAI_JOB_MOUNT_ROOT/jobs
yer alır. - <STORAGE_ACCOUNT_NAME > -dosya paylaşımının veya Blob kapsayıcısının tutulduğu Azure Depolama hesabının adı
- <FILE_SHARE_NAME > -dosya paylaşımının adı
- <BLOB_CONTAINER_NAME > -BLOB kapsayıcısının adı
Azure Depolama birimlerini Azure Batch aı sdk 'ları ile bağlamak için, (Python) veya MountVolumes
(C#, Java) özelliğini ' de JobCreateParameters
ayarlayın mount_volumes
. Azure Batch aı sdk 'ları ile birim bağlanırken depolama hesabının kimlik bilgilerini sağlamanız gerekir. Python, C#ve Java'da birimleri bağlamak için şemaları görüntüleyin.
Birimleri kümeye bağlama
Batch AI ayrıca, bir Batch AI kümesine Azure Depolama birimlerinin bağlanmasını da destekler. Bir birim bir kümeye bağlandığında, bu kümede çalışan tüm işler bu kümeye bağlanan birimleri kullanabilir. İş düzeyi bağlama en çok esnekliği sağlarken (her bir işin farklı bağlı birimlerine sahip olmasını sağlar), küme düzeyinde bağlama basit senaryolarda yeterli olabilir.
azure Depolama birimini azure clı ile oluşturulan bir kümeye bağlamak için, çalışırken az batchai cluster create
dosyanızdaki özelliğini cluster.json
kullanın mountVolumes
. Bir kümeyi bağlamak için mountVolumes
şema, bir işi bağlama sırasında aynıdır.
benzer şekilde, Azure Batch aı sdk 'larını bağlama sırasında üzerinde ClusterCreateParameters
(Python) veya MountVolumes
(C#, Java) özelliğini kullanabilirsiniz mount_volumes
.
Bir iş içindeki bağlı dosya sistemine erişin
$AZ _BATCHAI_JOB_MOUNT_ROOT ortam değişkeni
İşin yürütme ortamı içinde, bağlı depolama sistemlerini içeren dizine, ortam değişkeniyle erişilebilir $AZ_BATCHAI_JOB_MOUNT_ROOT
(iş düzeyinde bağlama kullanıyorsanız). Küme düzeyinde bağlama kullanırsanız, bu ortam değişkeni olur $AZ_BATCHAI_MOUNT_ROOT
. Aşağıdaki örneklerde iş düzeyinde bağlama kullandığınız varsayılır.
Bağlı bir birimdeki verilerin yolunu sağlamak için, ortam değişkenini $AZ_BATCHAI_JOB_MOUNT_ROOT
bağlı yol ile birlikte kullanın. Örneğin, eğitim betiği train.py
göreli bağlama yolunda scripts
bağlanmış bir Azure dosya paylaşımında karşıya yüklenmişse, dosya ' da kullanılabilir $AZ_BATCHAI_JOB_MOUNT_ROOT/scripts/train.py
olacaktır.
Eğitim betiğinizin bir yol bilgisi olması gerekiyorsa, bunu bir komut satırı bağımsız değişkeni olarak geçirmeniz gerekir. Örneğin, verilerinizi yoluna data
bağlanmış bir Azure Blob kapsayıcısında adlı train_data
bir klasörde depoladıysanız, betiğe komut satırı bağımsız değişkeni olarak geçirebilirsiniz --data-dir=$AZ_BATCHAI_JOB_MOUNT_ROOT/data/train_data
. Buna uygun olarak, komut satırı bağımsız değişkenlerini kabul etmek için komut dosyanızı değiştirmeniz gerekir.
Kısaltma girişi yolları
Giriş yollarını bir ortam değişkeni olarak kısaltılabilir, dosyanızın özelliğini job.json
kullanın inputDirectories
(veya models.JobCreateParameters.input_directories
Batch AI SDK kullanıyorsanız). Şeması inputDirectories
:
{
"inputDirectories": [{
"id": "<ID>",
"path": "<PATH>"
}]
}
Belirtilen her yol, adlı $AZ_BATCHAI_INPUT_<ID>
bir ortam değişkenine yerleştirilir. Bu yöntemi kullanmak, dosya veya dizinlerin giriş yollarını basitleştirebilir. Örneğin, bir eğitim betiğinin yolunu kısaltma altına almak için: "id"
"SCRIPT"
ise ve "path"
"$AZ_BATCHAI_JOB_MOUNT_ROOT/scripts/train.py"
ise, bu yol işin yürütme ortamında kullanılabilir $AZ_BATCHAI_INPUT_SCRIPT
.
Daha fazla bilgi için burayabakın.
Kısaltma çıkış yolları
Çıkış yollarını bir ortam değişkeni olarak kısaltılabilir, dosyanızın özelliğini job.json
kullanın outputDirectories
(veya models.JobCreateParameters.output_directories
Batch AI SDK kullanıyorsanız). Bu yöntemin kullanılması, çıkış dosyaları için yolları basitleştirecek. Şeması outputDirectories
:
{
"outputDirectories": [{
"id": "<ID>",
"pathPrefix": "<PATH_PREFIX>",
"pathSuffix": "<PATH_SUFFIX>"
}]
}
Belirtilen her yol, adlı $AZ_BATCHAI_OUTPUT_<ID>
bir ortam değişkenine yerleştirilir. , pathPrefix
Çıktının depolanması için takılan birimi belirler (örneğin, "$AZ_BATCHAI_JOB_MOUNT_ROOT/output"
). , pathSuffix
Çıktının klasör adını belirler (örneğin "logs"
"checkpoints"
,,). Çıktının gerçek yolu, (her iş için otomatik olarak oluşturulur) ve pathSuffix
' jobOutputDirectoryPathSegment
ın pathPrefix
bir bitişyoludur.
Daha fazla bilgi için burayabakın.
Azure Depolama iş çıktısını alma
Azure portalı kullanma
Azure portal, bir guı dosya gezgini kullanarak işlerin çıkışını görüntülemenin kolay bir yoludur. ancak, çıktıyı Stdout ve Stderr 'den veya içindeki outputDirectories
bir yoldan görüntülemek istiyorsanız, dosyalar Azure Depolama biriminizde bir otomatik olarak oluşturulan yola yerleştirilir. Daha fazla bilgi için aşağıya bakın.
Stdout ve stderr çıktısına erişin
stdOutErrPathPrefix
İşi işin yürütme günlüklerinin ve STDOUT 'ın ve stderr çıkışının nereye yerleştirileceğini bildirmek için özelliğini job.json
kullanın. Örneğin, göreli bağlama yolunda outputs
bir dosya paylaşma bağladıysanız ve öğesini olarak "$AZ_BATCHAI_JOB_MOUNT_ROOT/outputs"
belirtirseniz stdOutErrPathPrefix
, bu bağlı birimde stdout ve stderr iş çıktısı kullanılabilir {subscription id}/{resource group}/workspaces/{workspace name}/experiments/{experiment name}/jobs/{job name}/{job uuid}/stdouterr
olacaktır. Bu otomatik olarak oluşturulan yol, aynı ada sahip işler arasındaki çıkış çakışmalarını engellemek için kullanılır.
Daha fazla bilgi için burayabakın.
Çıkış dosyalarını listeleme
Komutuyla bir işin az batchai job file list
kullanılabilir çıkış dosyalarını listelemek Için Azure CLI 'yı kullanabilirsiniz. Örneğin, bir işin standart çıkış dizinindeki dosyaları listelemek için kullanın az batchai job file list -j <JOB_NAME> -g <RESOURCE_GROUP_NAME> -w <WORKSPACE_NAME> -e <EXPERIMENT_NAME>
.
Daha fazla bilgi ve örnek için burayabakın.
Akış çıktı dosyaları
Komutuyla dosyaları az batchai job file stream
akışa almak Için Azure CLI ' yı kullanabilirsiniz. Örneğin, şunları görüntülemek için:
- Stdout
az batchai job file stream -j <JOB_NAME> -g <RESOURCE_GROUP_NAME> -w <WORKSPACE_NAME> -e <EXPERIMENT_NAME> -f stdout.txt
- Stderr
az batchai job file stream -j <JOB_NAME> -g <RESOURCE_GROUP_NAME> -w <WORKSPACE_NAME> -e <EXPERIMENT_NAME> -f stderr.txt
Daha fazla bilgi ve örnek için burayabakın.
Sonraki adımlar
- Azure Depolama ile arabirim için clı komutları hakkında daha fazla bilgi edinmek için Azure Batch aı clı belgelerinigörüntüleyin.
- depolama alanı bağlama ve çıktı dosyalarını okuma dahil Batch AI daha fazla kullanım örneği bulmak için, Batch AI için Jupyter Notebook tariflerinebakın.
- NFS sunucusu bağlama ve kendi NFS, CIFS veya GlusterFS kümenizi bağlama dahil olmak üzere, bağlama depolama için diğer seçenekleri keşfet