Comparthing Logo
mašininis mokymasismodelio aptarnavimasmlopsdebesų infrastruktūraišvada

Paskirstytas ML aptarnavimas ir centralizuoto modelio aptarnavimas

Paskirstytas ML teikimas paskirsto išvadų apkrovą keliuose mazguose, kad būtų užtikrintas mastelio keitimas ir atsparumas, o centralizuotas modelių teikimas sutelkia skaičiavimus vienoje sistemoje, kad būtų paprasčiau ir lengviau valdyti. Pasirinkimas priklauso nuo srauto modelių, delsos reikalavimų ir operacinės brandos.

Akcentai

  • Paskirstytos serviravimo svarstyklės horizontaliai, o centralizuotos – tik vertikaliai.
  • Centralizuotos sistemos pasižymi mažesniu veikimo sudėtingumu, tačiau sukuria vieną gedimo tašką.
  • Paskirstytos architektūros sklandžiau tvarko srauto šuolius, naudodamos apkrovos balansavimą.
  • Centralizuotas teikimas paprastai užtikrina pastovesnį delsos laiką esant mažam arba vidutiniam srautui.

Kas yra Paskirstytas mašininio mokymosi aptarnavimas?

Aptarnaujanti architektūra, kuri vykdo modelio išvadas keliose mašinose ar mazguose, kad būtų galima valdyti mastelį ir atsparumą gedimams.

  • Išvadų apdorojimas yra paskirstytas tarp GPU arba CPU grupių, todėl užklausų kiekiui augant galima horizontaliai keisti mastelį.
  • Tokios sistemos kaip „NVIDIA Triton Inference Server“, „Ray Serve“ ir „TensorFlow Serving“ palaiko paskirstyto diegimo modelius iš karto.
  • Apkrovos balansavimo įrenginiai nukreipia gaunamas užklausas į mažiausiai apkrautą mazgą, taip sumažindami uodegos delsą srauto pikų metu.
  • Vieno mazgo gedimas nesustabdo visos paslaugos, nes likę mazgai sugeria srautą.
  • Įprasti naudojimo atvejai apima didelių kalbų modelių išvadas, rekomendacijų sistemas ir realaus laiko kompiuterinio matymo srautus.

Kas yra Centralizuotas modelio aptarnavimas?

Tradicinė aptarnavimo sistema, kai vienas įrenginys arba mažas klasteris talpina modelį ir tvarko visas išvadų užklausas.

  • Visas išvadų srautas teka per vieną pagrindinį kompiuterį, todėl diegimas ir derinimas yra žymiai paprastesni.
  • Vėlavimas išlieka nuspėjamas, nes užklausos niekada neperžengia tinklo šuolio tarp aptarnaujančių mazgų.
  • Išteklių planavimas yra paprastas, nes pajėgumas lygus vienos mašinos techninės įrangos užimamam plotui.
  • Įprastos platformos apima „Flask“ arba „FastAPI“ programas, veikiančias už atvirkštinio tarpinio serverio, arba vieno mazgo „MLflow“ aptarnavimo egzempliorių.
  • Geriausiai tinka mažai srauto generuojantiems vidiniams įrankiams, paketinio stiliaus API ir prototipams, kur paprastumas nusveria mastelį.

Palyginimo lentelė

Funkcija Paskirstytas mašininio mokymosi aptarnavimas Centralizuotas modelio aptarnavimas
Architektūros stilius Keli mazgai už apkrovos balansavimo įrenginio Vienas mazgas arba glaudžiai sujungtas klasteris
Mastelio keitimas Horizontalus, beveik tiesinis su mazgų skaičiumi Vertikalus, ribojamas vienos mašinos įrangos
Gedimų tolerancija Didelis, išlikusių atskirų mazgų gedimų skaičius Žemas, vienas gedimo taškas
Veiklos sudėtingumas Aukštesnis lygis, reikalauja orkestravimo ir stebėjimo Žemesnis, lengviau diegiamas ir derinamas
Tipinis latencijos profilis Kintamas, optimizuotas pralaidumui Nuoseklus, optimizuotas nuspėjamumui
Geriausiai tinka Didelis QPS, dideli modeliai, gamybinis srautas Mažas arba vidutinis srautas, prototipai, vidiniai įrankiai
Sąnaudų modelis Aukštesnis bazinis lygis, prisitaiko prie paklausos Apatinė bazinė vertė, fiksuotas pajėgumas
Bendrosios sistemos Tritonas, Ray Serve, KServe, BentoML „FastAPI“, „Flask“, „MLflow“, vieno mazgo TF aptarnavimas

