Criar e gerenciar ativos de dados

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Este artigo mostra como criar e gerenciar ativos de dados no Azure Machine Learning.

Os ativos de dados podem ajudar quando você precisa:

  • Controle de versão: os ativos de dados dão suporte ao controle de versão de dados.
  • Reprodutibilidade: Depois de criar uma versão de ativo de dados, ela será imutável. Não pode ser modificado ou excluído. Portanto, os trabalhos de treinamento ou pipelines que consomem o ativo de dados podem ser reproduzidos.
  • Auditabilidade: como a versão do ativo de dados é imutável, você pode acompanhar as versões do ativo, quem atualizou uma versão e quando ocorreram as atualizações da versão.
  • Linhagem: para um determinado ativo de dados, é possível exibir quais trabalhos ou pipelines consomem dados.
  • Facilidade de uso: um ativo de dados de machine learning do Azure é semelhante aos indicadores do navegador da Web (favoritos). Em vez de se lembrar de longos caminhos de armazenamento (URIs) que fazem referência aos dados usados com frequência no Armazenamento do Azure, você pode criar uma versão de ativo de dados e, em seguida, acessar essa versão do ativo com um nome amigável (por exemplo: azureml:<my_data_asset_name>:<version>).

Dica

Para acessar seus dados em uma sessão interativa (por exemplo, um notebook) ou em um trabalho, não será necessário criar um ativo de dados primeiro. Você pode usar URIs do armazenamento de dados para acessar os dados. As URIs do Armazenamento de Dados oferecem uma maneira simples de acessar dados para começar a usar o Azure Machine Learning.

Pré-requisitos

Para criar e trabalhar com ativos de dados, você precisa do seguinte:

Criar ativos de dados

Ao criar seu ativo de dados, você precisa definir o tipo de ativo de dados. O Azure Machine Learning oferece suporte a três tipos de ativos de dados:

Type API Cenários canônicos
Arquivo
Referenciar um só arquivo
uri_file Leia um único arquivo no Armazenamento do Azure (o arquivo pode ter qualquer formato).
Pasta
Referenciar uma pasta
uri_folder Leia uma pasta de arquivos parquet/CSV no Pandas/Spark.

Leia dados não estruturados (imagens, texto, áudio etc.) localizados em uma pasta.
Tabela
Referenciar uma tabela de dados
mltable Você tem um esquema complexo sujeito a alterações frequentes ou precisa de um subconjunto de dados tabulares grandes.

AutoML com Tabelas.

Leia dados não estruturados (imagens, texto, áudio etc.) que estão distribuídos em vários locais de armazenamento.

Observação

Use apenas novas linhas inseridas em arquivos csv se você registrar os dados como uma MLTable. As novas linhas inseridas em arquivos csv podem causar valores de campo desalinhados quando você lê os dados. O MLTable tem o parâmetro support_multi_line disponível na transformação read_delimited, para interpretar as quebras de linha entre aspas como um registro.

Ao consumir o ativo de dados em um trabalho do Azure Machine Learning, você pode montar ou baixar o ativo para os nós de computação. Para obter mais informações, visite Modos.

Além disso, você deve especificar um parâmetro path que aponte para o local do ativo de dados. Caminhos com suporte incluem:

Localização Exemplos
Um caminho no computador local ./home/username/data/my_data
Um caminho em um armazenamento de dados azureml://datastores/<data_store_name>/paths/<path>
Um caminho em um servidor https(s) público https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv
Um caminho no Armazenamento do 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>/

Observação

Quando você cria um ativo de dados de um caminho local, ele é carregado automaticamente no armazenamento de dados na nuvem padrão do Azure Machine Learning.

Criar um ativo de dados: tipo de arquivo

Um ativo de dados de um tipo de arquivo (uri_file) aponta para um único arquivo no armazenamento (por exemplo, um arquivo CSV). Você pode criar um ativo de dados de tipo de arquivo com:

Crie um arquivo YAML e copie e cole o snippet de código a seguir. Certifique-se de atualizar os espaços reservados <> com o

  • nome do ativo de dados
  • a versão
  • descrição
  • caminho para um único arquivo em um local com suporte
$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>

Em seguida, execute o seguinte comando na CLI. Certifique-se de atualizar o espaço reservado <filename> com o nome do arquivo YAML.

az ml data create -f <filename>.yml

Criar um ativo de dados: tipo de pasta

Um ativo de dados de tipo Pasta (uri_folder) aponta para uma pasta em um recurso de armazenamento – por exemplo, uma pasta que contém várias subpastas de imagens. Você pode criar um ativo de dados de tipo de pasta com:

Copie e cole o código a seguir em um novo arquivo YAML. Certifique-se de atualizar os espaços reservados <> com o

  • Nome do ativo de dados
  • A versão
  • Descrição
  • Caminho para uma pasta em um local com suporte
$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>

Em seguida, execute o seguinte comando na CLI. Certifique-se de atualizar o espaço reservado <filename> com o nome do arquivo YAML.

az ml data create -f <filename>.yml

Criar um ativo de dados: tipo de tabela

As Tabelas do Azure Machine Learning (MLTable) têm funcionalidade avançada, descritas com mais detalhes em Trabalhar com tabelas no Azure Machine Learning. Em vez de repetir essa documentação aqui, leia este exemplo que descreve como criar um ativo de dados de tipo de tabela, com dados do Titanic localizados em uma conta de Armazenamento de Blobs do Azure disponível publicamente.

Primeiro, crie um novo diretório chamado data e crie um arquivo chamado MLTable:

mkdir data
touch MLTable

Em seguida, copie e cole o seguinte YAML no arquivo MLTable que você criou na etapa anterior:

Cuidado

Não renomeie o arquivo MLTable para MLTable.yaml ou MLTable.yml. O Azure Machine Learning espera um arquivo 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

Execute o comando a seguir na CLI. Atualize os espaços reservados <> com os valores de versão e nome do ativo de dados.

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

Importante

O path deve ser uma pasta que contém um arquivo MLTable válido.

Criando ativos de dados a partir de saídas de trabalho

Você pode criar um ativo de dados de um trabalho do Azure Machine Learning. Para fazer isso, defina o parâmetro name na saída. Neste exemplo, você envia um trabalho que copia dados de um repositório de blobs público para o Datastore do Azure Machine Learning padrão e cria um ativo de dados chamado job_output_titanic_asset.

Crie um arquivo YAML de especificação de trabalho (<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
    

Em seguida, envie o trabalho usando a CLI:

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

Gerenciar ativos de dados

Excluir um ativo de dados

Importante

Por padrão, não há suporte para a exclusão de ativos de dados.

Se o Azure Machine Learning permitisse a exclusão de ativos de dados, ele teria os seguintes efeitos adversos e negativos:

  • Os trabalhos de produção que consomem ativos de dados que foram posteriormente excluídos falharão.
  • Seria mais difícil reproduzir um experimento de ML.
  • A linhagem do trabalho seria interrompida, porque seria impossível exibir a versão do ativo de dados excluído.
  • Você não conseguiria acompanhar e auditar corretamente, pois as versões poderiam estar faltando.

Portanto, a imutabilidade dos ativos de dados oferece um nível de proteção ao trabalhar em uma equipe que cria cargas de trabalho de produção.

Para um ativo de dados criado erroneamente – por exemplo, com um nome, tipo ou caminho incorreto – o Azure Machine Learning oferece soluções para lidar com a situação sem as consequências negativas da exclusão:

Quero excluir esse ativo de dados porque... Solução
O nome está incorreto Arquivar o ativo de dados
A equipe não usa mais o ativo de dados Arquivar o ativo de dados
Ele está desorganizando a listagem de ativos de dados Arquivar o ativo de dados
O caminho está incorreto Crie uma nova versão do ativo de dados (mesmo nome) com o caminho correto. Para obter mais informações, visite Criar ativos de dados.
Possui um tipo incorreto No momento, o Azure Machine Learning não permite a criação de uma nova versão com um tipo diferente em comparação com a versão inicial.
(1) Arquivar o ativo de dados
(2) Criar um novo ativo de dados com um nome diferente e o tipo correto.

Arquivar um ativo de dados

O arquivamento de um ativo de dados o oculta por padrão das consultas de lista (por exemplo, na CLI az ml data list) e da listagem de ativos de dados na interface do usuário do Estúdio. Você ainda pode continuar a fazer referência e usar um ativo de dados arquivado nos fluxos de trabalho. Você pode arquivar qualquer um deles:

  • Todas as versões do ativo de dados em um determinado nome

or

  • Uma versão específica do ativo de dados

Arquivar todas as versões de um ativo de dados

Para arquivar todas as versões do ativo de dados com um determinado nome, use:

Execute o comando a seguir. Atualize os espaços reservados <> com as suas informações.

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

Arquivar uma versão específica do ativo de dados

Para arquivar uma versão específica do ativo de dados, use:

Execute o comando a seguir. Atualize os espaços reservados <> com o nome do ativo de dados e a versão.

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

Restaurar um ativo de dados arquivado

Você pode restaurar um ativo de dados arquivado. Se todas as versões do ativo de dados estiverem arquivadas, não será possível restaurar versões individuais do ativo de dados. Você deverá restaurar todas as versões.

Restaurar todas as versões de um ativo de dados

Para restaurar todas as versões do ativo de dados com um determinado nome, use:

Execute o comando a seguir. Atualize os espaços reservados <> com o nome do ativo de dados.

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

Restaurar uma versão específica do ativo de dados

Importante

Se todas as versões de ativos de dados foram arquivadas, não será possível restaurar versões individuais do ativo de dados. Você deverá restaurar todas as versões.

Para restaurar uma versão específica do ativo de dados, use:

Execute o comando a seguir. Atualize os espaços reservados <> com o nome do ativo de dados e a versão.

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

Linhagem de dados

A linhagem de dados é amplamente compreendida como o ciclo de vida que abrange a origem dos dados e para onde eles se movem ao longo do tempo no armazenamento. Diferentes tipos de cenários com aparência de versões anteriores o usam, por exemplo

  • Solução de problemas
  • Causas raiz de rastreamento em pipelines de ML
  • Depuração

A análise da qualidade dos dados, a conformidade e cenários hipotéticos também usam linhagem. A linhagem é representada visualmente para mostrar os dados se movendo da origem para o destino e também abrande as transformações de dados. Devido à complexidade da maioria dos ambientes de dados corporativos, essas exibições podem se tornar difíceis de entender sem consolidação ou mascaramento de pontos de dados periféricos.

Em um pipeline do Azure Machine Learning, os ativos de dados mostram a origem dos dados e como os dados foram processados, por exemplo:

Captura de tela mostrando a linhagem de dados nos detalhes do trabalho.

Você pode exibir os trabalhos que consomem o ativo de dados na interface do usuário do Estúdio. Primeiro, selecione Dados no menu à esquerda e, em seguida, selecione o nome do ativo de dados. Observe os trabalhos que consomem o ativo de dados:

Captura de tela que mostra os trabalhos que consomem um ativo de dados.

A exibição de trabalhos em ativos de dados facilita a localização de falhas de trabalho e a análise de causa raiz em seus pipelines de ML e depuração.

Marcação de ativos de dados

Os ativos de dados dão suporte à marcação, que consiste em metadados extras aplicados ao ativo de dados como um par chave-valor. A marcação de dados oferece muitos benefícios:

  • Descrição da qualidade dos dados. Por exemplo, se a sua organização usa uma arquitetura medallion do Lakehouse, você pode marcar os ativos com medallion:bronze (bruto), medallion:silver (validado) e medallion:gold (enriquecido).
  • Pesquisa e filtragem eficientes de dados, para ajudar na descoberta de dados.
  • Identificação de dados pessoais confidenciais, para gerenciar e controlar corretamente o acesso a dados. Por exemplo, sensitivity:PII/sensitivity:nonPII.
  • Determinação de se os dados são aprovados ou não por uma auditoria de IA (RAI) responsável. Por exemplo, RAI_audit:approved/RAI_audit:todo.

Você pode adicionar marcas a ativos de dados como parte do fluxo de criação ou pode adicionar marcas a ativos de dados existentes. Esta seção mostra:

Adicionar marcas como parte do fluxo de criação de ativos de dados

Crie um arquivo YAML e copie e cole o código a seguir nesse arquivo YAML. Certifique-se de atualizar os espaços reservados <> com o

  • nome do ativo de dados
  • a versão
  • descrição
  • marcas (pares chave-valor)
  • caminho para um único arquivo em um local com suporte
$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>

Execute o comando a seguir na CLI. Certifique-se de atualizar o espaço reservado <filename> com o nome do arquivo YAML.

az ml data create -f <filename>.yml

Adicionar marcas a um ativo de dados existente

Execute o comando a seguir na CLI do Azure. Certifique-se de atualizar os espaços reservados <> com o

  • Nome do ativo de dados
  • A versão
  • Par chave-valor para a marca
az ml data update --name <DATA ASSET NAME> --version <VERSION> --set tags.<KEY>=<VALUE>

Práticas recomendadas de controle de versão

Normalmente, os processos de ETL organizam a estrutura de pastas no armazenamento do Azure por tempo, por exemplo:

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

A combinação de pastas estruturadas de tempo/versão e tabelas do Azure Machine Learning (MLTable) permite que você construa conjuntos de dados com versão. Um exemplo hipotético mostra como obter dados com versões com tabelas do Azure Machine Learning. Suponha que você tenha um processo que carrega imagens de câmera no Armazenamento de Blobs do Azure toda semana, nesta estrutura:

/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

Observação

Embora mostremos como fazer controle de versão de dados de imagem (jpeg), a mesma abordagem funciona para qualquer tipo de arquivo (por exemplo, Parquet, CSV).

Com as Tabelas do Azure Machine Learning (mltable), construa uma tabela de caminhos que inclua os dados até o final da primeira semana em 2023. Em seguida, crie um ativo de dados:

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)

No final da semana seguinte, o ETL atualizou os dados para incluir mais dados:

/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

A primeira versão (20230108) continua a montar/baixar apenas arquivos de year=2022/week=52 e year=2023/week=1 porque os caminhos são declarados no arquivo MLTable. Isso garante a reprodutibilidade dos seus experimentos. Para criar uma nova versão do ativo de dados que inclua year=2023/week2, use:

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)

Agora você tem duas versões dos dados, em que o nome da versão corresponde à data em que as imagens foram carregadas no armazenamento:

  1. 20230108: as imagens até 2023-Jan-08.
  2. 20230115: as imagens até 2023-Jan-15.

Em ambos os casos, o MLTable cria uma tabela de caminhos que inclui apenas as imagens até essas datas.

Em um trabalho do Azure Machine Learning, você pode montar ou baixar esses caminhos na tabela MLTable com versão para seu destino de computação usando os modos eval_download ou 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)

Observação

Os modos eval_mount e eval_download são exclusivos do MLTable. Nesse caso, o recurso de tempo de execução de dados do AzureML avalia o arquivo MLTable e monta os caminhos no destino da computação.

Próximas etapas