Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker aszinkron következtetési végpontjaival

Sok AWS-ügyfelünk nyújt kutatást, elemzést és üzleti intelligenciát szolgáltatásként. Az ilyen típusú kutatás és üzleti intelligencia lehetővé teszi végfelhasználóik számára, hogy a piacok és a versenytársak előtt maradjanak, azonosítsák a növekedési lehetőségeket, és proaktív módon kezeljék a problémákat. Például egyes pénzügyi szolgáltatási szektorbeli ügyfeleink kutatásokat végeznek részvények, fedezeti alapok és befektetési alapok számára, hogy segítsenek nekik megérteni a trendeket és azonosítani a portfólióstratégiákat. Az egészségiparban az egészségügyi kutatások egyre nagyobb része információalapú. A kutatások nagy része olyan adatok elemzésével jár, amelyeket eredetileg diagnosztikai, kezelési vagy egyéb kutatási projektekhez gyűjtöttek, és most új kutatási célokra használnak fel. Az egészségügyi kutatás ezen formái eredményes primer prevencióhoz vezettek az új esetek elkerülése érdekében, másodlagos prevencióhoz a korai felismeréshez és megelőzéshez a jobb betegségkezelés érdekében. A kutatási eredmények nemcsak az életminőséget javítják, hanem az egészségügyi kiadásokat is csökkentik.

Az ügyfelek hajlamosak a nyilvános és magánforrásokból származó információkat megemészteni. Ezután bevett vagy egyedi természetes nyelvi feldolgozási (NLP) modelleket alkalmaznak, hogy összefoglalják és azonosítsák a trendet, és betekintést nyerjenek ezen információk alapján. Az ilyen típusú kutatási feladatokhoz használt NLP-modellek nagy modellekkel foglalkoznak, és általában hosszú cikkeket foglalnak magukban, amelyeket a korpusz méretét figyelembe véve kell összefoglalni – és dedikált végpontokat, amelyek jelenleg nincsenek költségoptimalizálva. Ezek az alkalmazások a nap különböző szakaszaiban kapnak bejövő forgalmat.

Meggyőződésünk, hogy az ügyfelek nagy hasznot húznának abból a lehetőségből, hogy szükség szerint nullára kicsinyíthetik, és szükség szerint fokozhatják következtetési képességüket. Ez optimalizálja a kutatási költségeket, és még mindig nem veszélyezteti a következtetések minőségét. Ez a bejegyzés azt tárgyalja, hogyan ölelkezik az arc Amazon SageMaker az aszinkron következtetés segíthet ennek elérésében.

Szövegösszegzési modelleket készíthet több mélytanulási keretrendszerrel, mint például a TensorFlow, a PyTorch és az Apache MXNet. Ezek a modellek jellemzően nagy mennyiségű, különböző méretű szöveges dokumentumot tartalmaznak. A fejlett mély tanulási modellek számításigényes előfeldolgozást igényelnek a modellkövetkeztetés előtt. A feldolgozási idő néhány percig is eltarthat, ami eltávolítja a valós idejű következtetés futtatásának lehetőségét a hasznos terhek HTTP API-n keresztül történő átadásával. Ehelyett a bemeneti hasznos terheket aszinkron módon kell feldolgoznia egy objektumtárolóból, például Amazon egyszerű tárolási szolgáltatás (Amazon S3) automatikus sorbanállással és előre meghatározott egyidejűségi küszöbértékkel. A rendszernek képesnek kell lennie állapotértesítések fogadására, és csökkentenie kell a szükségtelen költségeket az erőforrások megtisztításával, amikor a feladatok befejeződtek.

A SageMaker segít az adattudósoknak és fejlesztőknek kiváló minőségű gépi tanulási (ML) modellek gyors előkészítésében, megépítésében, betanításában és üzembe helyezésében azáltal, hogy az ML-hez tervezett képességek széles körét egyesíti. A SageMaker biztosítja a legfejlettebb nyílt forráskódú modellkiszolgáló konténereket az XGBoosthoz (konténer, SDK), Scikit-Learn (konténer, SDK), PyTorch (konténer, SDK), TensorFlow (konténer, SDK), és az Apache MXNet (konténer, SDK).

A SageMaker négy lehetőséget kínál a betanított ML-modellek telepítésére az új adatokra vonatkozó következtetések előállításához.
  1. Valós idejű következtetés A végpontok olyan munkaterhelésekhez alkalmasak, amelyeket alacsony késleltetési követelmények mellett kell feldolgozni, ms-tól másodpercig terjedő nagyságrendben.
  2. Kötegelt átalakítás ideális offline előrejelzésekhez nagy adatkötegek esetén.
  3. Amazon SageMaker szerver nélküli következtetés (előzetes módban, és az írás pillanatában nem ajánlott éles munkaterhelésekhez) egy célzott következtetési lehetőség, amely megkönnyíti az ML-modellek telepítését és méretezését. A Serverless Inference ideális olyan munkaterhelésekhez, amelyeknél a forgalom kitörései között üresjáratok vannak, és elviselik a hidegindítást.
  4. Aszinkron következtetés végpontok sorba állítják a bejövő kéréseket. Ideálisak olyan munkaterhelésekhez, ahol a kérések mérete nagy (akár 1 GB), és a következtetések feldolgozási ideje percek nagyságrendje (akár 15 perc). Az aszinkron következtetés lehetővé teszi a költségek megtakarítását azáltal, hogy automatikusan nullára skálázza a példányszámot, amikor nincs feldolgozandó kérés.

Megoldás áttekintése

Ebben a bejegyzésben bemutatjuk a PEGASUS modell amelyet előre kiképeztek a szöveges összegzés elkészítésére Átölelő arc nak nek SageMaker hosting szolgáltatások. A Hugging Face modelljét az egyszerűség kedvéért használjuk. Azonban megteheti finomhangolja a modellt egy egyéni adatkészlet alapján. Kipróbálhat más, itt kapható modelleket is Átölelő arcmodell központ. Egy aszinkron következtetési végpontot is biztosítunk, amely ezt a modellt tárolja, és amelyből előrejelzéseket kaphat.

Az aszinkron következtetési végpont következtetéskezelője egy cikket vár bemeneti hasznos adatként. A cikk összefoglaló szövege a kimenet. A kimenetet az adatbázisban tárolják a trendek elemzéséhez, vagy továbbítják a további elemzésekhez. Ez a downstream elemzés olyan adatbetekintést nyer, amely segíti a kutatást.

Bemutatjuk, hogy az aszinkron következtetési végpontok hogyan teszik lehetővé a felhasználó által meghatározott párhuzamossági és befejezési értesítéseket. A végpont mögötti példányok automatikus skálázását úgy konfiguráljuk, hogy a forgalom lecsökkenésekor nullára skálázzuk, és a kérési sor megtelésekor visszaméretezzük.

Azt is használjuk amazonfelhőóra mérőszámok a sor méretének, a teljes feldolgozási időnek és a feldolgozott hívásoknak a figyeléséhez.

A következő diagramban bemutatjuk az aszinkron következtetési végpont használatával végzett következtetés végrehajtásának lépéseit.

Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

  1. A mi előképzett PEGAZUS Az ML modellt először a skálázási végpont tárolja.
  2. A felhasználó feltölti az összefoglalandó cikket egy bemeneti S3 gyűjtőhelyre.
  3. Az aszinkron következtetési végpont meghívása API segítségével történik.
  4. A következtetés befejezése után az eredmény az S3 kimeneti vödörbe kerül mentésre.
  5. An Amazon Simple Notification Service (Amazon SNS) értesítést küld a felhasználónak, amely értesíti őket a sikerről vagy a kudarcról.

Hozzon létre egy aszinkron következtetési végpontot

A valós idejű hosztolt végponthoz hasonlóan létrehozzuk az aszinkron következtetési végpontot. A lépések közé tartozik a SageMaker modell létrehozása, majd a végpont konfigurálása és a végpont telepítése. A különbség a két típusú végpont között az, hogy az aszinkron következtetés végpont konfigurációja tartalmaz egy AsyncInferenceConfig szakasz. Itt megadjuk az S3 kimeneti útvonalat a végpont-hívás eredményeihez, és opcionálisan megadjuk az SNS-témákat a sikerről és a kudarcról szóló értesítésekhez. Meghatározzuk az egyidejű meghívások maximális számát példányonként, ahogyan azt az ügyfél határozza meg. Lásd a következő kódot:

AsyncInferenceConfig={ "OutputConfig": { "S3OutputPath": f"s3://{bucket}/{bucket_prefix}/output", # Optionally specify Amazon SNS topics for notifications "NotificationConfig": { "SuccessTopic": success_topic, "ErrorTopic": error_topic, } }, "ClientConfig": { "MaxConcurrentInvocationsPerInstance": 2 #increase this value up to throughput peak for ideal performance } }

Az aszinkron következtetéshez végpont-konfiguráció létrehozásához szükséges API-val kapcsolatos részletekért lásd: Hozzon létre egy aszinkron következtetési végpontot.

Hívja meg az aszinkron következtetési végpontot

A következő képernyőképen egy rövid cikk látható, amelyet bemeneti hasznos adatként használunk:
Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

A következő kód feltölti a cikket an input.json fájl az Amazon S3-ra:

sm_session.upload_data( input_location, bucket=sm_session.default_bucket(), key_prefix=prefix, extra_args={"ContentType": "text/plain"})

Az Amazon S3 URI-t használjuk a bemeneti hasznos adatfájlhoz a végpont meghívásához. A válaszobjektum tartalmazza az Amazon S3 kimeneti helyét az eredmények lekéréséhez a befejezés után:

response = sm_runtime.invoke_endpoint_async(EndpointName=endpoint_name, InputLocation=input_1_s3_location)
output_location = response['OutputLocation']

A következő képernyőképen látható a minta kimeneti összefoglalása:
Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

Az aszinkron következtetési végpont meghívásához használt API-val kapcsolatos részletekért lásd: Hívjon meg egy aszinkron következtetési végpontot.

Állítsa sorba a meghívási kéréseket a felhasználó által meghatározott párhuzamossággal

Az aszinkron következtetési végpont automatikusan sorba állítja a hívási kérelmeket. Ez egy teljesen felügyelt sor különféle megfigyelési mérőszámokkal, és nem igényel további konfigurációt. Használja a MaxConcurrentInvocationsPerInstance paramétert az előző végpont-konfigurációban a sorból érkező új kérések feldolgozásához, miután a korábbi kérések befejeződtek. MaxConcurrentInvocationsPerInstance a SageMaker kliens által a modelltárolóhoz küldött egyidejű kérések maximális száma. Ha nincs megadva érték, a SageMaker kiválasztja az Ön számára optimális értéket.

Példányok automatikus skálázása az aszinkron következtetési végponton belül

Az automatikus méretezési házirendet úgy állítottuk be, hogy minimális kapacitása nulla és maximális kapacitása öt példány. A valós idejű hosztolt végpontokkal ellentétben az aszinkron következtetési végpontok támogatják a példányok nullára kicsinyítését a minimális kapacitás nullára állításával. Használjuk a ApproximateBacklogSizePerInstance metrika a méretezési házirend-konfigurációhoz, példányonként ötös célsorhátralékkal a további méretezés érdekében. Beállítottuk a lehűlési időszakot ScaleInCooldown 120 másodpercig és a ScaleOutCooldown 120 másodpercig. Az érték a ApproximateBacklogSizePerInstance a forgalom és a méretezési sebességre való érzékenysége alapján kerül kiválasztásra. Minél gyorsabban léptet be, annál kevesebb költséggel kell számolnia, de annál valószínűbb, hogy új kérelmek beérkezésekor újra fel kell lépnie. Minél lassabban lép be, annál több költséget jelent, de kevésbé valószínű, hogy olyan kérés érkezik, amikor alulméretezett.

client = boto3.client('application-autoscaling') # Common class representing Application Auto Scaling for SageMaker amongst other services resource_id='endpoint/' + endpoint_name + '/variant/' + 'variant1' # This is the format in which application autoscaling references the endpoint response = client.register_scalable_target(
ServiceNamespace='sagemaker', #
ResourceId=resource_id,
ScalableDimension='sagemaker:variant:DesiredInstanceCount',
MinCapacity=0,
MaxCapacity=5
) response = client.put_scaling_policy(
PolicyName='Invocations-ScalingPolicy',
ServiceNamespace='sagemaker', # The namespace of the AWS service that provides the resource.
ResourceId=resource_id, # Endpoint name
ScalableDimension='sagemaker:variant:DesiredInstanceCount', # SageMaker supports only Instance Count
PolicyType='TargetTrackingScaling', # 'StepScaling'|'TargetTrackingScaling'
TargetTrackingScalingPolicyConfiguration={ 'TargetValue': 5.0, # The target value for the metric. 'CustomizedMetricSpecification': { 'MetricName': 'ApproximateBacklogSizePerInstance', 'Namespace': 'AWS/SageMaker', 'Dimensions': [{'Name': 'EndpointName', 'Value': endpoint_name }], 'Statistic': 'Average',
}, 'ScaleInCooldown': 120, # ScaleInCooldown - The amount of time, in seconds, after a scale-in activity completes before another scale in activity can start. 'ScaleOutCooldown': 120 # ScaleOutCooldown - The amount of time, in seconds, after a scale-out activity completes before another scale out activity can start.
# 'DisableScaleIn': True|False - indicates whether scale in by the target tracking policy is disabled.
# If the value is true, scale-in is disabled and the target tracking policy won't remove capacity from the scalable resource.
}
)

Az aszinkron következtetési végpont automatikus skálázására szolgáló API-val kapcsolatos részletekért lásd a Aszinkron következtetési végpont automatikus skálázása.

Konfigurálja az aszinkron következtetési végpontról érkező értesítéseket

Két külön SNS-témát hozunk létre a siker- és hibaértesítésekhez minden végpont-hívási eredményhez:

sns_client = boto3.client('sns')
response = sns_client.create_topic(Name="Async-Demo-ErrorTopic2")
error_topic = response['TopicArn']
response = sns_client.create_topic(Name="Async-Demo-SuccessTopic2")
success_topic = response['TopicArn']

Az értesítések egyéb lehetőségei közé tartozik az S3 tároló kimenetének időszakos ellenőrzése, vagy az S3 gyűjtőcsoport értesítések használata egy AWS Lambda funkció fájlfeltöltéskor. A korábban leírtak szerint az SNS-értesítések a végpont konfigurációs szakaszában találhatók.

Az aszinkron következtetési végpontról érkező értesítések beállításával kapcsolatos részletekért lásd: Ellenőrizze az előrejelzési eredményeket.

Figyelje az aszinkron következtetési végpontot

Az aszinkron következtetés végpontját az aszinkron következtetésekre jellemző beépített további CloudWatch-metrikákkal figyeljük. Például minden esetben figyeljük a sor hosszát a segítségével ApproximateBacklogSizePerInstance és a teljes várólista hossza ApproximateBacklogSize.

A mutatók teljes listáját lásd: Aszinkron következtetési végpontok figyelése.

Optimalizálhatjuk a végpont konfigurációját, hogy a legköltséghatékonyabb példányt kapjuk nagy teljesítménnyel. Például használhatunk egy példányt az Amazon Elastic Inference vagy az AWS Inferentia segítségével. Fokozatosan növelhetjük a párhuzamossági szintet az átviteli csúcsig, miközben módosítjuk a többi modellkiszolgáló és konténer paramétereit.

CloudWatch grafikonok

10,000 XNUMX következtetési kérésből álló forgalmat szimuláltunk, amely egy időszak alatt az előző szakaszban ismertetett automatikus skálázási szabályzattal engedélyezett aszinkron következtetési végponthoz érkezett.

A következő képernyőképen a példánymérők láthatók, mielőtt a kérelmek beérkeztek volna. Kezdjük egy élő végponttal, amelyben nulla példány fut:
Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

Az alábbi grafikon bemutatja, hogyan BacklogSize és a BacklogSizePerInstance a metrikák megváltoznak, ahogy az automatikus skálázás beindul, és a végpont terhelése megoszlik több olyan példány között, amelyek az automatikus skálázási folyamat részeként kerültek kiépítésre.
Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

Amint az a következő képernyőképen látható, az esetek száma nőtt a következtetések számának növekedésével:
Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

A következő képernyőkép azt mutatja, hogy a méretezés hogyan hozza vissza a végpontot a nulla futó példány kezdeti állapotába:
Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.

Tisztítsuk meg

Az összes kérés befejezése után a valós idejű hosztolt végpontok törléséhez hasonlóan törölhetjük a végpontot. Vegye figyelembe, hogy ha az aszinkron következtetési végpontok minimális kapacitását nullára állítjuk, akkor a nullára skálázás után nem merülnek fel példánydíjak.

Ha engedélyezte az automatikus skálázást a végponthoz, a végpont törlése előtt feltétlenül törölje a végpont méretezhető célként történő regisztrációját. Ehhez futtassa a következő kódot:

response = client.deregister_scalable_target(ServiceNamespace='sagemaker',ResourceId='resource_id',ScalableDimension='sagemaker:variant:DesiredInstanceCount')

Használat után ne felejtse el törölni a végpontot, mivel a bemutatóban használt példányokért fizetni kell.

sm_client.delete_endpoint(EndpointName=endpoint_name)

Törölnie kell az S3 objektumokat és az SNS témaköröket is. Ha bármilyen más AWS-erőforrást hozott létre az SNS-értesítések felhasználására és az azokkal kapcsolatos műveletekre, akkor érdemes lehet azokat is törölni.

Következtetés

Ebben a bejegyzésben bemutattuk, hogyan használható a SageMaker új aszinkron következtetési képessége egy tipikus nagy bemeneti hasznos adat feldolgozására, amely egy összegzési feladat részét képezi. A következtetéshez a Hugging Face modelljét használtuk, és az aszinkron következtetési végponton telepítettük. Elmagyaráztuk a sorozatos forgalom, a magas modellfeldolgozási idők és a kutatási elemzésekkel kapcsolatos nagy hasznos terhelések közös kihívásait. Az aszinkron következtetési végpont belső várólisták kezelésének, előre definiált egyidejűségi korlátoknak, válaszértesítések konfigurálásának és automatikus nullára kicsinyítésének képessége segített megbirkózni ezekkel a kihívásokkal. A példa teljes kódja itt érhető el GitHub.

A SageMaker aszinkron következtetés használatának megkezdéséhez nézze meg Aszinkron következtetés.


A szerzőkről

Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.Dinesh Kumar Subramani Senior Solutions Architect az UKIR SMB csapatánál, székhelye Edinburghban, Skóciában. Szakterülete a mesterséges intelligencia és a gépi tanulás. Dinesh szívesen dolgozik az ügyfelekkel az iparágakban, hogy segítsen nekik megoldani az AWS-szolgáltatásokkal kapcsolatos problémáikat. A munkán kívül szeret a családjával tölteni az idejét, sakkozni és különféle műfajú zenét élvezni.

Javítsa a nagy értékű kutatást a Hugging Face és az Amazon SageMaker PlatoBlockchain Data Intelligence aszinkron következtetési végpontjaival. Függőleges keresés. Ai.Raghu Ramesha ML Solutions Architect az Amazon SageMaker Service csapatánál. Arra összpontosít, hogy segítse az ügyfeleket az ML termelési munkaterhelések nagyarányú SageMaker-be való létrehozásában, telepítésében és migrálásában. Szakterülete a gépi tanulás, a mesterséges intelligencia és a számítógépes látás területe, valamint számítástechnika szakos mesterfokozatot szerzett az UT Dallasban. Szabadidejében szívesen utazik és fényképez.

Időbélyeg:

Még több AWS gépi tanulás