Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä

Monet AWS-asiakkaamme tarjoavat palveluna tutkimusta, analytiikkaa ja business intelligencea. Tämäntyyppisen tutkimuksen ja liiketoimintatiedon avulla loppuasiakkaat voivat pysyä markkinoiden ja kilpailijoiden edellä, tunnistaa kasvumahdollisuuksia ja käsitellä ongelmia ennakoivasti. Jotkut finanssipalvelualan asiakkaistamme esimerkiksi tekevät tutkimusta osakkeille, hedge-rahastoille ja sijoitusrahastoyhtiöille auttaakseen heitä ymmärtämään trendejä ja tunnistamaan portfoliostrategioita. Terveysalalla yhä suurempi osa terveystutkimuksesta on nykyään tietopohjaista. Suuri osa tutkimuksesta sisältää sellaisen tiedon analysointia, joka alun perin kerättiin diagnostiikkaa, hoitoa tai muita tutkimusprojekteja varten ja jota käytetään nyt uusiin tutkimustarkoituksiin. Nämä terveystutkimuksen muodot ovat johtaneet tehokkaaseen primaariseen ennaltaehkäisyyn uusien tapausten välttämiseksi, sekundaariseen ennaltaehkäisyyn varhaisen havaitsemisen varmistamiseksi ja ennaltaehkäisyyn parantamaan tautien hallintaa. Tutkimustulokset paitsi parantavat elämänlaatua, myös auttavat vähentämään terveydenhuoltokuluja.

Asiakkailla on tapana sulattaa tiedot julkisista ja yksityisistä lähteistä. Sitten he soveltavat vakiintuneita tai mukautettuja luonnollisen kielen käsittelymalleja (NLP) tehdäkseen yhteenvedon ja tunnistaakseen trendin ja luodakseen oivalluksia näiden tietojen perusteella. Tällaisissa tutkimustehtävissä käytetyt NLP-mallit käsittelevät suuria malleja ja sisältävät yleensä pitkiä artikkeleita, joista tehdään yhteenveto korpuksen koon mukaan – ja omistettuja päätepisteitä, joita ei tällä hetkellä ole kustannusoptimoitu. Nämä sovellukset vastaanottavat saapuvan liikenteen purskeen eri vuorokaudenaikoina.

Uskomme, että asiakkaat hyötyisivät suuresti mahdollisuudesta skaalata nollaan ja lisätä päättelykykyään tarpeen mukaan. Tämä optimoi tutkimuskustannukset, eikä silti vaaranna päätelmien laatua. Tämä viesti käsittelee Hugging Facea yhdessä Amazon Sage Maker asynkroninen päättely voi auttaa saavuttamaan tämän.

Voit rakentaa tekstin yhteenvetomalleja useilla syväoppimiskehyksillä, kuten TensorFlow, PyTorch ja Apache MXNet. Näissä malleissa on tyypillisesti suuri syöttökuorma useita erikokoisia tekstiasiakirjoja. Kehittyneet syväoppimismallit vaativat laskentaintensiivistä esikäsittelyä ennen mallin päättelyä. Käsittelyajat voivat olla jopa muutaman minuutin pitkiä, mikä poistaa mahdollisuuden suorittaa reaaliaikaisia ​​päätelmiä siirtämällä hyötykuormia HTTP API:n kautta. Sen sijaan sinun on käsiteltävä syöttöhyötykuormia asynkronisesti objektivarastosta, kuten Amazonin yksinkertainen tallennuspalvelu (Amazon S3), jossa on automaattinen jonotus ja ennalta määritetty samanaikaisuuskynnys. Järjestelmän pitäisi pystyä vastaanottamaan tilailmoituksia ja vähentämään tarpeettomia kustannuksia puhdistamalla resursseja tehtävien valmistuttua.

SageMaker auttaa datatieteilijöitä ja kehittäjiä valmistelemaan, rakentamaan, kouluttamaan ja ottamaan käyttöön korkealaatuisia koneoppimismalleja (ML) nopeasti yhdistämällä laajan joukon ML:tä varten suunniteltuja ominaisuuksia. SageMaker tarjoaa edistyneimmät avoimen lähdekoodin mallin palvelevat säilöt XGBoostille (astia, SDK), Scikit-Learn (astia, SDK), PyTorch (astia, SDK), TensorFlow (astia, SDK) ja Apache MXNet (astia, SDK).

SageMaker tarjoaa neljä vaihtoehtoa koulutettujen ML-mallien käyttöönottamiseksi johtopäätösten luomiseksi uusista tiedoista.
  1. Reaaliaikainen päätelmä päätepisteet sopivat työkuormille, jotka on käsiteltävä pienillä latenssivaatimuksilla ms:n tai sekuntien luokkaa.
  2. Erämuunnos sopii erinomaisesti suurten tietoerien offline-ennusteisiin.
  3. Amazon SageMaker -palvelimeton johtopäätös (esikatselutilassa, eikä tätä kirjoitettaessa suositella tuotannollisiin työmääriin) on tarkoitukseen rakennettu päättelyvaihtoehto, jonka avulla ML-mallien käyttöönotto ja skaalaaminen on helppoa. Serverless Inference on ihanteellinen työkuormille, joissa on joutojaksoja liikennespurttien välillä ja jotka kestävät kylmäkäynnistystä.
  4. Asynkroninen päättely päätepisteet jonottavat saapuvia pyyntöjä. Ne sopivat ihanteellisesti työkuormille, joissa pyyntökoot ovat suuria (jopa 1 Gt) ja päätelmien käsittelyajat ovat minuuttien luokkaa (jopa 15 minuuttia). Asynkronisen päättelyn avulla voit säästää kustannuksissa skaalaamalla ilmentymien määrän automaattisesti nollaan, kun käsiteltäviä pyyntöjä ei ole.

Ratkaisun yleiskatsaus

Tässä viestissä otamme käyttöön a PEGASUS malli joka oli valmiiksi koulutettu tekemään tekstin yhteenveto Halaaminen kasvot että SageMaker-isännöintipalvelut. Käytämme Hugging Facen mallia yksinkertaisuuden vuoksi. Voit kuitenkin hienosäätää mallia mukautetun tietojoukon perusteella. Voit myös kokeilla muita mallissa saatavilla olevia malleja Halaava Face Model Hub. Tarjoamme myös tätä mallia isännöivän asynkronisen päättelypäätepisteen, josta voit saada ennusteita.

Asynkronisen päättelyn päätepisteen päätelmien käsittelijä odottaa artikkelin syöttöhyötykuormana. Artikkelin tiivistetty teksti on tulos. Tulos tallennetaan tietokantaan trendien analysointia varten tai syötetään myöhempään analyysiin. Tämä loppupään analyysi saa tietoa oivalluksista, jotka auttavat tutkimuksessa.

Osoitamme, kuinka asynkroniset päättelypäätepisteet mahdollistavat käyttäjän määrittämät samanaikaisuus- ja valmistumisilmoitukset. Määritämme päätepisteen takana olevien ilmentymien automaattisen skaalauksen skaalaamaan nollaan, kun liikenne vähenee, ja skaalaamaan takaisin, kun pyyntöjono täyttyy.

Käytämme myös amazonin pilvikello mittareita, joilla seurataan jonon kokoa, kokonaiskäsittelyaikaa ja käsiteltyjä kutsuja.

Seuraavassa kaaviossa näytämme vaiheet, jotka liittyvät päättelyyn asynkronisen päättelyn päätepisteen avulla.

Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

  1. Meidän esikoulutettu PEGASUS ML-mallia isännöidään ensin skaalauspäätepisteessä.
  2. Käyttäjä lataa yhteenvedon tekevän artikkelin syöte-S3-ämpäriin.
  3. Asynkroninen päättelypäätepiste kutsutaan API:n avulla.
  4. Kun päättely on valmis, tulos tallennetaan lähtöön S3.
  5. An Amazonin yksinkertainen ilmoituspalvelu (Amazon SNS) -ilmoitus lähetetään käyttäjälle, joka ilmoittaa suoritetusta onnistumisesta tai epäonnistumisesta.

Luo asynkroninen päättelypäätepiste

Luomme asynkronisen päätepäätepisteen, joka on samanlainen kuin reaaliaikainen isännöity päätepiste. Vaiheisiin kuuluu SageMaker-mallin luominen, jota seuraa päätepisteen määrittäminen ja päätepisteen käyttöönotto. Ero näiden kahden tyyppisten päätepisteiden välillä on, että asynkronisen päättelyn päätepisteen konfiguraatio sisältää an AsyncInferenceConfig -osio. Tässä määritämme S3-tulospolun päätepistekutsun tuloksille ja sisällytämme valinnaisesti SNS-aiheita onnistumis- ja epäonnistumisilmoituksiin. Määritämme myös asiakkaan määrittämän samanaikaisten kutsujen enimmäismäärän esiintymää kohden. Katso seuraava 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 } }

Katso lisätietoja API:sta, jolla luodaan päätepistekonfiguraatio asynkronista päättelyä varten Luo asynkroninen päättelypäätepiste.

Kutsu asynkroninen päättelypäätepiste

Seuraava kuvakaappaus näyttää lyhyen artikkelin, jota käytämme syöttöhyötykuormanamme:
Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Seuraava koodi lataa artikkelin muodossa input.json tiedosto Amazon S3:lle:

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

Käytämme Amazon S3 URI:tä syötettävään hyötykuormatiedostoon päätepisteen kutsumiseksi. Vastausobjekti sisältää tulossijainnin Amazon S3:ssa tulosten hakemiseksi valmistumisen jälkeen:

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

Seuraavassa kuvakaappauksessa näkyy näytetulosteen yhteenveto:
Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Katso lisätietoja sovellusliittymästä asynkronisen päättelyn päätepisteen kutsumiseksi Kutsu asynkroninen päättelypäätepiste.

Aseta kutsupyynnöt jonoon käyttäjän määrittelemällä samanaikaisuudella

Asynkronisen päättelyn päätepiste asettaa kutsupyynnöt automaattisesti jonoon. Tämä on täysin hallittu jono, jossa on erilaisia ​​seurantamittareita, eikä se vaadi lisämäärityksiä. Se käyttää MaxConcurrentInvocationsPerInstance parametri edellisessä päätepisteen kokoonpanossa käsittelemään uusia pyyntöjä jonosta sen jälkeen, kun aiemmat pyynnöt on suoritettu. MaxConcurrentInvocationsPerInstance on SageMaker-asiakkaan mallisäiliöön lähettämien samanaikaisten pyyntöjen enimmäismäärä. Jos arvoa ei anneta, SageMaker valitsee sinulle optimaalisen arvon.

Automaattinen skaalaus esiintymissä asynkronisen päättelyn päätepisteessä

Asetamme automaattisen skaalauskäytännön vähimmäiskapasiteetiksi nolla ja enimmäiskapasiteetiksi viiteen esiintymään. Toisin kuin reaaliaikaiset isännöidyt päätepisteet, asynkroniset päättelypäätepisteet tukevat ilmentymien skaalausta nollaan asettamalla vähimmäiskapasiteetiksi nollaan. Käytämme ApproximateBacklogSizePerInstance metriikka skaalauskäytännön kokoonpanolle, jossa on viisi kohdejonoa esiintymää kohden skaalauksen lisäämiseksi. Asetamme jäähtymisjakson ScaleInCooldown 120 sekuntiin ja ScaleOutCooldown 120 sekuntiin. Arvo for ApproximateBacklogSizePerInstance valitaan liikenteen ja herkkyytesi skaalausnopeudelle perusteella. Mitä nopeammin skaalaat, sitä vähemmän kustannuksia sinulle aiheutuu, mutta sitä todennäköisemmin joudut skaalaamaan uudelleen, kun uusia pyyntöjä saapuu. Mitä hitaammin skaalaat, sitä enemmän kustannuksia sinulle aiheutuu, mutta sitä vähemmän todennäköisesti pyyntö tulee, kun olet alimitoitettu.

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

Lisätietoja asynkronisen päättelyn päätepisteen automaattisesta skaalauksesta API:sta on kohdassa Skaalaa automaattisesti asynkronisen päättelyn päätepisteen.

Määritä ilmoitukset asynkronisesta päättelypäätepisteestä

Luomme kaksi erillistä SNS-aihetta onnistumis- ja virheilmoituksia varten kullekin päätepisteen kutsun tulokselle:

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

Muita ilmoitusvaihtoehtoja ovat S3-säihön lähdön säännöllinen tarkistaminen tai S3-säilö-ilmoitusten käyttäminen AWS Lambda toiminto tiedoston latauksessa. SNS-ilmoitukset sisältyvät päätepisteen määritysosaan, kuten aiemmin on kuvattu.

Lisätietoja ilmoitusten määrittämisestä asynkronisesta päätepisteestä on kohdassa Tarkista ennusteiden tulokset.

Tarkkaile asynkronista päättelypäätepistettä

Valvomme asynkronisen päättelyn päätepistettä sisäänrakennetuilla CloudWatch-lisämittareilla, jotka ovat ominaisia ​​asynkronisille päätelmille. Esimerkiksi seuraamme jonon pituutta kussakin tapauksessa ApproximateBacklogSizePerInstance ja jonon kokonaispituus ApproximateBacklogSize.

Täydellinen luettelo mittareista on kohdassa Asynkronisten päätelmien päätepisteiden seuranta.

Voimme optimoida päätepisteen kokoonpanon saadaksemme kustannustehokkaimman esiintymän korkealla suorituskyvyllä. Voimme esimerkiksi käyttää ilmentymää Amazon Elastic Inferencen tai AWS Inferentian kanssa. Voimme myös asteittain nostaa samanaikaisuustasoa suorituskyvyn huippuun asti samalla kun säädämme muita mallipalvelin- ja säilöparametreja.

