Dávkové vyhodnocování modelů Spark ve službě Azure Databricks

Azure Active Directory
Databricks
Data Factory
Blob Storage

Tato referenční architektura ukazuje, jak vytvořit škálovatelné řešení pro dávkové vyhodnocování klasifikačního modelu Apache Sparku podle plánu pomocí Azure Databricks, analytické platformy založené na Apache Sparku optimalizované pro Azure. Databricks Machine Learning je integrované komplexní prostředí strojového učení, které zahrnuje spravované služby pro sledování experimentů, trénování modelů, vývoj funkcí a správu a poskytování funkcí a modelů. Tuto referenční architekturu lze použít jako šablonu, která se dá zobecnit v jiných scénářích.

Referenční implementace pro tuto architekturu je k dispozici na GitHub.

Architecture diagram: batch scoring of Apache Spark classification models on Azure Databricks.

Scénář: dávkové vyhodnocování prediktivní údržby

Firma v oboru náročném na prostředky chce minimalizovat náklady a výpadky spojené s neočekávanými mechanickými selháními. Pomocí dat IoT shromážděných ze svých počítačů můžou vytvořit model prediktivní údržby. Tento model umožňuje firmě aktivně udržovat komponenty a opravit je, než selžou. Díky maximalizaci použití mechanických komponent můžou řídit náklady a snížit prostoje.

Model prediktivní údržby shromažďuje data z počítačů a uchovává historické příklady selhání komponent. Model se pak dá použít k monitorování aktuálního stavu komponent a předpovědět, jestli daná komponenta brzy selže. Běžné případy použití a přístupy k modelování najdete v příručce Azure AI pro řešení prediktivní údržby.

Tato referenční architektura je navržená pro úlohy aktivované přítomností nových dat z počítačů komponent. Zpracování zahrnuje následující kroky:

  1. Ingestování dat z externího úložiště dat do úložiště dat Azure Databricks

  2. Trénování modelu strojového učení transformací dat do trénovací datové sady a následným vytvořením modelu Spark MLlib MLlib se skládá z nejběžnějších algoritmů a nástrojů strojového učení optimalizovaných pro využití možností škálovatelnosti dat Sparku.

  3. Pomocí natrénovaného modelu můžete předpovědět (klasifikovat) chyby komponent transformací dat do bodovací datové sady. Skóre dat pomocí modelu Spark MLLib

  4. Výsledky uložte do úložiště dat Databricks pro účely následného zpracování.

Poznámkové bloky jsou k dispozici v GitHub k provedení každé z těchto úloh.

Architektura

Architektura definuje tok dat, který je zcela obsažený v Azure Databricks na základě sady sekvenčních poznámkových bloků. Skládá se z následujících komponent:

Datové soubory. Referenční implementace používá simulovanou datovou sadu obsaženou v pěti statických datových souborech.

Příjem dat Poznámkový blok pro příjem dat stáhne vstupní datové soubory do kolekce datových sad Databricks. V reálném scénáři by data ze zařízení IoT streamovala do úložiště přístupného pro Databricks, jako je Azure SQL Server nebo Azure Blob Storage. Databricks podporuje více zdrojů dat.

Trénovací kanál. Tento poznámkový blok spustí technický poznámkový blok funkcí, který vytvoří sadu dat analýzy z přijatých dat. Pak spustí poznámkový blok sestavení modelu, který trénuje model strojového učení pomocí škálovatelné knihovny strojového učení Apache Spark MLlib .

Bodovací kanál. Tento poznámkový blok spustí technický poznámkový blok funkcí, který vytvoří datovou sadu bodování z přijatých dat a spustí bodovací poznámkový blok. Poznámkový blok bodování používá vytrénovaný model Spark MLlib k vygenerování predikcí pozorování v sadě dat bodování. Předpovědi jsou uloženy v úložišti výsledků, novou datovou sadu v úložišti dat Databricks.

Plánovač. Naplánovaná úloha Databricks zpracovává dávkové vyhodnocování pomocí modelu Spark. Úloha spustí poznámkový blok kanálu bodování a předává argumenty proměnných prostřednictvím parametrů poznámkového bloku a určuje podrobnosti pro vytvoření datové sady bodování a umístění pro uložení datové sady výsledků.

Scénář je vytvořen jako tok kanálu. Každý poznámkový blok je optimalizovaný tak, aby fungoval v dávkovém nastavení pro jednotlivé operace: příjem dat, inženýrství funkcí, sestavování modelů a bodování modelů. Technický poznámkový blok funkcí je navržený tak, aby vygeneroval obecnou datovou sadu pro jakoukoliv trénovací, kalibraci, testování nebo bodovací operace. V tomto scénáři používáme pro tyto operace časovou rozdělenou strategii, takže parametry poznámkového bloku se používají k nastavení filtrování rozsahu dat.

Vzhledem k tomu, že scénář vytvoří dávkový kanál, poskytujeme sadu volitelných poznámkových bloků pro zkoumání výstupu poznámkových bloků kanálu. Tyto poznámkové bloky najdete ve složce poznámkových bloků úložiště GitHub:

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

Doporučení

Databricks je nastavený tak, abyste mohli načíst a nasadit natrénované modely, abyste mohli vytvářet předpovědi s novými daty. Databricks také nabízí další výhody:

  • Podpora jednotného přihlašování pomocí přihlašovacích údajů Azure Active Directory
  • Plánovač úloh pro spouštění úloh pro produkční kanály
  • Plně interaktivní poznámkový blok s využitím spolupráce, řídicích panelů, rozhraní REST API
  • Neomezené clustery, které se můžou škálovat na libovolnou velikost.
  • Pokročilé zabezpečení, řízení přístupu na základě role a protokoly auditu

Pokud chcete pracovat se službou Azure Databricks, použijte rozhraní pracovního prostoru Databricks ve webovém prohlížeči nebo rozhraní příkazového řádku (CLI). Přístup k Rozhraní příkazového řádku Databricks z libovolné platformy, která podporuje Python 2.7.9 až 3.6.

Referenční implementace používá poznámkové bloky ke spouštění úkolů v pořadí. Každý poznámkový blok ukládá přechodné artefakty dat (trénování, testování, vyhodnocování nebo sady dat výsledků) do stejného úložiště dat jako vstupní data. Cílem je, abyste ho mohli snadno používat podle potřeby v konkrétním případě použití. V praxi byste svůj zdroj dat připojili k instanci Azure Databricks, aby poznámkové bloky mohli číst a zapisovat přímo do úložiště.

Provádění úloh můžete monitorovat pomocí uživatelského rozhraní Databricks, úložiště dat nebo rozhraní příkazového řádku Databricks podle potřeby. Monitorujte cluster pomocí protokolu událostí a dalších metrik , které Databricks poskytuje.

Otázky výkonu

Cluster Azure Databricks ve výchozím nastavení umožňuje automatické škálování, aby během běhu databricks dynamicky relokuje pracovní procesy tak, aby zohlednil charakteristiky vaší úlohy. Některé části kanálu můžou být výpočetně náročné než jiné. Databricks během těchto fází vaší úlohy přidává další pracovní procesy (a odebere je, když už nejsou potřeba). Automatické škálování usnadňuje dosažení vysokého využití clusteru, protože cluster nemusíte zřizovat, aby odpovídal úloze.

Složitější plánované kanály je možné vyvíjet pomocí Azure Data Factory s Azure Databricks.

Aspekty úložišť

V této referenční implementaci se data ukládají přímo v úložišti Databricks, aby byla jednoduchost. V produkčním nastavení se ale data dají ukládat do cloudového úložiště dat, jako je například Azure Blob Storage. Databricks také podporuje Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka a Apache Hadoop.

Důležité informace o nákladech

Azure Databricks je premium nabídka Sparku s přidruženými náklady. Kromě toho existují cenové úrovně Standard a Premium Databricks.

Pro tento scénář je dostatečná cenová úroveň Standard. Pokud ale vaše konkrétní aplikace vyžaduje automatické škálování clusterů pro zpracování větších úloh nebo interaktivních řídicích panelů Databricks, může úroveň Premium dále zvýšit náklady.

Poznámkové bloky řešení se můžou spouštět na libovolné platformě založené na Sparku s minimálními úpravami a odebrat balíčky specifické pro Databricks. Podívejte se na následující podobná řešení pro různé platformy Azure:

Nasazení řešení

Pokud chcete nasadit tuto referenční architekturu, postupujte podle kroků popsaných v úložišti GitHub a sestavte škálovatelné řešení pro vyhodnocování modelů Spark v dávce v Azure Databricks.

Další kroky

Další články o Centru architektury Azure:

Další informace: