Článek přečtěte do 10 min.

Vylepšení OCI Data Science

Odhalení nové funkce automatického škálování pro nasazení modelu

V dnešním světě založeném na datech je nutnost škálovatelných zdrojů při zavádění modelů prvořadá v různých odvětvích. Schopnost dynamicky upravovat výpočetní zdroje v reakci na kolísající požadavky není jen pohodlím, ale kritickou součástí pro udržení efektivity a nákladové efektivity. Tato přizpůsobivost je zvláště důležitá v oblastech, kde se objemy dat a potřeby zpracování mohou nepředvídatelně měnit. Koncept automatického škálování se v takových scénářích stává zvláště relevantním, což umožňuje přizpůsobení zdrojů v reálném čase tak, aby vyhovovaly měnícím se požadavkům na zpracování a analýzu dat. Když se zaměříme na finanční instituce, význam automatického škálování se ještě více zdůrazní. Finanční sektory se vyznačují rychlým tempem a potřebou zpracovávat rozsáhlé a komplexní datové sady.

Zde se implementace automatického škálování v Oracle Cloud Infrastructure (OCI) Data Science pro nasazení modelu stává zásadní. Představte si velkou retailovou banku, která nedávno nasadila sofistikovaný model umělé inteligence k předpovídání nesplácení úvěrů a analýze bonity zákazníků. Tento model, který je nedílnou součástí bankovního procesu schvalování úvěrů, pracuje s velkým množstvím dat, včetně historie transakcí, interakce se zákazníky a tržních trendů.

Zpočátku je model nasazen na pevnou alokaci zdrojů OCI, ale brzy bude banka čelit následujícím výzvám:

  • Proměnlivé zatížení během finančních cyklů: Banka zažívá špičky na konci finančních čtvrtletí, kdy mnoho podniků žádá o úvěry. Během těchto časů model potřebuje zpracovat velký objem požadavků, což vede k potenciálnímu zpomalení nebo dokonce k výpadku služby.
  • Nepředvídatelné události na trhu: Náhlé události na trhu, jako je ekonomický pokles nebo změny politik, mohou vyvolat nárůst poptávek a transakcí zákazníků, což vyžaduje okamžité škálování zdrojů pro udržení výkonnosti.
  • Optimalizace nákladů: Během hodin nebo dnů mimo špičku s nízkou interakcí se zákazníky spotřebovává model AI banky zdroje, které nejsou efektivně využívány, což vede ke zbytečným výdajům.

Chcete-li se s těmito výzvami vypořádat, jednoduše povolíte automatické škálování ve svém nasazení a poté vyberete požadované škálovací metriky a prahové hodnoty a o zbytek se postará automatické škálování modelu nasazení, načte metriky z vašeho nasazení a spustí operaci škálování, kdykoli to bude potřeba. V tomto příspěvku na blogu demonstrujeme, jak lze konfigurovat funkci automatického škálování pro nasazení modelu Oracle Cloud Infrastructure (OCI) Data Science, aby zvládla zvýšené nebo snížené zatížení.

Přehled a klíčové funkce automatického škálování

Podstata řešení automatického škálování se točí kolem stanovení pravidel na základě metrik vydávaných nasazením modelu. Zahrnuje zvýšení výpočetního výkonu, když metriky překročí předem definovaný práh využití, označovaný jako škálování, a snížení výpočetního výkonu, když metriky klesnou pod určitou hodnotu využití, známé jako škálování. Když je škálování vyžadováno pro využití CPU, virtuální stroj (VM) instance lze přidávat nebo odebírat z nasazení za účelem doladění výkonu zpracování. Přidání instance zmírní zátěž zpracování na existující instance a tato forma škálování se nazývá horizontální škálování. Zahrnuje začlenění dalších instancí se stejným tvarem virtuálního počítače do nasazení.

V kontextu automatického škálování zajišťuje nasazení modelu nulové prostoje pro obsluhu požadavků na odvození. Stará instance uchovává požadavky na odvození služeb, když se přidávají nové, což zajišťuje bezproblémový přechod bez přerušení.

Automatické škálování v OCI Data Science Model Deployment zahrnuje následující klíčové funkce:

  • Dynamic Resource Adjustment: Automatické škálování automaticky zvyšuje nebo snižuje počet výpočetních zdrojů na základě požadavků v reálném čase (například automatické škálování a downscale z 1 na 10), čímž je zajištěno, že nasazený model dokáže efektivně zvládat různé zátěže.
  • Efektivita nákladů: Dynamickým přizpůsobováním zdrojů zajišťuje automatické škálování, že používáte (a platíte za) pouze zdroje, které potřebujete. To může vést k úsporám nákladů ve srovnání se statickým nasazením.
  • Vylepšená dostupnost: Ve spojení s nástrojem pro vyrovnávání zátěže zajišťuje automatické škálování, že pokud jedna instance selže, lze provoz přesměrovat do zdravých instancí a zajistit tak nepřerušovanou službu.
  • Přizpůsobitelné spouštěče: Uživatelé mohou zcela přizpůsobit dotaz automatického škálování pomocí výrazů MQL (Monitoring query Language Expressions).
  • Kompatibilita nástroje Load Balancer  Automatické škálování funguje ruku v ruce s nástroji pro vyrovnávání zatížení, kde lze šířku pásma LB automaticky škálovat tak, aby podporovala vyšší provoz, což zajišťuje optimální výkon a snižuje úzká místa.
  • Období ochlazování: Po akcích škálování může nastat definovaná doba ochlazování, během níž automatický škálovač nebude provádět žádné další akce. Tím se zabrání nadměrnému škálování v krátkém časovém rámci.
Obrázek 1: Architektura na vysoké úrovni systému automatického škálování
Obrázek 1: Architektura na vysoké úrovni systému automatického škálování

Automatické škálování nasazení modelu v akci

Můžete pokračovat do konzole Oracle Cloud Infrastructure (OCI) Data Science a přejít do části „ Model Deployments “. Zde mají možnost buď vytvořit nové nasazení modelu, nebo vybrat existující, aby bylo možné automatické škálování. K demonstraci automatického škálování používáme existující prostředek pro nasazení modelu nakonfigurovaný s malým modelem a hostovaný na jednom virtuálním počítači. Nastavení automatického škálování zahrnuje identifikaci správné sady zásad a použití těchto zásad škálování. Další podrobnosti o různých možnostech naleznete v  části konfigurace automatického škálování v nasazení modelu.

Následující obrázek ukazuje prostředek nasazení modelu, který je již vytvořen:

Obrázek 2: Obrázek znázorňující vytvořený prostředek nasazení modelu.
Obrázek 2: Obrázek znázorňující vytvořený prostředek nasazení modelu.

Pochopení aplikačních charakteristik

Abychom odvodili správnou politiku škálování, nejprve určíme charakteristiky aplikace se zvoleným typem instance. Ale předtím je důležité porozumět metrikám, které model Deployment vydává. Na vysoké úrovni jsou tyto metriky kategorizovány do tří tříd: metriky vyvolání, metriky latence a metriky využití. Chcete-li se dozvědět o různých metrikách, podívejte se do této veřejné dokumentace Model Deployment Metrics.

Obrázek 3: Zobrazení metrik rozdělených do tří tříd: metriky vyvolání, metriky latence a metriky využití
Obrázek 3: Zobrazení metrik rozdělených do tří tříd: metriky vyvolání, metriky latence a metriky využití

Prozkoumejte metriky využití zvolené infrastruktury a identifikujte případná úzká místa v systému. U instancí CPU může být úzké místo v CPU nebo paměti, zatímco u instancí GPU může být úzké místo ve využití GPU a jeho paměti.

Obrázek 4_1 - Metriky využití CPU .  Obrázek 4_2: Odhad počtu požadavků v průběhu času

Zkusme korelovat využití CPU s požadavkem za min (RPM), abychom pochopili dopad vysokého nebo nízkého zatížení požadavků na aplikaci. V mnoha případech, kdy je zátěž vysoká a CPU je saturovaný, nasazení již nezvládá žádné další požadavky a výkon se začíná zhoršovat. Následující graf ukazuje, že když se otáčky zvýší, využití CPU dosáhne téměř 100 % a předpovědní latence se také zvýší. Když však otáčky klesnou, využití se pohybuje kolem 20 % nebo minima.

Obrázek 5: Zobrazení korelace mezi otáčkami za minutu, využitím CPU a předpovědí latence
Obrázek 5: Zobrazení korelace mezi otáčkami za minutu, využitím CPU a předpovědí latence

Definování prahů

Abychom mohli definovat prahové hodnoty, musíme porozumět vzoru požadavku pro aplikaci. Chceme znát maximální a minimální počet požadavků, které můžeme očekávat pro naši aplikaci. Tento rozsah nám pomáhá porozumět tomu, jak využití CPU hledá naše hranice RPM pomocí toho, že můžeme odvodit prahové hodnoty pro politiku škálování. V tomto příkladu je maximální počet požadavků za minutu (max) přibližně 15 kB a minimální požadavek za minutu (min) je přibližně 9 kB. Vidíme, že využití CPU zůstává v tomto rozsahu mezi 45–65 % a průměr je 55 %.

Když je nová instance přidána po škálování, požadavky se začnou rovnoměrně distribuovat, ale využití CPU není přesně poloviční. V každé instanci existuje určité základní využití CPU, i když nepřicházejí žádné požadavky na predikci, což je třeba vzít v úvahu při výpočtu prahových hodnot našich zásad škálování. Prahová hodnota škálování může být vaše maximální využití CPU, ale práh škálování by měl být menší než X, kde X lze vypočítat pomocí vzorce:

CPU utilization without any load + (maximum CPU utilization - CPU utilization without any load)/2

Tím je zajištěno, že po provedení změny měřítka již znovu nepřistupujeme.

Další úvahou, kterou byste měli při rozhodování o prahových hodnotách zvážit, je, zda chcete optimalizovat náklady nebo dostupnost. Zachováním širšího rozmezí pro prahovou hodnotu (scale_in, scale_out) se rozhodnete pro dostupnost, zatímco zužujete pro cenu. Rozhodli jsme se ponechat naše prahové hodnoty na (30, 65) a upřednostňovat dostupnost před cenou, ale můžete si vybrat libovolnou prahovou hodnotu měřítka, pokud je menší než X. Načtení vzoru požadavků nám také může pomoci předem určit, kolik instancí by bylo potřeba pro naši aplikaci.

Maximální počet instancí můžete vypočítat pomocí:

floor(maximum RPM expected/ mean RPM)

Povolit automatické škálování

Než začneme aktualizovat nasazení modelu, abychom umožnili automatické škálování, musíme přidat zásadu, která umožní systému automatického škálování přístup ke čtení metrik z pronájmu, kde jsou tyto metriky zveřejněny.

allow service autoscaling to read metrics in tenancy where target.metrics.namespace='oci_datascience_modeldeploy'
Obrázek 6: Povolení automatického škálování
Obrázek 6: Přidání zásady pro povolení automatického škálování

Po odeslání výše uvedené zásady mohou uživatelé začít nastavovat automatické škálování na zdroji nasazení modelu. Lze nakonfigurovat automatické škálování Compute i Load Balancer. Dále klikneme na tlačítko Upravit pro povolení automatického škálování a zaškrtneme políčkoPovolit automatické škálování.

Obrázek 7: Funkce automatického škálování
Obrázek 7: Povolení automatického škálování během aktualizace nasazení modelu

Otevře se nový panel s předvyplněnými hodnotami polí. Hodnoty můžete upravit podle svých potřeb. Ve výchozím nastavení bude automatické škálování povoleno pomocí metriky Využití CPU. Aktualizovali jsme prahové hodnoty na – 65 % a 30 %.

Obrázek 8: Vyberte Compute Shape
Obrázek 9: Obrázek znázorňující vlastnosti výpočetního automatického škálování

Volitelně, pokud chcete automaticky škálovat šířku pásma LB, přejděte na Zobrazit pokročilé možnosti a zadejte hodnotu pro maximální šířku pásma. Všimněte si, že maximální šířka pásma by měla být větší než minimální a menší nebo rovna dvojnásobku minimální šířky pásma.

Obrázek 9: Vyberte Loadbalancer
Obrázek 9: Obrázek znázorňující šířku pásma LoadBalancer

Nakonec klikněte na tlačítko Odeslat a počkejte na aktivaci nasazení modelu. Když je aktivní, instance nasazení je vybavena funkcí automatického škálování.

Povolení_MD_1         Povolení_MD_2

Sledujte instanci pro aktivaci podmínek škálování. S rostoucím přílivem požadavků se zvyšuje i využití CPU. Zahájení operace škálování si můžete všimnout, když využití CPU překročí přednastavený práh 65 %. Po dokončení operace škálování je pracovní zátěž rovnoměrně rozdělena mezi všechny dostupné instance. Tato distribuce vede ke snížení využití CPU a zlepšení dostupnosti aplikace. Následující obrázek ukazuje využití CPU na instanci, před a po škálování.

Využití CPU na instanci, před a po škálování.
Obrázek 10: Využití CPU na instanci, před a po škálování.

V průběhu procesu škálování můžete sledovat protokoly pracovních požadavků a poskytovat aktualizace o průběhu. Tyto protokoly podrobně popisují prováděné operace a také předchozí a aktualizované velikosti nasazení.

Obrázek 11: Protokol zpráv
Obrázek 11: Zprávy protokolu, ve kterých se zdroj nasazení začíná škálovat. 

Když požadavky přestanou přicházet nebo se otáčky sníží na úroveň, kdy je překročena prahová hodnota 30% škálování, spustí se operace škálování, čímž se šetří náklady.

Před a po měřítku v možnostech.  Před a po srovnání

Pokročilé podmínky škálování

Můžete také vybrat vlastní typ metriky škálování, kde uživatelé mohou psát své vlastní dotazy MQL pro konfiguraci automatického škálování. Tato funkce umožňuje vytvářet sofistikovanější dotazy, včetně možnosti kombinovat více dotazů pomocí operátorů jako „AND“ a „OR“, využívat různé agregační funkce a zvolit konkrétní vyhodnocovací okno. Využití této možnosti poskytuje větší kontrolu nad podmínkami škálování, což umožňuje přizpůsobenější a přesnější nastavení přizpůsobené konkrétním potřebám.

Zákazník například ví o vzoru požadavku a jeho dopadu na využití zdrojů. Namísto výběru využití CPU jako metriky si zákazník vybere přímo metriku Predict Request Count. Z předchozí analýzy víme, že maximální otáčky byly 15K, pro které bylo maximální využití CPU 65%. Takže namísto použití 65 jako prahu využití CPU používáme 15 kB pro prahovou hodnotu škálování prediktivního počtu požadavků. Podobně vybereme 9K jako práh měřítka.

Naše škálovací dotazy se stávají:

Škálování:

PredictRequestCount[1m]{resourceId = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() > 15000

Měřítko v:

PredictRequestCount[1m]{resourceId = "MODEL_DEPLOYMENT_OCID"}.grouping().absent() == 1 || PredictRequestCount[1m]{resourceId = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() < 9000

Chcete-li vybrat tuto možnost, stačí v konzole vybrat možnost Škálování typu metriky Vlastní a vložit tyto dotazy do polí pro dotaz na vlastní metriku škálování a škálování.

konfigurace automatického škálování
Obrázek 12: Konzole ukazující, jak povolit vlastní metriky a vytvořit instanci možností Scale-in a Scale-out. 

Další podrobnosti o tom, jak používat vlastní metriky, najdete v dokumentaci k vlastním metrikám.

Pochopení omezení a osvědčených postupů

  • Uživatelé mohou povolit/zakázat jak automatické škálování u instancí, tak šířku pásma LB pro zdroje Model Deployment.
  • Mezi každou vynucenou událostí škálování je minimální doba ochlazení 10 minut.
  • Podporujeme zásady automatického škálování založené na prahu. Uživatelé nemohou poskytnout více než jednu zásadu.
  • Protokoly škálování budou vystaveny prostřednictvím protokolů pracovních požadavků aktualizovaných při každé akci škálování.
  • Uživatelé mohou aktivovat automatické škálování LB nastavením maximální BW spolu s minimální hodnotou BW. Maximum bude omezeno na dvojnásobek minima.
  • Uživatelé mohou k nastavení pravidel automatického škálování používat pouze metriky poskytované službou.
  • Stejná omezení počtu instancí platí pro automatické škálování (maximální podporovaný počet je 10).

Závěr

Závěrem lze říci, že implementace automatického škálování v Oracle Cloud Infrastructure (OCI) představuje transformativní řešení, zejména pro finanční instituce, jako je naše příkladná retailová banka. Využitím dynamického a inteligentního škálování zdrojů banka výrazně zvyšuje výkon a spolehlivost svého modelu umělé inteligence pro hodnocení úvěru při současném dosažení podstatné efektivity nákladů. Autoscaling šikovně zajišťuje schopnost banky zvládat nepředvídatelné pracovní zátěže, od výkyvů trhu až po sezónní trendy, a udržuje tak vysokou dostupnost služeb a spokojenost zákazníků. Při pohledu na blízkou budoucnost je automatické škálování připraveno se dále vyvíjet podporou tvarů GPU, což je pokrok, který bude zvláště výhodný pro práci s velkými jazykovými modely (LLM). Tato schopnost otevře finančním institucím nové cesty k využití složitějších a na zdroje náročnějších modelů umělé inteligence, čímž dále posílí jejich analytické a prediktivní schopnosti. V neustále se měnícím digitálním finančním prostředí není tato technologie pouze strategickým nástrojem pro řízení zdrojů; je zásadní složkou při podpoře agilnosti a odolnosti finančních institucí. Díky přijetí automatického škálování v OCI jsou tyto instituce dobře vybaveny, aby zajistily, že jejich technologická infrastruktura zůstane stejně adaptabilní a prozíravá jako jejich finanční strategie.

Vyzkoušejte  si bezplatnou zkušební verzi Oracle Cloud! 30denní zkušební verze s bezplatnými kredity v hodnotě 300 USD vám umožní přístup ke službě OCI Data Science.

Další informace naleznete v následujících zdrojích:

Zdroj: Oracle