Išsamus palyginimas

Mastelio keitimas ir pralaidumas

Paskirstytas teikimas sužiba, kai srautas išauga tiek, kad vienas įrenginys negali apdoroti. Pridėjus daugiau replikų ar fragmentų, apkrova paskirstoma ir atsako laikas išlieka stabilus net ir staigių šuolių metu. Priešingai, centralizuotas teikimas apriboja pralaidumą iki tokio lygio, kokį gali pateikti pagrindinis kompiuteris, todėl mastelio keitimas reiškia didesnės dėžės pirkimą, o ne daugiau mazgų pridėjimą.

Gedimų toleravimas ir patikimumas

Kai paskirstyto klasterio mazgas sugenda, srautas automatiškai peradresuojamas, o paslauga lieka įjungta. Centralizuotose sistemose tokio saugumo tinklo nėra, todėl aparatinės įrangos gedimas arba branduolio panika atjungia visą API, kol kas nors įsikiš. Kritinių programų atveju šis vienas gedimo taškas dažnai yra lemiamas veiksnys.

Veiklos pridėtinės išlaidos

Paskirstytos sistemos valdymas reiškia paslaugų aptikimo, sistemos būklės patikrų, automatinio mastelio keitimo taisyklių ir stebėjimo valdymą daugelyje judančių dalių. Centralizuotas aptarnavimas yra daug patogesnis mažoms komandoms, nes vieną procesą viename kompiuteryje yra daug lengviau stebėti ir argumentuoti. Kompromisas yra tas, kad paprastumas šiandien gali tapti kliūtimi rytoj.

Latencijos charakteristikos

Paskirstytos sistemos kartais prideda nedidelį tinklo šuolį per apkrovos balansavimo įrenginį, tačiau jos taip pat sumažina eilės gylį kiekviename mazge, o tai dažnai pagerina uodegos delsą esant apkrovai. Centralizuotas aptarnavimas visiškai išvengia papildomo šuolio, todėl esant mažam srautui užtikrinamas labai pastovus delsos laikas. Tačiau esant dideliam srautui, eilės kaupiasi viename pagrindiniame kompiuteryje, o p99 delsos laikas greitai mažėja.

Sąnaudų ir išteklių naudojimo efektyvumas

Paskirstytas teikimas leidžia automatinio mastelio keitimo būdu suderinti pajėgumus su paklausa, todėl mokate tik už tai, ką naudojate ramiais laikotarpiais. Centralizuotam teikimui reikia iš anksto pasiruošti didžiausiai apkrovai, o tai gali reikšti, kad didžiąją laiko dalį įranga bus nenaudojama. Nuspėjamiems, mažo apimties darbo krūviams centralizuotas metodas paprastai yra pigesnis.

Privalumai ir trūkumai

Paskirstytas mašininio mokymosi aptarnavimas

Privalumai

  • + Horizontalus mastelio keitimas
  • + Integruotas gedimų toleravimas
  • + Susidoroja su eismo spūstimis
  • + Palaiko didelius modelius

Pasirinkta

  • Didesnis operacinis sudėtingumas
  • Brangiau esant mažam eismo intensyvumui
  • Reikalingi orkestravimo įrankiai
  • Sunkiau derinti

Centralizuotas modelio aptarnavimas

Privalumai

  • + Paprasta dislokuoti
  • + Numatomas delsos laikas
  • + Mažesnės bazinės išlaidos
  • + Lengva derinti

Pasirinkta

  • Vienintelis gedimo taškas
  • Ribotas vertikalus mastelio keitimas
  • Tuščiosios eigos pajėgumas esant mažai apkrovai
  • Kliūtys po dygliais

Dažni klaidingi įsitikinimai

Mitas

Paskirstytas aptarnavimas visada yra greitesnis nei centralizuotas.

Realybė

Greitis priklauso nuo darbo krūvio ir konfigūracijos. Esant mažam srautui, papildomas tinklo šuolis paskirstytose sistemose gali padidinti delsą, o gerai suderintas centralizuotas serveris gali reaguoti greičiau. Paskirstytas aptarnavimas padidina pralaidumą ir delsą esant dideliam apkrovimui, o ne būtinai sumažina neapdorotą greitį.

Mitas

Centralizuotas aptarnavimas visiškai negali būti plečiamas.

Realybė

Centralizuotos sistemos gali plėstis vertikaliai, atnaujinant jas į didesnes mašinas su daugiau atminties ir GPU. Daugelis gamybos sistemų veikia centralizuotai ir sėkmingai veikia daugelį metų, kol prireikia platinimo. Riba yra aparatinė įranga, o ne architektūra.

Mitas

Paskirstytas teikimas panaikina stebėjimo poreikį.

Realybė

Paskirstytoms sistemoms iš tikrųjų reikia daugiau stebėjimo, o ne mažiau. Norint anksti pastebėti problemas, reikia stebėti kiekvieno mazgo būklę, užklausų maršrutizavimą, replikų skaičių ir viso klasterio delsą. Be stebėjimo galimybių gedimus diagnozuoti yra daug sunkiau.

Mitas

Visi mašininio mokymosi modeliai naudojasi paskirstyto aptarnavimo privalumais.

Realybė

Maži modeliai su mažu srautu dažnai puikiai veikia vienoje mašinoje. Jų paskirstymas padidina išlaidas ir sudėtingumą, be reikšmingo našumo padidėjimo. Platinimas daugiausia atsiperka naudojant didelius modelius, aukštą QPS arba griežtus prieinamumo reikalavimus.

Mitas

Centralizuotas aptarnavimas yra pasenusi technologija.

Realybė

Centralizuotas teikimas išlieka numatytuoju daugelio realių diegimų, ypač vidinių API, paketinių išvadų užduočių ir ankstyvosios stadijos produktų, įrankiu. Jis nėra pasenęs; tai tiesiog tinkamas įrankis kitokioms problemoms spręsti.

Dažnai užduodami klausimai

Kuo pagrindinis skirtumas tarp paskirstyto ir centralizuoto ML aptarnavimo?
Paskirstytas ML aptarnavimas paskirsto išvadas kelioms mašinoms, sujungtoms per apkrovos balansavimo įrenginį, o centralizuotas aptarnavimas viską vykdo viename pagrindiniame kompiuteryje. Paskirstytas metodas teikia pirmenybę mastui ir atsparumui, o centralizuotas metodas teikia pirmenybę paprastumui ir nuspėjamam delsos laikui.
Kada turėčiau naudoti paskirstytą mašininio mokymosi (ML) teikimą?
Paskirstytas teikimas yra prasmingas, kai tvarkote didelius užklausų kiekius, vykdote per didelius modelius vienam įrenginiui arba jums reikia didelio prieinamumo. Tai taip pat tinkamas pasirinkimas, kai srauto modeliai yra staigūs ir norite, kad automatinis mastelio keitimas atitiktų paklausą realiuoju laiku.
Ar gamyboje vis dar naudojamas centralizuotas modelio teikimas?
Taip, daugelis gamybinių sistemų vis dar naudoja centralizuotą aptarnavimą, ypač kalbant apie vidinius įrankius, mažo srauto API ir paketų analizę. Daugelis komandų pradeda centralizuotai ir pereina prie paskirstytos sistemos tik tada, kai to reikalauja srautas ar modelio dydis.
Kuris požiūris pigesnis?
Centralizuotas teikimas paprastai yra pigesnis esant mažam srautui, nes mokate tik už vieną įrenginį. Paskirstytas teikimas tampa ekonomiškai efektyvus, kai srautas pateisina horizontalų keitimą, nes automatinis keitimas leidžia suderinti išlaidas su faktine paklausa.
Kuo skiriasi šių dviejų sistemų atsparumas gedimams?
Paskirstytas teikimas išgyvena atskirų mazgų gedimus, nes srautas nukreipiamas į sveikas kopijas. Centralizuotas teikimas turi vieną gedimo tašką, todėl bet koks aparatinės ar programinės įrangos gedimas atjungia visą API, kol pagrindinis kompiuteris atsistato.
Kokios sistemos palaiko paskirstytą ML teikimą?
Populiarios parinktys apima „NVIDIA Triton Inference Server“, „Ray Serve“, „KServe“, „BentoML“ ir „TensorFlow Serving“ klasterio režimu. Dauguma jų taip pat palaiko centralizuotą diegimą, todėl galite pradėti nuo mažų kiekių ir vėliau plėsti.
Ar galiu derinti paskirstytą ir centralizuotą aptarnavimą?
Žinoma. Daugelis komandų naudoja centralizuotą sistemą žemo prioriteto darbo krūviams ir paskirstytą klasterį modeliams, jautriems delsai arba didelio srauto modeliams. Hibridinės architektūros yra įprastos ir leidžia subalansuoti kainą ir patikimumą kiekvienai paslaugai.
Ar paskirstytas teikimas visada sumažina delsą?
Ne visada. Esant mažam srautui, papildomas tinklo šuolis per apkrovos balansavimo įrenginį gali pridėti kelias milisekundes. Tačiau esant didelei apkrovai paskirstytas aptarnavimas sumažina eilės gylį kiekviename mazge ir paprastai žymiai pagerina uodegos delsą.
Kaip pereiti nuo centralizuoto prie paskirstyto aptarnavimo?
Pradėkite nuo modelio konteinerizavimo ir įkėlimo į apkrovos balansavimo įrenginį su dviem ar trimis kopijomis. Prieš palaipsniui perkeldami srautą, pridėkite būsenos patikrinimus, automatinio mastelio keitimo taisykles ir centralizuotą registravimą. Dauguma aptarnavimo sistemų šį perėjimą padaro gana neskausmingą.
Kokį vaidmenį GPU atmintis vaidina renkantis architektūrą?
Jei jūsų modelis patogiai telpa vieno GPU atmintyje, centralizuotas teikimas dažnai yra paprasčiausias būdas. Kai modelis viršija vieno GPU talpą arba jums reikia aptarnauti daug vienu metu vykstančių užklausų, tampa būtinas paskirstytas teikimas su modelio skaidymu arba tenzorių lygiagretumu.

