Přístupy architektury pro AI a ML ve víceklientských řešeních
Stále rostoucí počet víceklientských řešení je postaven na umělé inteligenci (AI) a strojovém učení (ML). Víceklientské řešení AI/ML je řešení, které poskytuje podobné funkce založené na ML pro libovolný počet tenantů. Tenanti obvykle nevidí ani nesdílí data žádného jiného tenanta, ale v některých situacích můžou tenanti používat stejné modely jako ostatní tenanti.
Architektury víceklientské AI/ML musí zvážit požadavky na data a modely a také výpočetní prostředky potřebné k trénování modelů a k odvozování z modelů. Je důležité zvážit, jak se nasazují, distribuují a orchestrují modely AI/ML s více tenanty a zajišťují, aby vaše řešení bylo přesné, spolehlivé a škálovatelné.
Stejně jako generující technologie AI, které využívají velké i malé jazykové modely, získávají popularitu, je důležité vytvořit efektivní provozní postupy a strategie pro správu těchto modelů v produkčních prostředích prostřednictvím přijetí operací strojového učení (MLOps) a GenAIOps (někdy označovaných jako LLMOps).
Klíčové aspekty a požadavky
Při práci s AI a ML je důležité vzít v úvahu požadavky na trénování a odvozování samostatně. Účelem trénování je vytvořit prediktivní model založený na sadě dat. Odvozování provedete při použití modelu k předpovídání něčeho v aplikaci. Každý z těchto procesů má jiné požadavky. U víceklientského řešení byste měli zvážit, jak model tenantů ovlivňuje každý proces. Když vezmete v úvahu všechny tyto požadavky, můžete zajistit, aby vaše řešení poskytovalo přesné výsledky, dobře se zatěžuje, je nákladově efektivní a může se škálovat pro budoucí růst.
Izolace tenanta
Zajistěte, aby tenanti nezískli neoprávněný nebo nežádoucí přístup k datům nebo modelům jiných tenantů. Zacházejte s modely s podobnou citlivostí na nezpracovaná data, která je natrénovala. Ujistěte se, že vaši tenanti chápou, jak se jejich data používají k trénování modelů a jak se modely trénované na datech jiných tenantů můžou používat k odvozování jejich úloh.
Existují tři běžné přístupy pro práci s modely ML ve víceklientských řešeních: modely specifické pro tenanty, sdílené modely a vyladěné sdílené modely.
Modely specifické pro tenanty
Modely specifické pro tenanty se trénují jenom na datech pro jednoho tenanta a pak se použijí na daného jednoho tenanta. Modely specifické pro tenanty jsou vhodné, pokud jsou data tenantů citlivá nebo pokud je málo rozsahu, abyste se mohli učit z dat poskytovaných jedním tenantem a model použijete na jiného tenanta. Následující diagram znázorňuje, jak můžete vytvořit řešení s modely specifickými pro tenanty pro dva tenanty:
Sdílené modely
V řešeních, která používají sdílené modely, provádějí všichni tenanti odvozování na základě stejného sdíleného modelu. Sdílené modely můžou být předem natrénované modely, které získáte nebo získáte ze zdroje komunity. Následující diagram znázorňuje způsob použití jednoho předtrénovaného modelu pro odvozování všemi tenanty:
Můžete také vytvořit vlastní sdílené modely tím, že je natrénujete z dat poskytovaných všemi tenanty. Následující diagram znázorňuje jeden sdílený model, který se trénuje na datech ze všech tenantů:
Důležité
Pokud vytrénujete sdílený model z dat tenantů, ujistěte se, že tenanti rozumí jejich použití a souhlasí s jejich používáním. Ujistěte se, že se z dat tenantů odeberou informace.
Zvažte, co dělat, pokud se objekty tenanta na jejich data používají k trénování modelu, který se použije na jiného tenanta. Mohli byste například vyloučit data konkrétních tenantů z trénovací sady dat?
Vyladěné sdílené modely
Můžete se také rozhodnout získat předem natrénovaný základní model a pak provést další ladění modelu, aby se dalo použít pro každý z vašich tenantů na základě jejich vlastních dat. Tento přístup znázorňuje následující diagram:
Škálovatelnost
Zvažte, jak růst vašeho řešení ovlivňuje použití komponent AI a ML. Růst může znamenat zvýšení počtu tenantů, množství dat uložených pro každého tenanta, počet uživatelů a objem požadavků na vaše řešení.
Školení: Existuje několik faktorů, které ovlivňují prostředky potřebné k trénování modelů. Mezi tyto faktory patří počet modelů, které potřebujete vytrénovat, množství dat, se kterými modely vytrénujete, a frekvenci trénování nebo opětovného trénování modelů. Pokud vytváříte modely specifické pro tenanty, bude s rostoucím počtem tenantů pravděpodobně růst i objem výpočetních prostředků a úložiště, které budete potřebovat. Pokud vytvoříte sdílené modely a vytrénujete je na základě dat ze všech tenantů, je méně pravděpodobné, že se prostředky pro trénování budou škálovat stejným tempem jako růst počtu tenantů. Zvýšení celkového množství trénovacích dat ale ovlivní prostředky, které se spotřebovávají, aby trénovaly jak sdílené modely, tak modely specifické pro tenanty.
Odvozování: Prostředky potřebné k odvozování jsou obvykle úměrné počtu požadavků, které přistupují k modelům pro odvozování. S rostoucím počtem tenantů se také pravděpodobně zvýší počet požadavků.
Je dobrým obecným postupem používat služby Azure, které se dobře škáluje. Vzhledem k tomu, že úlohy AI/ML mají tendenci využívat kontejnery, jsou běžné volby pro úlohy AI/ML ve službě Azure Kubernetes Service (AKS) a Azure Container Instances (ACI). AKS je obvykle dobrou volbou pro povolení vysokého škálování a dynamického škálování výpočetních prostředků na základě poptávky. U malých úloh může být ACI jednoduchou výpočetní platformou, která se dá nakonfigurovat, i když se škáluje stejně snadno jako AKS.
Výkon
Zvažte požadavky na výkon pro komponenty AI/ML vašeho řešení pro trénování i odvozování. Je důležité ujasnit si požadavky na latenci a výkon pro každý proces, abyste mohli měřit a zlepšovat podle potřeby.
Trénování: Trénování se často provádí jako dávkový proces, což znamená, že nemusí být tak citlivé na výkon jako jiné části vaší úlohy. Musíte ale zajistit, abyste zřídili dostatečné prostředky pro efektivní trénování modelu, včetně škálování.
Odvozování: Odvozování je proces citlivý na latenci, často vyžaduje rychlou nebo dokonce odezvu v reálném čase. I když nepotřebujete provádět odvozování v reálném čase, ujistěte se, že monitorujete výkon svého řešení a použijete příslušné služby k optimalizaci úloh.
Zvažte použití vysoce výkonných výpočetních funkcí Azure pro úlohy AI a ML. Azure poskytuje mnoho různých typů virtuálních počítačů a dalších instancí hardwaru. Zvažte, jestli by vaše řešení využívalo procesory, GPU, FPGA nebo jiná hardwarově akcelerovaná prostředí. Azure také poskytuje odvozování v reálném čase s grafickými procesory NVIDIA, včetně serverů NVIDIA Triton Inference. U požadavků na výpočetní prostředky s nízkou prioritou zvažte použití fondů spotových uzlů AKS. Další informace o optimalizaci výpočetních služeb ve víceklientských řešeních najdete v tématu Přístupy architektury pro výpočty ve víceklientských řešeních.
Trénování modelů obvykle vyžaduje velké množství interakcí s úložišti dat, takže je také důležité zvážit strategii dat a výkon, který vaše datová vrstva poskytuje. Další informace o víceklientských a datových službách najdete v tématu Přístupy architektury pro ukládání a data ve víceklientských řešeních.
Zvažte profilaci výkonu vašeho řešení. Azure Machine Learning například poskytuje možnosti profilace, které můžete použít při vývoji a instrumentaci vašeho řešení.
Složitost implementace
Když vytváříte řešení pro použití AI a ML, můžete zvolit použití předem připravených komponent nebo sestavení vlastních komponent. Musíte udělat dvě klíčová rozhodnutí. První je platforma nebo služba , kterou používáte pro AI a ML. Druhým je to, jestli používáte předem natrénované modely nebo vytváříte vlastní modely.
Platformy: Existuje mnoho služeb Azure, které můžete použít pro úlohy AI a ML. Například služby Azure AI a služba Azure OpenAI poskytují rozhraní API pro odvozování proti předem připraveným modelům a Microsoft spravuje základní prostředky. Služby Azure AI umožňují rychle nasadit nové řešení, ale poskytuje menší kontrolu nad tím, jak se trénování a odvozování provádí, a nemusí vyhovovat každému typu úlohy. Naproti tomu Azure Machine Learning je platforma, která umožňuje vytvářet, trénovat a používat vlastní modely ML. Azure Machine Learning poskytuje kontrolu a flexibilitu, ale zvyšuje složitost návrhu a implementace. Projděte si produkty a technologie strojového učení od Microsoftu , abyste se při výběru přístupu rozhodli informovaně.
Modely: I když nepoužíváte úplný model poskytovaný službou, jako je Azure AI Services, můžete vývoj stále zrychlit pomocí předem natrénovaného modelu. Pokud předem natrénovaný model přesně nevyhovuje vašim potřebám, zvažte rozšíření předem natrénovaného modelu použitím techniky označované jako transferové učení nebo vyladění. Převod učení umožňuje rozšířit existující model a použít ho na jinou doménu. Pokud například vytváříte službu doporučení pro víceklientskou hudbu, můžete zvážit vytvoření předem natrénovaného modelu doporučení pro hudbu a použít transfer učení k trénování modelu pro konkrétní předvolby hudby uživatele.
Pomocí předem připravených platforem ML, jako jsou Azure AI Services nebo Azure OpenAI Service, nebo předem natrénovaného modelu, můžete výrazně snížit počáteční náklady na výzkum a vývoj. Použití předem připravených platforem vám může ušetřit mnoho měsíců výzkumu a vyhnout se nutnosti přijímat vysoce kvalifikované datové vědce pro trénování, navrhování a optimalizaci modelů.
Optimalizace nákladů
Obecně platí, že úlohy umělé inteligence a strojového učení mají největší podíl nákladů na výpočetní prostředky, které jsou potřeba pro trénování a odvozování modelů. Projděte si přístupy k architektuře výpočetních prostředků ve víceklientských řešeních a zjistěte, jak optimalizovat náklady na výpočetní úlohy podle vašich požadavků.
Při plánování nákladů na AI a ML zvažte následující požadavky:
- Určení skladových položek výpočetních prostředků pro trénování Podívejte se například na pokyny k tomu, jak to udělat pomocí služby Azure Machine Learning.
- Určení skladových položek výpočetních prostředků pro odvozování Příklad odhadu nákladů pro odvozování najdete v doprovodných materiálech pro Azure Machine Learning.
- Monitorujte využití. Když budete sledovat využití výpočetních prostředků, můžete určit, jestli byste měli snížit nebo zvýšit kapacitu, a to nasazením různých skladových položek nebo škálováním výpočetních prostředků při změně požadavků. Viz Azure Machine Learning Monitor.
- Optimalizujte výpočetní clusteringové prostředí. Pokud používáte výpočetní clustery, monitorujte využití clusteru nebo nakonfigurujte automatické škálování pro vertikální snížení kapacity výpočetních uzlů.
- Sdílejte výpočetní prostředky. Zvažte, jestli můžete optimalizovat náklady na výpočetní prostředky jejich sdílením napříč několika tenanty.
- Zvažte svůj rozpočet. Zjistěte, jestli máte pevný rozpočet, a odpovídajícím způsobem monitorujte spotřebu. Rozpočty můžete nastavit tak, aby se zabránilo nadměrnému překročení a přidělení kvót na základě priority tenanta.
Přístupy a vzory, které je potřeba zvážit
Azure poskytuje sadu služeb pro povolení úloh AI a ML. Ve víceklientských řešeních se používá několik běžných přístupů k architektuře: použití předem připravených řešení AI/ML k vytvoření vlastní architektury AI/ML pomocí služby Azure Machine Learning a použití jedné z analytických platforem Azure.
Použití předem připravených služeb AI/ML
Osvědčeným postupem je vyzkoušet si použití předem připravených služeb AI/ML, kde je to možné. Vaše organizace se například může začít zabývat AI/ML a chce se rychle integrovat s užitečnou službou. Nebo můžete mít základní požadavky, které nevyžadují vlastní trénování a vývoj modelu ML. Předem připravené služby ML umožňují používat odvozování bez sestavování a trénování vlastních modelů.
Azure poskytuje několik služeb, které poskytují technologii AI a ML napříč celou řadou domén, včetně rozpoznávání jazyka, rozpoznávání řeči, znalostí, rozpoznávání dokumentů a rozpoznávání formulářů a počítačového zpracování obrazu. Mezi předem připravené služby AI/ML Azure patří Azure AI Services, Azure OpenAI Service, Azure AI Search a Azure AI Document Intelligence. Každá služba poskytuje jednoduché rozhraní pro integraci a kolekci předem natrénovaných a otestovaných modelů. Jako spravované služby poskytují smlouvy o úrovni služeb a vyžadují malou konfiguraci nebo průběžnou správu. Abyste mohli tyto služby používat, nemusíte vyvíjet ani testovat vlastní modely.
Řada spravovaných služeb ML nevyžaduje trénování modelu ani data, takže obvykle není potřeba mít obavy ohledně izolace dat tenanta. Pokud ale pracujete s AI Search ve víceklientském řešení, projděte si vzory návrhu pro víceklientské aplikace SaaS a Azure AI Search.
Zvažte požadavky na škálování pro komponenty ve vašem řešení. Mnoho rozhraní API v rámci služeb Azure AI například podporuje maximální počet požadavků za sekundu. Pokud nasadíte jeden prostředek služby AI, který se bude sdílet mezi tenanty, bude možná potřeba škálovat na více prostředků.
Poznámka:
Některé spravované služby umožňují trénovat s vlastními daty, včetně služby Custom Vision, rozhraní API pro rozpoznávání tváře, vlastních modelů Document Intelligence a některých modelů OpenAI, které podporují přizpůsobení a jemné zařazení. Při práci s těmito službami je důležité zvážit požadavky na izolaci dat tenantů.
Vlastní architektura AI/ML
Pokud vaše řešení vyžaduje vlastní modely nebo pracujete v doméně, která není pokrytá spravovanou službou ML, zvažte vytvoření vlastní architektury AI/ML. Azure Machine Learning poskytuje sadu funkcí pro orchestraci trénování a nasazení modelů ML. Azure Machine Learning podporuje mnoho opensourcových knihoven strojového učení, včetně PyTorch, TensorFlow, Scikita Keras. Můžete průběžně monitorovat metriky výkonu modelů, zjišťovat odchylky dat a aktivovat opětovné trénování, aby se zlepšil výkon modelu. V průběhu životního cyklu modelů ML azure Machine Learning umožňuje auditovatelnost a zásady správného řízení pomocí integrovaného sledování a rodokmenu pro všechny artefakty ML.
Při práci ve víceklientském řešení je důležité vzít v úvahu požadavky na izolaci tenantů během fází trénování i odvozování. Musíte také určit proces trénování a nasazení modelu. Azure Machine Learning poskytuje kanál pro trénování modelů a jejich nasazení do prostředí, které se má použít k odvozování. V kontextu s více tenanty zvažte, jestli se modely mají nasadit do sdílených výpočetních prostředků, nebo jestli má každý tenant vyhrazené prostředky. Navrhněte kanály nasazení modelu na základě modelu izolace a procesu nasazení tenanta.
Pokud používáte opensourcové modely, možná budete muset tyto modely přetrénovat pomocí transferového učení nebo ladění. Zvažte, jak budete spravovat různé modely a trénovací data pro každého tenanta a také verze modelu.
Následující diagram znázorňuje ukázkovou architekturu, která používá Azure Machine Learning. V příkladu se používá přístup izolace modelů specifických pro tenanta .
Integrovaná řešení AI/ML
Azure poskytuje několik výkonných analytických platforem, které je možné použít pro různé účely. Mezi tyto platformy patří Azure Synapse Analytics, Databricks a Apache Spark.
Tyto platformy můžete zvážit pro AI/ML, pokud potřebujete škálovat funkce ML na velmi velký počet tenantů a kdy potřebujete rozsáhlé výpočetní prostředky a orchestraci. Můžete také zvážit použití těchto platforem pro AI/ML, pokud potřebujete širokou analytickou platformu pro další části vašeho řešení, jako je analýza dat a integrace s vytvářením sestav prostřednictvím Microsoft Power BI. Můžete nasadit jednu platformu, která pokrývá všechny vaše požadavky na analýzy a AI/ML. Při implementaci datových platforem ve víceklientské řešení si projděte přístupy architektury pro ukládání a data ve víceklientských řešeních.
Provozní model ML
Při zavádění umělé inteligence a strojového učení, včetně postupů generování AI, je vhodné průběžně vylepšovat a vyhodnocovat možnosti organizace při jejich správě. Zavedení MLOps a GenAIOps cíleně poskytuje architekturu pro průběžné rozšiřování možností vašich postupů AI a ML ve vaší organizaci. Další pokyny najdete v dokumentech modelu vyspělosti MLOps a LLMOps Maturity.
Antipatterny, aby se zabránilo
- Nepodařilo se zvážit požadavky na izolaci. Je důležité pečlivě zvážit, jak izolovat data a modely tenantů pro trénování i odvozování. Pokud to neuděláte, může dojít k porušení právních nebo smluvních požadavků. Může také snížit přesnost vašich modelů pro trénování dat více tenantů, pokud se data podstatně liší.
- Hluční sousedé. Zvažte, jestli by vaše procesy trénování nebo odvozování mohly podléhat problému hlučného souseda. Pokud máte například několik velkých tenantů a jednoho malého tenanta, ujistěte se, že trénování modelu pro velké tenanty nechtěně nevyužívají všechny výpočetní prostředky a vyhladí menší tenanty. Pomocí zásad správného řízení a monitorování prostředků můžete zmírnit riziko výpočetní úlohy tenanta, která je ovlivněná aktivitou ostatních tenantů.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Kevin Ashley | Vedoucí zákaznický inženýr, FastTrack pro Azure
Další přispěvatelé:
- Paul Burpo | Hlavní zákaznický inženýr, FastTrack pro Azure
- John Downs | Hlavní softwarový inženýr
- Daniel Scott-Raynsford | Partner Technology Strategist
- Vladimirskij Vladimirskij | Hlavní zákaznický inženýr, FastTrack pro Azure
- Vic Perdana | Architekt řešení nezávislých výrobců softwaru
Další kroky
- Projděte si přístupy k architektuře pro výpočetní prostředky v přístupech k víceklientské řešení .
- Další informace o návrhu kanálů Azure Machine Learning pro podporu více tenantů najdete v tématu Řešení pro kanál ML ve víceklientské architektuce.