Veri varlıklarını oluşturma ve yönetme
Ş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'de veri varlıklarının nasıl oluşturulacağı ve yönetileceğini gösterilmektedir.
Veri varlıkları, ihtiyacınız olduğunda size yardımcı olabilir:
- Sürüm oluşturma: Veri varlıkları, veri sürümü oluşturma işlemini destekler.
- Yeniden üretilebilirlik: Bir veri varlığı sürümü oluşturduktan sonra sabittir. Değiştirilemez veya silinemez. Bu nedenle, veri varlığını kullanan eğitim işleri veya işlem hatları yeniden oluşturulabilir.
- Denetlenebilirlik: Veri varlığı sürümü sabit olduğundan, varlık sürümlerini, sürümü güncelleştirenleri ve sürüm güncelleştirmelerinin ne zaman gerçekleştiğini izleyebilirsiniz.
- Köken: Belirli bir veri varlığı için hangi işlerin veya işlem hatlarının verileri tükettiğine bakabilirsiniz.
- Kullanım kolaylığı: Azure makine öğrenmesi veri varlığı, web tarayıcısı yer işaretlerine (sık kullanılanlar) benzer. Azure Depolama'da sık kullanılan verilerinize başvuran uzun depolama yollarını (URI' ler) hatırlamak yerine, bir veri varlığı sürümü oluşturabilir ve varlığın bu sürümüne kolay bir adla erişebilirsiniz (örneğin:
azureml:<my_data_asset_name>:<version>
).
İpucu
Etkileşimli bir oturumda (örneğin, bir not defteri) veya bir işte verilerinize erişmek için, önce bir veri varlığı oluşturmanız gerekmez. Verilere erişmek için Datastore URI'lerini kullanabilirsiniz. Veri deposu URI'leri, Azure makine öğrenmesini kullanmaya başlamak için verilere erişmek için basit bir yol sunar.
Önkoşullar
Veri varlıkları oluşturmak ve bunlarla çalışmak için şunları yapmanız gerekir:
Azure aboneliği. 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ı. Çalışma alanı kaynakları oluşturun.
Veri varlıkları oluşturma
Veri varlığınızı oluştururken veri varlığı türünü ayarlamanız gerekir. Azure Machine Learning üç veri varlığı türünü destekler:
Tür | API | Kurallı Senaryolar |
---|---|---|
Dosya Tek bir dosyaya başvurma |
uri_file |
Azure Depolama'da tek bir dosyayı okuyun (dosyanın herhangi bir biçimi olabilir). |
Klasör Klasöre başvurma |
uri_folder |
Pandas/Spark'ta parquet/CSV dosyalarının bir klasörünü okuyun. Bir klasörde bulunan yapılandırılmamış verileri (görüntüler, metin, ses vb.) okuyun. |
Table Veri tablosuna başvurma |
mltable |
Sık yapılan değişikliklere tabi olan karmaşık bir şema nesneniz var veya büyük tablosal verilerin bir alt kümesine ihtiyacınız var. Tablolu AutoML. Birden çok depolama konumuna yayılmış yapılandırılmamış verileri (görüntüler, metin, ses vb.) okuyun. |
Not
Csv dosyalarında yalnızca verileri MLTable olarak kaydettiğinizde eklenmiş yeni satırlar kullanın. Csv dosyalarına eklenen yeni satırlar, verileri okuduğunuzda yanlış hizalanmış alan değerlerine neden olabilir. MLTable, tırnak içinde satır sonlarını tek bir kayıt olarak yorumlamak için dönüştürmede kullanılabilir parametresine sahiptirsupport_multi_line
.read_delimited
Veri varlığını bir Azure Machine Learning işinde kullandığınızda, varlığı işlem düğümlerine bağlayabilir veya indirebilirsiniz . Daha fazla bilgi için lütfen Modlar'ı ziyaret edin.
Ayrıca, veri varlığı konumuna işaret eden bir path
parametre belirtmeniz gerekir. Desteklenen yollar şunlardır:
Konum | Örnekler |
---|---|
Yerel bilgisayarınızdaki bir yol | ./home/username/data/my_data |
Veri deposundaki bir yol | azureml://datastores/<data_store_name>/paths/<path> |
Ortak http(ler) sunucusundaki yol | https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv |
Azure Depolama'da bir yol | (Blob) wasbs://<containername>@<accountname>.blob.core.windows.net/<path_to_data>/ (ADLS 2. Nesil) abfss://<file_system>@<account_name>.dfs.core.windows.net/<path> (ADLS 1. nesil) adl://<accountname>.azuredatalakestore.net/<path_to_data>/ |
Not
Yerel bir yoldan veri varlığı oluşturduğunuzda, bu varlık otomatik olarak varsayılan Azure Machine Learning bulut veri deposuna yüklenir.
Veri varlığı oluşturma: Dosya türü
Dosya (uri_file
) türünde bir veri varlığı, depolamadaki tek bir dosyayı (örneğin, csv dosyası) gösterir. Dosya türüne sahip bir veri varlığı oluşturabilirsiniz:
BIR YAML dosyası oluşturun ve aşağıdaki kod parçacığını kopyalayıp yapıştırın. <>
Yer tutucuları
- veri varlığınızın adı
- sürüm
- açıklama
- desteklenen bir konumda tek bir dosyanın yolu
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
# Supported paths include:
# local: './<path>/<file>' (this will be automatically uploaded to cloud storage)
# blob: 'wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>/<file>'
# ADLS gen2: 'abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/<file>'
# Datastore: 'azureml://datastores/<data_store_name>/paths/<path>/<file>'
type: uri_file
name: <NAME OF DATA ASSET>
version: <VERSION>
description: <DESCRIPTION>
path: <SUPPORTED PATH>
Ardından, CLI'da aşağıdaki komutu yürütür. Yer tutucuyu <filename>
YAML dosya adına güncelleştirin.
az ml data create -f <filename>.yml
Veri varlığı oluşturma: Klasör türü
Klasör (uri_folder
) türündeki veri varlığı, depolama kaynağındaki bir klasörü (örneğin, birkaç resim alt klasörü içeren bir klasörü) işaret eder. Klasör türüne sahip bir veri varlığı oluşturabilirsiniz:
Aşağıdaki kodu kopyalayıp yeni bir YAML dosyasına yapıştırın. <>
Yer tutucuları
- Veri varlığınızın adı
- Sürüm
- Açıklama
- Desteklenen bir konumdaki bir klasörün yolu
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
# Supported paths include:
# local: './<path>/<folder>' (this will be automatically uploaded to cloud storage)
# blob: 'wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>/<folder>'
# ADLS gen2: 'abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/<folder>'
# Datastore: 'azureml://datastores/<data_store_name>/paths/<path>/<folder>'
type: uri_folder
name: <NAME OF DATA ASSET>
version: <VERSION>
description: <DESCRIPTION>
path: <SUPPORTED PATH>
Ardından, CLI'da aşağıdaki komutu yürütür. Yer tutucuyu <filename>
YAML dosya adına güncelleştirin.
az ml data create -f <filename>.yml
Veri varlığı oluşturma: Tablo türü
Azure Machine Learning Tabloları (MLTable
), Azure Machine Learning'de tablolarla çalışma bölümünde daha ayrıntılı olarak açıklanan zengin işlevlere sahiptir. Bu belgeleri burada yinelemek yerine, genel kullanıma açık bir Azure Blob Depolama hesabında bulunan Titanik verileriyle tablo türündeki bir veri varlığının nasıl oluşturulacağını açıklayan bu örneği okuyun.
İlk olarak data adlı yeni bir dizin oluşturun ve MLTable adlı bir dosya oluşturun:
mkdir data
touch MLTable
Ardından, aşağıdaki YAML'yi kopyalayıp önceki adımda oluşturduğunuz MLTable dosyasına yapıştırın:
Dikkat
Dosyayı veya olarak yeniden adlandırmayın. MLTable
MLTable.yml
MLTable.yaml
Azure machine learning bir MLTable
dosya bekler.
paths:
- file: wasbs://data@azuremlexampledata.blob.core.windows.net/titanic.csv
transformations:
- read_delimited:
delimiter: ','
empty_as_string: false
encoding: utf8
header: all_files_same_headers
include_path_column: false
infer_column_types: true
partition_size: 20971520
path_column: Path
support_multi_line: false
- filter: col('Age') > 0
- drop_columns:
- PassengerId
- convert_column_types:
- column_type:
boolean:
false_values:
- 'False'
- 'false'
- '0'
mismatch_as: error
true_values:
- 'True'
- 'true'
- '1'
columns: Survived
type: mltable
CLI'da aşağıdaki komutu yürütür. Yer tutucuları veri varlığı adı ve sürüm değerleriyle güncelleştirin <>
.
az ml data create --path ./data --name <DATA ASSET NAME> --version <VERSION> --type mltable
Önemli
geçerli path
MLTable
bir dosya içeren bir klasör olmalıdır.
İş çıkışlarından veri varlıkları oluşturma
Azure Machine Learning işinden veri varlığı oluşturabilirsiniz. Bunu yapmak için çıkışta parametresini name
ayarlayın. Bu örnekte, bir genel blob deposundaki verileri varsayılan Azure Machine Learning Datastore'nuza kopyalayan ve adlı job_output_titanic_asset
bir veri varlığı oluşturan bir iş gönderirsiniz.
İş belirtimi YAML dosyası (<file-name>.yml
):
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# path: Set the URI path for the data. Supported paths include
# local: `./<path>
# Blob: wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>
# ADLS: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>
# Datastore: azureml://datastores/<data_store_name>/paths/<path>
# Data Asset: azureml:<my_data>:<version>
# type: What type of data are you pointing to?
# uri_file (a specific file)
# uri_folder (a folder)
# mltable (a table)
# mode: Set INPUT mode:
# ro_mount (read-only mount)
# download (download from storage to node)
# mode: Set the OUTPUT mode
# rw_mount (read-write mount)
# upload (upload data from node to storage)
type: command
command: cp ${{inputs.input_data}} ${{outputs.output_data}}
compute: azureml:cpu-cluster
environment: azureml://registries/azureml/environments/sklearn-1.1/versions/4
inputs:
input_data:
mode: ro_mount
path: azureml:wasbs://data@azuremlexampledata.blob.core.windows.net/titanic.csv
type: uri_file
outputs:
output_data:
mode: rw_mount
path: azureml://datastores/workspaceblobstore/paths/quickstart-output/titanic.csv
type: uri_file
name: job_output_titanic_asset
Ardından, CLI kullanarak işi gönderin:
az ml job create --file <file-name>.yml
Veri varlıklarını yönetme
Veri varlığını silme
Önemli
Tasarım gereği, veri varlığı silme desteklenmez.
Azure machine learning veri varlığının silinmesine izin verirse aşağıdaki olumsuz ve olumsuz etkilere sahip olabilir:
- Daha sonra silinen veri varlıklarını kullanan üretim işleri başarısız olur.
- Ml denemesini yeniden oluşturmak daha zor olacaktır.
- silinen veri varlığı sürümünü görüntülemek imkansız hale geleceği için iş kökeni bozulacaktı.
- Sürümler eksik olabileceğinden doğru şekilde izleyemez ve denetleyemezsiniz .
Bu nedenle, veri varlıklarının değişmezliği, üretim iş yükleri oluşturan bir ekipte çalışırken bir koruma düzeyi sağlar.
Yanlışlıkla oluşturulmuş bir veri varlığı için (örneğin, yanlış ad, tür veya yol ile) Azure Machine Learning, silme işleminin olumsuz sonuçları olmadan durumu ele almak için çözümler sunar:
Bu veri varlığını silmek istiyorum çünkü... | Çözüm |
---|---|
Ad yanlış | Veri varlığını arşivle |
Ekip artık veri varlığını kullanmıyor | Veri varlığını arşivle |
Veri varlığı listesini karışıklığa neden olur | Veri varlığını arşivle |
Yol yanlış | Doğru yola sahip veri varlığının yeni bir sürümünü (aynı ad) oluşturun. Daha fazla bilgi için Veri varlıkları oluşturma'yı ziyaret edin. |
Yanlış bir türe sahip | Şu anda Azure Machine Learning, ilk sürümle karşılaştırıldığında farklı türde yeni bir sürüm oluşturulmasına izin vermez. (1) Veri varlığını arşivle (2) Doğru türde farklı bir ad altında yeni bir veri varlığı oluşturun. |
Veri varlığını arşivleme
Bir veri varlığını arşivleme, varsayılan olarak hem liste sorgularından (örneğin, CLI'de az ml data list
) hem de Studio kullanıcı arabirimindeki veri varlığı listesinde gizler. İş akışlarınızda arşivlenmiş bir veri varlığına başvurmaya ve kullanmaya devam edebilirsiniz. Aşağıdakilerden birini arşivleyebilirsiniz:
- Veri varlığının belirli bir ad altındaki tüm sürümleri
veya
- Belirli bir veri varlığı sürümü
Veri varlığının tüm sürümlerini arşivle
Veri varlığının tüm sürümlerini belirli bir ad altında arşivleyebilmek için şunu kullanın:
Aşağıdaki kodu yürütün. Yer tutucuları bilgilerinizle güncelleştirin <>
.
az ml data archive --name <NAME OF DATA ASSET>
Belirli bir veri varlığı sürümünü arşivle
Belirli bir veri varlığı sürümünü arşiv etmek için şunu kullanın:
Aşağıdaki kodu yürütün. Yer tutucuları veri varlığınızın ve sürümünüzün adıyla güncelleştirin <>
.
az ml data archive --name <NAME OF DATA ASSET> --version <VERSION TO ARCHIVE>
Arşivlenmiş veri varlığını geri yükleme
Arşivlenmiş bir veri varlığını geri yükleyebilirsiniz. Veri varlığının tüm sürümleri arşivlenmişse, veri varlığının tek tek sürümlerini geri yükleyemezsiniz. Tüm sürümleri geri yüklemeniz gerekir.
Veri varlığının tüm sürümlerini geri yükleme
Veri varlığının belirli bir ad altındaki tüm sürümlerini geri yüklemek için şunu kullanın:
Aşağıdaki kodu yürütün. Yer tutucuları veri varlığınızın adıyla güncelleştirin <>
.
az ml data restore --name <NAME OF DATA ASSET>
Belirli bir veri varlığı sürümünü geri yükleme
Önemli
Tüm veri varlığı sürümleri arşivlendiyse, veri varlığının tek tek sürümlerini geri yükleyemezsiniz. Tüm sürümleri geri yüklemeniz gerekir.
Belirli bir veri varlığı sürümünü geri yüklemek için şunu kullanın:
Aşağıdaki kodu yürütün. Yer tutucuları veri varlığınızın ve sürümünüzün adıyla güncelleştirin <>
.
az ml data restore --name <NAME OF DATA ASSET> --version <VERSION TO ARCHIVE>
Veri kökeni
Veri kökeni, verilerin kaynağını kapsayan yaşam döngüsü ve zaman içinde depolama alanı boyunca nereye taşınacağı olarak geniş ölçüde anlaşılır. Farklı türde geriye dönük senaryolar kullanır, örneğin
- Sorun giderme
- ML işlem hatlarında kök nedenleri izleme
- Hata ayıklama
Veri kalitesi analizi, uyumluluk ve "durum" senaryolarında da köken kullanılır. Köken, kaynaktan hedefe taşınan verileri göstermek için görsel olarak temsil edilir ve ayrıca veri dönüşümlerini kapsar. Çoğu kurumsal veri ortamlarının karmaşıklığı göz önüne alındığında, bu görünümlerin çevre birimi veri noktalarını birleştirmeden veya maskelemeden anlaşılması zor olabilir.
Azure Machine Learning İşlem Hattı'nda veri varlıkları verilerin kaynağını ve verilerin nasıl işlendiğini gösterir, örneğin:
Veri varlığını kullanan işleri Studio kullanıcı arabiriminde görüntüleyebilirsiniz. İlk olarak, sol taraftaki menüden Veri'yi seçin ve ardından veri varlığı adını seçin. Veri varlığını kullanan işlere dikkat edin:
Veri varlıklarındaki işler görünümü, iş hatalarını bulmayı ve ML işlem hatlarınızda ve hata ayıklamanızda kök neden analizi yapmayı kolaylaştırır.
Veri varlığı etiketleme
Veri varlıkları, anahtar-değer çifti olarak veri varlığına uygulanan ek meta veriler olan etiketlemeyi destekler. Veri etiketleme birçok avantaj sağlar:
- Veri kalitesi açıklaması. Örneğin, kuruluşunuz bir madalyon göl evi mimarisi kullanıyorsa varlıkları (ham),
medallion:silver
(doğrulanmış) vemedallion:gold
(zenginleştirilmiş) etiketleyebilirsinizmedallion:bronze
. - Verilerin bulunmasına yardımcı olmak için verilerin verimli bir şekilde aranıp filtrelenmesi.
- Veri erişimini düzgün bir şekilde yönetmek ve yönetmek için hassas kişisel verilerin tanımlanması. Örneğin,
sensitivity:PII
/sensitivity:nonPII
. - Verilerin sorumlu bir yapay zeka (RAI) denetimi tarafından onaylanıp onaylanmadığını belirleme. Örneğin,
RAI_audit:approved
/RAI_audit:todo
.
Veri varlıklarına oluşturma akışlarının bir parçası olarak etiket ekleyebilir veya mevcut veri varlıklarına etiket ekleyebilirsiniz. Bu bölümde her ikisi de gösterilir:
Veri varlığı oluşturma akışının parçası olarak etiket ekleme
Bir YAML dosyası oluşturun ve aşağıdaki kodu kopyalayıp bu YAML dosyasına yapıştırın. <>
Yer tutucuları
- veri varlığınızın adı
- sürüm
- açıklama
- etiketler (anahtar-değer çiftleri)
- desteklenen bir konumda tek bir dosyanın yolu
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
# Supported paths include:
# local: './<path>/<file>' (this will be automatically uploaded to cloud storage)
# blob: 'wasbs://<container_name>@<account_name>.blob.core.windows.net/<path>/<file>'
# ADLS gen2: 'abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/<file>'
# Datastore: 'azureml://datastores/<data_store_name>/paths/<path>/<file>'
# Data asset types, use one of:
# uri_file, uri_folder, mltable
type: uri_file
name: <NAME OF DATA ASSET>
version: <VERSION>
description: <DESCRIPTION>
tags:
<KEY1>: <VALUE>
<KEY2>: <VALUE>
path: <SUPPORTED PATH>
CLI'da aşağıdaki komutu yürütür. Yer tutucuyu <filename>
YAML dosya adına güncelleştirin.
az ml data create -f <filename>.yml
Mevcut bir veri varlığına etiket ekleme
Azure CLI'da aşağıdaki komutu yürütür. <>
Yer tutucuları
- Veri varlığınızın adı
- Sürüm
- Etiket için anahtar-değer çifti
az ml data update --name <DATA ASSET NAME> --version <VERSION> --set tags.<KEY>=<VALUE>
Sürüm oluşturma en iyi yöntemleri
ETL işlemleriniz genellikle Azure depolamadaki klasör yapınızı zamana göre düzenler, örneğin:
/
└── 📁 mydata
├── 📁 year=2022
│ ├── 📁 month=11
│ │ └── 📄 file1
│ │ └── 📄 file2
│ └── 📁 month=12
│ └── 📄 file1
│ │ └── 📄 file2
└── 📁 year=2023
└── 📁 month=1
└── 📄 file1
│ │ └── 📄 file2
Zaman/sürüm yapılandırılmış klasörleri ve Azure Machine Learning Tablolarının (MLTable
) birleşimi, sürümlenmiş veri kümeleri oluşturmanıza olanak tanır. Azure Machine Learning Tablolarıyla sürümlenmiş verilerin nasıl elde edilemeye devam ettiği varsayımsal bir örnektir. Bu yapıda kamera görüntülerini her hafta Azure Blob depolamaya yükleyen bir işleminiz olduğunu varsayalım:
/myimages
└── 📁 year=2022
├── 📁 week52
│ ├── 📁 camera1
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
│ └── 📁 camera2
│ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
└── 📁 year=2023
├── 📁 week1
│ ├── 📁 camera1
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
│ └── 📁 camera2
│ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
Not
Görüntü (jpeg
) verilerinin nasıl sürüm yapılacağını göstersek de, aynı yaklaşım herhangi bir dosya türünde (örneğin, Parquet, CSV) çalışır.
Azure Machine Learning Tabloları ()mltable
ile, 2023'te ilk haftanın sonuna kadar verileri içeren bir Yol Tablosu oluşturun. Ardından bir veri varlığı oluşturun:
import mltable
from mltable import MLTableHeaders, MLTableFileEncoding, DataType
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
from azure.identity import DefaultAzureCredential
# The ** in the pattern below will glob all sub-folders (camera1, ..., camera2)
paths = [
{
"pattern": "abfss://<file_system>@<account_name>.dfs.core.windows.net/myimages/year=2022/week=52/**/*.jpeg"
},
{
"pattern": "abfss://<file_system>@<account_name>.dfs.core.windows.net/myimages/year=2023/week=1/**/*.jpeg"
},
]
tbl = mltable.from_paths(paths)
tbl.save("./myimages")
# Connect to the AzureML workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
# Define the Data asset object
my_data = Data(
path=mltable_folder,
type=AssetTypes.MLTABLE,
description="My images. Version includes data through to 2023-Jan-08.",
name="myimages",
version="20230108",
)
# Create the data asset in the workspace
ml_client.data.create_or_update(my_data)
Sonraki haftanın sonunda ETL'niz verileri daha fazla veri içerecek şekilde güncelleştirdi:
/myimages
└── 📁 year=2022
├── 📁 week52
│ ├── 📁 camera1
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
│ └── 📁 camera2
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
└── 📁 year=2023
├── 📁 week1
│ ├── 📁 camera1
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
│ └── 📁 camera2
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
├── 📁 week2
│ ├── 📁 camera1
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
│ └── 📁 camera2
│ │ └── 🖼️ file1.jpeg
│ │ └── 🖼️ file2.jpeg
İlk sürüm (20230108
) yalnızca ve year=2023/week=1
içindeki dosyaları year=2022/week=52
bağlamaya/indirmeye devam eder çünkü yollar dosyada MLTable
bildirilir. Bu, denemeleriniz için yeniden üretilebilirlik sağlar. veri varlığının içeren year=2023/week2
yeni bir sürümünü oluşturmak için şunu kullanın:
import mltable
from mltable import MLTableHeaders, MLTableFileEncoding, DataType
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
from azure.identity import DefaultAzureCredential
# The ** in the pattern below will glob all sub-folders (camera1, ..., camera2)
paths = [
{
"pattern": "abfss://<file_system>@<account_name>.dfs.core.windows.net/myimages/year=2022/week=52/**/*.jpeg"
},
{
"pattern": "abfss://<file_system>@<account_name>.dfs.core.windows.net/myimages/year=2023/week=1/**/*.jpeg"
},
{
"pattern": "abfss://<file_system>@<account_name>.dfs.core.windows.net/myimages/year=2023/week=2/**/*.jpeg"
},
]
# Save to an MLTable file on local storage
tbl = mltable.from_paths(paths)
tbl.save("./myimages")
# Next, you create a data asset - the MLTable file will automatically be uploaded
# Connect to the AzureML workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
# Define the Data asset object
my_data = Data(
path=mltable_folder,
type=AssetTypes.MLTABLE,
description="My images. Version includes data through to 2023-Jan-15.",
name="myimages",
version="20230115", # update version to the date
)
# Create the data asset in the workspace
ml_client.data.create_or_update(my_data)
Artık verilerin iki sürümüne sahipsiniz ve burada sürümün adı görüntülerin depolama alanına yüklendiği tarihe karşılık gelir:
- 20230108: 2023-Ocak 08'e kadar olan görüntüler.
- 20230115: 2023-Ocak 15'e kadar olan görüntüler.
Her iki durumda da MLTable, yalnızca bu tarihlere kadar olan görüntüleri içeren bir yol tablosu oluşturur.
Azure Machine Learning işinde, veya modlarını kullanarak eval_download
sürüme sahip MLTable'daki bu yolları işlem hedefinize bağlayabilir veya eval_mount
indirebilirsiniz:
from azure.ai.ml import MLClient, command, Input
from azure.ai.ml.entities import Environment
from azure.identity import DefaultAzureCredential
from azure.ai.ml.constants import InputOutputModes
# connect to the AzureML workspace
ml_client = MLClient.from_config(
DefaultAzureCredential()
)
# Get the 20230115 version of the data
data_asset = ml_client.data.get(name="myimages", version="20230115")
input = {
"images": Input(type="mltable",
path=data_asset.id,
mode=InputOutputModes.EVAL_MOUNT
)
}
cmd = """
ls ${{inputs.images}}/**
"""
job = command(
command=cmd,
inputs=input,
compute="cpu-cluster",
environment="azureml://registries/azureml/environments/sklearn-1.1/versions/4"
)
ml_client.jobs.create_or_update(job)
Not
eval_mount
ve eval_download
modları MLTable için benzersizdir. Bu durumda, AzureML veri çalışma zamanı özelliği dosyayı değerlendirir MLTable
ve yolları işlem hedefinde bağlar.