Nuosprendis

Rinkitės paskirstytą mašininio mokymosi (ML) teikimą, kai tikitės didelio užklausų skaičiaus, jums reikia atsparumo gedimams arba vykdote didelius modelius, kurie viršija vieno kompiuterio atmintį. Centralizuotą modelių teikimą rinkitės prototipams, vidinėms priemonėms arba mažai srauto generuojančioms API, kur paprastumas ir nuspėjama delsa yra svarbesni už neapdorotą mastą.

Susiję palyginimai

„Kafka“ ir „Flink“ palyginti su apdorojimu atmintyje

„Kafka“ ir „Flink“ sudaro paskirstytą srautinio apdorojimo ekosistemą realaus laiko duomenų srautams, o apdorojimas atmintyje pagreitina analizę, nes duomenys saugomi tik RAM atmintyje – kiekvienas iš jų tenkina iš esmės skirtingus architektūrinius greičio, mastelio ir tvarumo poreikius.

„Netflix“ mašininio mokymosi platforma ir nepriklausomi mašininio mokymosi įrankiai

„Netflix“ vidinė mašininio mokymosi platforma siūlo glaudžiai integruotus, didelio masto įrankius, skirtus transliacijų suasmeninimui, o nepriklausomi mašininio mokymosi įrankiai suteikia mažesnėms komandoms lankstumo ir kontrolės. Pasirinkimas priklauso nuo masto, pritaikymo poreikių ir esamų investicijų į infrastruktūrą.

Adaptyvioji infrastruktūra ir statinė infrastruktūros projektavimas

Adaptyvi infrastruktūra dinamiškai prisitaiko prie kintančių darbo krūvių, naudodama automatizavimą ir mastelio keitimą realiuoju laiku, o statinės infrastruktūros projektavimas remiasi fiksuotais, iš anksto sukonfigūruotais ištekliais. Pasirinkimas priklauso nuo darbo krūvio kintamumo, biudžeto nuspėjamumo ir veikimo brandos jūsų debesijos aplinkoje.

Apkrovos balansavimas mašininio mokymosi sistemose ir paprastas API užklausų tvarkymas

Apkrovos balansavimas mašininio mokymosi sistemose valdo GPU reikalaujančius išvadų ir mokymo darbo krūvius specializuotoje įrangoje, o paprastas API užklausų apdorojimas paskirsto nedidelį HTTP srautą bendrosios paskirties serveriuose. Jie labai skiriasi sudėtingumu, išteklių poreikiu ir maršruto parinkimo išmanumu.

Atsparumas gedimams ir sistemos paleidimas iš naujo

Atsparumas gedimams proaktyviai perkelia darbo krūvius į sveikas sistemas, kol vartotojai nepastebi problemų, o sistemos gedimų atveju iš naujo paleidžiamos sistemos reaktyviai atkuria paslaugas po netikėtų gedimų. Abu metodai siekia palaikyti prieinamumą, tačiau iš esmės skiriasi laiku, architektūros sudėtingumu ir poveikiu vartotojams.