Upravit

Sdílet prostřednictvím


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

Azure Cosmos DB
Azure Databricks
Azure Kubernetes Service (AKS)
Azure Machine Learning

Tato referenční architektura ukazuje, jak vytrénovat model doporučení pomocí Azure Databricks a pak model nasadit jako rozhraní API pomocí 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 pro doporučení v reálném čase na GitHubu.

Architektura

Diagram znázorňující architekturu modelu strojového učení pro doporučení k trénování 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čování v reálném čase, které může poskytnout 10 nejlepších doporučení pro videa pro uživatele.

Tok dat

  1. Sledování chování uživatelů Back-endová služba se může například protokolovat, když uživatel ohlásí 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 na data.
  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čovacího procesu.)
  6. Předkompute 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 ke kontejnerizaci a nasazení rozhraní API.
  8. Když back-endová služba získá požadavek od uživatele, zavolejte rozhraní API pro doporučení hostované v AKS, abyste získali 10 nejlepších 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 vaše požadavky na propustnost, správu identit a přístupu a protokolování a monitorování stavu.
  • Azure Cosmos DB. Azure Cosmos DB je globálně distribuovaná databázová služba, která se používá k ukládání 10 doporučených filmů pro každého uživatele. Azure Cosmos DB je pro tento scénář vhodný, protože poskytuje nízkou latenci (10 ms při 99. percentilu) ke čtení nejlepších doporučených položek pro daného uživatele.
  • Strojové učení. Tato služba se používá 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čené společnosti Microsoft. 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

Tuto architekturu je možné zobecnit pro většinu scénářů modulu doporučení, včetně doporučení pro produkty, filmy a zprávy.

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

Scénář: Mediální organizace chce svým uživatelům poskytnout doporučení k filmům nebo videím. 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 prokliku, zvýšené zapojení na svých webových stránkách a vyšší spokojenost uživatelů.

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

Důležité informace

Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Dávkové bodová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 žádosti 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 proti výchozí konfiguraci nasazení (cluster AKS 3x D3 v2 s 12 vCPU, 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é vaše aplikace má. Pokud chcete snížit latenci mírně, zvažte použití služby 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-endových ú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í virtuálního počítače Datová Věda (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é jakýkoli model, který vytvoříte v DSVM, zprovoznit jako službu v AKS prostřednictvím služby Machine Learning.

Během trénování zřiďte ve službě Azure Databricks větší cluster Spark s pevnou velikostí nebo nakonfigurujte 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 splňoval požadavky na výkon a propustnost. Dbejte na vertikální navýšení kapacity počtu podů , abyste mohli cluster plně využívat, a škálujte uzly clusteru tak, aby splňovaly požadavky 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 požadovaná 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, pokud se nepoužívá. Náklady na AKS a Azure Cosmos DB jsou svázané s propustností a výkonem, které vaše lokalita vyžaduje, a v závislosti na objemu provozu na vašem webu se vertikálně navyšuje a zvětšuje.

Nasazení tohoto scénáře

Pokud chcete tuto architekturu nasadit, postupujte podle pokynů k Azure Databricks v dokumentu nastavení. 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: Standardní
    • 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é instalaci nainstalujte příslušné knihovny v Azure Databricks.
  6. Postupujte podle pokynů k rychlé instalaci a připravte Azure Databricks na operacionalizaci.
  7. Do pracovního prostoru naimportujte poznámkový blok zprovoznění videa ALS. Po přihlášení k pracovnímu prostoru Azure Databricks postupujte takto:
    1. Na levé straně pracovního prostoru klikněte na Domů .
    2. Klikněte pravým tlačítkem myši na prázdné místo v domovském adresáři. Vyberte Importovat.
    3. Vyberte adresu URL a vložte do textového pole následující: https://github.com/Microsoft/Recommenders/blob/main/examples/05_operationalize/als_movie_o16n.ipynb
    4. Klepněte na tlačítko Import.
  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 nejlepších 10 filmů pro daného uživatele.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autoři:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky