Hugging Face’i demo tootmisse: Space ei ole vaikimisi SLA-ga teenus

|Autor: QUASA toimetus|5 min lugemist
Hugging Face’i demo tootmisse: Space ei ole vaikimisi SLA-ga teenus

Kui Gradio Space’is töötav mudelidemo peab vastama rakenduse päringutele, võib alustada selle olemasolevast API-st. See sobib juhul, kui koormus on väike, võimalik ärkamisaeg on vastuvõetav ja lepingulist tööaja garantiid pole vaja. Eraldatud Inference Endpoint on põhjendatud siis, kui teenus vajab juhitavat skaleerimist, pidevalt valmis replikat või eraldi kokkulepitud teenusetaset. API olemasolu ei muuda Space’i iseenesest SLA-ga teenuseks.

Üleminek algab demo päringulepingu fikseerimisest: milline sisend mudelile saadetakse, milline vastus rakendusele tagastatakse ja kes tohib teenust kutsuda. Seejärel saab tegeliku koormuse ning vastuseaja põhjal otsustada, kas jätkata Space’iga või paigutada mudel Endpointi. Sama otsus määrab, kas jõudeoleku sääst on tähtsam kui esimese päringu kiire vastus.

Millal Space’i API-st piisab?

Space on mõistlik lähtekoht kontrollitud kasutusega teenusele, mille puhul lühiajaline katkestus või aeglasem esimene päring on talutav. Hugging Face’i Space’i ülevaate järgi on vaikimisi keskkonnas 16 GB mälu, kaks CPU-tuuma ja 50 GB mittepüsivat kettaruumi. CPU Basic riistvaral puudub tunnitasu, kuid uut arvutusressurssi kasutavat Gradio või Docker Space’i saab üldjuhul luua tasulise paketiga; tasuta staatiline Space mudelit ei käita. Ülevaade kirjeldab ka tasuta riistvaral tegevusetuse järel uinumist.

Seega tuleb eristada riistvara tunnitasu, konto kasutusõigust ja teenuse valmisolekut. Kui Space magab, kulub järgmisel pöördumisel aega selle käivitamisele. Tasulisele riistvarale üleminek annab rohkem ressursse ja võimaluse vältida automaatset uinumist, kuid üksnes suurem instants ei taga rakendusele sobivat vastuseaega. Otsuse aluseks olgu lubatud ooteaeg, päringute sagedus ja see, kas teenus peab vastama ka pärast pikemat jõudeolekut.

Fikseeri API leping ja ligipääs

Gradio Space’i demotoimingust saab OpenAPI kirjelduses määratletud sisendi ja väljundiga API kutse.

Gradio Space’i „Use via API” vaates on näha kutsutavad toimingud, nende nimed ja parameetrid. OpenAPI kirjeldus asub Space’i aadressi teel /gradio_api/openapi.json. Salvesta kasutatava toimingu sisend ja väljund enne tootmisrakenduse ühendamist: demo tekstiväli, failisisend või järjekorras valmiv tulemus võib nõuda kliendilt eri käsitlust. Proovi sama päringut ka väljaspool brauserit, et selguks, millise vastuse rakendus tegelikult saab.

Rakenduse ja mudeliteenuse vahele tasub panna oma API kiht, mis kontrollib sisendit ning annab klientidele stabiilse vastusekuju. Endpointile kolides võib päringu vorm erineda Gradio toimingu omast; selles kihis saab teisendada päringu ilma kõiki kliente muutmata. Fikseeri ka mudeli versioon ja vajalikud sõltuvused, sest Space’i koodimuudatus käivitab uue ehituse. Nii on võimalik eristada mudeli muutusest tulenevat tulemust teenuse vahetusest tulenevast muutusest.

Privaatse Space’i jaoks hoia Hugging Face’i juurdepääsutokenit serveris ja anna sellele ainult vajalikud õigused. Brauserisse lisatud token jõuaks kasutajani koos kliendikoodiga. Enne koormuskatset veendu, et lubatud taustateenus saab päringu teha ning loata päring tagasi lükatakse. Avalik demo ja privaatne tootmispäring võivad vajada eri ligipääsukorda isegi siis, kui kasutavad sama mudelit.

Mõõda koormust enne keskkonna valimist

Koormuskatse peab sarnanema rakenduse tegelike päringutega: kasuta võrreldavat sisendi suurust, samaaegsete kasutajate hulka ja päringute saabumise mustrit. Mõõda kogu vastuseaega, vigade osakaalu ning järjekorras ootamist eraldi mudeli tööajast. Tee katse töötava teenusega ja pärast tegevusetust. Üks õnnestunud API kutse näitab ühenduse toimimist, kuid ei näita, kuidas kasutaja tajub koormust või ärkamist.

Määra enne katset oma rakenduse vastuvõetav vastuseaeg ja katkestuste piir. Kui Space püsib nende sees, pole mudeli eraldamine üksnes tootmisesse jõudmise pärast vajalik. Kui järjekord pikeneb, mälu ei piisa või esimene päring ületab lubatud ooteaja, proovi Endpointi sama mudeli ja samade sisenditega. Selline võrdlus aitab eristada käituskeskkonna mõju mudeli enda arvutusajast.

Vali Endpoint ja arvuta replika kulu

Inference Endpointi seadistamisel tuleb valida mudelile sobiv instants, ligipääsurežiim ning töötavate replikate miinimum ja maksimum. Hugging Face’i Endpointi juurdepääsu ja hinnastuse kirjeldus seob jooksva tasu arvutusressursi tunnikulu ja replikate arvuga; eraldi Enterprise pakkumise juures nimetatakse ööpäevaringset tuge, SLA-d ja tööaja garantiid. Tavalise Endpointi loomine ei anna seega automaatselt lepingulist tööaja garantiid.

Eelarve lähtevalem on instantsi tunnitasu × töötavate replikate töötunnid, liites eri ajal töötanud replikate kulu. Kui üks replika on pidevalt valmis ja teine lisandub ainult koormuse ajal, arvesta nende töötunnid eraldi. Vali valemisse juurutamisel kuvatav instantsihind ning oma liiklusest hinnatud tööaeg; tulemus on prognoos, mitte lubadus kindla arve kohta. Kõrgem replika miinimum vähendab vajadust teenust pärast jõudeolekut äratada, kuid lisab püsikulu.

Käsitle nullini skaleerimise külmkäivitust

Nullini skaleeritud Inference Endpoint peab enne päringule vastamist replika käivitama; valmis miinimumreplika väldib seda ooteaega.

Nullini skaleerimine vähendab jõudeoleku kulu, kuid järgmise päringu jaoks tuleb replika uuesti käivitada. Hugging Face’i automaatskaleerimise main-juhend kirjeldab käivitumise ajal 503 vastust ning päist X-Scale-Up-Timeout, millega puhverserver võib päringut replika valmimiseni hoida. Juhend märgib, et käivitumine võib mudelist sõltuvalt võtta mitu minutit. Seetõttu peab kliendi veakäsitlus arvestama ajutise teenusetõrkega, mitte eeldama, et kulusääst jääb kasutajale märkamatuks.

Kui esimene päring peab kiiresti vastuse saama, hoia vähemalt üks replika töös ja ära luba nullini skaleerimist. Kui rakendus talub viivitust, määra kliendile sobiv ooteaeg ja piiratud korduskatse või pane töö oma järjekorda. Kontrolli seda pärast tegelikku jõudeperioodi: sooja replika koormuskatse ei mõõda mudeli laadimise aega. Korduskatseid ei tohiks saata piiramatu hulgana, sest need võivad taastuvat teenust lisakoormusega tabada.

Suuna liiklus üle ja jälgi tulemust

Alusta väikese osaga rakenduse liiklusest ning võrdle Endpointi tulemuse kuju, vastuseaega ja vigade hulka Space’i lähtevariandiga. Jälgi ka replika olekut, järjekorda kogunevaid päringuid ja töötundidest kujunevat kulu. Kui vastuseaeg kasvab enne, kui lisareplika valmis saab, võib vaja minna kõrgemat miinimumi või teistsugust koormuspiiri; maksimumi tõstmine üksi ei kõrvalda külmkäivitust.

Hoia ülemineku ajal võimalus suunata liiklus tagasi eelmisele toimivale versioonile. Enne täielikku ümberlülitamist kontrolli autentimist, tavalist päringut, suurimat lubatud sisendit ja käitumist pärast jõudeolekut. Nii põhineb tootmiskeskkonna valik mõõdetud teenusetasemel ja replikate kulul, mitte üksnes sellel, et demo brauseris töötab.

Loe ka:

Jaga:

Telli meie uudiskiri

Saa värskeimad Web3, AI ja krüptouudised otse oma postkasti.

0