Criar ativos de dados

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

Neste artigo, você aprende como criar um ativo de dados no Azure Machine Learning. Ao criar um ativo de dados, você cria uma referência para a localização da fonte de dados, junto de uma cópia dos metadados. Como os dados permanecem na localização existente, você não tem nenhum custo de armazenamento adicional e não arrisca a integridade das suas fontes de dados. Você pode criar Dados dos armazenamentos de dados do AzureML, Armazenamento do Microsoft Azure, URLs públicas e arquivos locais.

Importante

Se você não criou/registrou a fonte de dados como um ativo de dados, ainda poderá consumir os dados especificando o caminho de dados em um trabalho sem benefícios abaixo.

Os benefícios de criar ativos de dados são:

  • É possível reutilizar e compartilhar os dados com outros membros da equipe para que não seja necessário lembrar dos locais dos arquivos.

  • Você pode acessar diretamente os dados durante o treinamento do modelo (em qualquer tipo de computação compatível) sem se preocupar com cadeias de conexão ou caminhos de dados.

  • Você pode versionar os dados.

Pré-requisitos

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

Caminhos com suporte

Ao criar um ativo de dados no Azure Machine Learning, você precisará especificar um path parâmetro que aponte para sua localização. Veja abaixo uma tabela que mostra os diferentes locais de dados com suporte no Azure Machine Learning e exemplos para o pathparâmetro:

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 wasbs://<containername>@<accountname>.blob.core.windows.net/<path_to_data>/
abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>
adl://<accountname>.azuredatalakestore.net/<path_to_data>/
https://<account_name>.blob.core.windows.net/<container_name>/path

Observação

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

Tipos de ativos de dados

  • [URIs](#Criar um ativo de dados uri_folder) – Um Uniform Resource Identifier que é uma referência a um local de armazenamento no computador local ou na nuvem que facilita o acesso aos dados nos trabalhos. O Azure Machine Learning distingue dois tipos de URIs: uri_file e uri_folder.

  • [MLTable](#Criar um ativo de dados mltable) – MLTable ajuda você a abstrair a definição de esquema dos dados tabulares para torná-lo mais adequado ao esquema complexo/alterável ou para ser utilizado no AutoML. Se você quiser apenas criar um ativo de dados para um trabalho, ou escrever a sua própria lógica de análise em python, poderá usar uri_file, uri_folder.

Os cenários ideais a serem usados mltable são:

  • O esquema de seus dados é complexo e/ou muda com frequência.
  • Você precisará apenas de um subconjunto de dados (por exemplo: uma amostra de linhas ou arquivos, colunas específicas, etc.)
  • Trabalhos AutoML que exigem dados tabulares.

Se o cenário não se ajustar ao acima, é provável que os URIs sejam um tipo mais adequado.

Criar um uri_folder ativo de dados

Abaixo mostra como criar uma pasta como um ativo:

Criar um YAML arquivo (<file-name>.yml):

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json

# Supported paths include:
# local: ./<path>
# blob:  https://<account_name>.blob.core.windows.net/<container_name>/<path>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# Datastore: azureml://datastores/<data_store_name>/paths/<path>
type: uri_folder
name: <name_of_data>
description: <description goes here>
path: <path>

Em seguida, crie o ativo de dados usando a CLI:

az ml data create -f <file-name>.yml

Criar um uri_file ativo de dados

Abaixo mostra como criar um arquivo específico como um ativo de dados:

O arquivo <file-name>.yml do exemploYAML para dados no caminho local é o seguinte:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json

# Supported paths include:
# local: ./<path>/<file>
# blob:  https://<account_name>.blob.core.windows.net/<container_name>/<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>
description: <description>
path: <uri>
> az ml data create -f <file-name>.yml

Criar um mltable ativo de dados

mltable é uma maneira de abstrair a definição de esquema para dados tabulares para facilitar o compartilhamento de ativos de dados (uma visão geral pode ser encontrada em MLTable). A mltable dá suporte a dados tabulares provenientes das seguintes fontes:

  • Arquivos delimitados (CSV, TSV, TXT)
  • Arquivos Parquet
  • Linhas JSON
  • Delta Lake

Encontre mais detalhes sobre quais são as habilidades que fornecemos por meio de mltable em reference-yaml-mltable.

Nesta seção, mostramos como criar um ativo de dados quando o tipo é um mltable.

O arquivo MLTable

O arquivo MLTable é um arquivo que fornece a especificação do esquema dos dados para que o mltablemecanismo possa materializar os dados em um objeto na memória (Pandas/Dask/Spark).

Observação

Esse arquivo precisa ser nomeado exatamente como MLTable.

Um exemplo de arquivo MLTable para arquivos delimitados é fornecido a seguir:

type: mltable

paths:
  - pattern: ./*.txt
transformations:
  - read_delimited:
      delimiter: ','
      encoding: ascii
      header: all_files_same_headers

Um exemplo de arquivo MLTable para Delta Lake é fornecido a seguir:

type: mltable

paths:
  - abfss://my_delta_files

transformations:
  - read_delta_lake:
      timestamp_as_of: '2022-08-26T00:00:00Z'
#timestamp_as_of: Timestamp to be specified for time-travel on the specific Delta Lake data.
#version_as_of: Version to be specified for time-travel on the specific Delta Lake data.

Para obter mais transformações disponíveis em mltable, pesquise reference-yaml-mltable.

Importante

Recomendamos a localização conjunta do arquivo MLTable com os dados subjacentes no armazenamento. Por exemplo:

├── my_data
│   ├── MLTable
│   ├── file_1.txt
.
.
.
│   ├── file_n.txt

Colocar o MLTable com os dados garante um artefatoautocontido onde tudo o que é necessário é armazenado naquela pasta (my_data); independentemente de essa pasta estar armazenada em sua unidade local ou em seu armazenamento na nuvem ou em um servidor http público. Você não deve especificar caminhos absolutos no arquivo MLTable.

Criar um artefato MLTable por meio do SDK do Python: from_*

Se quiser criar um objeto MLTable na memória por meio do SDK do Python, você poderá usar os métodos from_*. Os métodos from_* não materializam os dados, mas armazenam como uma transformação na definição de MLTable.

Por exemplo, é possível usar from_delta_lake() para criar um artefato MLTable na memória para ler os dados do delta lake do caminho delta_table_path.

import mltable as mlt
mltable = from_delta_lake(delta_table_path, timestamp_as_of="2021-01-01T00:00:00Z")
df = mltable.to_pandas_dataframe()
print(df.to_string())

Encontre mais detalhes sobre asfunções do Python para MLTable aqui.

Em seu código Python, você materializa o artefato MLTable em um dataframe do Pandas usando:

import mltable

tbl = mltable.load(uri="./my_data")
df = tbl.to_pandas_dataframe()

O uriparâmetro in mltable.load()deve ser um caminho válido para uma pasta local ou na nuvem que contenha um arquivo MLTable válido.

Observação

Você precisará da mltable biblioteca instalada em seu Ambiente (pip install mltable).

A seguir, mostramos como criar um ativo de dados mltable. O path pode ser qualquer um dos formatos de caminho suportados descritos acima.

Criar um YAML arquivo (<file-name>.yml):

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json

# path must point to **folder** containing MLTable artifact (MLTable file + data
# Supported paths include:
# local: ./<path>
# blob:  https://<account_name>.blob.core.windows.net/<container_name>/<path>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# Datastore: azureml://datastores/<data_store_name>/paths/<path>

type: mltable
name: <name_of_data>
description: <description goes here>
path: <path>

Observação

O caminho aponta para a pasta que contém o artefato MLTable.

Em seguida, crie o ativo de dados usando a CLI:

az ml data create -f <file-name>.yml

Próximas etapas