Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
Python SDK azure-ai-ml v2 (aktuální)
V tomto kurzu se naučíte:
- Nahrání dat do cloudového úložiště
- Vytvoření datového assetu služby Azure Machine Learning
- Přístup k datům v poznámkovém bloku pro interaktivní vývoj
- Vytvoření nových verzí datových prostředků
Projekt strojového učení obvykle začíná průzkumnou analýzou dat (EDA), předzpracováním dat (čištění, příprava funkcí) a vytvářením prototypů modelu strojového učení pro ověření hypotéz. Tato fáze projektu vytváření prototypů je vysoce interaktivní a umožňuje vývoj v integrovaném vývojovém prostředí nebo poznámkovém bloku Jupyter pomocí interaktivní konzoly Pythonu. Tento kurz popisuje tyto koncepty.
Požadavky
-
Pokud chcete používat Azure Machine Learning, potřebujete pracovní prostor. Pokud ho nemáte, dokončete vytváření prostředků, které potřebujete, abyste mohli začít vytvářet pracovní prostor a získat další informace o jeho používání.
Důležité
Pokud je váš pracovní prostor Azure Machine Learning nakonfigurovaný se spravovanou virtuální sítí, možná budete muset přidat odchozí pravidla, která povolí přístup k veřejným úložištím balíčků Pythonu. Další informace najdete v tématu Scénář: Přístup k veřejným balíčkům strojového učení.
-
Přihlaste se do studia a vyberte pracovní prostor, pokud ještě není otevřený.
-
Otevřete nebo vytvořte poznámkový blok v pracovním prostoru:
- Pokud chcete zkopírovat a vložit kód do buněk, vytvořte nový poznámkový blok.
- Nebo otevřete kurzy/get-started-notebooks/explore-data.ipynb v části Ukázky studia. Potom vyberte Clone (Klonovat ) a přidejte poznámkový blok do složky Soubory. Ukázkové poznámkové bloky najdete v tématu Výuka z ukázkových poznámkových bloků.
Nastavení jádra a otevření v editoru Visual Studio Code (VS Code)
Na horním panelu nad otevřeným poznámkovým blokem vytvořte výpočetní instanci, pokud ji ještě nemáte.
Pokud je výpočetní instance zastavená, vyberte Spustit výpočetní prostředky a počkejte, až bude spuštěný.
Počkejte na spuštění výpočetní instance. Pak se ujistěte, že jádro, které se nachází v pravém horním rohu, je
Python 3.10 - SDK v2. Pokud ne, vyberte toto jádro pomocí rozevíracího seznamu.Pokud toto jádro nevidíte, ověřte, že je vaše výpočetní instance spuštěná. Pokud ano, vyberte tlačítko Aktualizovat v pravém horním rohu poznámkového bloku.
Pokud se zobrazí banner s informací, že potřebujete být ověřeni, vyberte Ověřit.
Poznámkový blok můžete spustit tady nebo ho otevřít ve VS Code pro úplné integrované vývojové prostředí (IDE) s využitím prostředků Azure Machine Learning. Vyberte Otevřít v editoru VS Code a pak vyberte možnost Web nebo Desktop. Při spuštění tímto způsobem se VS Code připojí k vaší výpočetní instanci, jádru a systému souborů pracovního prostoru.
Důležité
Zbytek tohoto kurzu obsahuje buňky poznámkového bloku kurzu. Pokud jste ho naklonovali, zkopírujte je a vložte do nového poznámkového bloku nebo ho teď přepněte do poznámkového bloku.
Stažení dat použitých v tomto kurzu
Při příjmu dat zpracovává Azure Data Explorer nezpracovaná data v těchto formátech. V tomto kurzu se používá ukázka dat klientů kreditních karet ve formátu CSV. Kroky se provedou v prostředku služby Azure Machine Learning. V tomto prostředku vytvoříte místní složku s navrhovaným názvem dat přímo pod složkou, ve které se tento poznámkový blok nachází.
Poznámka:
Tento kurz závisí na datech umístěných v umístění složky prostředků služby Azure Machine Learning. Pro účely tohoto kurzu "local" znamená umístění složky v daném prostředku služby Azure Machine Learning.
Pod třemi tečkami vyberte Otevřít terminál , jak je znázorněno na tomto obrázku:
Okno terminálu se otevře na nové kartě.
Ujistěte se, že změníte adresář (
cd) na stejnou složku, ve které se tento poznámkový blok nachází. Pokud je poznámkový blok například ve složce s názvem get-started-notebooks:cd get-started-notebooks # modify this to the path where your notebook is locatedZadáním těchto příkazů v okně terminálu zkopírujte data do výpočetní instance:
mkdir data cd data # the subfolder where you'll store the data wget https://azuremlexamples.blob.core.windows.net/datasets/credit_card/default_of_credit_card_clients.csvTeď můžete okno terminálu zavřít.
Další informace o datech v úložišti UC Irvine Machine Learning najdete v tomto prostředku.
Vytvoření popisovače pracovního prostoru
Než prozkoumáte kód, potřebujete způsob, jak odkazovat na pracovní prostor. Vytvoříte ml_client jako popisovač pracovního prostoru. Pak použijete ml_client ke správě prostředků a úloh.
Do další buňky zadejte ID předplatného, název skupiny prostředků a název pracovního prostoru. Tyto hodnoty najdete takto:
- V pravém horním panelu nástrojů Azure Machine Learning studia vyberte název pracovního prostoru.
- Zkopírujte hodnotu pro pracovní prostor, skupinu prostředků a ID předplatného do kódu.
- Každou hodnotu musíte zkopírovat jednotlivě, vždy po jedné. Zavřete oblast, vložte hodnotu a pokračujte dalším.
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
# authenticate
credential = DefaultAzureCredential()
# Get a handle to the workspace
ml_client = MLClient(
credential=credential,
subscription_id="<SUBSCRIPTION_ID>",
resource_group_name="<RESOURCE_GROUP>",
workspace_name="<AML_WORKSPACE_NAME>",
)
Poznámka:
Vytvoření MLClient se k pracovnímu prostoru nepřipojí. Inicializace klienta je opožděná a čeká na první volání. K tomu dochází v další buňce kódu.
Nahrání dat do cloudového úložiště
Azure Machine Learning používá identifikátory URI (Uniform Resource Identifier), které odkazují na umístění úložiště v cloudu. Identifikátor URI usnadňuje přístup k datům v poznámkových blocích a úlohách. Formáty identifikátorů URI dat jsou podobné webovým adresám URL, které používáte ve webovém prohlížeči pro přístup k webovým stránkám. Příklad:
- Přístup k datům z veřejného serveru https:
https://<account_name>.blob.core.windows.net/<container_name>/<folder>/<file> - Přístup k datům z Azure Data Lake Gen2:
abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>
Datový prostředek služby Azure Machine Learning se podobá záložkám webového prohlížeče (oblíbené položky). Místo zapamatování dlouhých cest úložiště (URI), které odkazují na nejčastěji používaná data, můžete vytvořit datový prostředek a pak k němu přistupovat popisným názvem.
Vytvoření datového assetu také vytvoří odkaz na umístění zdroje dat spolu s kopií jeho metadat. Vzhledem k tomu, že data zůstávají v existujícím umístění, neúčtují se vám žádné další náklady na úložiště a neriskujete integritu zdroje dat. Datové prostředky můžete vytvářet z úložišť dat služby Azure Machine Learning, Azure Storage, veřejných adres URL a místních souborů.
Návod
Pro menší nahrávání dat funguje vytváření datových prostředků ve službě Azure Machine Learning dobře pro přenos dat z místního počítače do cloudového úložiště. Tento přístup se vyhne nutnosti používat další nástroje nebo nástroje. Větší nahrávání dat ale může vyžadovat vyhrazený nástroj nebo utilitu – například azcopy. Nástroj příkazového řádku azcopy přesune data do a ze služby Azure Storage. Další informace o nástroji azcopy najdete v tématu Začínáme s nástrojem AzCopy.
Další buňka poznámkového bloku vytvoří datový asset. Ukázka kódu nahraje nezpracovaný datový soubor do určeného prostředku cloudového úložiště.
Pokaždé, když vytvoříte datový asset, potřebujete pro něj jedinečnou verzi. Pokud už verze existuje, zobrazí se chyba. V tomto kódu použijete "initial" pro první čtení dat. Pokud už tato verze existuje, kód ho znovu nevytvoř.
Parametr verze můžete také vynechat. V tomto případě se vygeneruje číslo verze, začínající od 1 a počínají se zvyšovat odsud.
V tomto kurzu se jako první verze používá název "initial". Kurz vytvoření produkčních kanálů strojového učení používá také tuto verzi dat, takže použijete hodnotu, kterou v tomto kurzu znovu uvidíte.
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
# Update the 'my_path' variable to match the location of where you downloaded the data on your
# local filesystem
my_path = "./data/default_of_credit_card_clients.csv"
# Set the version number of the data asset
v1 = "initial"
my_data = Data(
name="credit-card",
version=v1,
description="Credit card data",
path=my_path,
type=AssetTypes.URI_FILE,
)
## Create data asset if it doesn't already exist:
try:
data_asset = ml_client.data.get(name="credit-card", version=v1)
print(
f"Data asset already exists. Name: {my_data.name}, version: {my_data.version}"
)
except:
ml_client.data.create_or_update(my_data)
print(f"Data asset created. Name: {my_data.name}, version: {my_data.version}")
Pokud chcete zkontrolovat nahraná data, vyberte v části Prostředky v levé navigační nabídce možnost Data. Data se nahrají a vytvoří se datový asset:
Tato data se nazývají platební karta. Na kartě Datové prostředky ji můžete vidět ve sloupci Název.
Úložiště dat Azure Machine Learning je odkazem na existující účet úložiště v Azure. Úložiště dat nabízí tyto výhody:
Běžné a snadno použitelné rozhraní API pro interakci s různými typy úložiště:
- Azure Data Lake Storage
- Objekt blob
- Files
a metody ověřování.
Jednodušší způsob, jak zjistit užitečné úložiště dat při práci jako tým.
Ve skriptech můžete skrýt informace o připojení pro přístup k datům založeným na přihlašovacích údajích (instanční objekt, SAS/klíč).
Přístup k datům v poznámkovém bloku
Chcete vytvořit datové prostředky pro často požadovaná data. K datům můžete přistupovat pomocí URI, jak je popsáno v přístupu k datům z URI úložiště, podobně jako u systému souborů. Jak už jsme ale zmínili dříve, může být obtížné si tyto identifikátory URI zapamatovat.
Alternativou je použití azureml-fsspec knihovny, která poskytuje rozhraní systému souborů pro úložiště dat Azure Machine Learning. Je to jednodušší způsob, jak získat přístup k souboru CSV v Pandas:
Důležité
V buňce poznámkového bloku spusťte tento kód pro instalaci knihovny Pythonu azureml-fsspec do jádra Jupyter:
%pip install -U azureml-fsspec
import pandas as pd
# Get a handle of the data asset and print the URI
data_asset = ml_client.data.get(name="credit-card", version=v1)
print(f"Data asset URI: {data_asset.path}")
# Read into pandas - note that you will see 2 headers in your data frame - that is ok, for now
df = pd.read_csv(data_asset.path)
df.head()
Další informace o přístupu k datům v poznámkovém bloku najdete v tématu Přístup k datům z cloudového úložiště Azure během interaktivního vývoje.
Vytvoření nové verze datového assetu
Data potřebují nějaké lehké čištění, aby byla vhodná pro trénování modelu strojového učení. Má:
- Dvě záhlaví
- Sloupec ID klienta, který by se v strojovém učení nepoužíval jako funkce
- Mezery v názvu proměnné odpovědi
Ve srovnání s formátem CSV je formát souboru Parquet lepší způsob, jak tato data uložit. Parquet nabízí kompresi a udržuje schéma. Vyčištění dat a jejich uložení ve formátu Parquet:
# Read in data again, this time using the 2nd row as the header
df = pd.read_csv(data_asset.path, header=1)
# Rename column
df.rename(columns={"default payment next month": "default"}, inplace=True)
# Remove ID column
df.drop("ID", axis=1, inplace=True)
# Write file to filesystem
df.to_parquet("./data/cleaned-credit-card.parquet")
Tato tabulka ukazuje strukturu dat v původním souboru default_of_credit_card_clients.csv staženého v předchozím kroku. Nahraná data obsahují 23 vysvětlujících proměnných a 1 proměnnou odpovědi, jak je znázorněno tady:
| Názvy sloupců | Typ proměnné | Popis |
|---|---|---|
| X1 | Vysvětlující | Částka daného kreditu (NT dollar): zahrnuje jak individuální spotřebitelský úvěr, tak i jejich rodinný (doplňkový) kredit. |
| X2 | Vysvětlující | Pohlaví (1 = muž; 2 = žena). |
| X3 | Vysvětlující | Vzdělávání (1 = absolventská škola; 2 = univerzita; 3 = střední škola; 4 = ostatní). |
| X4 | Vysvětlující | Rodinný stav (1 = ženatý; 2 = single; 3 = ostatní). |
| X5 | Vysvětlující | Věk (roky). |
| X6-X11 | Vysvětlující | Historie předchozích plateb. Záznamy měsíčních plateb byly sledovány od dubna do září 2005. -1 = řádně zaplatit; 1 = zpoždění platby za jeden měsíc; 2 = zpoždění platby po dobu dvou měsíců; . . .; 8 = zpoždění platby po dobu osmi měsíců; 9 = zpoždění platby po dobu devíti měsíců a výše. |
| X12-17 | Vysvětlující | Částka vyúčtování (NT dolar) od dubna do září 2005. |
| X18-23 | Vysvětlující | Výše předchozí platby (NT dolar) od dubna do září 2005. |
| Й | Odezva | Výchozí platba (Ano = 1, Ne = 0) |
Dále vytvořte novou verzi datového prostředku. Data se automaticky nahrají do cloudového úložiště. Pro tuto verzi přidejte časovou hodnotu, aby se při každém spuštění tohoto kódu vytvořilo jiné číslo verze.
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
import time
# Next, create a new version of the data asset (the data is automatically uploaded to cloud storage):
v2 = "cleaned" + time.strftime("%Y.%m.%d.%H%M%S", time.gmtime())
my_path = "./data/cleaned-credit-card.parquet"
# Define the data asset, and use tags to make it clear the asset can be used in training
my_data = Data(
name="credit-card",
version=v2,
description="Default of credit card clients data.",
tags={"training_data": "true", "format": "parquet"},
path=my_path,
type=AssetTypes.URI_FILE,
)
## Create the data asset
my_data = ml_client.data.create_or_update(my_data)
print(f"Data asset created. Name: {my_data.name}, version: {my_data.version}")
Vyčištěný soubor Parquet je zdrojem poslední verze dat. Tento kód zobrazí nejprve sadu výsledků verze CSV a pak verzi Parquet:
import pandas as pd
# Get a handle of the data asset and print the URI
data_asset_v1 = ml_client.data.get(name="credit-card", version=v1)
data_asset_v2 = ml_client.data.get(name="credit-card", version=v2)
# Print the v1 data
print(f"V1 Data asset URI: {data_asset_v1.path}")
v1df = pd.read_csv(data_asset_v1.path)
print(v1df.head(5))
# Print the v2 data
print(
"_____________________________________________________________________________________________________________\n"
)
print(f"V2 Data asset URI: {data_asset_v2.path}")
v2df = pd.read_parquet(data_asset_v2.path)
print(v2df.head(5))
Vyčištění prostředků
Pokud chcete pokračovat v dalších kurzech, přejděte k dalším krokům.
Zastavení výpočetní instance
Pokud ho teď nechcete používat, zastavte výpočetní instanci:
- V levém podokně studia vyberte Výpočty.
- Na horních kartách vyberte Výpočetní instance.
- V seznamu vyberte výpočetní instanci.
- Na horním panelu nástrojů vyberte Zastavit.
Odstranění všech prostředků
Důležité
Prostředky, které jste vytvořili, se dají použít jako předpoklady pro další kurzy a články s postupy pro Azure Machine Learning.
Pokud nemáte v úmyslu používat žádné prostředky, které jste vytvořili, odstraňte je, abyste za ně neúčtovaly žádné poplatky:
Na webu Azure Portal do vyhledávacího pole zadejte skupiny prostředků a vyberte je z výsledků.
V seznamu vyberte skupinu prostředků, kterou jste vytvořili.
Na stránce Přehled vyberte Odstranit skupinu prostředků.
Zadejte název skupiny prostředků. Poté vyberte Odstranit.
Další kroky
Další informace o datových prostředcích najdete v tématu Vytváření datových prostředků.
Další informace o úložištích dat najdete v tématu Vytváření úložišť dat.
V dalším kurzu se dozvíte, jak vyvíjet trénovací skript: