Creare e gestire asset di dati

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Questo articolo illustra come creare e gestire asset di dati in Azure Machine Learning.

Gli asset di dati possono essere utili quando sono necessarie queste funzionalità:

  • Controllo delle versioni: gli asset di dati supportano il controllo delle versioni dei dati.
  • Riproducibilità: una volta creata, una versione dell'asset di dati è non modificabile. Non può essere modificata né eliminata. Di conseguenza, i processi di training o le pipeline che usano l'asset di dati sono riproducibili.
  • Verificabilità: poiché la versione dell'asset di dati non è modificabile, è possibile tenere traccia delle versioni, controllando chi ha aggiornato una versione e quando.
  • Derivazione: per qualsiasi asset di dati specifico, è possibile visualizzare quali processi o pipeline utilizzano i dati.
  • Facilità d'uso: un asset di dati di Azure Machine Learning è simile ai segnalibri del Web browser (preferiti). Invece di ricordare percorsi di archiviazione lunghi (URI) che fanno riferimento ai dati usati più di frequente in Archiviazione di Azure, è possibile creare una versione di asset di dati e quindi accedervi con un nome descrittivo, ad esempio azureml:<my_data_asset_name>:<version>.

Suggerimento

Per accedere ai dati in una sessione interattiva (ad esempio, un notebook) o in un processo, non è necessario creare prima un asset di dati. È possibile usare gli URI dell'archivio dati per accedere ai dati. Gli URI dell'archivio dati offrono un modo semplice per accedere ai dati per chi inizia a usare Azure Machine Learning.

Prerequisiti

Per creare e usare asset di dati, è necessario:

Creare asset di dati

Quando si crea l'asset di dati, è necessario impostare il relativo tipo. Azure Machine Learning supporta tre tipi di asset di dati:

Type API Scenari canonici
file
Riferimento a un singolo file
uri_file Lettura di un singolo file in Archiviazione di Azure ( il file può avere qualsiasi formato).
Cartella
Riferimento a una cartella
uri_folder Lettura di una cartella di file parquet/CSV in Pandas/Spark.

Lettura di dati non strutturati (immagini, testo, audio e così via) situati in una cartella.
Tabella
Riferimento a una tabella dati
mltable Si dispone di uno schema complesso soggetto a modifiche frequenti oppure è necessario un subset di dati tabulari di grandi dimensioni.

AutoML con tabelle.

Legge i dati non strutturati (immagini, testo, audio e così via) distribuiti tra più posizioni di archiviazione.

Nota

Non usare caratteri di nuova riga incorporati nei file CSV, a meno che non si registrino i dati come MLTable. I caratteri di nuova riga incorporati nei file CSV possono causare valori di campo non allineati durante la lettura dei dati. MLTable ha questo parametro support_multi_line nella trasformazione read_delimited per interpretare le interruzioni di riga tra virgolette come un record.

Quando si utilizza l'asset di dati in un processo di Azure Machine Learning, è possibile montare o scaricare l'asset in uno o più nodi di calcolo. Per altre informazioni, vedere Modalità.

Inoltre, è necessario specificare un parametro path che punta alla posizione dell'asset di dati. I percorsi supportati includono:

Ufficio Esempi
Un percorso nel computer locale ./home/username/data/my_data
Un percorso in un archivio dati azureml://datastores/<data_store_name>/paths/<path>
Un percorso in uno o più server HTTP pubblici https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv
Un percorso in Archiviazione di Azure (BLOB) wasbs://<containername>@<accountname>.blob.core.windows.net/<path_to_data>/
(ADLS Gen2) abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>
(ADLS Gen1) adl://<accountname>.azuredatalakestore.net/<path_to_data>/

Nota

Quando si crea un asset di dati da un percorso locale, verrà caricato automaticamente nell'archivio dati predefinito di Azure Machine Learning nel cloud.

Creare un asset di dati: tipo di file

Un asset di dati che è un tipo di file (uri_file) punta a un singolo file nell'archiviazione (ad esempio, un file CSV). È possibile creare un asset di dati di tipo file usando:

Creare un file YAML e copiare/incollare il codice seguente. È necessario aggiornare i segnaposto <> con il nome dell'asset di dati, la versione, la descrizione e il percorso di un singolo file in una posizione supportata.

$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>

Eseguire quindi il comando seguente nell'interfaccia della riga di comando (aggiornare il segnaposto <filename> al nome file YAML):

az ml data create -f <filename>.yml

Creare un asset di dati: tipo di cartella

Un asset di dati che è un tipo di cartella (uri_folder) punta a una cartella nell'archiviazione (ad esempio, una cartella contenente diverse sottocartelle di immagini). È possibile creare un asset di dati di tipo cartella usando:

Creare un file YAML e copiare/incollare il codice seguente. È necessario aggiornare i segnaposto <> con il nome dell'asset di dati, la versione, la descrizione e il percorso di una cartella in una posizione supportata.

$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>

Eseguire quindi il comando seguente nell'interfaccia della riga di comando (aggiornare il segnaposto <filename> al nome file YAML):

az ml data create -f <filename>.yml

Creare un asset di dati: tipo di tabella

Le tabelle di Azure Machine Learning (MLTable) hanno funzionalità avanzate, descritte in modo più dettagliato in Uso delle tabelle in Azure Machine Learning. Invece di ripetere la documentazione, viene fornito un esempio di creazione di un asset di dati di tipo tabella usando i dati del Titanic situati in un account di Archiviazione BLOB di Azure disponibile pubblicamente.

Creare prima di tutto una nuova directory denominata data e creare un file denominato MLTable:

mkdir data
touch MLTable

Quindi copiare e incollare il codice YAML seguente nel file MLTable creato nel passaggio precedente:

Attenzione

Non rinominare il file MLTable in MLTable.yaml o MLTable.yml. Azure Machine Learning si aspetta un file MLTable.

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

Eseguire quindi il comando seguente nell'interfaccia della riga di comando. Assicurarsi di aggiornare i segnaposto <> con il nome e i valori della versione dell'asset di dati.

az ml data create --path ./data --name <DATA ASSET NAME> --version <VERSION> --type mltable

Importante

Il valore di path deve essere una cartella che contiene un file MLTable valido.

Creazione di asset di dati dagli output di un processo

È possibile creare un asset di dati da un processo di Azure Machine Learning impostando il parametro name nell'output. In questo esempio si invia un processo che copia i dati da un archivio BLOB pubblico all'archivio dati predefinito di Azure Machine Learning e crea un asset di dati denominato job_output_titanic_asset.

Creare un file YAML di specifica del processo (<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
    

Inviare quindi il processo usando l'interfaccia della riga di comando:

az ml job create --file <file-name>.yml

Gestire gli asset di dati

Eliminare un asset di dati

Importante

Da progettazione, l'eliminazione degli asset di dati non è supportata.

Se Azure Machine Learning consentisse l'eliminazione degli asset di dati, si verificherebbero gli effetti negativi seguenti:

  • I processi di produzione che utilizzano gli asset di dati eliminati in un secondo momento non riuscirebbero.
  • Diventerebbe più difficile riprodurre un esperimento di Machine Learning.
  • La derivazione dei processi si interromperebbe, perché diventerebbe impossibile visualizzare la versione degli asset di dati eliminati.
  • Non sarebbe possibiletenere traccia e controllare correttamente i processi, poiché le versioni potrebbero non essere presenti.

Pertanto, la non modificabilità degli asset di dati offre un livello di protezione quando si lavora in un team che crea carichi di lavoro di produzione.

Quando un asset di dati viene creato erroneamente, ad esempio con un nome, un tipo o un percorso non corretto, Azure Machine Learning offre soluzioni per gestire la situazione senza le conseguenze negative dell'eliminazione:

Si vuole eliminare un asset di dati perché: Soluzione
Il nome non è corretto Archiviare l'asset di dati
Il team non usa più l'asset di dati Archiviare l'asset di dati
Rende complesso l'elenco di asset di dati Archiviare l'asset di dati
Il percorso non è corretto Creare una nuova versione dell'asset di dati con lo stesso nome e con il percorso corretto. Per altre informazioni, vedere Creare asset di dati.
È di un tipo non corretto Attualmente, Azure Machine Learning non consente la creazione di una nuova versione con un tipo diverso rispetto a quello della versione iniziale.
(1) Archiviare l'asset di dati
(2) Creare un nuovo asset di dati con un nome diverso e con il tipo corretto.

Archiviare un asset di dati

Se un asset di dati viene archiviato, per impostazione predefinita viene nascosto alle query di elenco (ad esempio, nell'interfaccia della riga di comando az ml data list) e all'elenco di asset di dati nell'interfaccia utente dello studio. È comunque possibile continuare a fare riferimento e usare un asset di dati archiviato nei flussi di lavoro. È possibile archiviare:

  • tutte le versioni dell'asset di dati con un determinato nome oppure
  • una versione specifica dell'asset di dati

Archiviare tutte le versioni di un asset di dati

Per archiviare tutte le versioni dell'asset di dati con un nome specificato, usare:

Eseguire il comando seguente, aggiornando il segnaposto <> con il nome dell'asset di dati:

az ml data archive --name <NAME OF DATA ASSET>

Archiviare una versione specifica dell'asset di dati

Per archiviare una versione specifica dell'asset di dati, usare:

Eseguire il comando seguente, aggiornando i segnaposti <> con il nome e la versione dell'asset di dati:

az ml data archive --name <NAME OF DATA ASSET> --version <VERSION TO ARCHIVE>

Ripristinare un asset di dati archiviato

È possibile ripristinare un asset di dati archiviato. Se vengono archiviate tutte le versioni dell'asset di dati, non è possibile ripristinare singole versioni. È necessario ripristinarle tutte.

Ripristinare tutte le versioni di un asset di dati

Per ripristinare tutte le versioni dell'asset di dati con un nome specificato, usare:

Eseguire il comando seguente, aggiornando il segnaposto <> con il nome dell'asset di dati:

az ml data restore --name <NAME OF DATA ASSET>

Ripristinare una versione specifica dell'asset di dati

Importante

Se sono state archiviate tutte le versioni dell'asset di dati, non è possibile ripristinare singole versioni. È necessario ripristinarle tutte.

Per ripristinare una versione specifica dell'asset di dati, usare:

Eseguire il comando seguente, aggiornando i segnaposti <> con il nome e la versione dell'asset di dati:

az ml data restore --name <NAME OF DATA ASSET> --version <VERSION TO ARCHIVE>

Derivazione dei dati

Per derivazione dei dati si intende comunemente il ciclo di vita che si estende dall'origine dei dati ai vari spostamenti nel corso del tempo nell'archiviazione. Viene usata in diversi tipi di scenari retroattivi, ad esempio la risoluzione dei problemi, la traccia delle cause radice nelle pipeline di ML e li debug. Viene usata anche in scenari di analisi della qualità dei dati, conformità e simulazione. La derivazione viene rappresentata visivamente per mostrare i dati che passano dall'origine alla destinazione e illustra anche le relative trasformazioni. Considerando la complessità della maggior parte degli ambienti di dati aziendali, queste visualizzazioni possono diventare difficili da interpretare senza consolidamento o mascheramento di punti dati periferici.

In una pipeline di Azure Machine Learning, gli asset di dati mostrano l'origine dei dati e il modo in cui sono stati elaborati, ad esempio:

Screenshot showing data lineage in the job details.

È possibile visualizzare i processi che usano l'asset di dati nell'interfaccia utente dello studio. Selezionare prima di tutto Dati nel menu a sinistra e quindi selezionare il nome dell'asset di dati. È possibile visualizzare i processi che usano l'asset di dati:

Screenshot that shows the jobs that consume a data asset.

La visualizzazione dei processi in Asset di dati semplifica l'individuazione di errori e l'esecuzione di analisi della causa radice nelle pipeline di ML e nel debug.

Assegnazione di tag agli asset di dati

Gli asset di dati supportano l'assegnazione di tag, ovvero metadati aggiuntivi applicati sotto forma di coppia chiave-valore. L'assegnazione di tag ai dati offre numerosi vantaggi:

  • Descrizione della qualità dei dati. Ad esempio, se l'organizzazione usa un'architettura lakehouse medallion è possibile assegnare agli asset i tag medallion:bronze (non elaborato), medallion:silver (convalidato) e medallion:gold (arricchito).
  • Fornisce funzionalità efficienti di ricerca e filtro dei dati per favorirne l'individuazione.
  • Consente di identificare dati personali sensibili o di gestire e regolamentare correttamente l'accesso ai dati. Ad esempio, sensitivity:PII/sensitivity:nonPII.
  • Identificare se i dati vengono approvati da un controllo di IA responsabile. Ad esempio, RAI_audit:approved/RAI_audit:todo.

È possibile aggiungere tag agli asset di dati come parte del flusso di creazione oppure aggiungerli a dati esistenti. Questa sezione illustra come effettuare entrambe le operazioni.

Aggiungere tag come parte del flusso di creazione degli asset di dati

Creare un file YAML e copiare/incollare il codice seguente. È necessario aggiornare i segnaposto <> con il nome dell'asset di dati, la versione, la descrizione, i tag (coppie chiave-valore) e il percorso di un singolo file in una posizione supportata.

$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>

Eseguire quindi il comando seguente nell'interfaccia della riga di comando (aggiornare il segnaposto <filename> al nome file YAML):

az ml data create -f <filename>.yml

Aggiungere tag a un asset di dati esistente

Eseguire il comando seguente nell'interfaccia della riga di comando di Azure e aggiornare i segnaposto <> con il nome dell'asset di dati, la versione e la coppia chiave-valore per il tag.

az ml data update --name <DATA ASSET NAME> --version <VERSION> --set tags.<KEY>=<VALUE>

Procedure consigliate relative al controllo delle versioni

In genere, i processi ETL organizzano la struttura di cartelle in Archiviazione di Azure in base al tempo, ad esempio:

/
└── 📁 mydata
    ├── 📁 year=2022
    │   ├── 📁 month=11
    │   │   └── 📄 file1
    │   │   └── 📄 file2
    │   └── 📁 month=12
    │       └── 📄 file1
    │   │   └── 📄 file2
    └── 📁 year=2023
        └── 📁 month=1
            └── 📄 file1
    │   │   └── 📄 file2

La combinazione di cartelle strutturate in base a tempo/versione e di tabelle di Azure Machine Learning (MLTable) consente di creare set di dati con versione. Per illustrare come ottenere dati con versione con le tabelle di Azure Machine Learning, viene usato un esempio ipotetico. Si supponga di avere un processo che carica immagini della fotocamera in archiviazione BLOB di Azure ogni settimana, nella struttura seguente:

/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

Nota

Anche se viene illustrato come controllare la versione di dati di immagine (jpeg) dati, la stessa metodologia può essere applicata a qualsiasi tipo di file (ad esempio Parquet, CSV).

Con le tabelle di Azure Machine Learning (mltable), si crea una tabella di percorsi che include i dati fino alla fine della prima settimana del 2023 e quindi si crea un asset di dati:

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)

Alla fine della settimana seguente, il processo ETL ha aggiornato i dati per includerne altri:

/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

La prima versione (20230108) continua a montare/scaricare solo i file da year=2022/week=52 e year=2023/week=1 perché i percorsi vengono dichiarati nel file MLTable. Ciò garantisce riproducibilità per gli esperimenti. Per creare una nuova versione dell'asset di dati che include year=2023/week2, usare:

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)

Sono ora disponibili due versioni dei dati, in cui il nome della versione corrisponde alla data in cui le immagini sono state caricate nell'archiviazione:

  1. 20230108: le immagini fino a 08/01/2023.
  2. 20230115: le immagini fino a 15/01/2023.

In entrambi i casi, MLTable crea una tabella di percorsi che include solo le immagini fino a tali date.

In un processo di Azure Machine Learning è possibile montare o scaricare questi percorsi in MLTable con versione nella destinazione di calcolo usando le modalità eval_download o eval_mount:

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)

Nota

Le modalità eval_mount e eval_download sono univoche per MLTable. In questo caso, la funzionalità di runtime dei dati di AzureML valuta il file MLTable e monta i percorsi nella destinazione di calcolo.

Passaggi successivi