Dobře navržená hlediska pro úlohy AI v infrastruktuře Azure (IaaS)
Dobře navržená hlediska infrastruktury AI v Azure zahrnují osvědčené postupy, které optimalizují spolehlivost, zabezpečení, provozní efektivitu, správu nákladů a výkon řešení AI. Tyto principy zajišťují robustní nasazení, zabezpečené zpracování dat, efektivní provoz modelu a škálovatelnou infrastrukturu na platformě IaaS Azure. Použití těchto principů umožňuje organizacím vytvářet odolné, zabezpečené a nákladově efektivní modely AI, které splňují obchodní potřeby.
Spolehlivost
Spolehlivost zahrnuje minimalizaci výpadků a zajištění konzistentního výkonu pro aplikace umělé inteligence v infrastruktuře Azure. Zajištění spolehlivého provozu napříč distribuovanými virtuálními počítači a udržováním výkonu během změn infrastruktury brání přerušení služeb. Tyto postupy jsou důležité, protože zaručují nepřetržitou dostupnost modelu a zlepšují uživatelské prostředí.
Distribuujte virtuální počítače napříč Zóny dostupnosti. Minimalizujte výpadky z chyb hardwaru nebo událostí údržby pomocí Zóny dostupnosti. Distribuují virtuální počítače napříč doménami selhání a aktualizačními doménami, aby zajistily pokračování provozu aplikace.
Nastavení monitorování stavu pomocí služby Azure Monitor Sledujte výkon procesoru, paměti a sítě na virtuálních počítačích pomocí služby Azure Monitor a nakonfigurujte upozornění, která vás upozorní na snížení výkonu nebo selhání infrastruktury podporující vaše modely. Další informace najdete v tématu Přehledy virtuálních počítačů služby Azure Monitor.
Automatizujte opravy a aktualizace pomocí kumulativních instancí. Pomocí služby Azure Update Management můžete používat opravy průběžným způsobem, což umožňuje aktualizaci jedné instance, zatímco ostatní budou dál obsluhovat provoz, což brání výpadkům během údržby.
Návrh pro řádné snížení výkonu během částečných selhání Zajistěte, aby základní funkce zůstaly dostupné tím, že obsluhují méně složité modely AI nebo omezují konkrétní funkce, když některé virtuální počítače přestanou být dostupné, což uživatelům umožní přístup k základním službám i během výpadků.
Implementujte pravidelné zálohy pro klíčové prostředky. Pravidelně zálohujte data modelu, trénovací datové sady a konfigurace, které umožňují rychlé obnovení v případě selhání, zajištění cenného pokroku a dat.
Zabezpečení
Zabezpečení zahrnuje ochranná opatření k ochraně modelů AI, dat a infrastruktury před neoprávněným přístupem a hrozbami. Implementujte aktualizace, monitorujte integritu modelu a kontrolujte přístup, abyste zabránili ohrožením zabezpečení, která by mohla ohrozit citlivé informace. Tyto kroky jsou nezbytné pro zachování ochrany osobních údajů a důvěryhodnosti řešení umělé inteligence v produkčních prostředích.
Naplánujte aktualizace pro prostředky Azure. Pomocí konfigurací údržby můžete nastavit konkrétní plány aktualizací pro virtuální počítače a rozšíření a snížit tak okna ohrožení zabezpečení.
Pravidelně opravujte virtuální počítače a image kontejnerů. Povolte automatické opravy hosta pro virtuální počítače a škálovací sady, abyste zachovali zabezpečení před novými hrozbami. Další informace najdete v tématu Aktualizace hosta a přehled údržby hostitele.
Monitorujte posun modelu a zajistěte integritu. Zajistěte integritu modelu implementací mechanismů zabezpečení, jako jsou digitální podpisy nebo ověřování hodnot hash pro soubory modelu, aby se zabránilo neoprávněným úpravám. Pomocí služby Azure Monitor můžete sledovat klíčové metriky výkonu a identifikovat odchylky modelu, což může značit potenciální ohrožení zabezpečení nebo posun dat. Vlastní metriky (přesnost, skóre F1 a distribuce dat v modelech) můžete v kódu definovat pomocí sady SDK metrik služby Azure Monitor. Sada SDK metrik služby Azure Monitor umožňuje odesílat statistiky výkonu modelu a měření odchylek dat do služby Azure Monitor. Monitorování změn výkonu v průběhu času může pomoct zjistit, kdy se chování modelu liší, potenciálně signalizují útok nebo potřebu opětovného trénování. Tento proaktivní přístup pomáhá chránit integritu modelu a udržovat dodržování předpisů zabezpečení.
Implementujte protokoly auditování a přístupu. Pomocí služby Azure Monitor a Log Analytics můžete protokolovat přístup k modelům a virtuálním počítačům, což pomáhá identifikovat neoprávněný přístup nebo neobvyklé vzory použití. Další informace najdete v protokolech aktivit ve službě Azure Monitor.
Pro soubory modelu použijte správu verzí. Ukládání souborů modelu ve službě Azure Storage (Blob, File nebo Disk) s využitím správy verzí za účelem sledování změn a zajištění jasného záznamu auditu pro identifikaci a vrácení škodlivých úprav zpět Použití Azure DevOps pro správu verzí vylepšuje zabezpečení tím, že spravuje přístup ke změnám kódu a vynucuje osvědčené postupy v kontrolách kódu. Tento vícevrstvý přístup snižuje rizika neoprávněných změn a poskytuje odpovědnost. Další informace najdete v tématu Správa verzí objektů blob ve službě Azure Storage.
Nastavte detekci anomálií pro výstupy modelu. Pomocí služby Azure Monitor můžete sledovat výstupní metriky vašich modelů a nastavit upozornění na neobvyklé chování. Například monitorování odpovědí rozhraní API z modelu může pomoct zjistit neobvyklý výstup. Detekci anomálií můžete nastavit u metriky, jako je přesnost predikce, která automaticky zjistí, kdy klesne mimo očekávaný rozsah. Další informace najdete v tématu Vytváření a správa upozornění metrik s dynamickými prahovými hodnotami.
Vynucujte zásady přístupu k modelu. K zabezpečení přístupu k virtuálním počítačům a souborům modelu použijte řízení přístupu na základě role (RBAC) a Microsoft Entra ID a omezte přístup jenom autorizovaným uživatelům.
Pravidelně obnovte modely s aktualizovanými daty. Implementace pravidelného opětovného ověření modelu pomocí automatizovaných skriptů nebo pracovních postupů na virtuálních počítačích zajišťuje, že model zůstane přesný a účinný vůči aktuálním datovým sadám, zmírní rizika z zastaralých nebo nepřesných předpovědí. Plánováním těchto úloh pomocí Azure Automation nebo Azure Logic Apps můžete udržovat dodržování standardů dat a zlepšit celkové zabezpečení modelu. Tento proaktivní přístup pomáhá včas identifikovat ohrožení zabezpečení a zajistit průběžné vylepšování a ochranu před potenciálními hrozbami. Pracovní postupy automatizace můžete naplánovat tak, aby pravidelně spouštěly úlohy opětovného ověření. Začněte s runbookem Azure Automation, spusťte na virtuálním počítači a vytvořte vhodný plán pro získání výsledků ověření.
Sledování změn rodokmenu dat a souboru modelu Povolte správu verzí ve službě Azure Blob Storage a sledujte data používaná při trénování a odvozování a zajistěte, aby žádná neautorizovaná data neměla vliv na výsledky modelu.
Použijte kvóty prostředků a omezení četnosti. Implementujte omezení rychlosti a kvóty pro rozhraní API modelu prostřednictvím služby Azure API Management, abyste zabránili nadměrnému využití nebo zneužití, což může vést k ohrožením zabezpečení systému nebo výpadkům služeb. Tato strategie zajišťuje, že systém bude reagovat během vysokého provozu a zmírní rizika spojená s útoky na dostupnost služby. Díky řízení přístupu můžete udržovat výkon a chránit citlivá data před potenciálními kvótami a limity služby API Management.
Proveďte pravidelné kontroly ohrožení zabezpečení. Pomocí kontroly ohrožení zabezpečení v programu Microsoft Defender můžete provádět posouzení ohrožení zabezpečení vašich virtuálních počítačů a souvisejících prostředků. Pravidelně kontrolujte případné problémy se zabezpečením nebo chybné konfigurace v nastavení virtuálního počítače, které by mohly vystavit vaše modely. Kontrola ohrožení zabezpečení v programu Microsoft Defender
Optimalizace nákladů
Optimalizace nákladů zahrnuje sladění využití prostředků s požadavky na úlohy, aby nedocházelo k zbytečným výdajům. Nastavení správné velikosti virtuálních počítačů, potvrzení rezervovaných instancí a nastavení automatického škálování pomáhá spravovat náklady bez ohrožení výkonu. Řízení nákladů na infrastrukturu Azure je nezbytné pro dlouhodobou udržitelnost a škálovatelnost nasazení AI.
Potvrzení do rezervovaných instancí. Ušetřete na nákladech na virtuální počítač tím, že se zavazujete k jednoletému nebo tříletému období, které nabízí snížené sazby.
Pro automatické škálování použijte škálovací sady virtuálních počítačů Azure. Automatické škálování Instance virtuálních počítačů založené na metrikách, jako je využití procesoru, platí jenom za to, co potřebujete, a brání nadměrnému zřizování.
Nastavte automatické vypnutí pro nečinné instance. Vyhněte se nákladům na nevyužité prostředky tím, že povolíte automatické vypnutí, zejména pro vývojová a testovací prostředí.
Pro předvídatelné využití využijte plány Azure Savings Plans . Snížení nákladů oproti cenám průběžných plateb tím, že se zavazujete zajistit konzistentní využití napříč velikostmi a oblastmi virtuálních počítačů.
Používejte spotové instance Azure pro úlohy odolné proti chybám. Získejte značné slevy na volnou kapacitu pro úlohy, které můžou tolerovat přerušení.
Vyberte správné řešení úložiště. Vyvážení nákladů a výkonu na základě potřeb úloh Pro zajištění pokročilé správy a spolehlivosti dat zvolte Azure Managed Lustre (AMLFS) pro aplikace s vysokou propustností, rozsáhlé aplikace a Azure NetApp Files (ANF).
Provozní dokonalost
Efektivita provozu zahrnuje optimalizaci konfigurace a správy prostředků Azure za účelem zlepšení funkčnosti aplikací AI. Efektivní přidělování prostředků, ladění výkonu a distribuované trénování podporují hladký provoz a přizpůsobitelnost různým požadavkům. Tím se zaměříte na provozní efektivitu, která zajišťuje, aby modely AI fungovaly podle očekávání bez nadměrného využití prostředků.
Optimalizujte přidělování prostředků. Pravidelně kontrolujte velikosti a konfigurace virtuálních počítačů Azure na základě skutečného využití prostředků, aby odpovídaly potřebám úloh. Využijte Azure Advisor k doporučením ohledně optimální velikosti a škálování.
Nakonfigurujte automatické škálování pro zajištění efektivity. Nastavte automatické škálování pro virtuální počítače nebo kontejnery pro zpracování požadavků úloh bez nadměrného zřizování. Škálovací sady virtuálních počítačů Azure můžete použít k dynamické úpravě prostředků na základě poptávky. Další informace najdete v tématu Azure Virtual Machine Scale Sets.
Proveďte pravidelné ladění výkonu. Průběžně profilujte aplikaci a identifikujte a vyřešte kritické body výkonu. Pomocí profileru Application Insights můžete analyzovat kód modelu a využití prostředků.
Implementujte distribuované trénování pro efektivitu. Pokud je to možné, použijte distribuované techniky trénování, abyste zkrátili dobu trénování pomocí několika virtuálních počítačů. Architektury, jako je Horovod a PyTorch, podporují distribuované trénování v Azure.
Ukládání kontrolních bodů ve službě Azure Blob Storage Do služby Azure Blob Storage pravidelně ukládáte stavy, váhy a konfigurace modelu. Sady Azure SDK nebo knihovny dostupné v programovacím jazyce, který používáte pro LLM, můžete použít. Kontrolní body můžete ukládat ve strukturovaném formátu, jako jsou soubory kontrolních bodů TensorFlow SavedModel nebo PyTorch. Upravte kód trénování nebo odvozování tak, aby zahrnoval logiku kontrolního bodu. Začněte nastavením intervalů (po každé epochě nebo některých iteracích) a uložte stav modelu. K snadnému sledování nejnovějšího stavu použijte konzistentní zásady vytváření názvů pro soubory kontrolních bodů.
Návrh pro obnovení stavu Ujistěte se, že se vaše aplikace může obnovit z uloženého kontrolního bodu. Implementujte logiku pro načtení stavu modelu ze služby Azure Blob Storage při spuštění aplikace. To zahrnuje, kontrolu existujících kontrolních bodů a načtení nejnovějšího kontrolního bodu, pokud je k dispozici, což aplikaci umožní pokračovat bez ztráty průběhu.
Efektivita výkonu
Efektivita výkonu se týká maximalizace výpočetního výkonu infrastruktury Azure, aby splňovala požadavky modelu AI. Měli byste ladit nastavení GPU, optimalizovat procesy vstupu a výstupu (V/V) a spouštět testy srovnávacích testů, aby se zlepšila výpočetní rychlost a rychlost odezvy. Zajištění vysokého výkonu podporuje spouštění složitých modelů AI ve velkém měřítku, což zvyšuje spokojenost uživatelů a snižuje latenci.
Ladění GPU
Zvyšte frekvenci hodin grafického procesoru (GPU), abyste zlepšili výkon, zejména u úloh vyžadujících vysoké grafické zpracování nebo složité výpočty. Vyšší rychlosti hodin umožňují GPU spouštět v daném časovém období více operací, což zvyšuje celkovou efektivitu. Pomocí tohoto skriptu pro optimalizaci GPU můžete nastavit frekvence hodin GPU na maximální hodnoty.
- Povolte akcelerované síťové služby. Akcelerované síťové služby jsou technologie hardwarové akcelerace, která umožňuje virtuálním počítačům používat virtualizaci rozhraní SR-IOV (Single Root I/O Virtualization) na podporovaných typech virtuálních počítačů. Poskytuje nižší latenci, nižší zpoždění a snížení využití procesoru. Povolení akcelerovaných síťových služeb nabízí významná vylepšení výkonu front-endové sítě.
Ladění vstupně-výstupních operací
Optimalizujte pomocné úložiště. Pomocné hodnoty musí mít vysokou propustnost a nízkou latenci. Trénovací úloha vyžaduje čtení dat, jejich zpracování a použití tohoto umístění úložiště jako pomocné místo při spuštění úlohy. V ideálním případě byste místní SSD použili přímo na každém virtuálním počítači. Pokud potřebujete sdílený systémsouborůch systém, může být kombinace všech disků NVMe SSD pro vytvoření paralelního systému souborů (PFS) skvělou volbou z hlediska nákladů a výkonu za předpokladu, že má dostatečnou kapacitu. Jednou z metod je použití spravované lustre Azure. Pokud služba Azure Managed Lustre není vhodná, můžete prozkoumat možnosti úložiště, jako je Azure NetApp Files nebo Nativní qumulo Azure.
Implementujte úložiště kontrolních bodů. Velké úlohy trénování hlubokého učení můžou běžet týdny v závislosti na počtu použitých virtuálních počítačů. Stejně jako u jakéhokoli clusteru HPC můžete narazit na chyby, jako jsou problémy s InfiniBandem, chyby v paměti GPU (DIMM), chyby opravy ode (ECC). Je důležité mít strategii kontrolních bodů. Znát interval kontrolního bodu (při uložení dat). Porozumíte tomu, kolik dat se pokaždé přenáší. Máte řešení úložiště, které splňuje požadavky na kapacitu a výkon. Pokud splňuje požadavky na výkon, použijte službu Blob Storage.
Srovnávací testy
Srovnávací testy pomáhají vyhodnotit a zlepšit výkon trénování hlubokého učení na grafických procesorech, zejména u rozsáhlých modelů. Tyto testy měří efektivitu komunikace GPU napříč uzly, jejichž cílem je snížit kritické body přenosu dat během distribuovaného trénování. Mezi tři probírané testy patří:
- Megatron framework: Podporuje rozsáhlé jazykové modely zlepšením efektivity distribuovaného trénování.
- Testy KNIHOVNY NCCL (NVIDIA Collective Communications Library) a ROCm Communication Collectives Library (RCCL): Vyhodnocení výkonu a přesnosti při komunikaci s více GPU pomocí knihoven NCCL nebo RCCL, testovacích vzorů, jako je all-reduce a bodový.
Tyto testy zajišťují škálovatelnost a optimální výkon pro LLMs, přičemž Megatron se zaměřuje na trénování modelů a NCCL/RCCL na komunikaci GPU.
Test NVIDIA Megatron-LM
NVIDIA Megatron-LM je opensourcová architektura pro trénování velkých jazykových modelů. Umožňuje vývojářům vytvářet masivní neurální sítě pro úlohy NLP s funkcemi, mezi které patří:
- Paralelismus: Podporuje model, data a paralelismus kanálu pro modely s miliardami parametrů.
- Škálovatelnost: Škáluje se napříč několika GPU a uzly pro efektivní trénování velkých modelů.
- Flexibilita: Umožňuje konfiguraci architektury modelu, načítání dat a trénovacích strategií.
- Optimalizace: Využívá optimalizace NVIDIA GPU pro zvýšení výkonu.
Megatron-LM se nasazuje v infrastruktuře Prostředí HPC Azure a využívá škálovatelnost Azure pro velké jazykové modely bez nutnosti místního hardwaru.
Nastavení testu Megatron-LM
Nasazení Megatron-LM vyžaduje konkrétní software a hardware.
Vyberte správné možnosti nasazení. Ke zjednodušení nasazení použijte pracovní prostor CycleCloud pro Slurm. Zvolte skladové položky řady NC nebo ND-series pro oddíl GPU. Pro trénování s více uzly se doporučují skladové položky ND-series pro podporu RDMA. Image z marketplace PROSTŘEDÍ HPC v Azure obecně zahrnují tyto ovladače a knihovny. V případě potřeby přizpůsobení může úložiště azhpc-images zajistit kompatibilitu.
Použijte správný obrázek. Požadavky na software pro projekt zahrnují operační systém založený na Linuxu, obvykle Ubuntu. Pro komunikaci s více GPU a více uzly je nezbytné mít komunikační knihovny, jako jsou NCCL a MPI. Kromě toho musí být nainstalovány příslušné ovladače NVIDIA, aby se zajistila akcelerace GPU. Image z marketplace PROSTŘEDÍ HPC v Azure jsou s těmito ovladači a knihovnami předinstalované. V případě potřeby je však možné použít úložiště azhpc-images k zajištění kompatibility.
Použití testu Megatron-LM
Megatron-LM byste měli spustit s použitím nejnovější verze kontejneru PyTorch SPOLEČNOSTI DIAGRAM. Pokud chcete kontejner spustit proti tradičnímu clusteru prostředí HPC založenému na slurmu, musíte nainstalovat a nakonfigurovat tyto další komponenty v clusteru:
- enroot: nástroj, který uživatelům umožňuje spouštět kontejnerizované aplikace v clusterech PROSTŘEDÍ HPC bez nutnosti kořenových oprávnění nebo úprav hostitelského systému.
- pyxis: modul plug-in pro Slurm, který umožňuje bezproblémovou integraci enroot s Slurm, což uživatelům umožňuje odesílat kontejnerizované úlohy do front Slurm a spouštět je na uzlech HPC.
Obě tyto komponenty jsou součástí pracovního prostoru CycleCloud pro Slurm , ale v současné době nejsou součástí clusterů Slurm vytvořených přes CycleCloud. Tyto další komponenty můžete zavést prostřednictvím cluster-init s projekty CycleCloud. S těmito požadavky můžete pro trénování LLM použít Megatron-LM:
- Ověření výkonu clusteru: Před spuštěním úloh pomocí kontrol stavu uzlu identifikujte případné problémy s hardwarem. Pomocí testů NCCL ověřte distribuovaný výkon clusteru se snížením výkonu.
- Výběr trénovacích dat: K ověření pracovního postupu použijte model codeParrot jako výchozí bod.
- Předběžné zpracování dat: Pomocí skriptu preprocess_data.py v úložišti Megatron-LM převeďte data do formátu, který je kompatibilní s Megatron-LM.
- Trénování pomocí Megatron-LM: Příklady v Megatron-LM použijte jako referenci ke konfiguraci Megatronu pro trénování.
Toto nastavení zajišťuje efektivní nasazení a trénování velkých jazykových modelů v infrastruktuře Azure.
Test šířky pásma NCCL
Pokud chcete ověřit a optimalizovat komunikaci GPU mezi uzly, spusťte test šířky pásma NCCL. Test šířky pásma NCCL je specializovaný nástroj v rámci NCCL, což je knihovna, která usnadňuje vysokorychlostní komunikaci mezi grafickými procesory. NCCL podporuje kolektivní operace, včetně all-reduce, all-gather, reduce, broadcast a reduce-scatter, across single nebo multi-GPU nodes, a dosahuje optimálního výkonu na platformách pomocí PCIe, NVLink, NVswitch nebo síťových nastavení, jako je InfiniBand nebo TCP/IP. Další informace naleznete v tématu TESTY NVIDIA/NCCL.
Metriky výkonu NCCL
Test šířky pásma NCCL slouží k vyhodnocení klíčových metrik, včetně času a šířky pásma. Hodnota Time (v milisekundách) měří režii nebo latenci operací, což je užitečné při vyhodnocování operací s malými velikostmi dat. "Šířka pásma" (v GB/s) vyhodnocuje efektivitu operace typu point-to-point, například odesílání a přijímání. "Šířka pásma sběrnice" odráží efektivitu využití hardwaru tím, že v komponentách, jako je NVLink nebo PCI, započítává rychlost komunikace mezi GPU a kritické body. K dispozici jsou výpočty pro různé kolektivní operace, například AllReduce, ReduceScatter, AllGather, Broadcast a Reduce.
Inicializace testu NCCL
Pokud chcete tyto testy zahájit v rámci nasazení CycleCloud, připojte se k uzlu plánovače přes SSH a získejte přístup k výpočetnímu uzlu vybavenému GPU. Naklonujte úložiště Git pro testy NCCL, přejděte do nccl-tests
adresáře a vytvořte soubor hostitele se seznamem uzlů pro testování. Získejte IP adresu uzlu plánovače z webové aplikace CycleCloud.
Argumenty testu NCCL
Před spuštěním testů zadejte různé argumenty, jako je počet GPU na vlákno (-g
), rozsah velikosti dat (-b
pro minimální bajty a -e
maximální bajty), přírůstek kroku (-i
nebo-f
), typ operace redukce (-o
), datový typ (-d
), kořenový zařízení (-r
), počet iterací (-n
), počet zahřátí (-w
) a nastavení grafu CUDA (-G
). Úplný seznam upravitelných parametrů najdete v dokumentaci k testu NCCL.
Testy RCCL
ROCm Communication Collectives Library (RCCL) je specializovaná knihovna navržená pro efektivní komunikaci mezi grafickými procesory AMD. Poskytuje kolektivní operace, jako je all-reduce, all-gather, broadcast a reduce, která podporuje komunikaci mezi uzly GPU i mezi uzly. Optimalizované pro platformy využívající PCIe a síťové technologie, jako je InfiniBand, RCCL zajišťuje škálovatelný přenos dat v prostředích s více GPU. Podporuje integraci do pracovních postupů s jedním i více procesy, jako jsou například ty, které používají MPI. Další informace naleznete v tématu ROCm Communication Collectives Library
- Nastavení prostředí Nainstalujte ROCm a ujistěte se, že je na všech uzlech správně nainstalovaný seznam RCCL.
- Sestavte testy RCCL. Naklonujte úložiště, přejděte do adresáře rccl-tests a zkompilujte testy.
- Spusťte testy šířky pásma. Použijte zadané spustitelné soubory testů (rccl-tests), které určují komunikační operace, jako je all-reduce.
- Analýza výkonu Porovnejte výsledky šířky pásma a latence napříč uzly a grafickými procesory.