A gépi tanulás (ML) mindenütt elterjedt. Ügyfeleink üzleti tevékenységük minden területén alkalmazzák az ML-t, beleértve az általuk készített termékeket és szolgáltatásokat, valamint azért, hogy betekintést nyerjenek ügyfeleikről.
Egy ML-alapú alkalmazás létrehozásához először létre kell hoznia azt az ML-modellt, amely megfelel az Ön üzleti követelményeinek. Az ML-modellek felépítése magában foglalja az adatok betanításhoz való előkészítését, a funkciók kinyerését, majd a modell betanítását és finomhangolását a funkciók segítségével. Ezután a modellt működésbe kell hozni, hogy az új adatokból következtetéseket (vagy előrejelzéseket) tudjon generálni, amelyeket aztán az alkalmazásban felhasználni. Bár a modellt közvetlenül egy alkalmazásba integrálhatja, az éles szintű alkalmazásoknál jól működik a modell egy végpont mögé történő telepítése, majd a végpont meghívása egy RESTful API-híváson keresztül a következtetés lekéréséhez. Ebben a megközelítésben a modellt jellemzően olyan infrastruktúrán (számítási, tárolási és hálózati) telepítik, amely megfelel az alkalmazás ár-teljesítmény követelményeinek. Ezek a követelmények magukban foglalják azokat a számkövetkeztetéseket, amelyeket a végpont várhatóan egy másodpercen belül visszaad (az úgynevezett áteresztőképesség), milyen gyorsan kell a következtetést legenerálni (a késleltetés), valamint a modell üzemeltetésének teljes költségét.
Amazon SageMaker megkönnyíti az ML-modellek telepítését a következtetések levonására a legjobb ár-teljesítmény mellett, bármilyen felhasználási esetre. Az ML infrastruktúra és modelltelepítési lehetőségek széles választékát kínálja, hogy segítsen kielégíteni az összes ML következtetési igényt. Ez egy teljesen felügyelt szolgáltatás, így méretezheti a modell bevezetését, csökkentheti a következtetési költségeket, hatékonyabban kezelheti a modelleket a termelésben, és csökkentheti a működési terheket. A költségek minimalizálásának egyik módja, ha csak annyi számítási infrastruktúrát biztosítunk, amennyi szükséges a következtetési kérések végpont felé történő kiszolgálásához (más néven következtetési munkaterhelés) bármikor. Mivel a következtetési kérelmek forgalmi mintája idővel változhat, a legköltséghatékonyabb telepítési rendszernek képesnek kell lennie arra, hogy valós időben skálázható legyen, amikor a terhelés növekszik, és skálázható legyen, amikor a terhelés csökken. A SageMaker támogatja az automatikus méretezést (automatikus méretezést) a tárolt modellekhez. Az automatikus méretezés dinamikusan módosítja a modellhez kiépített példányok számát a következtetési munkaterhelés változásaira válaszul. Amikor a munkaterhelés növekszik, az automatikus méretezés több példányt tesz elérhetővé. Amikor a munkaterhelés csökken, az automatikus méretezés eltávolítja a szükségtelen példányokat, így nem kell fizetnie a nem használt példányokért.
A SageMaker segítségével kiválaszthatja, hogy mikor kell automatikusan skálázni, és hány példányt kell létrehozni vagy eltávolítani, hogy elérje az alkalmazás megfelelő rendelkezésre állását és költségcsökkentését. A SageMaker három automatikus skálázási lehetőséget támogat. Az első és leggyakrabban használt lehetőség a célkövetés. Ebben az opcióban kiválaszthatja az an ideális értékét amazonfelhőóra az Ön által választott mérőszám, például az átlagos CPU-kihasználás vagy átviteli sebesség, amelyet célként szeretne elérni, és a SageMaker automatikusan skálázza vagy kicsinyíti a példányok számát a célmutató eléréséhez. A második lehetőség a lépéses skálázás választása, amely a CloudWatch riasztási megsértése nagysága alapján fejlett skálázási módszer. A harmadik lehetőség az ütemezett méretezés, amely lehetővé teszi, hogy ismétlődő ütemezést adjon meg a végpont be- és kiskálázásához a várható kereslet alapján. Javasoljuk, hogy kombinálja ezeket a méretezési lehetőségeket a nagyobb rugalmasság érdekében.
Ebben a bejegyzésben egy tervezési mintát adunk az alkalmazáshoz megfelelő automatikus méretezési konfiguráció levezetéséhez. Ezenkívül adunk egy listát a követendő lépésekről, így még akkor is, ha az alkalmazás egyedi viselkedéssel rendelkezik, például eltérő rendszerjellemzőkkel vagy forgalmi mintákkal, ez a rendszerszemléletű megközelítés alkalmazható a megfelelő méretezési házirendek meghatározására. Az eljárás tovább egyszerűsödik a használatával Következtetési ajánló, a SageMaker belsejébe épített megfelelő méretezési és benchmarking eszköz. Használhat azonban bármilyen más benchmarking eszközt.
Áttekintheti a jegyzetfüzet ezt az eljárást használtuk a használati esetünknek megfelelő telepítési konfiguráció levezetéséhez.
A SageMaker valós idejű végpontokat és mérőszámokat tárol
A SageMaker valós idejű végpontjai ideálisak az ML alkalmazásokhoz, amelyeknek különféle forgalmat kell kezelniük, és valós időben kell válaszolniuk a kérésekre. Az alkalmazás beállítása a futási környezet meghatározásával kezdődik, beleértve a tárolókat, az ML-modellt, a környezeti változókat és így tovább a create-model API-ban, majd meghatározza a tárhely részleteit, például a példánytípust és a példányszámot minden egyes változathoz a create-modellben. endpoint-config API. A végpont konfigurációs API lehetővé teszi a forgalom felosztását vagy megkettőzését a változatok között éles és árnyékváltozatok használatával. Ebben a példában azonban egyetlen éles változat használatával határozzuk meg a méretezési házirendeket. Az alkalmazás beállítása után be kell állítani a méretezést, amely magában foglalja a méretezési cél regisztrálását és a méretezési házirendek alkalmazását. Hivatkozni Automatikus skálázási következtetési végpontok konfigurálása az Amazon SageMakerben további részletekért a különböző méretezési lehetőségekről.
A következő ábra a SageMaker alkalmazás- és méretezési beállítását mutatja be.
Végponti mérőszámok
A méretezési gyakorlat megértéséhez fontos megérteni a végpont által kibocsátott mutatókat. Magas szinten ezek a mérőszámok három osztályba sorolhatók: hívási mérőszámok, késleltetési mérőszámok és felhasználási metrikák.
A következő diagram ezeket a mérőszámokat és a végpont architektúrát mutatja be.
A következő táblázatok részletesen ismertetik az egyes mutatók részleteit.
Meghívási mérőszámok
Metrics | Áttekintés | időszak | Egységek | Statisztika |
Felhívások | A modellvégponthoz küldött InvokeEndpoint kérések száma. | 1 perc | Egyik sem | Összeg |
InvocationsPerInstance | A modellnek küldött hívások száma, az InstanceCount által normalizálva az egyes változatokban. 1/numberOfstances értékként kerül elküldésre minden kérésnél, ahol a numberOfInstances a végpont mögötti változat aktív példányainak száma a kérés időpontjában. | 1 perc | Egyik sem | Összeg |
Invocation4XXErrors | Azon InvokeEndpoint kérések száma, amelyekben a modell 4xx HTTP-válaszkódot adott vissza. | 1 perc | Egyik sem | Átlag, Sum |
Invocation5XXErrors | Azon InvokeEndpoint kérések száma, amelyekben a modell 5xx HTTP-válaszkódot adott vissza. | 1 perc | Egyik sem | Átlag, Sum |
Látencia mutatói
Metrics | Áttekintés | időszak | Egységek | Statisztika |
ModelLatency | Az az időintervallum, amely alatt a modell válaszol a SageMaker alkalmazásból. Ez az intervallum magában foglalja a kérés elküldéséhez és a válasznak a modell tárolójából való lekéréséhez szükséges helyi kommunikációs időket, valamint a tárolóban a következtetés befejezéséhez szükséges időt. | 1 perc | Mikroszekundum | Átlag, Összeg, Min., Max., Mintaszám |
Overhead Latency | Az az időintervallum, amely hozzáadódik ahhoz az időhöz, amely alatt a SageMaker ügyfélkérésére válaszolni kell. Ezt az intervallumot a rendszer attól az időponttól kezdve méri, amikor a SageMaker megkapja a kérést, egészen addig, amíg választ nem ad vissza az ügyfélnek, levonva a ModelLatency-t. A többletterhelési késleltetés több tényezőtől függően változhat, beleértve a kérések és válaszok hasznos adattartalmának méretét, a kérések gyakoriságát és a kérés hitelesítését vagy engedélyezését. | 1 perc | Mikroszekundum | Átlag, Összeg, Min., Max., Mintaszám |
Kihasználtsági mutatók
Metrics | Áttekintés | időszak | Egységek |
CPUU-felhasználás | Az egyes CPU magok kihasználtságának összege. Az egyes magtartományok CPU-kihasználása 0–100. Például, ha négy CPU van, a CPUU-felhasználási tartomány 0–400%. | 1 perc | Százalék |
Memóriahasználat | A memória százalékos aránya, amelyet egy példány tárolói használnak. Ez az értéktartomány 0-100%. | 1 perc | Százalék |
GPUU-felhasználás | Azon GPU-egységek százalékos aránya, amelyeket egy példány tárolói használnak. Az érték 0 és 100 között változhat, és megszorozzák a GPU-k számával. | 1 perc | Százalék |
GPU memóriahasználat | A példányon lévő tárolók által használt GPU-memória százalékos aránya. Az értéktartomány 0–100, és megszorozva a GPU-k számával. Például, ha négy GPU van, a GPUMemoryUtilization tartomány 0–400%. | 1 perc | Százalék |
DiskUtilization | A példányon lévő tárolók által felhasznált lemezterület százalékos aránya. Ez az értéktartomány 0-100%. | 1 perc | Százalék |
Használati eset áttekintése
Alkalmazásunkhoz egy egyszerű XGBoost osztályozó modellt használunk, és úgy döntöttünk, hogy az ml.c5.large példánytípuson használjuk. A következő eljárás azonban független a modelltől vagy a telepítési konfigurációtól, így ugyanazt a megközelítést alkalmazhatja saját alkalmazásához és telepítéséhez. Feltételezzük, hogy a folyamat elején már rendelkezik a kívánt példánytípussal. Ha segítségre van szüksége az alkalmazás ideális példánytípusának meghatározásához, használja a Következtetés ajánló alapértelmezett feladat példánytípus-ajánlások lekéréséhez.
Méretezési terv
A méretezési terv egy három lépésből álló eljárás, amint azt az alábbi diagram szemlélteti:
- Határozza meg az alkalmazás jellemzőit – Ennek elengedhetetlen része a kiválasztott hardveren az alkalmazás szűk keresztmetszete ismerete.
- Állítsa be a méretezési elvárásokat – Ez magában foglalja a másodpercenkénti kérések maximális számának meghatározását, valamint azt, hogy a kérésminta hogyan fog kinézni (sima vagy tüskés lesz-e).
- Pályázni és értékelni – A méretezési irányelveket az alkalmazás jellemzői és a skálázási elvárások alapján kell kidolgozni. Az utolsó lépés részeként értékelje ki a házirendeket a várhatóan kezelni kívánt terhelés futtatásával. Ezenkívül javasoljuk az utolsó lépés megismétlését mindaddig, amíg a méretezési szabályzat nem tudja kezelni a kérésterhelést.
Azonosítsa az alkalmazás jellemzőit
Ebben a részben az alkalmazási jellemzők azonosításának módszereit tárgyaljuk.
benchmarking
A megfelelő méretezési politika levezetéséhez a terv első lépése az alkalmazások viselkedésének meghatározása a kiválasztott hardveren. Ezt úgy érheti el, hogy az alkalmazást egyetlen gazdagépen futtatja, és fokozatosan növeli a végpont kérésterhelését, amíg az telítődik. Sok esetben a telítettség után a végpont már nem tud több kérést kezelni, és a teljesítmény romlani kezd. Ez látható a végpont-hívási metrikákban. Azt is javasoljuk, hogy tekintse át a hardverhasználati mutatókat, és ismerje meg a szűk keresztmetszeteket, ha vannak ilyenek. A CPU-példányok esetében a szűk keresztmetszet a CPU-, a memória- vagy a lemezkihasználtsági metrikákban, míg a GPU-példányoknál a GPU-kihasználásban és annak memóriájában lehet a szűk keresztmetszet. A következő részben tárgyaljuk az ml.c5.large hardver meghívásait és használati mérőszámait. Azt is fontos megjegyezni, hogy a CPU-kihasználtság az összes magon összesítve van, ezért egy ml.c200.large kétmagos gép esetében 5%-os.
A teljesítményértékeléshez az Inference Recommender alapértelmezett feladatát használjuk. Az Inference Recommender alapértelmezett jobjai alapértelmezés szerint több példánytípussal végeznek összehasonlítást. A keresést azonban leszűkítheti a kiválasztott példánytípusra, ha átadja azokat a támogatott példányokban. A végpontot létrehozó szolgáltatás fokozatosan növeli a kérelmet, és leáll, amikor a referenciaérték eléri a telítettséget, vagy ha a végpont meghívása API-hívás az eredmények 1%-a miatt meghiúsul. A tárhely mérőszámai felhasználhatók a hardver határainak meghatározására és a megfelelő méretezési korlát beállítására. Hardveres szűk keresztmetszet esetén javasoljuk, hogy növelje a példányméretet ugyanabban a családban, vagy változtassa meg teljesen a példánycsaládot.
A következő ábra a benchmarking felépítését mutatja be az Inference Recommender segítségével.
Használja a következő kódot:
def trigger_inference_recommender(model_url, payload_url, container_url, instance_type, execution_role, framework, framework_version, domain="MACHINE_LEARNING", task="OTHER", model_name="classifier", mime_type="text/csv"): model_package_arn = create_model_package(model_url, payload_url, container_url, instance_type, framework, framework_version, domain, task, model_name, mime_type) job_name = create_inference_recommender_job(model_package_arn, execution_role) wait_for_job_completion(job_name) return job_name
Elemezze az eredményt
Ezután végponti mérőszámok segítségével elemezzük az ajánlási feladat eredményeit. A következő hardverhasználati grafikonból megerősítjük, hogy a hardver korlátai a határokon belül vannak. Továbbá a CPUUtilization sor a kérésterheléssel arányosan növekszik, ezért szükséges a CPU kihasználtság skálázási korlátja is.
A következő ábrán megerősítjük, hogy az invokáció ellaposodik, miután elérte a csúcspontját.
Ezután áttérünk a hívások és a késleltetési metrikákra a méretezési korlát beállításához.
Keresse meg a méretezési korlátokat
Ebben a lépésben különböző skálázási százalékokat futtatunk, hogy megtaláljuk a megfelelő méretezési határt. Általános méretezési szabályként a hardver kihasználtságának 40% körülinek kell lennie, ha elérhetőségre optimalizál, 70% körülinek, ha költségre optimalizál, és 50% körülinek, ha egyensúlyba kívánja hozni a rendelkezésre állást és a költségeket. Az útmutató áttekintést ad a két dimenzióról: elérhetőségről és költségről. Minél alacsonyabb a küszöb, annál jobb a rendelkezésre állás. Minél magasabb a küszöb, annál jobb a költség. A következő ábrán a grafikont úgy ábrázoltuk, hogy a hívási metrikák felső határa 55%, alsó határa pedig 45%. A felső grafikon a meghívásokat és a késleltetési mutatókat mutatja; az alsó grafikon a felhasználási mutatókat mutatja.
A következő mintakóddal módosíthatja a százalékokat, és megtekintheti, hogy mik a korlátok a meghívások, a várakozási idő és a felhasználási mutatók tekintetében. Erősen javasoljuk, hogy játsszon a százalékokkal, és találja meg a legjobb illeszkedést a mutatói alapján.
def analysis_inference_recommender_result(job_name, index=0, upper_threshold=80.0, lower_threshold=65.0):
Mivel ebben a példában szeretnénk optimalizálni a rendelkezésre állást és a költségeket, úgy döntöttünk, hogy 50%-os összesített CPU-kihasználást használunk. Mivel kétmagos gépet választottunk, az összesített CPU kihasználtságunk 200%. Ezért 100%-os küszöböt határoztunk meg a CPU kihasználtságra, mivel két mag esetében 50%-ot teszünk. A kihasználtsági küszöb mellett az InvocationPerInstance küszöbértéket is 5000-re állítjuk. Az InvocationPerInstance értékét a CPUUtilization = 100%-os átfedésből származtatjuk a meghívási grafikonon.
A méretezési terv 1. lépésének részeként (a következő ábrán látható) összehasonlítottuk az alkalmazást az Inference Recommender alapértelmezett feladatával, elemeztük az eredményeket, és meghatároztuk a méretezési korlátot a költségek és a rendelkezésre állás alapján.
Állítsa be a méretezési elvárásokat
A következő lépés az elvárások felállítása, és ezekre az elvárásokra épülő skálázási szabályzatok kidolgozása. Ez a lépés magában foglalja a kiszolgálandó kérések maximális és minimális számának meghatározását, valamint további részleteket, például, hogy mekkora lehet az alkalmazás által kezelt maximális kérelmek növekedése? Sima vagy tüskés a forgalom? Az ehhez hasonló adatok segítenek meghatározni az elvárásokat, és segítenek az igényeknek megfelelő skálázási irányelv kialakításában.
A következő ábra egy példa forgalmi mintát mutat be.
Alkalmazásunknál a maximális kérések másodpercenként (max) = 500, a minimális kérések másodpercenként (min) = 70.
Ezen elvárások alapján a következő képlet segítségével határozzuk meg a MinCapacity és MaxCapacity értékeket. A következő számításokhoz az InvocationsPerInstance értéket másodpercekre normalizáljuk, mert percenként. Ezenkívül meghatározzuk a növekedési tényezőt, amely az a többletkapacitás mennyisége, amelyet hajlandó hozzáadni, ha a lépték meghaladja a másodpercenkénti maximális kérések számát. A növekedési_tényezőnek mindig nagyobbnak kell lennie 1-nél, és ez elengedhetetlen a további növekedés tervezésénél.
MinCapacity = ceil(min / (InvocationsPerInstance/60) )
MaxCapacity = ceil(max / (InvocationsPerInstance/60)) * Growth_factor
Végül a MinCapacity = 1 és a MaxCapacity = 8 értékhez jutunk (20% növekedési tényezővel), és azt tervezzük, hogy kezeljük a tüskés forgalmi mintát.
Határozza meg a méretezési irányelveket és ellenőrizze
Az utolsó lépés a méretezési politika meghatározása és hatásának értékelése. Az értékelés az eddigi számítások eredményeinek érvényesítését szolgálja. Ezenkívül segít a méretezési beállítás módosításában, ha az nem felel meg az igényeinknek. Az értékelés az Inference Recommender speciális feladat használatával történik, ahol megadjuk a forgalmi mintát, a MaxInvocations-t és a végpontot, amellyel összehasonlítani kell. Ebben az esetben kiépítjük a végpontot és beállítjuk a méretezési házirendeket, majd futtatjuk az Inference Recommender speciális feladatot a házirend érvényesítéséhez.
Célkövetés
Javasoljuk, hogy az InvocationsPerInstance alapján állítsa be a célkövetést. A küszöbértéket már az 1. lépésben meghatároztuk, ezért a CPUUtilization küszöbértékét 100-ra, az InvocationsPerInstance küszöbértékét pedig 5000-re állítjuk. Először is meghatározunk egy skálázási szabályzatot az InvocationsPerInstance száma alapján, majd létrehozunk egy skálázási szabályzatot, amely a CPU-ra támaszkodik. hasznosítás.
A mintajegyzetfüzethez hasonlóan a következő funkciókat használjuk a méretezési házirendek regisztrálásához és beállításához:
def set_target_scaling_on_invocation(endpoint_name, variant_name, target_value, scale_out_cool_down=10, scale_in_cool_down=100): policy_name = 'target-tracking-invocations-{}'.format(str(round(time.time()))) resource_id = "endpoint/{}/variant/{}".format(endpoint_name, variant_name) response = aas_client.put_scaling_policy( PolicyName=policy_name, ServiceNamespace='sagemaker', ResourceId=resource_id, ScalableDimension='sagemaker:variant:DesiredInstanceCount', PolicyType='TargetTrackingScaling', TargetTrackingScalingPolicyConfiguration={ 'TargetValue': target_value, 'PredefinedMetricSpecification': { 'PredefinedMetricType': 'SageMakerVariantInvocationsPerInstance', }, 'ScaleOutCooldown': scale_out_cool_down, 'ScaleInCooldown': scale_in_cool_down, 'DisableScaleIn': False } ) return policy_name, response def set_target_scaling_on_cpu_utilization(endpoint_name, variant_name, target_value, scale_out_cool_down=10, scale_in_cool_down=100): policy_name = 'target-tracking-cpu-util-{}'.format(str(round(time.time()))) resource_id = "endpoint/{}/variant/{}".format(endpoint_name, variant_name) response = aas_client.put_scaling_policy( PolicyName=policy_name, ServiceNamespace='sagemaker', ResourceId=resource_id, ScalableDimension='sagemaker:variant:DesiredInstanceCount', PolicyType='TargetTrackingScaling', TargetTrackingScalingPolicyConfiguration={ 'TargetValue': target_value, 'CustomizedMetricSpecification': { 'MetricName': 'CPUUtilization', 'Namespace': '/aws/sagemaker/Endpoints', 'Dimensions': [ {'Name': 'EndpointName', 'Value': endpoint_name}, {'Name': 'VariantName', 'Value': variant_name} ], 'Statistic': 'Average', 'Unit': 'Percent' }, 'ScaleOutCooldown': scale_out_cool_down, 'ScaleInCooldown': scale_in_cool_down, 'DisableScaleIn': False } ) return policy_name, response
Mivel a tüskés forgalmi mintákat kezelnünk kell, a minta-jegyzetfüzet a ScaleOutCooldown = 10 és a ScaleInCooldown = 100 értékeket használja lehűlési értékként. Ahogy a következő lépésben értékeljük a szabályzatot, azt tervezzük, hogy módosítjuk a lehűlési időszakot (ha szükséges).
Értékelési cél követése
Az értékelés az Inference Recommender speciális feladat használatával történik, ahol megadjuk a forgalmi mintát, a MaxInvocations-t és a végpontot, amellyel összehasonlítani kell. Ebben az esetben kiépítjük a végpontot és beállítjuk a méretezési házirendeket, majd futtatjuk az Inference Recommender speciális feladatot a házirend érvényesítéséhez.
from inference_recommender import trigger_inference_recommender_evaluation_job
from result_analysis import analysis_evaluation_result eval_job = trigger_inference_recommender_evaluation_job(model_package_arn=model_package_arn, execution_role=role, endpoint_name=endpoint_name, instance_type=instance_type, max_invocations=max_tps*60, max_model_latency=10000, spawn_rate=1) print ("Evaluation job = {}, EndpointName = {}".format(eval_job, endpoint_name)) # In the next step, we will visualize the cloudwatch metrics and verify if we reach 30000 invocations.
max_value = analysis_evaluation_result(endpoint_name, variant_name, job_name=eval_job) print("Max invocation realized = {}, and the expecation is {}".format(max_value, 30000))
A teljesítményértékelést követően megjelenítettük a meghívási grafikont, hogy megértsük, hogyan reagál a rendszer a méretezési szabályzatokra. Az általunk kialakított méretezési házirend képes kezelni a kéréseket, és hiba nélkül elérheti a 30,000 XNUMX hívást.
Most pedig nézzük meg, mi történik, ha megháromszorozzuk az új felhasználók arányát. Ugyanez a politika érvényes? Megismételhetjük ugyanazt a kiértékelési készletet magasabb kérési arány mellett, és a spawn arányt (egy további felhasználó percenként) 3-ra állíthatjuk.
A fenti eredménnyel megerősítjük, hogy a jelenlegi automatikus skálázási politika még az agresszív forgalmi mintákat is lefedi.
Lépésméretezés
A célkövetés mellett a lépéses skálázás használatát is javasoljuk az agresszív forgalom jobb ellenőrzése érdekében. Ezért egy további lépésskálát határoztunk meg skálázási beállításokkal a tüskés forgalom kezelésére.
def set_step_scaling(endpoint_name, variant_name): policy_name = 'step-scaling-{}'.format(str(round(time.time()))) resource_id = "endpoint/{}/variant/{}".format(endpoint_name, variant_name) response = aas_client.put_scaling_policy( PolicyName=policy_name, ServiceNamespace='sagemaker', ResourceId=resource_id, ScalableDimension='sagemaker:variant:DesiredInstanceCount', PolicyType='StepScaling', StepScalingPolicyConfiguration={ 'AdjustmentType': 'ChangeInCapacity', 'StepAdjustments': [ { 'MetricIntervalLowerBound': 0.0, 'MetricIntervalUpperBound': 5.0, 'ScalingAdjustment': 1 }, { 'MetricIntervalLowerBound': 5.0, 'MetricIntervalUpperBound': 80.0, 'ScalingAdjustment': 3 }, { 'MetricIntervalLowerBound': 80.0, 'ScalingAdjustment': 4 }, ], 'MetricAggregationType': 'Average' }, ) return policy_name, response
Értékelési lépések skálázása
Ezután ugyanazt a lépést követjük az értékeléshez, és a benchmark után megerősítjük, hogy a skálázási házirend képes kezelni a tüskés forgalmi mintát, és hiba nélkül eléri a 30,000 XNUMX hívást.
Ezért a skálázási irányelvek meghatározása és az eredmények kiértékelése az Inference Recommender segítségével az érvényesítés szükséges része.
További tuning
Ebben a részben a további hangolási lehetőségeket tárgyaljuk.
Több méretezési lehetőség
Ahogy a használati esetünkből kiderül, többféle méretezési szabályzatot is kiválaszthat, amelyek megfelelnek az igényeinek. A korábban említett opciókon túlmenően az ütemezett méretezést is fontolóra kell vennie, ha egy bizonyos időszakra előrejelzi a forgalmat. A skálázási irányelvek kombinációja hatékony, és olyan benchmarking eszközökkel kell értékelni, mint az Inference Recommender.
Méretezze fel vagy le
A SageMaker Hosting több mint 100 példánytípust kínál a modell tárolására. A forgalmi terhelést korlátozhatja a választott hardver, ezért fontoljon meg más hosting hardvert. Például, ha azt szeretné, hogy egy rendszer másodpercenként 1,000 kérést kezeljen, a kilépés helyett inkább növelje a méretet. Az olyan gyorsítópéldányok, mint a G5 és az Inf1, nagyobb számú kérést tudnak feldolgozni egyetlen gazdagépen. A felfelé és lefelé skálázás bizonyos forgalmi igények esetén jobb ellenálló képességet biztosíthat, mint a ki- és belépés.
Egyéni mutatók
Az InvocationsPerInstance és más SageMaker tárhely-mérőszámok mellett metrikákat is meghatározhat az alkalmazás méretezéséhez. A méretezéshez használt egyéni metrikáknak azonban a rendszer terhelését kell ábrázolniuk. A mutatók értékének növekednie kell, ha a kihasználtság magas, máskülönben pedig csökkennie kell. Az egyéni metrikák részletesebbé tehetik a terhelést, és segíthetnek az egyéni méretezési házirendek meghatározásában.
Méretezési riasztás beállítása
A skálázási szabályzat meghatározásával riasztást hoz létre a méretezéshez, és ezeket a riasztásokat a rendszer a méretezéshez és a kicsinyítéshez használja. Ezeknek a riasztásoknak azonban van egy alapértelmezett számú adatpontja, amelyen riasztást kapnak. Ha módosítani szeretné a riasztás adatpontjainak számát, megteheti. Mindazonáltal a méretezési házirendek bármilyen frissítése után ajánlatos a házirendet értékelni egy összehasonlító eszköz segítségével azzal a terheléssel, amelyet kezelnie kell.
Következtetés
Az alkalmazás méretezési szabályzatának meghatározása kihívást jelenthet. Meg kell értenie az alkalmazás jellemzőit, meg kell határoznia a méretezési igényeit, és meg kell ismételnie a méretezési irányelveket, hogy megfeleljen ezeknek az igényeknek. Ez a bejegyzés áttekintette ezeket a lépéseket, és elmagyarázta az egyes lépéseknél követendő megközelítést. Az Inference Recommender benchmarking rendszer segítségével megtalálhatja az alkalmazás jellemzőit, és kiértékelheti a méretezési irányelveket. A javasolt tervezési minta segíthet napok helyett órákon belül skálázható alkalmazás létrehozásában, amely figyelembe veszi az alkalmazás elérhetőségét és költségét.
A szerzőkről
Mohan Gandhi az AWS vezető szoftvermérnöke. Az elmúlt 10 évben az AWS-nél dolgozott, és különféle AWS-szolgáltatásokon dolgozott, mint például az EMR, az EFA és az RDS. Jelenleg a SageMaker Inference Experience fejlesztésére összpontosít. Szabadidejében szeret túrázni és maratonozni.
Vikram Elango AI/ML Specialist Solutions Architect az Amazon Web Servicesnél, Virginia államban, USA-ban. A Vikram a pénzügyi és biztosítási ágazat ügyfeleit tervezéssel, vezető szereppel segíti a gépi tanulási alkalmazások nagyszabású létrehozásában és üzembe helyezésében. Jelenleg a természetes nyelvi feldolgozásra, a felelős AI-re, a következtetések optimalizálására és az ML méretezésére összpontosít a vállalaton belül. Szabadidejében szeret utazni, kirándulni, főzni és kempingezni családjával.
Venkatesh Krishnan vezeti az Amazon SageMaker termékkezelését az AWS-ben. Ő a terméktulajdonosa a SageMaker szolgáltatás portfóliójának, amely lehetővé teszi az ügyfelek számára, hogy gépi tanulási modelleket telepítsenek a következtetéshez. Korábban az Amazon AppFlow termék-, integrációs és vezető termékmenedzsere volt, egy új AWS-szolgáltatás, amelyet az alapoktól segített felépíteni. Mielőtt 2018-ban csatlakozott volna az Amazonhoz, Venkatesh különböző kutatási, mérnöki és termékipari szerepköröket töltött be a Qualcomm, Inc.-nél. PhD fokozatot szerzett elektromos és számítástechnikai mérnökökből a Georgia Technél, valamint MBA fokozatot az ULCA Anderson School of Management-én.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/optimize-your-machine-learning-deployments-with-auto-scaling-on-amazon-sagemaker/
- 000
- 1
- 10
- 100
- 2018
- 7
- 70
- 9
- a
- Képes
- Rólunk
- felett
- gázpedál
- Fiók
- Elérése
- elért
- át
- aktív
- hozzáadott
- mellett
- További
- Ezen kívül
- elfogadja
- fejlett
- Után
- ellen
- agresszív
- AI
- AI / ML
- riasztás
- Minden termék
- lehetővé teszi, hogy
- már
- Bár
- mindig
- amazon
- Amazon SageMaker
- Az Amazon Web Services
- összeg
- elemez
- és a
- várható
- api
- Alkalmazás
- alkalmazások
- alkalmazott
- alkalmaz
- Alkalmazása
- megközelítés
- építészet
- körül
- megjelenés
- Támogatás
- Hitelesítés
- meghatalmazás
- auto
- Automatikus
- automatikusan
- elérhetőség
- átlagos
- AWS
- Egyenleg
- alapján
- mert
- válik
- előtt
- mögött
- benchmark
- összehasonlított
- benchmarking
- BEST
- Jobb
- között
- Alsó
- megsértése
- hoz
- Bring
- széles
- épít
- Épület
- épült
- teher
- üzleti
- számítások
- hívás
- hívott
- Kapacitás
- eset
- esetek
- kihívást
- változik
- Változások
- jellemzők
- választás
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- választott
- osztályok
- vásárló
- kód
- kombináció
- össze
- általában
- közlés
- teljes
- Kiszámít
- számítógép
- Informatika
- Configuration
- megerősít
- Fontolja
- Konténer
- Konténerek
- ellenőrzés
- Mag
- Költség
- költséghatékony
- kiadások
- tudott
- terjed
- teremt
- létrehozása
- Jelenlegi
- Jelenleg
- szokás
- Ügyfelek
- dátum
- adat pontok
- Nap
- határozott
- csökkenés
- alapértelmezett
- meghatározott
- meghatározó
- Kereslet
- attól
- telepíteni
- telepített
- bevetés
- bevetések
- Származtatott
- Design
- kívánatos
- részletek
- Határozzuk meg
- eltökélt
- meghatározó
- Fejleszt
- fejlett
- különböző
- méretek
- közvetlenül
- megvitatni
- Nem
- Ennek
- domain
- ne
- le-
- rajz
- dinamikusan
- minden
- Korábban
- hatékonyan
- Bonyolult
- lehetővé
- Endpoint
- mérnök
- Mérnöki
- Vállalkozás
- teljesen
- Környezet
- hiba
- hibák
- alapvető
- megalapozott
- értékelni
- értékelték
- értékelő
- értékelés
- Még
- esemény
- Minden
- példa
- meghaladja
- Gyakorol
- várakozás
- várakozások
- várható
- tapasztalat
- magyarázható
- tényezők
- nem sikerül
- család
- Jellemzők
- Ábra
- utolsó
- pénzügyi
- Találjon
- vezetéknév
- megfelelő
- összpontosított
- következik
- következő
- Előrejelzés
- képlet
- Keretrendszer
- Frekvencia
- ból ből
- teljesen
- funkciók
- további
- Továbbá
- általános
- generál
- generált
- Grúzia
- szerzés
- adott
- ad
- GPU
- GPU
- fokozatosan
- grafikon
- nagyobb
- Földi
- Növekedés
- fogantyú
- megtörténik
- hardver
- fej
- segít
- segített
- segít
- Magas
- <p></p>
- nagyon
- tart
- vendéglátó
- házigazdája
- tárhely
- NYITVATARTÁS
- Hogyan
- azonban
- HTML
- HTTPS
- ideális
- azonosítani
- Hatás
- importál
- fontos
- javuló
- in
- Inc.
- tartalmaz
- magában foglalja a
- Beleértve
- Növelje
- Növeli
- növekvő
- független
- egyéni
- ipar
- Infrastruktúra
- meglátások
- példa
- helyette
- biztosítás
- integrálni
- integrációk
- IT
- Munka
- Állások
- csatlakozott
- Ismerve
- ismert
- nyelv
- nagy
- keresztnév
- Késleltetés
- vezet
- Vezetés
- vezetékek
- tanulás
- Lets
- szint
- LIMIT
- Korlátozott
- határértékek
- vonal
- Lista
- kiszámításának
- helyi
- hosszabb
- néz
- gép
- gépi tanulás
- készült
- KÉSZÍT
- kezelése
- sikerült
- vezetés
- menedzser
- sok
- max
- maximális
- Találkozik
- Megfelel
- Memory design
- említett
- módszer
- mód
- metrikus
- Metrics
- minimum
- perc
- ML
- modell
- modellek
- több
- a legtöbb
- mozog
- többszörös
- szorozva
- név
- Természetes
- Természetes nyelvi feldolgozás
- elengedhetetlen
- Szükség
- igények
- hálózatba
- Mindazonáltal
- Új
- következő
- jegyzetfüzet
- szám
- számok
- szerez
- Ajánlatok
- ONE
- online
- operatív
- optimalizálás
- Optimalizálja
- optimalizálása
- opció
- Opciók
- érdekében
- Más
- másképp
- átfogó
- áttekintés
- saját
- tulajdonos
- rész
- Múló
- Mintás
- minták
- Fizet
- Csúcs
- százalék
- százalék
- teljesítmény
- időszak
- vedd
- terv
- tervezés
- Plató
- Platón adatintelligencia
- PlatoData
- játszani
- pont
- Politikák
- politika
- portfolió
- állás
- erős
- Tippek
- előkészítése
- korábban
- folyamat
- feldolgozás
- Termékek
- termékmenedzsment
- termék menedzser
- Termelés
- Termékek
- javasolt
- ad
- biztosít
- ellátás
- tesz
- Qualcomm
- gyorsan
- hatótávolság
- Arány
- el
- Elér
- igazi
- real-time
- realizált
- kap
- ajánl
- Ajánlást
- ajánlások
- ajánlott
- ismétlődő
- csökkenteni
- Regisztráció
- regisztráció
- eszébe jut
- eltávolítása
- kérni
- kéri
- követelmény
- követelmények
- kutatás
- rugalmasság
- Reagálni
- válasz
- felelős
- eredményez
- Eredmények
- visszatérés
- Visszatér
- Kritika
- felül
- szerepek
- Szabály
- futás
- futás
- sagemaker
- SageMaker következtetés
- azonos
- skálázható
- Skála
- skálázás
- menetrend
- tervezett
- Iskola
- Keresés
- Második
- másodperc
- Rész
- kiválasztott
- kiválasztás
- idősebb
- szolgál
- szolgálja
- szolgáltatás
- Szolgáltatások
- készlet
- beállítás
- felépítés
- árnyék
- kellene
- mutatott
- Műsorok
- Egyszerű
- egyszerűsített
- egyetlen
- Méret
- méretek
- So
- eddig
- szoftver
- Software Engineer
- Megoldások
- néhány
- Hely
- szakember
- osztott
- kezdet
- Lépés
- Lépései
- Leállítja
- tárolás
- ilyen
- Támogatott
- Támogatja
- rendszer
- szisztémás
- Vesz
- tart
- cél
- Feladat
- tech
- A
- A grafikon
- azok
- ebből adódóan
- Harmadik
- gondoltam
- gondolkodás vezetés
- három
- háromlépcsős
- küszöb
- áteresztőképesség
- idő
- alkalommal
- nak nek
- szerszám
- szerszámok
- felső
- Csomagkövetés
- forgalom
- Képzések
- Utazó
- Hármas
- típusok
- jellemzően
- mindenütt jelenlevő
- megért
- egyedi
- egység
- egységek
- Frissítések
- us
- USA
- használ
- használati eset
- használó
- ÉRVÉNYESÍT
- érvényesítés
- érték
- Értékek
- Változat
- fajta
- különféle
- ellenőrzése
- keresztül
- Virginia
- módon
- háló
- webes szolgáltatások
- Mit
- Mi
- vajon
- ami
- míg
- lesz
- hajlandó
- belül
- nélkül
- Munka
- dolgozott
- művek
- XGBoost
- év
- te
- A te
- zephyrnet