CloudWatch-kaaviot

Simuloimme 10,000 XNUMX päättelypyynnön liikennettä, jotka virtasivat tietyn ajanjakson aikana asynkroniseen päättelypäätepisteeseen, joka on otettu käyttöön edellisessä osiossa kuvatulla automaattisella skaalauskäytännöllä.

Seuraavassa kuvakaappauksessa näkyy ilmentymien mittareita ennen kuin pyyntöjä alettiin virrata. Aloitamme reaaliaikaisesta päätepisteestä, jossa ei ole käynnissä esiintymiä:
Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Seuraava kaavio näyttää, kuinka BacklogSize ja BacklogSizePerInstance mittarit muuttuvat, kun automaattinen skaalaus käynnistyy ja päätepisteen kuormitus jaetaan useiden esiintymien kesken, jotka on määritetty osana automaattista skaalausprosessia.
Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Kuten seuraavassa kuvakaappauksessa näkyy, esiintymien määrä kasvoi päätelmien määrän kasvaessa:
Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Seuraavassa kuvakaappauksessa näkyy, kuinka skaalaus tuo päätepisteen takaisin nollan käynnissä olevan ilmentymän alkutilaan:
Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Puhdistaa

Kun kaikki pyynnöt on suoritettu, voimme poistaa päätepisteen samalla tavalla kuin reaaliaikaisten isännöityjen päätepisteiden poistaminen. Huomaa, että jos asetamme asynkronisten päätepisteiden vähimmäiskapasiteetin nollaan, esiintymismaksuja ei synny sen jälkeen, kun se skaalautuu nollaan.

Jos olet ottanut käyttöön päätepisteen automaattisen skaalauksen, varmista, että poistat päätepisteen rekisteröinnin skaalautuvaksi kohteeksi ennen päätepisteen poistamista. Voit tehdä tämän suorittamalla seuraavan koodin:

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

Muista poistaa päätepisteesi käytön jälkeen, sillä sinua veloitetaan tässä esittelyssä käytetyistä esiintymistä.

sm_client.delete_endpoint(EndpointName=endpoint_name)

Sinun on myös poistettava S3-objektit ja SNS-aiheet. Jos loit muita AWS-resursseja kuluttaaksesi ja toimiaksesi SNS-ilmoitusten kanssa, voit myös poistaa ne.

Yhteenveto

Tässä viestissä osoitimme, kuinka SageMakerin uutta asynkronista päättelykykyä käytetään käsittelemään tyypillistä suurta syöttöhyötykuormaa, joka on osa yhteenvetotehtävää. Päätelmien tekemiseen käytimme Hugging Facen mallia ja käytimme sitä asynkroniseen päättelypäätepisteeseen. Selitimme purskeliikenteen, mallien korkeiden käsittelyaikojen ja tutkimusanalytiikkaan liittyvien suurten hyötykuormien yhteiset haasteet. Asynkronisen päättelyn päätepisteen luontainen kyky hallita sisäisiä jonoja, ennalta määritettyjä samanaikaisuusrajoja, määrittää vastausilmoituksia ja skaalata automaattisesti nollaan auttoi meitä vastaamaan näihin haasteisiin. Tämän esimerkin täydellinen koodi on saatavilla osoitteessa GitHub.

Aloita SageMakerin asynkronisen päättelyn käyttäminen tutustumalla Asynkroninen päättely.


Tietoja Tekijät

Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Dinesh Kumar Subramani on vanhempi ratkaisuarkkitehti UKIR SMB -tiimissä Edinburghissa Skotlannissa. Hän on erikoistunut tekoälyyn ja koneoppimiseen. Dinesh nauttii työskentelystä asiakkaiden kanssa eri toimialoilla auttaakseen heitä ratkaisemaan ongelmansa AWS-palveluiden kanssa. Työn ulkopuolella hän rakastaa viettää aikaa perheensä kanssa, pelata shakkia ja nauttia musiikista eri genreissä.

Paranna arvokasta tutkimusta Hugging Facen ja Amazon SageMakerin asynkronisilla päätepäätepisteillä PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Raghu Ramesha on ML Solutions -arkkitehti Amazon SageMaker Service -tiimin kanssa. Hän keskittyy auttamaan asiakkaita rakentamaan, ottamaan käyttöön ja siirtämään ML-tuotannon työmäärät SageMakeriin suuressa mittakaavassa. Hän on erikoistunut koneoppimiseen, tekoälyyn ja tietokonenäköalueisiin, ja hänellä on tietojenkäsittelytieteen maisterin tutkinto UT Dallasista. Vapaa-ajallaan hän nauttii matkustamisesta ja valokuvaamisesta.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen