Vytvoření datového assetu
Jako datový vědec se chcete zaměřit na trénování modelů strojového učení. I když potřebujete přístup k datům jako vstup pro model strojového učení, nechcete se starat o to, jak získat přístup. Pokud chcete zjednodušit získání přístupu k datům, se kterými chcete pracovat, můžete použít datové prostředky.
Principy datových prostředků
Ve službě Azure Machine Learning jsou datové prostředky odkazy na místo, kde se data ukládají, jak získat přístup a všechna další relevantní metadata. Datové prostředky můžete vytvořit, abyste získali přístup k datům v úložištích dat, službách úložiště Azure, veřejných adresách URL nebo datech uložených na místním zařízení.
Výhody používání datových prostředků:
- Data můžete sdílet a opakovaně používat s ostatními členy týmu, aby si nemuseli pamatovat umístění souborů.
- Během trénování modelu (na libovolném podporovaném výpočetním typu) můžete bezproblémově přistupovat k datům, aniž byste se museli starat o připojovací řetězec nebo cesty k datům.
- Metadata datového assetu můžete osverzit.
Existují tři hlavní typy datových prostředků, které můžete použít:
- Soubor URI: Odkazuje na konkrétní soubor.
- Složka URI: Odkazuje na složku.
- MLTable: Odkazuje na složku nebo soubor a obsahuje schéma pro čtení jako tabulková data.
Poznámka:
Identifikátor URI je zkratka pro Uniform Resource Identifier a představuje umístění úložiště na místním počítači, Azure Blob nebo Data Lake Storage, veřejně dostupné umístění https nebo dokonce připojené úložiště dat.
Kdy použít datové prostředky
Datové prostředky jsou nejužitečnější při provádění úloh strojového učení jako úloh Azure Machine Learning. Jako úlohu můžete spustit skript Pythonu, který přijímá vstupy a generuje výstupy. Datový prostředek je možné analyzovat jako vstup nebo výstup úlohy Azure Machine Learning.
Pojďme se podívat na jednotlivé typy datových prostředků, jak je vytvořit a jak používat datový asset v úloze.
Vytvoření datového prostředku souboru URI
Datový asset souboru URI odkazuje na konkrétní soubor. Azure Machine Learning ukládá cestu k souboru, což znamená, že můžete odkazovat na jakýkoli typ souboru. Při použití datového assetu určíte, jak chcete číst data, což závisí na typu dat, ke kterým se připojujete.
Podporované cesty, které můžete použít při vytváření datového prostředku souboru URI, jsou:
- Místní:
./<path>
- Azure Blob Storage:
wasbs://<account_name>.blob.core.windows.net/<container_name>/<folder>/<file>
- Azure Data Lake Storage (Gen 2):
abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>
- Úložiště dat:
azureml://datastores/<datastore_name>/paths/<folder>/<file>
Důležité
Když vytvoříte datový prostředek a nasměrujete na soubor nebo složku uloženou na místním zařízení, nahraje se kopie souboru nebo složky do výchozího úložiště workspaceblobstore
dat . Soubor nebo složku najdete ve LocalUpload
složce. Když nahrajete kopii, budete mít stále přístup k datům z pracovního prostoru Azure Machine Learning, i když místní zařízení, na kterém jsou uložená data, není k dispozici.
K vytvoření datového prostředku souboru URI můžete použít následující kód:
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
my_path = '<supported-path>'
my_data = Data(
path=my_path,
type=AssetTypes.URI_FILE,
description="<description>",
name="<name>",
version="<version>"
)
ml_client.data.create_or_update(my_data)
Při analýze datového assetu souboru URI jako vstupu v úloze Azure Machine Learning je nejprve potřeba přečíst data, abyste s ním mohli pracovat.
Představte si, že vytvoříte skript Pythonu, který chcete spustit jako úlohu, a nastavíte hodnotu vstupního parametru input_data
na datový prostředek souboru URI (který odkazuje na soubor CSV). Data můžete číst zahrnutím následujícího kódu do skriptu Pythonu:
import argparse
import pandas as pd
parser = argparse.ArgumentParser()
parser.add_argument("--input_data", type=str)
args = parser.parse_args()
df = pd.read_csv(args.input_data)
print(df.head(10))
Pokud datový asset souboru URI odkazuje na jiný typ souboru, musíte ke čtení dat použít příslušný kód Pythonu. Pokud například místo souborů CSV pracujete se soubory JSON, použijete pd.read_json()
místo toho.
Vytvoření datového prostředku složky URI
Datový prostředek složky URI odkazuje na konkrétní složku. Funguje podobně jako datový prostředek souboru URI a podporuje stejné cesty.
K vytvoření datového prostředku složky URI pomocí sady Python SDK můžete použít následující kód:
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
my_path = '<supported-path>'
my_data = Data(
path=my_path,
type=AssetTypes.URI_FOLDER,
description="<description>",
name="<name>",
version='<version>'
)
ml_client.data.create_or_update(my_data)
Při analýze datového prostředku složky identifikátoru URI jako vstupu v úloze Azure Machine Learning je potřeba nejprve přečíst data, abyste s ním mohli pracovat.
Představte si, že vytvoříte skript Pythonu, který chcete spustit jako úlohu, a nastavíte hodnotu vstupního parametru input_data
na datový prostředek složky URI (který odkazuje na více souborů CSV). Můžete číst všechny soubory CSV ve složce a zřetězovat je, což můžete udělat zahrnutím následujícího kódu do skriptu Pythonu:
import argparse
import glob
import pandas as pd
parser = argparse.ArgumentParser()
parser.add_argument("--input_data", type=str)
args = parser.parse_args()
data_path = args.input_data
all_files = glob.glob(data_path + "/*.csv")
df = pd.concat((pd.read_csv(f) for f in all_files), sort=False)
V závislosti na typu dat, se kterými pracujete, se může změnit kód, který používáte ke čtení souborů.
Vytvoření datového assetu MLTable
Datový asset MLTable umožňuje odkazovat na tabulková data. Při vytváření datového assetu MLTable zadáte definici schématu pro čtení dat. Vzhledem k tomu, že schéma je už definované a uložené s datovým assetem, nemusíte při jejich použití zadávat, jak číst data.
Proto chcete použít datový asset MLTable, pokud je schéma dat složité nebo se často mění. Místo toho, abyste změnili způsob čtení dat v každém skriptu, který data používá, stačí je změnit jenom v samotném datovém assetu.
Při definování schématu při vytváření datového assetu MLTable můžete také určit pouze podmnožinu dat.
U některých funkcí ve službě Azure Machine Learning, jako je automatizované strojové učení, je potřeba použít datový prostředek MLTable, protože Azure Machine Learning potřebuje vědět, jak číst data.
Chcete-li definovat schéma, můžete zahrnout soubor MLTable do stejné složky jako data, která chcete číst. Soubor MLTable obsahuje cestu ukazující na data, která chcete číst, a postup čtení dat:
type: mltable
paths:
- pattern: ./*.txt
transformations:
- read_delimited:
delimiter: ','
encoding: ascii
header: all_files_same_headers
Tip
Přečtěte si další informace o tom, jak vytvořit soubor MLTable a jaké transformace můžete zahrnout.
K vytvoření datového assetu MLTable pomocí sady Python SDK můžete použít následující kód:
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
my_path = '<path-including-mltable-file>'
my_data = Data(
path=my_path,
type=AssetTypes.MLTABLE,
description="<description>",
name="<name>",
version='<version>'
)
ml_client.data.create_or_update(my_data)
Při analýze datového prostředku MLTable jako vstupu do skriptu Pythonu, který chcete spustit jako úlohu Azure Machine Learning, můžete zahrnout následující kód pro čtení dat:
import argparse
import mltable
import pandas
parser = argparse.ArgumentParser()
parser.add_argument("--input_data", type=str)
args = parser.parse_args()
tbl = mltable.load(args.input_data)
df = tbl.to_pandas_dataframe()
print(df.head(10))
Běžným přístupem je převod tabulkových dat na datový rámec Pandas. Data ale můžete také převést na datový rámec Sparku, pokud to vyhovuje vaší úloze lépe.