Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Parandage väärtuslikku uurimistööd Hugging Face ja Amazon SageMaker asünkroonsete järelduste lõpp-punktidega

Paljud meie AWS-i kliendid pakuvad teenusena uuringuid, analüütikat ja äriteavet. Seda tüüpi uuringud ja äriteave võimaldavad nende lõppklientidel turgudest ja konkurentidest ees püsida, tuvastada kasvuvõimalusi ja tegeleda probleemidega ennetavalt. Näiteks teevad mõned meie finantsteenuste sektori kliendid aktsiate, riskifondide ja investeeringute haldusettevõtete kohta uuringuid, et aidata neil mõista trende ja tuvastada portfellistrateegiaid. Tervisetööstuses on üha suurem osa terviseuuringutest nüüd teabepõhised. Paljud uuringud hõlmavad andmete analüüsi, mida algselt koguti diagnostikaks, raviks või muudeks uurimisprojektideks ja mida nüüd kasutatakse uutel uurimiseesmärkidel. Need terviseuuringute vormid on toonud kaasa tõhusa esmase ennetamise, et vältida uusi haigusjuhte, sekundaarset ennetamist varajaseks avastamiseks ja ennetamist haiguste paremaks juhtimiseks. Uuringutulemused mitte ainult ei paranda elukvaliteeti, vaid aitavad ka vähendada tervishoiukulusid.

Kliendid kipuvad avalikest ja eraallikatest pärinevat teavet seedima. Seejärel rakendavad nad väljakujunenud või kohandatud loomuliku keele töötlemise (NLP) mudeleid, et teha kokkuvõte ja tuvastada suundumus ning luua selle teabe põhjal teadmisi. Seda tüüpi uurimisülesannete jaoks kasutatavad NLP-mudelid käsitlevad suuri mudeleid ja hõlmavad tavaliselt pikki artikleid, mis tuleb kokku võtta, võttes arvesse korpuse suurust, ja spetsiaalseid lõpp-punkte, mis pole praegu kuludelt optimeeritud. Need rakendused võtavad vastu sissetulevat liiklust erinevatel kellaaegadel.

Usume, et klientidel oleks palju kasu võimalusest nullini skaleerida ja oma järelduste tegemise võimet vastavalt vajadusele suurendada. See optimeerib uurimiskulusid ega sea siiski järeleandmisi järelduste kvaliteedis. See postitus arutleb, kuidas kallistada nägu koos Amazon SageMaker asünkroonne järeldus võib aidata seda saavutada.

Saate luua teksti kokkuvõtte mudeleid mitme süvaõppe raamistikuga, nagu TensorFlow, PyTorch ja Apache MXNet. Nendel mudelitel on tavaliselt suur sisendkoormus, mis sisaldab mitut erineva suurusega tekstidokumenti. Täiustatud süvaõppe mudelid nõuavad enne mudeli järelduste tegemist arvutusmahukat eeltöötlust. Töötlemisajad võivad kesta kuni paar minutit, mis eemaldab võimaluse käitada reaalajas järeldusi, edastades kasulikud koormused HTTP API kaudu. Selle asemel peate töötlema sisendkoormust asünkroonselt näiteks objektipoest Amazoni lihtne salvestusteenus (Amazon S3) automaatse järjekorra ja eelmääratletud samaaegsuslävega. Süsteem peaks suutma vastu võtta olekuteateid ja vähendada tarbetuid kulusid, puhastades ressursse, kui ülesanded on lõpetatud.

SageMaker aitab andmeteadlastel ja arendajatel kvaliteetseid masinõppe (ML) mudeleid kiiresti ette valmistada, koostada, koolitada ja juurutada, koondades laia valikut ML-i jaoks spetsiaalselt loodud võimalusi. SageMaker pakub XGBoosti jaoks kõige arenenumaid avatud lähtekoodiga mudelite teenindamise konteinereid (konteiner, SDK), Scikit-Learn (konteiner, SDK), PyTorch (konteiner, SDK), TensorFlow (konteiner, SDK) ja Apache MXNet (konteiner, SDK).

SageMaker pakub nelja võimalust koolitatud ML-mudelite juurutamiseks uute andmete põhjal järelduste tegemiseks.
  1. Reaalajas järeldus lõpp-punktid sobivad töökoormuste jaoks, mida tuleb töödelda madala latentsusaja nõuetega suurusjärgus ms kuni sekundid.
  2. Partii teisendus on ideaalne suurte andmehulkade võrguühenduseta prognoosimiseks.
  3. Amazon SageMakeri serverita järeldus (eelvaaterežiimis ja pole selle kirjutamise seisuga tootmiskoormuse jaoks soovitatav) on sihipäraselt loodud järeldussuvand, mis muudab ML-mudelite juurutamise ja skaleerimise lihtsaks. Serverless Inference on ideaalne töökoormuste jaoks, mille liiklusspurtide vahel on jõudeperioodid ja mis taluvad külmkäivitust.
  4. Asünkroonne järeldus lõpp-punktid panevad sissetulevad päringud järjekorda. Need sobivad ideaalselt töökoormuste jaoks, kus päringu suurused on suured (kuni 1 GB) ja järelduste töötlemise ajad on suurusjärgus minutit (kuni 15 minutit). Asünkroonne järeldus võimaldab teil säästa kulusid, skaleerides eksemplaride arvu automaatselt nullini, kui töödeldavaid taotlusi pole.

Lahenduse ülevaade

Selles postituses tutvustame a PEGASUS mudel mis oli eelnevalt koolitatud tegema teksti kokkuvõtet Kallistav nägu et SageMakeri hostimisteenused. Lihtsuse huvides kasutame Hugging Face mudelit. Siiski saate kohandatud andmestiku põhjal mudelit täpsustada. Samuti saate proovida teisi siin saadaval olevaid mudeleid Kallistavate näomudelite keskus. Samuti pakume seda mudelit hostiva asünkroonse järelduse lõpp-punkti, millest saate ennustusi hankida.

Asünkroonse järelduse lõpp-punkti järelduste töötleja ootab artiklit sisendkoormana. Artikli kokkuvõtlik tekst on väljund. Väljund salvestatakse andmebaasi suundumuste analüüsimiseks või edastatakse edasiseks analüüsiks allavoolu. See allavoolu analüüs toob kaasa andmete ülevaate, mis aitab uurimistööl.

Näitame, kuidas asünkroonsete järelduste lõpp-punktid võimaldavad teil saada kasutaja määratud samaaegsuse ja lõpetamise teatisi. Seadistame lõpp-punkti taga olevate eksemplaride automaatse skaleerimise, et liikluse vaibumisel skaleerida nullini ja taotlusjärjekorra täitumisel uuesti skaleerida.

Kasutame ka Amazon CloudWatch mõõdikud järjekorra suuruse, kogu töötlemisaja ja töödeldud kutsete jälgimiseks.

Järgmisel diagrammil näitame asünkroonse järelduse lõpp-punkti abil järelduste tegemise etappe.

Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

  1. Meie eelkoolitatud PEGASUS ML-mudelit hostitakse kõigepealt skaleerimise lõpp-punktis.
  2. Kasutaja laadib kokkuvõtva artikli üles sisend-S3 ämbrisse.
  3. Asünkroonse järelduse lõpp-punkt kutsutakse API abil.
  4. Pärast järelduse lõpetamist salvestatakse tulemus väljundi S3 ämbrisse.
  5. An Amazoni lihtne teavitusteenus (Amazon SNS) teade saadetakse kasutajale, mis teavitab teda lõpetatud õnnestumisest või ebaõnnestumisest.

Looge asünkroonse järelduse lõpp-punkt

Loome asünkroonse järelduse lõpp-punkti, mis sarnaneb reaalajas hostitud lõpp-punktiga. Sammud hõlmavad SageMakeri mudeli loomist, millele järgneb lõpp-punkti konfigureerimine ja lõpp-punkti juurutamine. Kaht tüüpi lõpp-punktide erinevus seisneb selles, et asünkroonse järelduse lõpp-punkti konfiguratsioon sisaldab AsyncInferenceConfig osa. Siin täpsustame lõpp-punkti kutsumise tulemuste S3 väljundtee ja lisame valikuliselt SNS-i teemad õnnestumiste ja ebaõnnestumiste teatiste jaoks. Samuti määrame kliendi määratud samaaegsete kutsete maksimaalse arvu eksemplari kohta. Vaadake järgmist koodi:

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 } }

Asünkroonse järelduse lõpp-punkti konfiguratsiooni loomiseks mõeldud API kohta leiate üksikasju vt Looge asünkroonse järelduse lõpp-punkt.

Kutsuge asünkroonse järelduse lõpp-punkt

Järgmine ekraanipilt näitab lühikest artiklit, mida kasutame kasuliku sisendkoormusena:
Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Järgmine kood laadib artikli üles kui input.json fail Amazon S3-le:

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

Kasutame lõpp-punkti kutsumiseks kasuliku koormuse faili sisestamiseks Amazon S3 URI-d. Vastusobjekt sisaldab väljundi asukohta Amazon S3-s tulemuste saamiseks pärast lõpetamist:

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

Järgmine ekraanipilt näitab näidisväljundit pärast kokkuvõtet:
Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Lisateavet asünkroonse järelduse lõpp-punkti kutsumise API kohta leiate artiklist Asünkroonse järelduse lõpp-punkti kutsumine.

Pange kutsumispäringud järjekorda kasutaja määratud samaaegsusega

Asünkroonse järelduse lõpp-punkt seab kutsumispäringud automaatselt järjekorda. See on täielikult hallatav järjekord koos erinevate jälgimismõõdikutega ja ei vaja täiendavat konfigureerimist. See kasutab MaxConcurrentInvocationsPerInstance parameeter eelmises lõpp-punkti konfiguratsioonis, et töödelda järjekorras uusi päringuid pärast eelmiste päringute lõpetamist. MaxConcurrentInvocationsPerInstance on SageMakeri kliendi poolt mudelikonteinerisse saadetud samaaegsete päringute maksimaalne arv. Kui väärtust ei esitata, valib SageMaker teie jaoks optimaalse väärtuse.

Eksemplaride automaatne skaleerimine asünkroonse järelduse lõpp-punktis

Seadistasime automaatse skaleerimise poliitika, mille minimaalne võimsus on null ja maksimaalne maht on viis eksemplari. Erinevalt reaalajas hostitud lõpp-punktidest toetavad asünkroonse järelduse lõpp-punktid eksemplaride skaleerimist nullini, määrates minimaalse võimsuse nulliks. Me kasutame ApproximateBacklogSizePerInstance skaleerimispoliitika konfiguratsiooni mõõdik, mille sihtjärjekorra mahajäämus on viis eksemplari kohta, et veelgi skaleerida. Seadsime jahtumisperioodi ScaleInCooldown 120 sekundini ja ScaleOutCooldown 120 sekundini. Väärtus ApproximateBacklogSizePerInstance valitakse liikluse ja teie skaleerimiskiiruse tundlikkuse põhjal. Mida kiiremini skaleerite, seda väiksemad on teie kulud, kuid seda tõenäolisemalt peate uute taotluste saabudes uuesti suurendama. Mida aeglasemalt skaleerite, seda rohkem kulute, kuid vähem tõenäoliselt päring tuleb siis, kui olete alamastaabis.

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.
}
)

Lisateavet API kohta asünkroonse järelduse lõpp-punkti automaatseks skaleerimiseks vaadake jaotisest Asünkroonse järelduse lõpp-punkti automaatskaala.

Konfigureerige asünkroonse järelduse lõpp-punkti märguanded

Loome iga lõpp-punkti kutsumise tulemuse jaoks edu- ja veateatiste jaoks kaks eraldi SNS-i teemat:

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']

Muud teavitusvõimalused hõlmavad S3 ämbri väljundi perioodilist kontrollimist või S3 ämbri märguannete kasutamist AWS Lambda funktsioon faili üleslaadimisel. SNS-teatised sisalduvad lõpp-punkti konfiguratsiooni jaotises, nagu eelnevalt kirjeldatud.

Lisateavet asünkroonse järelduse lõpp-punkti märguannete seadistamise kohta vt Kontrollige ennustuste tulemusi.

Jälgige asünkroonse järelduse lõpp-punkti

Jälgime asünkroonse järelduse lõpp-punkti sisseehitatud täiendavate CloudWatchi mõõdikutega, mis on spetsiifilised asünkroonse järelduse jaoks. Näiteks jälgime järjekorra pikkust igal juhul koos ApproximateBacklogSizePerInstance ja järjekorra kogupikkus koos ApproximateBacklogSize.

Mõõdikute täieliku loendi leiate jaotisest Asünkroonsete järelduste lõpp-punktide jälgimine.

Saame optimeerida lõpp-punkti konfiguratsiooni, et saada kõige kuluefektiivsem ja suure jõudlusega eksemplar. Näiteks saame kasutada Amazon Elastic Inference'i või AWS Inferentia eksemplari. Samuti saame samaaegsuse taset järk-järgult tõsta kuni läbilaskevõime tipuni, kohandades samal ajal muid mudeliserveri ja konteineri parameetreid.

CloudWatchi graafikud

Simuleerisime eelmises jaotises kirjeldatud automaatse skaleerimise poliitikaga lubatud asünkroonse järelduse lõpp-punkti 10,000 XNUMX järeldamispäringu liiklust teatud perioodi jooksul.

Järgmisel ekraanipildil on näha eksemplarimõõdikud enne päringute sissevoolu algust. Alustame reaalajas lõpp-punktiga, kus ei tööta ühtegi eksemplari:
Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Järgmine graafik näitab, kuidas BacklogSize ja BacklogSizePerInstance mõõdikud muutuvad, kui automaatne skaleerimine käivitub ja lõpp-punkti koormust jagavad mitmed eksemplarid, mis olid ette nähtud automaatse skaleerimise protsessi osana.
Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Nagu on näidatud järgmisel ekraanipildil, suurenes juhtude arv, kui järelduste arv suurenes:
Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Järgmine ekraanipilt näitab, kuidas skaleerimine toob lõpp-punkti tagasi nulli töötavate eksemplaride algolekusse:
Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Koristage

Kui kõik taotlused on täidetud, saame lõpp-punkti kustutada sarnaselt reaalajas hostitud lõpp-punktide kustutamisega. Pange tähele, et kui seame asünkroonsete järelduste lõpp-punktide minimaalse võimsuse nulliks, ei võeta pärast selle nullini taandamist eksemplari tasusid.

Kui lubasite lõpp-punkti jaoks automaatse skaleerimise, eemaldage lõpp-punkt enne lõpp-punkti kustutamist skaleeritava sihtmärgina. Selleks käivitage järgmine kood:

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

Ärge unustage pärast kasutamist lõpp-punkti kustutada, kuna teilt võetakse tasu selles demos kasutatud eksemplaride eest.

sm_client.delete_endpoint(EndpointName=endpoint_name)

Samuti peate kustutama S3 objektid ja SNS-i teemad. Kui olete loonud muid AWS-i ressursse SNS-i teatiste tarbimiseks ja nendega tegelemiseks, võite soovida ka need kustutada.

Järeldus

Selles postituses demonstreerisime, kuidas kasutada SageMakeri uut asünkroonse järeldamisvõimalust tüüpilise suure sisendkoormuse töötlemiseks, mis on osa kokkuvõteülesandest. Järelduste tegemiseks kasutasime Hugging Face'i mudelit ja kasutasime seda asünkroonse järelduse lõpp-punktis. Selgitasime sagedasi väljakutseid, mis on seotud sariliikluse, mudelite kõrgete töötlemisaegade ja uurimisanalüüsiga seotud suurte kasulike koormustega. Asünkroonse järelduse lõpp-punkti loomupärane võime hallata sisemisi järjekordi, eelmääratletud samaaegsuse piiranguid, konfigureerida vastuseteateid ja automaatselt nullini skaleerida aitas meil neid väljakutseid lahendada. Selle näite täielik kood on saadaval aadressil GitHub.

SageMakeri asünkroonse järeldamise alustamiseks vaadake Asünkroonne järeldus.


Autoritest

Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.Dinesh Kumar Subramani on UKIR SMB meeskonna vanemlahenduste arhitekt, mis asub Šotimaal Edinburghis. Ta on spetsialiseerunud tehisintellektile ja masinõppele. Dineshile meeldib töötada klientidega erinevates tööstusharudes, et aidata neil AWS-i teenustega seotud probleeme lahendada. Väljaspool tööd meeldib talle perega aega veeta, malet mängida ja erinevate žanrite muusikat nautida.

Parandage väärtuslikku uurimistööd Hugging Face'i ja Amazon SageMakeri asünkroonsete järelduste lõpp-punktide PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.Raghu Ramesha on Amazon SageMaker Service meeskonnaga ML Solutionsi arhitekt. Ta keskendub sellele, et aidata klientidel ML-i tootmise töökoormust SageMakerile ulatuslikult üles ehitada, juurutada ja üle viia. Ta on spetsialiseerunud masinõppele, tehisintellektile ja arvutinägemisvaldkondadele ning tal on magistrikraadi arvutiteaduses TÜ Dallases. Vabal ajal meeldib talle reisida ja pildistada.

Ajatempel:

Veel alates AWS-i masinõpe