Vytvoření rozhraní API pro doporučení v reálném čase v Azure

Cosmos DB
Databricks
Kubernetes Service
Machine Learning

Tato referenční architektura ukazuje, jak trénovat model doporučení pomocí Azure Databricks a pak model nasadit jako rozhraní API pomocí služby Azure Cosmos DB, Azure Machine Learning a Azure Kubernetes Service (AKS). Referenční implementace této architektury najdete v tématu Vytvoření rozhraní API doporučení v reálném čase na GitHubu.

Architektura

Diagram znázorňující architekturu modelu strojového učení pro trénovací doporučení filmů

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

Tato referenční architektura je určená pro trénování a nasazování rozhraní API služby pro doporučovací službu v reálném čase, které může poskytnout 10 nejlepších doporučení pro videa pro uživatele.

Tok dat

  1. Sledujte chování uživatelů. Back-endová služba se může například protokolovat, když uživatel zapíše film nebo klikne na produkt nebo článek o novinkách.
  2. Načtěte data do Azure Databricks z dostupného zdroje dat.
  3. Připravte data a rozdělte je na trénovací a testovací sady pro trénování modelu. (Tento průvodce popisuje možnosti rozdělení dat.)
  4. Přizpůsobit model filtrování spolupráce Sparku datům
  5. Vyhodnoťte kvalitu modelu pomocí metrik hodnocení a hodnocení. (Tato příručka obsahuje podrobnosti o metrikách, které můžete použít k vyhodnocení doporučení.)
  6. Předkomputujte prvních 10 doporučení pro uživatele a uložte je jako mezipaměť ve službě Azure Cosmos DB.
  7. Nasaďte službu API do AKS pomocí rozhraní API služby Machine Learning k kontejnerizaci a nasazení rozhraní API.
  8. Když back-endová služba získá požadavek od uživatele, zavolejte rozhraní API doporučení hostované v AKS, abyste získali prvních 10 doporučení a zobrazili je uživateli.

Komponenty

  • Azure Databricks. Databricks je vývojové prostředí, které slouží k přípravě vstupních dat a trénování doporučovacího modelu v clusteru Spark. Azure Databricks také poskytuje interaktivní pracovní prostor pro spouštění a spolupráci na poznámkových blocích pro jakékoli úlohy zpracování dat nebo strojového učení.
  • Azure Kubernetes Service (AKS). AKS se používá k nasazení a zprovoznění rozhraní API služby modelu strojového učení v clusteru Kubernetes. AKS hostuje kontejnerizovaný model a poskytuje škálovatelnost, která splňuje požadavky na propustnost, správu identit a přístupu a monitorování stavu.
  • Azure Cosmos DB. Azure Cosmos DB je globálně distribuovaná databázová služba, která slouží k ukládání nejlepších 10 doporučených filmů pro každého uživatele. Azure Cosmos DB je pro tento scénář dobře vhodný, protože poskytuje nízkou latenci (10 ms v 99. percentilu) ke čtení nejvyšších doporučených položek pro daného uživatele.
  • Strojové učení. Tato služba slouží ke sledování a správě modelů strojového učení a následnému zabalení a nasazení těchto modelů do škálovatelného prostředí AKS.
  • Doporučovatelé Microsoftu Toto opensourcové úložiště obsahuje kód a ukázky nástrojů, které uživatelům pomůžou začít vytvářet, vyhodnocovat a zprovoznit doporučovací systém.

Podrobnosti scénáře

Tato architektura se dá generalizovat pro většinu scénářů modulu doporučení, včetně doporučení pro produkty, filmy a novinky.

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

Scénář: Mediální organizace chce svým uživatelům poskytnout doporučení k filmu nebo videu. Díky poskytování přizpůsobených doporučení organizace splňuje několik obchodních cílů, včetně zvýšené míry klikni a vyšší zapojení na svých webových stránkách a vyšší spokojenost uživatelů.

Toto řešení je optimalizované pro maloobchod a pro mediální a zábavní odvětví.

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.

Dávkové vyhodnocování modelů Sparku v Azure Databricks popisuje referenční architekturu, která používá Spark a Azure Databricks ke spouštění plánovaných procesů dávkového vyhodnocování. Tento přístup doporučujeme pro generování nových doporučení.

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.

Výkon je primárním aspektem doporučení v reálném čase, protože doporučení obvykle spadají do kritické cesty k žádosti o uživatele na vašem webu.

Kombinace AKS a Azure Cosmos DB umožňuje této architektuře poskytnout dobrý výchozí bod pro poskytování doporučení pro středně velké úlohy s minimální režií. V rámci zátěžového testu s 200 souběžnými uživateli tato architektura poskytuje doporučení v mediánu latence přibližně 60 ms a provádí se s propustností 180 požadavků za sekundu. Zátěžový test se spustil s výchozí konfigurací nasazení (cluster AKS 3x D3 v2 s 12 virtuálními procesory, 42 GB paměti a 11 000 jednotek žádostí za sekundu zřízených pro Azure Cosmos DB).

Graf výkonu

Graf propustnosti

Azure Cosmos DB se doporučuje pro globální distribuci na klíč a užitečnost při splnění požadavků na databázi, které má vaše aplikace. Pokud chcete latenci mírně snížit, zvažte použití Azure Cache for Redis místo služby Azure Cosmos DB k poskytování vyhledávání. Azure Cache for Redis může zlepšit výkon systémů, které se silně spoléhají na data v back-end úložištích.

Škálovatelnost

Pokud nemáte v úmyslu používat Spark nebo máte menší úlohu, která nepotřebuje distribuci, zvažte použití Data Science Virtual Machine (DSVM) místo Azure Databricks. DSVM je virtuální počítač Azure s architekturami a nástroji hlubokého učení pro strojové učení a datové vědy. Stejně jako u Azure Databricks je možné libovolný model, který vytvoříte v DSVM, zprovoznit jako službu v AKS prostřednictvím Machine Learningu.

Během trénování můžete zřídit větší cluster Spark s pevnou velikostí v Azure Databricks nebo nakonfigurovat automatické škálování. Když je povolené automatické škálování, Databricks podle potřeby monitoruje zatížení vašeho clusteru a podle potřeby vertikálně navyšuje a snižuje kapacitu. Zřízení nebo horizontální navýšení kapacity většího clusteru, pokud máte velkou velikost dat a chcete zkrátit dobu potřebnou k přípravě nebo modelování dat.

Škálujte cluster AKS tak, aby vyhovoval vašim požadavkům na výkon a propustnost. Dbejte na vertikální navýšení kapacity počtu podů , které plně využívají cluster, a škálování uzlů clusteru tak, aby splňovaly poptávku vaší služby. Automatické škálování můžete také nastavit v clusteru AKS. Další informace najdete v tématu Nasazení modelu do clusteru Azure Kubernetes Service.

Pokud chcete spravovat výkon služby Azure Cosmos DB, odhadněte počet čtení požadovaných za sekundu a zřiďte potřebný počet RU za sekundu (propustnost). Použijte osvědčené postupy pro dělení a horizontální škálování.

Optimalizace nákladů

Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

Hlavními faktory nákladů v tomto scénáři jsou:

  • Velikost clusteru Azure Databricks potřebná pro trénování
  • Velikost clusteru AKS potřebná ke splnění vašich požadavků na výkon
  • Zřízené ru služby Azure Cosmos DB tak, aby splňovaly vaše požadavky na výkon.

Náklady na Azure Databricks můžete spravovat opětovným natrénováním méně často a vypnutím clusteru Spark, když se nepoužívá. Náklady na AKS a Azure Cosmos DB jsou svázané s propustností a výkonem vyžadovaným vaším webem a budou vertikálně navýšit a snížit kapacitu v závislosti na objemu provozu na vašem webu.

Nasazení tohoto scénáře

Pokud chcete tuto architekturu nasadit, postupujte podle pokynů k Azure Databricks v instalačním dokumentu. Stručně řečeno, pokyny vyžadují, abyste:

  1. Vytvořte pracovní prostor Azure Databricks.
  2. Vytvořte nový cluster s následující konfigurací v Azure Databricks:
    • Režim clusteru: Standard
    • Verze modulu runtime Databricks: 4.3 (zahrnuje Apache Spark 2.3.1, Scala 2.11)
    • Verze Pythonu: 3
    • Typ ovladače: Standard_DS3_v2
    • Typ pracovního procesu: Standard_DS3_v2 (minimální a maximální podle potřeby)
    • Automatické ukončení: (podle potřeby)
    • Konfigurace Sparku: (podle potřeby)
    • Proměnné prostředí: (podle potřeby)
  3. Vytvořte osobní přístupový token v pracovním prostoru Azure Databricks. Podrobnosti najdete v dokumentaci k ověřování Azure Databricks.
  4. Naklonujte úložiště Microsoft Recommenders do prostředí, ve kterém můžete spouštět skripty (například místní počítač).
  5. Podle pokynů k rychlé instalacinainstalujte příslušné knihovny do Azure Databricks.
  6. Postupujte podle pokynů k rychlé instalaci a připravte Azure Databricks na zprovoznění.
  7. Importujte poznámkový blok zprovoznění videa ALS do pracovního prostoru. Po přihlášení k pracovnímu prostoru Azure Databricks postupujte takto:
    1. Klikněte na domovskou stránku na levé straně pracovního prostoru.
    2. Klikněte pravým tlačítkem na prázdné místo v domovském adresáři. Vyberte Importovat.
    3. Vyberte adresu URL a vložte následující položky do textového pole: https://github.com/Microsoft/Recommenders/blob/master/examples/05_operationalize/als_movie_o16n.ipynb
    4. Klikněte na Importovat.
  8. Otevřete poznámkový blok v Azure Databricks a připojte nakonfigurovaný cluster.
  9. Spuštěním poznámkového bloku vytvořte prostředky Azure potřebné k vytvoření rozhraní API pro doporučení, které poskytuje doporučení pro 10 videí pro daného uživatele.

Další kroky