Sdílet prostřednictvím


Principy návrhu pro úlohy AI v Azure

Tento článek popisuje základní principy úloh AI v Azure se zaměřením na aspekty AI architektury. Je nezbytné vzít v úvahu všechny pilíře architektury Azure Well-Architected, včetně jejich kompromisů. Použijte každý pilíř na funkční a nefunkční požadavky úlohy.

Spolehlivost

Při spouštění úloh AI v Azure je potřeba zvážit řadu stejných požadavků na spolehlivost, které zvažujete pro jiné typy úloh. Specifické aspekty pro trénování, hostování a odvozování modelů jsou ale obzvláště důležité a jsou zaměřeny na tento článek. Tyto postupy je důležité integrovat se standardními osvědčenými postupy návrhu pro cloudové aplikace, které platí také pro úlohy AI.

Projděte si principy návrhu spolehlivosti, abyste získali základní znalosti o konceptech popsaných tady.

Zásada návrhu Důležité informace
Zmírnění kritických bodů selhání Spoléhat se na jediný prvek pro kritické komponenty může vést k významným problémům. Pokud chcete těmto druhům problémů zabránit, zabudujte redundanci do všech důležitých komponent. Používejte platformy s integrovanou odolností proti chybám a funkcemi s vysokou dostupností a implementujte redundanci nasazením více instancí nebo uzlů.
Proveďte analýzu režimu selhání.

Využijte dobře známé vzory návrhu.
Pravidelně analyzujte potenciální režimy selhání v systémových komponentách a vytvářejte odolnost proti těmto selháním. Pomocí dobře známých vzorů návrhu izolujte části systému a zabraňte kaskádovým selháním. Model Bulkhead může například izolovat chyby a mechanismy opakování a jističe můžou zpracovávat přechodné chyby, jako jsou požadavky na omezování.
Vyvážení cílů spolehlivosti napříč závislými komponentami Ujistěte se, že je koncový bod odvozování nebo model a úložiště dat sladěné z hlediska spolehlivosti. Komponenty aplikací musí zůstat dostupné i za neočekávaných podmínek, jako je nárůst počtu souběžných uživatelů. Kromě toho by pracovní zátěž měla být schopna přepnout na záložní systémy v případě selhání. Pokud jedna komponenta selže, ovlivní spolehlivost druhé komponenty.

Podobně by rozhraní API vrstvy služeb, která jsou důležitými produkčními prostředky, měla dodržovat stejné standardy spolehlivosti jako jiné toky úloh s vysokou důležitostí. Pokud tato rozhraní API vyžadují vysokou dostupnost, musí hostitelská platforma podporovat zóny dostupnosti nebo návrh ve více oblastech, aby zajistila nepřetržitou provoz a odolnost.
Návrh pro provozní spolehlivost Udržujte spolehlivost odpovědí modelu tím, že zajistíte, aby aktualizace byly časté a včasné. Rozhodněte se, jestli chcete používat nedávná data nebo mírně starší data, a vyvažte potřebu up-to-datech s praktičností četnosti aktualizací. Online školení byste měli automatizovat kvůli četnosti a požadavkům na spolehlivost. Offline trénování může být odůvodněno analýzou nákladů a přínosů. Pro offline školení můžete použít levnější zdroje informací.
Návrh pro spolehlivé uživatelské prostředí Pomocí zátěžového testování můžete vyhodnotit, jak vaše úlohy zpracovávají stres, a navrhnout uživatelské rozhraní pro správu očekávání uživatelů v době odezvy. Implementujte prvky uživatelského rozhraní, které uživatele informují o potenciálních dobách čekání a přijímají principy asynchronního návrhu cloudu, které řeší intermittence, latenci nebo selhání.

Zabezpečení

Modely často používají citlivá produkční data k vytváření relevantních výsledků. Proto musíte implementovat robustní bezpečnostní opatření ve všech vrstvách architektury. Mezi tato opatření patří implementace návrhu zabezpečených aplikací v rané fázi životního cyklu, šifrování neaktivních uložených i přenášených dat a dodržování oborových standardů dodržování předpisů. Pro identifikaci a zmírnění ohrožení zabezpečení jsou důležitá běžná posouzení zabezpečení. Pokročilé mechanismy detekce hrozeb pomáhají zajistit rychlé reakce na potenciální hrozby.

