Creación y administración de recursos de datos

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

En este artículo se muestra cómo crear y administrar un recurso de datos en Azure Machine Learning.

Los recursos de datos pueden ayudar cuando necesite estas funcionalidades:

  • Control de versiones: los recursos de datos admiten el control de versiones de los datos.
  • Reproducibilidad: una vez creada una versión de recurso de datos, es inmutable. No se puede modificar ni eliminar. Por lo tanto, se pueden reproducir trabajos de entrenamiento o canalizaciones que consumen el recurso de datos.
  • Auditabilidad: dado que la versión del recurso de datos es inmutable, puede supervisar las versiones del recurso, quién actualizó una versión y cuándo se produjeron las actualizaciones de la versión.
  • Linaje: puede ver qué trabajos o canalizaciones consumen los datos de cualquier recurso de datos determinado.
  • Facilidad de uso: un activo de datos de Azure Machine Learning se parece a los marcadores del explorador web (favoritos). En lugar de recordar rutas de acceso de almacenamiento largas (URI) que hacen referencia a los datos usados con frecuencia en Azure Storage, puede crear una versión del recurso de datos y, luego, acceder a esa versión del recurso con un nombre descriptivo (por ejemplo: azureml:<my_data_asset_name>:<version>).

Sugerencia

Para acceder a los datos en una sesión interactiva (por ejemplo, un cuaderno) o un trabajo, no es necesario crear primero un recurso de datos. Puede usar identificadores URI del almacén de datos para acceder a los datos. Los identificadores URI del almacén de datos ofrecen una manera sencilla de acceder a los datos para aquellos que empiezan a trabajar con Azure Machine Learning.

Requisitos previos

Para crear y trabajar con recursos de datos, necesita lo siguiente:

Creación de recursos de datos

Al crear el recurso de datos, debe establecer el tipo de recurso de datos. Azure Machine Learning admite tres tipos de recursos de datos:

Tipo API Escenarios canónicos
Archivo
Referencia a un único archivo.
uri_file Lectura de un único archivo en Azure Storage (el archivo puede tener cualquier formato).
Carpeta
Referencia a una carpeta
uri_folder Lectura de una carpeta de archivos Parquet o CSV en Pandas o Spark.

Lectura de datos no estructurados (imágenes, texto, audio, etc.) ubicados en una carpeta.
Tabla
Referencia a una tabla de datos
mltable Tiene un esquema complejo sujeto a cambios frecuentes o necesita un subconjunto de datos tabulares grandes.

AutoML con tablas.

Lectura de datos no estructurados (imágenes, texto, audio, etc.) que se distribuyen entre varias ubicaciones de almacenamiento.

Nota:

No use nuevas líneas insertadas en archivos CSV a menos que registre los datos como una MLTable. Las nuevas líneas insertadas en archivos CSV pueden provocar valores de campo desalineados al leer los datos. MLTable tiene este parámetro support_multi_line en transformación de read_delimited para interpretar los saltos de línea entre comillas como un registro.

Al consumir el recurso de datos en un trabajo de Azure Machine Learning, puede montar o descargar el recurso en los nodos de proceso. Para más información, consulte Modos.

También debe especificar un parámetro path que apunte a la ubicación del recurso de datos. Rutas de acceso admitidas:

Ubicación Ejemplos
Ruta de acceso en la máquina local ./home/username/data/my_data
Ruta de acceso en un almacén de datos azureml://datastores/<data_store_name>/paths/<path>
Ruta de acceso en un servidor http(s) público https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv
Ruta de acceso en Azure Storage (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

Al crear un recurso de datos desde una ruta de acceso local, se cargará automáticamente en el almacén de datos predeterminado en la nube de Azure Machine Learning.

Creación de un recurso de datos: tipo de archivo

Un recurso de datos que es un tipo (uri_file) de archivo apunta a un único archivo en el almacenamiento (por ejemplo, un archivo CSV). Puede crear un recurso de datos con tipo de archivo mediante:

Cree un archivo YAML y copie y pegue el código siguiente. Debe actualizar los marcadores de posición <> con el nombre del recurso de datos, la versión, la descripción y la ruta de acceso a un único archivo en una ubicación admitida.

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

A continuación, ejecute el siguiente comando en la CLI (actualice el marcador de posición <filename> al nombre de archivo YAML):

az ml data create -f <filename>.yml

Creación de un recurso de datos: tipo de carpeta

Un recurso de datos que es un tipo (uri_folder) de carpeta es aquel que apunta a una carpeta en el almacenamiento (por ejemplo, una carpeta que contiene varias subcarpetas de imágenes). Puede crear un recurso de datos con tipo de carpeta mediante:

Cree un archivo YAML y copie y pegue el código siguiente. Debe actualizar los marcadores de posición <> con el nombre del recurso de datos, la versión, la descripción y la ruta de acceso a una carpeta en una ubicación admitida.

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

A continuación, ejecute el siguiente comando en la CLI (actualice el marcador de posición <filename> al nombre de archivo del YAML):

az ml data create -f <filename>.yml

Creación de un recurso de datos: tipo de tabla

Las tablas de Azure Machine Learning (MLTable) tienen una funcionalidad enriquecida, que se trata con más detalle en Uso de tablas en Azure Machine Learning. En lugar de repetir esa documentación aquí, se proporciona un ejemplo de creación de un recurso de datos con tipo de tabla mediante datos de Titanic que se encuentran en una cuenta de Azure Blob Storage disponible públicamente.

En primer lugar, cree un directorio denominado datos y cree un archivo denominado MLTable:

mkdir data
touch MLTable

Después, copie y pegue el YAML siguiente en el archivo MLTable que creó en el paso anterior:

Precaución

No cambie el nombre del archivo MLTable a MLTable.yaml o MLTable.yml. Azure Machine Learning espera un archivo 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

A continuación, ejecute el comando siguiente en la CLI. Asegúrese de actualizar los marcadores de posición <> con los valores de nombre y versión del recurso de datos.

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

Importante

path debe ser una carpeta que contenga un archivo MLTable válido.

Creación de recursos de datos a partir de salidas de trabajo

Puede crear un recurso de datos a partir de un trabajo de Azure Machine Learning estableciendo el parámetro name en la salida. En este ejemplo, se envía un trabajo que copia datos de un almacén de blobs público en el almacén de datos de Azure Machine Learning predeterminado y crea un recurso de datos denominado job_output_titanic_asset.

Cree un archivo YAML de especificación de trabajo (<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
    

A continuación, envíe el trabajo mediante la CLI:

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

Administración de recursos de datos

Eliminación de un recurso de datos

Importante

Por diseño, no se admite la eliminación de recursos de datos.

Si Azure Machine Learning permitía la eliminación de recursos de datos, tendría los siguientes efectos adversos:

  • Los trabajos de producción que consumen recursos de datos que se eliminaron posteriormente producirán un error.
  • Sería más difícil reproducir un experimento de ML.
  • El linaje del trabajo se interrumpiría, ya que sería imposible ver la versión del recurso de datos eliminado.
  • No podría hacer un seguimiento y auditar correctamente, ya que podrían faltar versiones.

Por lo tanto, la inmutabilidad de los recursos de datos proporciona un nivel de protección al trabajar en un equipo que crea cargas de trabajo de producción.

Cuando se ha creado un recurso de datos por error, por ejemplo, con un nombre, un tipo o una ruta de acceso incorrectos, Azure Machine Learning ofrece soluciones para abordar la situación sin las consecuencias negativas de la eliminación:

Quiero eliminar este recurso de datos porque… Solución
El nombre es incorrecto Archive el recurso de datos
El equipo ya no usa el recurso de datos. Archive el recurso de datos
Desordena la lista de recursos de datos. Archive el recurso de datos
La ruta de acceso es incorrecta Cree una nueva versión del recurso de datos (mismo nombre) con la ruta de acceso correcta. Para más información, consulte Creación de recursos de datos.
Tiene un tipo incorrecto. Actualmente, Azure Machine Learning no permite la creación de una nueva versión que sea de tipo diferente en comparación con la versión inicial.
(1) Archive el recurso de datos
(2) Cree un nuevo recurso de datos con un nombre diferente con el tipo correcto.

Archivado de un recurso de datos

Al archivar un recurso de datos, este se oculta de manera predeterminada de las consultas de lista (por ejemplo, en la az ml data list de la CLI) y de la lista de recursos de datos en la interfaz de usuario de Studio. Todavía puede seguir haciendo referencia a un recurso de datos archivado y usarlo en los flujos de trabajo. Puede archivar:

  • todas las versiones del recurso de datos con un nombre determinado o
  • una versión específica del recurso de datos

Archivado de todas las versiones de un recurso de datos

Para archivar todas las versiones del recurso de datos con un nombre determinado, utilice:

Ejecute el siguiente comando (actualice el marcador de posición <> con el nombre del recurso de datos):

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

Archivado de una versión específica del recurso de datos

Para archivar una versión específica del recurso de datos, use:

Ejecute el siguiente comando (actualice los marcadores de posición <> con el nombre del recurso de datos y la versión):

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

Restauración de un recurso de datos archivado

Puede restaurar un recurso de datos archivado. Si se archivan todas las versiones del recurso de datos, no se pueden restaurar sus versiones individuales. Debe restaurar todas las versiones.

Restauración de todas las versiones de un recurso de datos

Para restaurar todas las versiones del recurso de datos con un nombre determinado, utilice:

Ejecute el siguiente comando (actualice el marcador de posición <> con el nombre del recurso de datos):

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

Restauración de una versión específica del recurso de datos

Importante

Si se archivaron todas las versiones del recurso de datos, no puede restaurar sus versiones individuales. Debe restaurar todas las versiones.

Para restaurar una versión específica del recurso de datos, use:

Ejecute el siguiente comando (actualice los marcadores de posición <> con el nombre del recurso de datos y la versión):

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

Linaje de datos

El linaje de datos es, en términos generales, el ciclo de vida que abarca el origen de los datos y que se mueve con el tiempo en el almacenamiento. Lo usan diferentes tipos de escenarios de búsqueda retroactiva, como la solución de problemas, el seguimiento de la causa principal de las canalizaciones del ML y la depuración. El análisis de calidad de los datos, el cumplimiento y los escenarios de tipo "what if" también usan el linaje. El linaje se representa visualmente para mostrar los datos que se transfieren del origen al destino y también trata las transformaciones de datos. Dada la complejidad de la mayoría de los entornos de datos empresariales, estas vistas pueden ser difíciles de entender si no se consolidan ni enmascaran los puntos de datos periféricos.

En una canalización de Azure Machine Learning, los recursos de datos muestran el origen de los datos y cómo se procesaron los datos, por ejemplo:

Screenshot showing data lineage in the job details.

Puede ver los trabajos que consumen el recurso de datos en la interfaz de usuario de Estudio. En primer lugar, seleccione Datos en el menú izquierdo y, después, seleccione el nombre del recurso de datos. Puede ver los trabajos que consumen el recurso de datos:

Screenshot that shows the jobs that consume a data asset.

La vista de trabajos en Recursos de datos facilita la búsqueda de errores de trabajos y la ruta del análisis de la causa en las canalizaciones y la depuración de ML.

Etiquetado de recursos de datos

Los recursos de datos admiten el etiquetado, que son otros metadatos aplicados al recurso de datos en forma de par clave-valor. El etiquetado de datos proporciona muchas ventajas:

  • Descripción de la calidad de los datos. Por ejemplo, si su organización usa una arquitectura de almacén de lago de medallón, puede etiquetar recursos con medallion:bronze (sin procesar), medallion:silver (validado) y medallion:gold (enriquecido).
  • Proporciona una búsqueda y un filtrado eficaces de los datos para ayudar a la detección de datos.
  • Ayuda a identificar datos personales confidenciales para administrar y controlar correctamente el acceso a los datos. Por ejemplo, sensitivity:PII/sensitivity:nonPII.
  • Identifique si los datos se aprueban a partir de una auditoría de IA responsable (RAI). Por ejemplo, RAI_audit:approved/RAI_audit:todo.

Puede agregar etiquetas a los recursos de datos como parte de su flujo de creación, o bien puede agregar etiquetas a los recursos de datos existentes. En esta sección se muestran ambas opciones.

Adición de etiquetas como parte del flujo de creación de recursos de datos

Cree un archivo YAML y copie y pegue el código siguiente. Debe actualizar los marcadores de posición <> con el nombre del recurso de datos, la versión, la descripción, las etiquetas (pares clave-valor) y la ruta de acceso a un único archivo en una ubicación admitida.

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

A continuación, ejecute el siguiente comando en la CLI (actualice el marcador de posición <filename> al nombre de archivo YAML):

az ml data create -f <filename>.yml

Adición de etiquetas a un recurso de datos existente

Ejecute el siguiente comando en la CLI de Azure y actualice los marcadores de posición <> con el nombre del recurso de datos, la versión y el par clave-valor de la etiqueta.

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

Prácticas recomendadas en relación con las versiones

Normalmente, los procesos de ETL organizan la estructura de carpetas en Azure Storage por tiempo, por ejemplo:

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

La combinación de carpetas estructuradas por hora y versión y tablas de Azure Machine Learning (MLTable) permite crear conjuntos de datos con versiones. Para mostrar cómo lograr datos con versiones con tablas de Azure Machine Learning, se usa un ejemplo hipotético. Supongamos que tiene un proceso que carga imágenes de una cámara en Azure Blob Storage cada semana con la estructura siguiente:

/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

Aunque se muestra cómo crear versiones de datos de imágenes (jpeg), se puede aplicar la misma metodología a cualquier tipo de archivo, por ejemplo, Parquet o CSV.

Con las tablas de Azure Machine Learning (mltable) se crea una tabla de rutas de acceso que incluyen los datos hasta el final de la primera semana en 2023 y, luego, se crea un recurso de datos:

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)

Al final de la semana siguiente, el ETL ha actualizado los datos para incluir más datos:

/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 primera versión (20230108) solo continúa montando o descargando los archivos desde year=2022/week=52 y year=2023/week=1, porque las rutas de acceso se declaran en el archivo MLTable. Esto garantiza la reproducibilidad de los experimentos. Para crear una nueva versión del recurso de datos que incluye year=2023/week2, se usará:

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)

Ahora, tiene dos versiones de los datos, donde el nombre de la versión corresponde a la fecha en que se cargaron las imágenes en el almacenamiento:

  1. 20230108: las imágenes hasta el 8-ene-2023.
  2. 20230115: las imágenes hasta el 15-ene-2023.

En ambos casos, MLTable crea una tabla de rutas que solo incluyen las imágenes hasta esas fechas.

En un trabajo de Azure Machine Learning, puede montar o descargar esas rutas de acceso en MLTable con versiones en el destino de proceso mediante los eval_download modos 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

Los modos eval_mount y eval_download son únicos para MLTable. En este caso, la funcionalidad de tiempo de ejecución de datos de AzureML evalúa el archivo MLTable y monta las rutas de acceso en el destino de proceso.

Pasos siguientes