Vytvoření systému doporučení filmů pomocí strojového učení

Blob Storage
Container Instances
Cosmos DB
Data Science Virtual Machine
Machine Learning

Řešení popsané v tomto článku používá strojové učení k automatickému a horizontálnímu vytváření doporučení filmů.

Architektura

Diagram architektury modelu strojového učení pro doporučení pro trénování filmů

Stáhněte si soubor aplikace Visio s touto architekturou.

Pracovní postup

  1. Front-endový web nebo aplikační služba shromažďuje historii hodnocení filmů diváků.
  2. Ukládá historii ve službě Azure Blog Storage.
  3. DsVM trénuje model Machine Learning pomocí trénovací datové sady, která je podmnožinou historie hodnocení.
    • Úloha je dostatečně malá, aby virtuální počítač DSVM byl vhodný k experimentování a vývoji produktu.
    • Trénovací datová sada je nakreslená z historie hodnocení použitím strategie rozdělení dat. Datová sada se například může rozdělit na sady náhodně, chronologicky nebo stratifikované v závislosti na obchodním požadavku.
    • Stejně jako u jiných úloh strojového učení se model ověřuje pomocí metrik vyhodnocení, jako jsou precision@k, recall@k, MAP a nDCG@k).
  4. Machine Learning koordinuje experimentování, provádí úlohy, jako je úklid hyperparametrů a správa modelů.
  5. DsVM ukládá trénovaný model do služby Azure Cosmos DB. Model teď můžete použít k doporučení nejlepších filmů k danému uživateli.
  6. Model se nasadí do webové služby nebo služby aplikací pomocí Azure Container Instances nebo Azure Kubernetes Service (AKS).

Podrobný průvodce sestavením a škálováním doporučovací služby najdete v článku Vytvoření rozhraní API pro doporučení v reálném čase v Azure.

Komponenty

  • Data Science Virtual Machines poskytuje virtuální počítače DSVM, což jsou image virtuálních počítačů Azure, které jsou předinstalované, nakonfigurované a testovány pomocí nástrojů pro analýzu dat, strojové učení a trénování umělé inteligence. DsVM má samostatné prostředí Sparku, které se dá použít ke spuštění ALS. Pokud máte menší úlohu, použijte dsVM a nepotřebujete distribuované řešení.
  • Azure Storage je sada široce škálovatelných a zabezpečených cloudových služeb pro data, aplikace a úlohy. Zahrnuje Azure Files, Blob Storage, Azure Table Storage, Azure Queue Storage a další služby.
  • Blob Storage je škálovatelné a zabezpečené úložiště objektů pro nestrukturovaná data. Můžete ho použít pro archivy, datová jezera, vysokovýkonné výpočetní prostředí, strojové učení a úlohy nativní pro cloud. V tomto řešení obsahuje datovou sadu doporučení k filmům.
  • Machine Learning je služba strojového učení na podnikové úrovni pro rychlé sestavování a nasazování modelů. Poskytuje uživatelům na všech úrovních dovedností návrháře nízkého kódu, automatizovaného strojového učení a hostovaného prostředí poznámkového bloku Jupyter, které podporuje různé idEs.
  • Azure Cosmos DB je plně spravovaná, vysoce responzivní a škálovatelná databáze NoSQL pro moderní vývoj aplikací. Poskytuje zabezpečení na podnikové úrovni a podporuje rozhraní API pro mnoho databází, jazyků a platforem. Mezi příklady patří SQL, MongoDB, Gremlin, Table a Apache Cassandra. Bezserverové možnosti automatického škálování ve službě Azure Cosmos DB efektivně spravují požadavky na kapacitu aplikací.
  • Container Instances poskytuje nejrychlejší a nejjednodušší způsob spuštění kontejneru v Azure. Nevyžaduje správu virtuálních počítačů ani přijetí služby vyšší úrovně. AKS může virtuální kubelet použít k zřízení podů uvnitř Container Instances, které začínají v sekundách. Díky tomu může AKS běžet s dostatečnou kapacitou pro vaši průměrnou úlohu. Jakmile v clusteru AKS dojde k výpadku kapacity, navyšte kapacitu dalších podů v ACI, aniž byste museli vytvářet další servery pro správu.
  • AKS je vysoce dostupná, zabezpečená a plně spravovaná služba Kubernetes . Poskytuje zjednodušené nasazení a správu Kubernetes tím, že přesměruje důležité úlohy, jako je monitorování stavu a údržba do Azure. AKS hostuje open source moduly pro zpracování velkých objemů dat, jako je Apache Spark. Pomocí AKS můžete ve spravovaném prostředí spouštět úlohy zpracování velkých datových proudů.

Alternativy

Azure Databricks je alternativou k virtuálním počítačům Azure DSVM. Jedná se o spravovaný cluster Spark pro trénování a vyhodnocování modelů. Spravované prostředí Sparku můžete nastavit v minutách a automatické škálování nahoru a dolů, abyste snížili prostředky a náklady spojené se škálováním clusterů ručně. Další možností ukládání prostředků je nakonfigurovat neaktivní clustery tak, aby se automaticky ukončily .

Podrobnosti scénáře

Poskytování přizpůsobených doporučení k produktům zákazníkům může být efektivní způsob, jak pro firmu zvýšit prodej. Může to být také nákladově efektivní, protože v mnoha případech můžete pomocí strojového učení poskytnout doporučení.

Řešení popsané v tomto článku používá strojové učení k automatickému a horizontálnímu vytváření doporučení filmů. Azure Machine Learning vypočítá doporučení tak, že použije algoritmus ALS ( střídavě nejmenších čtverců ) na datovou sadu hodnocení filmů diváka. Virtuální počítač pro datové vědy (DSVM) koordinuje proces trénování modelu strojového učení.

Potenciální případy použití

Přizpůsobená doporučení mohou být užitečná v mnoha odvětvích, včetně maloobchodního prodeje, zpráv a médií/zábavy. Mezi potenciální aplikace patří:

  • Doporučení k produktům v online obchodě
  • Příspěvky nebo příspěvky doporučení na webu zpráv nebo sociálních médií.
  • Doporučení pro hudbu pro streamovací aplikaci nebo online obchod.
  • Doporučení k filmům v aplikaci pro streamování filmů

Požadavky

Tyto aspekty implementují pilíře architektury Azure Well-Architected Framework, což je sada hlavních tenetů, které lze použít ke zlepšení kvality úlohy. Další informace najdete v tématu Microsoft Azure Well-Architected Framework.

Spolehlivost

Spolehlivost zajišťuje, že vaše aplikace dokáže splňovat závazky, které uděláte pro vaše zákazníky. Další informace najdete v tématu Přehled pilíře spolehlivosti.

  • Prostředky pro aplikace založené na strojovém učení se obvykle rozdělují do prostředků pro trénování a zdroje pro obsluhu. Prostředky vyžadované pro trénování obecně nepotřebují vysokou dostupnost, protože požadavky na produkční prostředí v reálném provozu tyto prostředky přímo nedorazí. Prostředky potřebné pro poskytování služeb potřebují vysokou dostupnost pro poskytování zákaznických požadavků.
  • Pro školení jsou virtuální počítače DSVM dostupné v několika oblastech po celém světě. Splňují smlouvu o úrovni služeb (SLA) pro virtuální počítače. Pro poskytování služeb poskytuje AKS vysoce dostupnou infrastrukturu. Uzly agenta také sledují smlouvu SLA pro virtuální počítače.

Zabezpečení

Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.

  • Tento scénář může použít Azure Active Directory (Azure AD) k ověřování uživatelů pro přístup k virtuálnímu počítači DSVM, který obsahuje vaše data kódu, modelů a (v paměti). Data se ukládají ve službě Azure Storage před načtením na virtuální počítač DSVM, kde se automaticky šifrují pomocí šifrování služby Storage. Oprávnění je možné spravovat prostřednictvím ověřování Azure AD nebo řízení přístupu na základě role.

Efektivita výkonu

Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Další informace najdete v tématu Přehled pilíře efektivity výkonu.

  • Pokud máte velkou datovou sadu, můžete škálovat dsVM, abyste zkrátili dobu trénování. Virtuální počítač můžete škálovat nahoru nebo dolů změnou velikosti virtuálního počítače. Zvolte velikost paměti dostatečně velkou, aby se vaše datová sada vešel do paměti, a zvyšte počet virtuálních procesorů, abyste snížili dobu potřebnou k trénování.

Nasazení tohoto scénáře

Požadavky: Musíte mít existující účet Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Veškerý kód pro tento scénář je k dispozici v úložišti Microsoft Recommenders.

Pokud chcete spustit poznámkový blok rychlého startu ALS, postupujte takto:

  1. Vytvořte dsVM z Azure Portal.

  2. Naklonujte úložiště ve složce Poznámkové bloky:

    cd notebooks
    git clone https://github.com/Microsoft/Recommenders
    
  3. Nainstalujte závislosti conda podle kroků popsaných v souboru SETUP.md .

  4. V prohlížeči přejděte na virtuální počítač JupyterLab a přejděte na notebooks/00_quick_start/als_pyspark_movielens.ipynb.

  5. Spusťte poznámkový blok.

Další kroky