principy zabezpečení jsou zásadní pro ochranu integrity dat, integrity návrhu a ochrany osobních údajů uživatelů v řešeních AI. Jako vlastník úlohy zodpovídáte za vytváření důvěryhodnosti a ochranu citlivých informací, abyste zajistili bezpečné uživatelské prostředí.

Zásada návrhu Důležité informace
Získejte důvěru uživatelů. Integrujte bezpečnost obsahu v každé fázi životního cyklu pomocí vlastního kódu, nástrojů a efektivních bezpečnostních prvků.

Odeberte nepotřebné osobní a důvěrné informace ve všech datových úložištích, včetně agregovaných úložišť dat, indexů vyhledávání, mezipamětí a aplikací. Udržujte tuto úroveň zabezpečení konzistentně v celé architektuře.

Nezapomeňte implementovat důkladný moderování obsahu, který kontroluje data v obou směrech a filtruje nevhodný a urážlivý obsah.
Chraňte data v klidu, při přenosu a při použití, podle požadavků úlohy na citlivost. Minimálně použijte šifrování na úrovni platformy s klíči spravovanými Microsoftem nebo klíči spravovanými zákazníkem na všech úložištích dat v architektuře. Určete, kde potřebujete vyšší úrovně šifrování, a pokud potřebujete, použijte dvojité šifrování.

Ujistěte se, že veškerý provoz k šifrování používá HTTPS. Určete body ukončení protokolu TLS při každém hopu.

Samotný model musí být chráněný, aby útočníci nemohli extrahovat citlivé informace, které se používají během trénování. Model vyžaduje nejvyšší úroveň bezpečnostních opatření. Zvažte použití homomorfického šifrování, které umožňuje odvozování šifrovaných dat.
Investujte do robustní správy přístupu pro identity (uživatele a systém), které přistupují k systému. Implementujte řízení přístupu na základě role (RBAC) a/nebo řízení přístupu na základě atributů (ABAC) pro řídicí i datové roviny.

Udržujte správné segmentace identit, které pomáhají chránit ochranu osobních údajů. Povolte přístup pouze k obsahu, ke kterému mají identity oprávnění.
Chraňte integritu návrhu implementací segmentace. Poskytovat privátní sítě pro přístup k centralizovaným úložištím pro image kontejnerů, data a prostředky kódu.

Při sdílení infrastruktury s jinými úlohami se vytváří segmentace, například když hostujete server odvozování ve službě Azure Kubernetes Service, izolujte fond uzlů od jiných rozhraní API a úloh.
Proveďte testování zabezpečení. Vytvořte podrobný testovací plán, který zahrnuje testy pro detekci neethického chování při každém zavedení změn do systému.

Integrujte komponenty AI do stávajícího testování zabezpečení. Například začlente koncový bod odvozování do rutinních testů spolu s dalšími veřejnými koncovými body.

Zvažte provádění testů v živém systému, jako jsou penetrační testy nebo červená týmová cvičení, abyste efektivně identifikovali a vyřešili potenciální ohrožení zabezpečení.
Omezte prostor pro útoky vynucením přísného přístupu uživatelů a návrhu rozhraní API. Vyžadovat ověřování pro všechny koncové body odvozování, včetně systémových volání. Vyhněte se anonymním koncovým bodům.

Preferujte návrh omezeného rozhraní API za cenu flexibility na straně klienta.

Kompromis. Při implementaci nejvyšší úrovně zabezpečení dochází k kompromisům v nákladech a přesnosti, protože schopnost analyzovat, kontrolovat nebo zaznamenávat šifrovaná data je omezená. Kontroly bezpečnosti obsahu a dosažení vysvětlovatelnosti můžou být také náročné v vysoce zabezpečených prostředích.

Následující oblasti návrhu obsahují podrobnosti o předchozích principech a aspektech:

Optimalizace nákladů

Cílem pilíře Optimalizace nákladů je maximalizovat investice, nikoli nutně snížit náklady. Každá volba architektury vytváří přímé i nepřímé finanční dopady. Seznamte se s náklady, které jsou spojené s různými možnostmi, včetně rozhodnutí o sestavení a nákupu, výběru technologií, fakturačních modelů, licencování, školení a provozních nákladů. Je důležité maximalizovat investice do vybrané úrovně a průběžně znovu posoudit fakturační modely. Průběžně vyhodnocujte náklady spojené se změnami architektury, obchodních potřeb, procesů a struktury týmu.

Projděte si principy optimalizace nákladů , které se zaměřují na optimalizaci rychlosti a využití.

Zásada návrhu Důležité informace
Určení nákladových faktorů pomocí komplexního cvičení modelování nákladů Vezměte v úvahu klíčové faktory datové platformy a aplikační platformy:
- Objem dat. Odhadněte množství dat, která budete indexovat a zpracovávat. Větší svazky můžou zvýšit náklady na úložiště a zpracování.
- Počet dotazů Predikce frekvence a složitosti dotazů Vyšší objemy dotazů můžou zvýšit náklady, zejména pokud dotazy vyžadují významné výpočetní prostředky.
- Propustnost. Vyhodnoťte očekávanou propustnost a určete, jakou úroveň výkonu potřebujete. Vyšší požadavky na propustnost můžou vést k vyšším nákladům.
- Náklady na závislost. Mějte na vědomí, že v závislostech můžou být skryté náklady. Například při výpočtu nákladů na indexování uveďte náklady na sadu dovedností, která je součástí zpracování dat, ale mimo rozsah indexu.
Platíte za to, co chcete použít. Zvolte technologické řešení, které vyhovuje vašim potřebám, aniž by vám vzniknout zbytečné výdaje. Pokud nepotřebujete pokročilé funkce, zvažte levnější možnosti a opensourcové nástroje.

Faktor v četnosti použití Preferujte možnosti elastického výpočetního prostředí pro nástroje orchestrace, abyste minimalizovali náklady na využití, protože jsou vždy. Vyhněte se výpočetním prostředkům bez serveru pro operace na plný úvazek, protože můžou eskalovat náklady.

Neplatíte za vyšší úrovně, aniž byste používali plnou kapacitu. Zajistěte, aby zvolená úroveň odpovídala vzorům využití v produkčním prostředí za účelem optimalizace útraty. Používejte standardní ceny pro běžné úlohy a spotové ceny pro vysoce přerušitelné trénování. Pokud chcete snížit náklady, používejte výpočetní prostředky založené na GPU jenom pro funkce úloh AI.

Rozsáhle testujte a provádějte benchmarky svého tréninku a dolaďování, abyste našli SKU, které nejlépe optimalizuje výkon a náklady.
Použijte to, co platíte. Minimalizujte plýtvání. Pečlivě monitorujte metriky využití. Úlohy AI můžou být nákladné a náklady mohou rychle narůstat, pokud se prostředky nevypnou, zmenší nebo neuvolní, když se nepoužívají.

Optimalizujte systém pro zápis jednou, přečtěte si mnoho , abyste se vyhnuli nadměrnému využití úložiště dat. Trénovací data nevyžadují okamžitou odezvu produkční databáze.

Zátěžové testování koncového bodu odvození služby Azure OpenAI může být nákladné, protože za každé volání se účtují poplatky. Pokud chcete snížit náklady, použijte nevyužité PTU služby OpenAI v testovacím prostředí nebo místo toho simulujte koncový bod odvozování.

Úlohy, jako je průzkumná analýza dat (EDA), trénování modelů a vyladění, obvykle neběží na plný úvazek. U těchto úloh preferujte platformu, která se dá zastavit, když se nepoužívá. Úlohy EDA jsou například obvykle interaktivní, takže uživatelé musí být schopni spouštět virtuální počítače a zastavovat je při spouštění úloh.

Přiřaďte provozním týmům odpovědnost za náklady. Tyto týmy by měly zajistit, aby náklady zůstaly v rámci očekávaných parametrů díky aktivnímu monitorování a správě využití prostředků.
Optimalizujte provozní náklady. Online školení může být nákladné kvůli požadavkům na četnost. Automatizace tohoto procesu pomáhá udržovat konzistenci a minimalizovat náklady z lidské chyby. Použití mírně starších dat pro trénování a zpoždění aktualizací, pokud je to možné, může dále snížit náklady, aniž by to významně ovlivnilo přesnost modelu.

Pro offline trénování vyhodnoťte, jestli je možné použít levnější prostředky, například offline hardware.

Obecně platí, že odstraňte data z úložišť funkcí, abyste snížili náklady na nepotřebné funkce a náklady na úložiště.

kompromis: Optimalizace nákladů a efektivita výkonu. vyrovnávání nákladů s výkonem při správě databází zahrnuje kompromisy. Efektivní návrh indexu zrychluje dotazy, ale může zvýšit náklady z důvodu správy metadat a velikosti indexu. Podobně dělení velkých tabulek může zlepšit výkon dotazů a snížit zatížení úložiště, ale za něj se účtují další náklady. Naopak techniky, které zabraňují nadměrnému indexování, můžou snížit náklady, ale můžou ovlivnit výkon, pokud nejsou spravované správně.

kompromis: Optimalizace nákladů a efektivita provozu. Existují kompromisy, které je potřeba vzít v úvahu, když se rozhodnete, který ze dvou primárních přístupů použít pro trénování modelu. Trénování ve vývojovém prostředí s úplnými produkčními daty může snížit výpočetní náklady, protože model se trénuje jenom jednou a upřednostní se pouze artefakt. Tento přístup však vyžaduje přísné bezpečnostní opatření pro zpracování produkčních dat v nižších prostředích, což může být složité a náročné na prostředky. Naopak trénování modelu v každém prostředí zvyšuje stabilitu a spolehlivost kvůli důkladné kontrole a testování kódu, ale tento model zvyšuje výpočetní náklady, protože trénovací běhy probíhají vícekrát.

Efektivita provozu

Hlavním cílem efektivity provozu je efektivní poskytování schopností v průběhu životního cyklu vývoje. Dosažení tohoto cíle zahrnuje vytvoření opakovatelných procesů, které podporují metodologii návrhu experimentování a výsledky výnosu za účelem zlepšení výkonu modelu. Efektivita provozu je také o zachování přesnosti modelů v průběhu času, implementaci efektivních postupů monitorování a zásad správného řízení za účelem minimalizace rizik a vývoji procesů správy změn, které se přizpůsobí posunu modelu.

I když všechny principy efektivity provozu se vztahují na úlohy umělé inteligence, přiřaďte prioritu automatizace a monitorování jako základní provozní strategie.

Zásada návrhu Důležité informace
Podpora nepřetržitého učení a experimentování myšlení v průběhu životního cyklu vývoje aplikací, zpracování dat a správy modelů AI. Provoz úloh by měl vycházet z osvědčených metodologií, jako jsou DevOps, DataOps, MLOps a GenAIOps.

Časná spolupráce mezi provozními, vývojem aplikací a datovými týmy je nezbytná k tomu, aby se vytvořilo vzájemné porozumění přijatelnému výkonu modelu. Provozní týmy poskytují kvalitní signály a výstrahy s možností akce. Aplikační a datové týmy pomáhají efektivně diagnostikovat a řešit problémy.
Zvolte technologie, které minimalizují provozní zátěž. Když zvolíte řešení platformy, upřednostněte platformu jako službu (PaaS) před možnostmi v místním prostředí, abyste zjednodušili návrh, automatizovali orchestraci pracovních postupů a usnadnili každodenní operace.
Vytvořte automatizovaný monitorovací systém, který podporuje funkce upozorňování, včetně protokolování a auditovatelnosti. Vzhledem k nedeterministické povaze umělé inteligence je důležité stanovit měření kvality v rané fázi životního cyklu. Spolupracujte s datovými vědci a definujte metriky kvality. Vizualizace průběžných přehledů v komplexních řídicích panelech

Sledujte experimenty pomocí nástrojů, které můžou zaznamenávat podrobnosti, jako jsou verze kódu, prostředí, parametry, spuštění a výsledky.

Implementujte výstrahy s možností reakce, které poskytují jenom dostatek informací, aby operátoři mohli rychle reagovat.
Automatizujte detekci a zmírnění rizik rozkladu modelu. Pomocí automatizovaných testů můžete vyhodnotit posun v průběhu času. Zajistěte, aby systém monitorování odesílal upozornění, když odpovědi začnou odcházet od očekávaných výsledků, a pravidelně je začít provádět. Používejte nástroje, které můžou automaticky zjišťovat a aktualizovat nové modely.

Podle potřeby se přizpůsobte novým případům použití úpravou logiky trénování dat a modelu.
Implementace bezpečných nasazení Vyberte si mezi souběžnými nasazeními nebo místními aktualizacemi, abyste minimalizovali výpadky. Implementujte důkladné testování před nasazením, abyste měli jistotu, že je model správně nakonfigurovaný a splňuje cíle, očekávání uživatelů a standardy kvality. Vždy naplánujte nouzový provoz bez ohledu na strategii nasazení.
Průběžně vyhodnocujte uživatelské prostředí v produkčním prostředí. Povolte uživatelům pracovních zátěží poskytovat zpětnou vazbu k jejich zkušenosti. Získejte souhlas se sdílením částí nebo všech konverzací v přidruženém protokolu pro řešení potíží. Zvažte, kolik interakce s uživatelem je přijatelné, vyhovující, bezpečné a užitečné k zachycení a používání dat pečlivě k vyhodnocení výkonu vaší úlohy s reálnými interakcemi uživatelů.

Následující oblasti návrhu obsahují podrobnosti o předchozích principech a aspektech:

Efektivita výkonu

Cílem vyhodnocení výkonu modelu AI je určit, jak efektivně model dosahuje zamýšlených úloh. K dosažení tohoto cíle patří vyhodnocení různých metrik, jako je přesnost, přesnost a nestrannost. Výkon komponent platformy a aplikací, které podporují model, je navíc zásadní.

Výkon modelu je také ovlivněn efektivitou operací, jako je sledování experimentů a zpracování dat. Aplikace principů efektivity výkonu pomáhá měřit výkon vůči přijatelné úrovni kvality. Toto porovnání je klíčem ke zjištění degradace nebo rozkladu. K údržbě úloh, včetně komponent AI, potřebujete automatizované procesy pro průběžné monitorování a hodnocení.

Zásada návrhu Důležité informace
Vytvořte srovnávací testy výkonu. Proveďte důkladné testování výkonu v různých oblastech architektury a nastavte přijatelné cíle. Toto průběžné hodnocení by mělo být součástí vašich provozních procesů, nikoli jednorázového testu.

Srovnávací testy se vztahují na výkon předpovědi. Začněte se směrným plánem, abyste porozuměli počátečnímu výkonu modelu a průběžně znovu vyhodnocovali výkon, aby se zajistilo, že splňuje očekávání.
Vyhodnoťte potřeby prostředků pro splnění cílů výkonu. Porozumíte charakteristikám zatížení, abyste zvolili správnou platformu a prostředky správné velikosti. Zahrňte tato data do plánování kapacity pro provoz ve velkém měřítku.

Pomocí zátěžového testování můžete například určit optimální výpočetní platformu a skladovou položku. Vysoce výkonné výpočetní prostředky optimalizované pro GPU jsou často potřeba pro trénování a vyladění modelů, ale skladové položky pro obecné účely jsou vhodné pro nástroje pro orchestraci.

Podobně zvolte datovou platformu, která efektivně zpracovává příjem dat, spravuje souběžné zápisy a udržuje výkon jednotlivých zápisů bez snížení výkonu.

Různé servery odvozování mají různé charakteristiky výkonu. Tyto charakteristiky ovlivňují výkon modelu za běhu. Vyberte server, který splňuje očekávání směrného plánu.
Shromážděte a analyzujte metriky výkonu a identifikujte kritické body.

Vyhodnoťte telemetrii z datového kanálu, abyste zajistili splnění cílů výkonu pro operace propustnosti a čtení a zápisu.

U indexu vyhledávání zvažte metriky, jako je latence dotazů, propustnost a přesnost výsledků. S nárůstem objemu dat by se neměly zvyšovat míry chyb.

Analyzujte telemetrii z komponent kódu, jako je orchestrátor, který shromažďuje data z volání služeb. Analýza těchto dat vám může pomoct pochopit čas strávený místním zpracováním a síťovými voláními a identifikovat potenciální latenci v jiných komponentách.

Pomocí metrik zapojení vyhodnoťte uživatelské rozhraní, abyste zjistili, jestli jsou uživatelé pozitivně zapojení nebo frustrovaní. Zvýšená doba na stránce může znamenat jednu z těchto vlastností. Multimodální funkce, jako jsou odpovědi na hlas nebo video, můžou způsobit významnou latenci, což vede k delší době odezvy.
Nepřetržité zlepšení výkonu srovnávacích testů pomocí měření kvality z produkčního prostředí Implementujte automatizované shromažďování a analýzu metrik výkonu, upozornění a opětovné trénování modelu, aby se zachovala účinnost modelu.

kompromis. Při zvažování možností platformy je potřeba vyvážit náklady a výkon. GPU modely jsou drahé, takže průběžně sledujte poddimenzování a přizpůsobujte zdroje podle potřeby. Po úpravách otestujte využití prostředků, abyste zajistili rovnováhu mezi náklady na prostředky platformy a jejich provozem a očekávaným výkonem podle směrného plánu. Strategie optimalizace nákladů najdete v tématu Doporučení pro optimalizaci nákladů na komponenty.

Následující oblasti návrhu obsahují podrobnosti o předchozích principech a aspektech:

Další krok