|
|
6 months ago | |
|---|---|---|
| .. | ||
| README.md | 6 months ago | |
| assignment.md | 7 months ago | |
README.md
Data Science v cloudu: Cesta "Low code/No code"
![]() |
|---|
| Data Science v cloudu: Low Code - Sketchnote od @nitya |
Obsah:
- Data Science v cloudu: Cesta "Low code/No code"
Kvíz před lekcí
1. Úvod
1.1 Co je Azure Machine Learning?
Platforma Azure cloud zahrnuje více než 200 produktů a cloudových služeb navržených tak, aby vám pomohly přivést nové řešení k životu. Datoví vědci věnují značné úsilí průzkumu a předzpracování dat a zkoušení různých typů algoritmů pro trénování modelů, aby vytvořili přesné modely. Tyto úkoly jsou časově náročné a často neefektivně využívají drahé výpočetní zdroje.
Azure ML je cloudová platforma pro vytváření a provozování řešení strojového učení v Azure. Nabízí širokou škálu funkcí a možností, které pomáhají datovým vědcům připravovat data, trénovat modely, publikovat prediktivní služby a monitorovat jejich využití. Největší výhodou je, že zvyšuje efektivitu automatizací mnoha časově náročných úkolů spojených s trénováním modelů a umožňuje využívat cloudové výpočetní zdroje, které se efektivně škálují, aby zvládly velké objemy dat, přičemž náklady vznikají pouze při jejich skutečném využití.
Azure ML poskytuje všechny nástroje, které vývojáři a datoví vědci potřebují pro své pracovní postupy strojového učení. Patří sem:
- Azure Machine Learning Studio: webový portál v Azure Machine Learning pro možnosti trénování modelů, nasazení, automatizace, sledování a správy aktiv v režimu Low code/No code. Studio se integruje s Azure Machine Learning SDK pro bezproblémový zážitek.
- Jupyter Notebooks: rychlé prototypování a testování modelů ML.
- Azure Machine Learning Designer: umožňuje přetahování modulů pro vytváření experimentů a následné nasazení pipeline v prostředí Low code.
- Automatizované uživatelské rozhraní strojového učení (AutoML): automatizuje iterativní úkoly vývoje modelů strojového učení, umožňuje vytvářet modely ML s vysokou škálovatelností, efektivitou a produktivitou, přičemž zachovává kvalitu modelu.
- Označování dat: asistovaný nástroj ML pro automatické označování dat.
- Rozšíření strojového učení pro Visual Studio Code: poskytuje plně vybavené vývojové prostředí pro vytváření a správu projektů ML.
- Příkazový řádek strojového učení: poskytuje příkazy pro správu zdrojů Azure ML z příkazového řádku.
- Integrace s open-source frameworky jako PyTorch, TensorFlow, Scikit-learn a mnoho dalších pro trénování, nasazení a správu procesu strojového učení od začátku do konce.
- MLflow: open-source knihovna pro správu životního cyklu vašich experimentů strojového učení. MLFlow Tracking je komponenta MLflow, která zaznamenává a sleduje metriky trénování a artefakty modelu bez ohledu na prostředí vašeho experimentu.
1.2 Projekt predikce srdečního selhání:
Není pochyb o tom, že vytváření projektů je nejlepší způsob, jak otestovat své dovednosti a znalosti. V této lekci prozkoumáme dva různé způsoby, jak vytvořit projekt datové vědy pro predikci srdečních selhání v Azure ML Studio, a to pomocí Low code/No code a pomocí Azure ML SDK, jak je znázorněno na následujícím schématu:
Každý způsob má své výhody a nevýhody. Cesta Low code/No code je jednodušší na začátek, protože zahrnuje práci s grafickým uživatelským rozhraním (GUI) bez nutnosti předchozích znalostí kódu. Tento způsob umožňuje rychlé testování životaschopnosti projektu a vytvoření POC (Proof Of Concept). Jakmile však projekt roste a je potřeba jej připravit na produkci, není možné vytvářet zdroje pouze prostřednictvím GUI. Je nutné vše programově automatizovat, od vytvoření zdrojů až po nasazení modelu. Zde se stává klíčovým umět používat Azure ML SDK.
| Low code/No code | Azure ML SDK | |
|---|---|---|
| Znalost kódu | Není nutná | Nutná |
| Čas na vývoj | Rychlý a snadný | Závisí na znalostech kódu |
| Připravenost na produkci | Ne | Ano |
1.3 Dataset srdečního selhání:
Kardiovaskulární onemocnění (CVD) jsou hlavní příčinou úmrtí na celém světě, představují 31 % všech úmrtí. Environmentální a behaviorální rizikové faktory, jako je užívání tabáku, nezdravá strava a obezita, fyzická nečinnost a škodlivé užívání alkoholu, mohou být použity jako vlastnosti pro odhadové modely. Schopnost odhadnout pravděpodobnost vývoje CVD by mohla být velmi užitečná pro prevenci útoků u lidí s vysokým rizikem.
Kaggle zpřístupnil veřejně dataset srdečního selhání, který použijeme pro tento projekt. Dataset si můžete stáhnout nyní. Jedná se o tabulkový dataset s 13 sloupci (12 vlastností a 1 cílová proměnná) a 299 řádky.
| Název proměnné | Typ | Popis | Příklad | |
|---|---|---|---|---|
| 1 | age | numerický | věk pacienta | 25 |
| 2 | anaemia | boolean | Snížení počtu červených krvinek nebo hemoglobinu | 0 nebo 1 |
| 3 | creatinine_phosphokinase | numerický | Hladina enzymu CPK v krvi | 542 |
| 4 | diabetes | boolean | Zda má pacient diabetes | 0 nebo 1 |
| 5 | ejection_fraction | numerický | Procento krve opouštějící srdce při každé kontrakci | 45 |
| 6 | high_blood_pressure | boolean | Zda má pacient hypertenzi | 0 nebo 1 |
| 7 | platelets | numerický | Počet krevních destiček v krvi | 149000 |
| 8 | serum_creatinine | numerický | Hladina sérového kreatininu v krvi | 0.5 |
| 9 | serum_sodium | numerický | Hladina sérového sodíku v krvi | jun |
| 10 | sex | boolean | žena nebo muž | 0 nebo 1 |
| 11 | smoking | boolean | Zda pacient kouří | 0 nebo 1 |
| 12 | time | numerický | období sledování (dny) | 4 |
| ---- | --------------------------- | ----------------- | ---------------------------------------------------------- | ------------------- |
| 21 | DEATH_EVENT [Cíl] | boolean | zda pacient zemře během období sledování | 0 nebo 1 |
Jakmile máte dataset, můžeme začít projekt v Azure.
2. Trénování modelu v Azure ML Studio pomocí Low code/No code
2.1 Vytvoření pracovního prostoru Azure ML
Pro trénování modelu v Azure ML je nejprve nutné vytvořit pracovní prostor Azure ML. Pracovní prostor je nejvyšší úroveň zdroje pro Azure Machine Learning, která poskytuje centralizované místo pro práci se všemi artefakty, které vytvoříte při používání Azure Machine Learning. Pracovní prostor uchovává historii všech trénovacích běhů, včetně logů, metrik, výstupů a snímků vašich skriptů. Tyto informace používáte k určení, který trénovací běh produkuje nejlepší model. Zjistěte více
Doporučuje se používat nejaktuálnější prohlížeč kompatibilní s vaším operačním systémem. Podporované prohlížeče jsou:
- Microsoft Edge (nový Microsoft Edge, nejnovější verze. Ne legacy verze Microsoft Edge)
- Safari (nejnovější verze, pouze Mac)
- Chrome (nejnovější verze)
- Firefox (nejnovější verze)
Pro použití Azure Machine Learning vytvořte pracovní prostor ve vašem předplatném Azure. Tento pracovní prostor můžete poté použít ke správě dat, výpočetních zdrojů, kódu, modelů a dalších artefaktů souvisejících s vašimi pracovními postupy strojového učení.
POZNÁMKA: Vaše předplatné Azure bude účtováno malou částkou za úložiště dat, dokud pracovní prostor Azure Machine Learning existuje ve vašem předplatném, takže doporučujeme pracovní prostor Azure Machine Learning smazat, když jej již nebudete používat.
-
Přihlaste se do Azure portálu pomocí přihlašovacích údajů Microsoft spojených s vaším předplatným Azure.
-
Vyberte +Vytvořit zdroj
Vyhledejte Machine Learning a vyberte dlaždici Machine Learning
Klikněte na tlačítko vytvořit
Vyplňte nastavení následovně:
- Předplatné: Vaše předplatné Azure
- Skupina zdrojů: Vytvořte nebo vyberte skupinu zdrojů
- Název pracovního prostoru: Zadejte jedinečný název pro váš pracovní prostor
- Region: Vyberte geografický region nejblíže k vám
- Účet úložiště: Poznamenejte si výchozí nový účet úložiště, který bude vytvořen pro váš pracovní prostor
- Key vault: Poznamenejte si výchozí nový key vault, který bude vytvořen pro váš pracovní prostor
- Application insights: Poznamenejte si výchozí nový zdroj Application Insights, který bude vytvořen pro váš pracovní prostor
- Registr kontejnerů: Žádný (jeden bude vytvořen automaticky při prvním nasazení modelu do kontejneru)
- Klikněte na vytvořit + recenze a poté na tlačítko vytvořit
-
Počkejte, až bude váš pracovní prostor vytvořen (může to trvat několik minut). Poté do něj přejděte v portálu. Najdete jej prostřednictvím služby Machine Learning Azure.
-
Na stránce Přehled vašeho pracovního prostoru spusťte Azure Machine Learning studio (nebo otevřete novou kartu prohlížeče a přejděte na https://ml.azure.com) a přihlaste se do Azure Machine Learning studio pomocí svého účtu Microsoft. Pokud budete vyzváni, vyberte svůj adresář Azure, předplatné a pracovní prostor Azure Machine Learning.
- V Azure Machine Learning studio přepněte ikonu ☰ v levém horním rohu, abyste si zobrazili různé stránky v rozhraní. Tyto stránky můžete použít ke správě zdrojů ve vašem pracovním prostoru.
Pracovní prostor můžete spravovat pomocí Azure portálu, ale pro datové vědce a inženýry operací strojového učení poskytuje Azure Machine Learning Studio více zaměřené uživatelské rozhraní pro správu zdrojů pracovního prostoru.
2.2 Výpočetní zdroje
Výpočetní zdroje jsou cloudové zdroje, na kterých můžete spouštět procesy trénování modelů a průzkumu dat. Existují čtyři typy výpočetních zdrojů, které můžete vytvořit:
- Výpočetní instance: Vývojové pracovní stanice, které mohou datoví vědci používat k práci s daty a modely. To zahrnuje vytvoření virtuálního stroje (VM) a spuštění instance notebooku. Poté můžete trénovat model voláním výpočetního clusteru z notebooku.
- Výpočetní clustery: Škálovatelné clustery VM pro zpracování experimentálního kódu na vyžádání. Budete je potřebovat při trénování modelu. Výpočetní clustery mohou také využívat specializované GPU nebo CPU zdroje.
- Inference clustery: Cíle nasazení pro prediktivní služby, které využívají vaše trénované modely.
- Připojené výpočetní prostředky: Odkazy na existující výpočetní prostředky Azure, jako jsou virtuální počítače nebo clustery Azure Databricks.
2.2.1 Výběr správných možností pro vaše výpočetní prostředky
Při vytváření výpočetního prostředku je třeba zvážit několik klíčových faktorů, které mohou být zásadními rozhodnutími.
Potřebujete CPU nebo GPU?
CPU (Central Processing Unit) je elektronický obvod, který provádí instrukce tvořící počítačový program. GPU (Graphics Processing Unit) je specializovaný elektronický obvod, který dokáže velmi rychle provádět graficky zaměřený kód.
Hlavní rozdíl mezi architekturou CPU a GPU je v tom, že CPU je navrženo pro rychlé zpracování široké škály úkolů (měřeno rychlostí hodin CPU), ale má omezenou schopnost paralelního zpracování. GPU je navrženo pro paralelní výpočty, a proto je mnohem lepší pro úkoly hlubokého učení.
| CPU | GPU |
|---|---|
| Méně nákladné | Více nákladné |
| Nižší úroveň paralelismu | Vyšší úroveň paralelismu |
| Pomalejší při trénování modelů hlubokého učení | Optimální pro hluboké učení |
Velikost clusteru
Větší clustery jsou dražší, ale poskytují lepší odezvu. Pokud máte čas, ale omezený rozpočet, měli byste začít s malým clusterem. Naopak, pokud máte peníze, ale málo času, měli byste začít s větším clusterem.
Velikost virtuálního počítače
Podle vašich časových a rozpočtových omezení můžete měnit velikost RAM, disku, počet jader a rychlost hodin. Zvýšení všech těchto parametrů bude dražší, ale povede k lepšímu výkonu.
Dedikované nebo nízkoprioritní instance?
Nízkoprioritní instance znamená, že je přerušitelná: Microsoft Azure může tyto prostředky převzít a přiřadit je jinému úkolu, čímž přeruší vaši práci. Dedikovaná instance, nebo nepřerušitelná, znamená, že práce nebude nikdy ukončena bez vašeho svolení. Toto je další úvaha o čase vs. penězích, protože přerušitelné instance jsou levnější než dedikované.
2.2.2 Vytvoření výpočetního clusteru
V Azure ML workspace, který jsme vytvořili dříve, přejděte na výpočetní prostředky a uvidíte různé výpočetní prostředky, o kterých jsme právě diskutovali (tj. výpočetní instance, výpočetní clustery, inferenční clustery a připojené výpočetní prostředky). Pro tento projekt budeme potřebovat výpočetní cluster pro trénování modelu. Ve Studio klikněte na nabídku "Compute", poté na záložku "Compute cluster" a klikněte na tlačítko "+ New" pro vytvoření výpočetního clusteru.
- Vyberte své možnosti: Dedikované vs nízkoprioritní, CPU nebo GPU, velikost virtuálního počítače a počet jader (pro tento projekt můžete ponechat výchozí nastavení).
- Klikněte na tlačítko Next.
- Pojmenujte cluster.
- Vyberte své možnosti: Minimální/maximální počet uzlů, počet nečinných sekund před zmenšením, přístup přes SSH. Všimněte si, že pokud je minimální počet uzlů 0, ušetříte peníze, když je cluster nečinný. Všimněte si, že čím vyšší je počet maximálních uzlů, tím kratší bude trénování. Doporučený maximální počet uzlů je 3.
- Klikněte na tlačítko "Create". Tento krok může trvat několik minut.
Skvělé! Nyní, když máme výpočetní cluster, musíme nahrát data do Azure ML Studio.
2.3 Nahrání datové sady
-
V Azure ML workspace, který jsme vytvořili dříve, klikněte na "Datasets" v levém menu a klikněte na tlačítko "+ Create dataset" pro vytvoření datové sady. Vyberte možnost "From local files" a vyberte datovou sadu Kaggle, kterou jsme stáhli dříve.
-
Pojmenujte svou datovou sadu, zadejte typ a popis. Klikněte na Next. Nahrajte data ze souborů. Klikněte na Next.
-
Ve schématu změňte datový typ na Boolean pro následující atributy: anaemia, diabetes, high blood pressure, sex, smoking a DEATH_EVENT. Klikněte na Next a poté na Create.
Skvělé! Nyní, když je datová sada připravena a výpočetní cluster vytvořen, můžeme začít trénovat model!
2.4 Trénování s nízkým kódem/bez kódu pomocí AutoML
Tradiční vývoj modelů strojového učení je náročný na zdroje, vyžaduje značné odborné znalosti a čas na vytvoření a porovnání desítek modelů. Automatizované strojové učení (AutoML) je proces automatizace časově náročných, iterativních úkolů vývoje modelů strojového učení. Umožňuje datovým vědcům, analytikům a vývojářům vytvářet modely ML s vysokou škálovatelností, efektivitou a produktivitou, přičemž zachovává kvalitu modelů. Snižuje čas potřebný k získání modelů připravených pro produkci, s velkou lehkostí a efektivitou. Zjistěte více
-
V Azure ML workspace, který jsme vytvořili dříve, klikněte na "Automated ML" v levém menu a vyberte datovou sadu, kterou jste právě nahráli. Klikněte na Next.
-
Zadejte nový název experimentu, cílový sloupec (DEATH_EVENT) a výpočetní cluster, který jsme vytvořili. Klikněte na Next.
-
Vyberte "Classification" a klikněte na Finish. Tento krok může trvat mezi 30 minutami až 1 hodinou, v závislosti na velikosti vašeho výpočetního clusteru.
-
Po dokončení běhu klikněte na záložku "Automated ML", klikněte na svůj běh a klikněte na algoritmus v kartě "Best model summary".
Zde můžete vidět podrobný popis nejlepšího modelu, který AutoML vytvořil. Můžete také prozkoumat další modely v záložce Models. Věnujte několik minut prozkoumání modelů v sekci Explanations (preview button). Jakmile si vyberete model, který chcete použít (zde vybereme nejlepší model vybraný AutoML), podíváme se, jak jej můžeme nasadit.
3. Nasazení modelu s nízkým kódem/bez kódu a spotřeba endpointu
3.1 Nasazení modelu
Rozhraní automatizovaného strojového učení umožňuje nasadit nejlepší model jako webovou službu v několika krocích. Nasazení je integrace modelu tak, aby mohl provádět predikce na základě nových dat a identifikovat potenciální oblasti příležitostí. Pro tento projekt nasazení na webovou službu znamená, že lékařské aplikace budou schopny využívat model k provádění živých predikcí rizika srdečního infarktu u pacientů.
V popisu nejlepšího modelu klikněte na tlačítko "Deploy".
- Zadejte název, popis, typ výpočetního prostředku (Azure Container Instance), povolte autentizaci a klikněte na Deploy. Tento krok může trvat asi 20 minut. Proces nasazení zahrnuje několik kroků, včetně registrace modelu, generování prostředků a jejich konfigurace pro webovou službu. Pod stavem nasazení se zobrazí zpráva o stavu. Pravidelně klikněte na Refresh, abyste zkontrolovali stav nasazení. Je nasazen a běží, když je stav "Healthy".
- Jakmile je nasazen, klikněte na záložku Endpoint a klikněte na endpoint, který jste právě nasadili. Zde najdete všechny podrobnosti, které potřebujete vědět o endpointu.
Úžasné! Nyní, když máme model nasazený, můžeme začít spotřebovávat endpoint.
3.2 Spotřeba endpointu
Klikněte na záložku "Consume". Zde najdete REST endpoint a python skript v možnosti spotřeby. Věnujte chvíli čtení pythonového kódu.
Tento skript lze spustit přímo z vašeho lokálního počítače a bude spotřebovávat váš endpoint.
Věnujte chvíli pozornosti těmto dvěma řádkům kódu:
url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score'
api_key = '' # Replace this with the API key for the web service
Proměnná url je REST endpoint nalezený v záložce consume a proměnná api_key je primární klíč také nalezený v záložce consume (pouze v případě, že jste povolili autentizaci). Takto skript může spotřebovávat endpoint.
- Při spuštění skriptu byste měli vidět následující výstup:
b'"{\\"result\\": [true]}"'
To znamená, že predikce srdečního selhání pro zadaná data je pravdivá. To dává smysl, protože pokud se podíváte blíže na data automaticky generovaná ve skriptu, vše je ve výchozím nastavení na 0 a false. Můžete změnit data na následující vzorový vstup:
data = {
"data":
[
{
'age': "0",
'anaemia': "false",
'creatinine_phosphokinase': "0",
'diabetes': "false",
'ejection_fraction': "0",
'high_blood_pressure': "false",
'platelets': "0",
'serum_creatinine': "0",
'serum_sodium': "0",
'sex': "false",
'smoking': "false",
'time': "0",
},
{
'age': "60",
'anaemia': "false",
'creatinine_phosphokinase': "500",
'diabetes': "false",
'ejection_fraction': "38",
'high_blood_pressure': "false",
'platelets': "260000",
'serum_creatinine': "1.40",
'serum_sodium': "137",
'sex': "false",
'smoking': "false",
'time': "130",
},
],
}
Skript by měl vrátit:
python b'"{\\"result\\": [true, false]}"'
Gratulujeme! Právě jste spotřebovali nasazený model a trénovali jej na Azure ML!
POZNÁMKA: Jakmile dokončíte projekt, nezapomeňte smazat všechny prostředky.
🚀 Výzva
Podívejte se podrobně na vysvětlení modelu a detaily, které AutoML vytvořil pro nejlepší modely. Pokuste se pochopit, proč je nejlepší model lepší než ostatní. Jaké algoritmy byly porovnány? Jaké jsou mezi nimi rozdíly? Proč je nejlepší model v tomto případě výkonnější?
Kvíz po přednášce
Přehled a samostudium
V této lekci jste se naučili, jak trénovat, nasazovat a spotřebovávat model pro predikci rizika srdečního selhání s nízkým kódem/bez kódu v cloudu. Pokud jste to ještě neudělali, ponořte se hlouběji do vysvětlení modelu, které AutoML vytvořil pro nejlepší modely, a pokuste se pochopit, proč je nejlepší model lepší než ostatní.
Můžete se dále věnovat AutoML s nízkým kódem/bez kódu čtením této dokumentace.
Zadání
Projekt Data Science s nízkým kódem/bez kódu na Azure ML
Prohlášení:
Tento dokument byl přeložen pomocí služby AI pro překlady Co-op Translator. Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
