Connect with us

Tekoäly

Tulevaisuus palvelurittaiselle Inferenssille suurille kielimalleille

mm

Viimeaikaiset edistysaskeleet suurissa kielimalleissa (LLM) kuten GPT-4 ja PaLM ovat johtaneet muuntuvien kykyihin luonnollisen kielen tehtävissä. LLM:t ovat sisällytetty erilaisiin sovelluksiin, kuten chatbottiin, hakukoneisiin ja ohjelmistoihin. Kuitenkin LLM:n isäntäpalvelun tarjoaminen mittakaavassa on haasteellista sen merkittävien GPU- ja muistivaatimusten vuoksi.

Lähestymistavat näiden haasteiden voittamiseksi jakautuvat yleensä kahteen pääryhmään:

  1. Mallin pakkaustekniikat

Nämä tekniikat pyrkivät vähentämään mallin kokoa säilyttäen samalla tarkin. Yleiset lähestymistavat ovat:

  • Harvennus – Poistaa tarpeettomat tai vähemmän tärkeät parametri mallista. Tämä luo harvan mallin, jossa on vähemmän parametreja.
  • Kvantifiointi – Käytetään alempaa tarkkuutta, kuten int8 tai bfloat16, edustamaan painoja fp32 tai fp16 sijaan. Tämä vähentää muistijäljennystä.
  • Tiedon tislaus – Koulutetaan pienempi “oppilas” malli jäljittelemään suuren “opettaja” mallin. Pienempää mallia käytetään sitten inferenceksi.
  1. Valikoivat suoritukset

Nämä tekniikat suorittavat valikoivasti vain osia mallista kunkin inferenceksi:

  • Harvat aktivaatiot – Hyppää yli laskelmat nollaksi aktivoituneille.
  • Ehdollinen laskenta – Suorittaa vain tiettyjä kerroksia ehdolla syötteestä.

Lisäksi ohjelmistoarkkitehtuuriin liittyen; mahdollistaakseen nopeamman LLM:n käyttöönoton, tutkijat ovat ehdottaneet palvelurittaisia inference-järjestelmiä. Palvelurittaisissa arkkitehtuureissa LLM:t isännöidään jaettuissa GPU-klustereissa ja niitä dynaamisesti kohdennetaan tarpeen mukaan. Tämä mahdollistaa tehokkaan GPU:n käytön ja vähentää kehittäjien kustannuksia. Merkittäviä toteutuksia ovat Amazon SageMaker, Microsoft Azure ML ja avoimet vaihtoehdot kuten KServe.

Vaikka palvelurittaiset LLM:t lupaavat paljon, olemassa olevat järjestelmät näyttävät korkeita viiveitä, jotka heikentävät käyttökokemusta interaktiivisissa sovelluksissa:

  1. Kalliit tarkistuspisteiden lataukset: LLM:t ovat suuria muistijäljennysten vaatimisen suhteen, usein gigatavuista tai jopa teratavuista. Tarkistuspisteiden lataaminen etävarastosta on aikaa vievää, kestäen yli 20 sekuntia, jopa optimoiduilla verkoilla.
  2. Tehdään tarkistuspisteiden lataaminen: Jopa paikallisen SSD-tallennuksen kanssa, tarkistuspisteiden lataaminen GPU-muistiin kestää kymmeniä sekunteja tekijöiden vuoksi, kuten tensorin deserialisointi ja varaus. Tämä lisää merkittäviä viiveitä konttin avausajan lisäksi.

Ratkaistaksesi nämä ongelmat, MIT CSAIL:n tutkijat esittivät ServerlessLLM:n, innovatiivisen järjestelmän, joka saavuttaa matalan viiveen palvelurittaisen inference LLM:lle. ServerlessLLM parantaa paikallisuutta hyödyntämällä runsasta, mutta alikäytettyä kapasiteettia ja kaistanleveyttä monitasoisten palvelintallennuksissa LLM:n käyttöönottoon.

Yleiskatsaus LLM palvelurittaisista inference-järjestelmistä

Yleiskatsaus LLM palvelurittaisista inference-järjestelmistä

Avaininnovaatiot ServerlessLLM:ssä ServerlessLLM sisältää useita uusia suunnitteluratkaisuja, joilla voidaan leikata LLM:n latausajat palvelurittaisissa ympäristöissä:

  1. Pika tarkistuspisteiden lataus
  • Latausoptimoitu tarkistuspistemuoto, joka mahdollistaa nopean peräkkäisen lukemisen ja tehokkaan muistiosoitteen muodostamisen.
  • Monitasoinen tarkistuspisteiden latausputki, joka maksimoi kaistanleveyden hyödyntämisen verkon, SSD-levyjen, DRAMin ja GPU-muistin välillä tekniikoita kuten suoraa I/O:ta, kiinnitettyä muistin siirtoa ja rinnakkaisuutta.
  1. Live-migraatio paikallisuuden ohjaamiseen
  • Token-pohjainen migraatio, joka siirtää vain tarpeelliset syöte-tokenit verkon yli, välttäen hitaita otoskuvien siirtoja.
  • Kahdenvaiheinen migraatio, joka mahdollistaa keskeytymättömän inference-suorituksen siirtämällä lopulliset tokenit ennen resurssien vapauttamista. Tämä estää inference-viiveet.
  1. Viiveoptimoitu palvelimen varaus
  • Tarkin arviomallit, joilla voidaan arvioida tarkistuspisteiden latausajat kustakin tasosta ja migraatioajat palvelimelle.
  • Paikallisuuden tietoinen aikataulun teko, joka valitsee palvelimen, joka minimoi odotetun käynnistysviiveen käyttäen yllä mainittuja malleja.

Nämä optimoinnit mahdollistavat ServerlessLLM:lle vähentää LLM:n latausajat 4-8-kertaisesti ja loppupään käynnistysajat yli 25-kertaisesti verrattuna olemassa oleviin järjestelmiin kuten PyTorch, TensorFlow ja KServe.

Lähdemme tarkastelemaan, miten ServerlessLLM saavuttaa nämä merkittävät suorituskyvyn parannukset.

Kiihdyttäminen tarkistuspisteiden latausta

Ensimmäinen suuri pullonkaula, jonka ServerlessLLM ratkaisee, on korkea viive LLM-tarkistuspisteiden lataamisessa tallennuksesta GPU-muistiin.

Mahdollistaakseen nopean tarkistuspisteiden latauksen, ServerlessLLM esittelee:

  1. Latausoptimoitu tarkistuspistemuoto

Standarditarkistuspisteet, joita kehykset kuten PyTorch käyttävät, on suunniteltu mallin koulutukseen ja virheenjäljitykseen. Palvelurittaisessa inference-käytössä tarkistuspisteet ovat kuitenkin ainoastaan luettavissa ja niitä käytetään toistuvasti.

Optimoidakseen tällaiselle lukuintensiiviselle käytölle, ServerlessLLM muuttaa tarkistuspisteet muotoon, jossa on kaksi avainominaisuutta:

  • Peräkkäinen chunk-pohjainen lukeminen: Tensorit ryhmitellään GPU-kohtaisiin binääritiedostoihin, helpottaen suuria peräkkäisiä lukemisia.
  • Tehokas tensorin osoittaminen: Indeksi kartoittaa tensorin nimet muistiosoitteisiin, mahdollistaen suoran muistin palauttamisen deserialisoinnin vaarantamatta.
  1. Monitasoinen tarkistuspisteiden latausputki

ServerlessLLM hyödyntää GPU-palvelinten tasorakenteista arkkitehtuuria, jossa tallennusvälineet kuten SSD-levyt ja verkkoyhteydet liittyvät GPU:hin PCIe:n, NVMe:n kautta jne.

Järjestelmä sisältää monivaiheisen putken, joka maksimoi kaistanleveyden hyödyntämisen kaikilla tasoilla:

  • Muistitieto-chunkit varataan kiinni muistilla nopean GPU-siirron mahdollistamiseksi.
  • Suora I/O käytetään tehokkaan SSD-lukemisen mahdollistamiseksi ilman välimuistin kustannuksia.
  • Useat säikeet lukevat eri tallennus-chunkkeja rinnakkain.
  • Välivaiheiden koordinointi tapahtuu asynchronous tehtävärjonojen kautta.

Nämä yhdessä mahdollistavat kaistanleveyden kapasiteetin täyttymisen jopa nopeimmissa tasoissa kuten NVMe RAID. Kokeet osoittavat, että ServerlessLLM saavuttaa 6-8-kertaisesti nopeamman latauksen kuin PyTorch/TensorFlow, vähentäen käynnistysaikoja suurille LLM:lle yli minuutista alle 10 sekuntiin.

Paikallisuuden ohjaama LLM-inferenssi live-migraation kautta

Kiihdytettyään latausta, ServerlessLLM kohtaa uuden haasteen – miten hyödyntää esiladattuja tarkistuspisteitä paikallisuuden saavuttamiseksi ilman inference-suorituksen keskeytymistä ruuhkaisilla palvelimilla?

ServerlessLLM esittelee uuden tekniikan – live-migraation LLM-inference GPU-palvelimien välillä. Tämä mahdollistaa sujuvan siirtymisen toiminnan palvelimilta, joilla on paikalliset tarkistuspisteet.

Avain Live LLM-migraatiolle:

  1. Token-pohjainen migraatio

Sen sijaan, että otettaisiin kokonainen mallitila, ServerlessLLM siirtää vain välttämättömät syöte-tokenit verkon yli. Tämä siirtää paljon vähemmän dataa kuin otokset.

  1. Kahdenvaiheinen migraatio

Kohdepalvelin laskee etukäteen välimuistitilat syöte-tokeneista. Kun valmis, lähdepalvelin siirtää lopulliset tokenit ennen resurssien vapauttamista. Tämä estää inference-keskeytykset.

Kokeet osoittavat, että token-pohjainen migraatio vähentää migraatioajat kymmenistä sekunneista alle sekuntiin, jopa pitkille sekvensseille. Live-migraatio on tärkeää paikallisuuden ohjauksen saavuttamiseksi.

Viiveoptimoitu mallin ajoitus

Minimoidakseen loppupään viiveen, ServerlessLLM parantaa aikataulunvalintaa paikallisuuden huomioon ottaen. Tämä sisältää:

  1. Hienojakoinen latausaikaisin arvio

Mallit ennustavat latausajat verkon, SSD-välimuistin ja muistin kautta kullekin palvelimelle käyttäen metriikkoja kuten jonon viiveet, mallikoot ja mitatut kaistanleveydet.

  1. Tarkin migraatioaikaisin arvio

Aikataulunvalinta arvioi migraatioajat palvelimille käyttäen syötteiden ja tulosteen tokenien määrää. Se seuraa inference-eteenpäinaskelia asynkronisesti välttääkseen kustannukset.

  1. Paikallisuuden tietoinen varaus

Kunkin inference-pyynnön kohdalla aikataulunvalinta arvioi lataus- ja migraatioajat palvelimien yli. Se valitsee palvelimen, joka minimoi odotetun käynnistysviiveen käyttäen yllä mainittuja malleja.

Aikataulunvalinta ylläpitää myös palvelimen tehtävärjonoja ja hyödyntää vahvasti yhdenmukaisen tallennuksen virheenkestolle. Yhdessä nämä innovaatiot vähentävät aikataulunvalinnan kustannuksia samalla kun maksimoidaan paikallisuuden hyödyt.

ServerlessLLM:n suorituskyvyn arviointi

Perusteelliset kokeet mittavat ServerlessLLM:n loppupään tehokkuutta verrattuna olemassa oleviin järjestelmiin käyttäen todellisia malleja kuten OPT-175B ja työmäärää, joka on mallinnettu Azure-jäljitysten mukaan.

Avain tulokset:

  • Mikrobenchmarkit: ServerlessLLM kiihdyttää tarkistuspisteiden latausta 3,6-8,2-kertaisesti PyTorch/TensorFlow:iin verrattuna. Se täyttää täysin tallennuksen kaistanleveyden, jopa cutting-edge NVMe RAID:lle.
  • Aikataulunvalinta: ServerlessLLM vähentää varausviiveitä 4-12-kertaisesti satunnaisen aikataulunvalinnan verrattuna, korostaen paikallisuuden edut. Live-migraatio estää jonon viiveet.
  • Loppupään palvelu: Suurille malleille kuten OPT-30B, ServerlessLLM parantaa 99. prosenttipisteen viiveitä 28-200-kertaisesti järjestelmiin kuten KServe ja Ray Serve verrattuna. Se myös parantaa resurssitehokkuutta.

Nämä merkittävät voitot osoittavat ServerlessLLM:n kyvyn voittaa olemassa olevat pullonkaulat ja lukita LLM:n voima interaktiivisille palveluille.

ServerlessLLM:ssä esiteltyjen optimointien, kuten monitasoisen latauksen, live-migraation ja viiveohjatun aikataulunvalinnan, voidaan hyödyntää tulevien palvelurittaisen arkkitehtuurien suunnittelussa. Järjestelmän kyky leikata lataus- ja käynnistysajoista avaa suuren mittakaavan käyttöönoton suurille kielimalleille käytännön sovelluksissa.

Eteenpäin katse: Jatkuva haasteet

Vaikka merkittävä askel eteenpäin, ServerlessLLM edustaa vain ensimmäistä askelta suurten LLM:ien palvelurittaisen inference-optimoimisessa. Useita avoimia ongelmia on edelleen, kuten:

  • Mallin reaaliaikaisen kysynnän ennustaminen ohjaamaan varustelua ja esilatausta
  • Tarkistuspisteiden älykäs sijoittaminen palvelimien yli maksimoimaan välimuistin osumia
  • Aikataulunvalintaa koskevien algoritmien tehokas skaalautuminen suuremmille klustereille
  • Reiluus resurssien jakamisessa malleja ja kehittäjiä kohtaan
  • Innovaatioiden yleistäminen muihin palvelurittaisiin työkuormiin

Näiden alojen ratkaiseminen voi auttaa rakentamaan palvelurittaisen LLM:n lupausta ja tehdä niiden ominaisuudet helpommin saataville. Järjestelmätason optimoinnin lisäksi suurten mallien ilmiselvän hiilijalanjäljen ja mahdollisten vahinkojen vähentäminen on myös kiireellinen prioriteetti.

ServerlessLLM osoittaa, että paljon tilaa innovaatioille on seuraavissa sukupolven palvelurittaisissa arkkitehtuureissa AI-työkuormille. Kun LLM:t jatkavat kasvamistaan ja suosiotaan, ratkaisut kuten ServerlessLLM, jotka lukitsevat niiden skaalautuvuuden, tulevat kasvamaan vaikuttavuuttaan. Järjestelmien ja koneoppimisen tutkimuksen yhdistäminen voi esitellä uusia paradigmoja palvelujen, jaon ja skaalautuvuuden turvalliseen ja kestävään toteuttamiseen.

Olen viettänyt viimeiset viisi vuotta uppoutumassa kiinnostavaan koneoppimisen ja syväoppimisen maailmaan. Intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut tekoäly/ML. Jatkuva uteliaisuuteni on myös ohjannut minua kohti luonnollisen kielen prosessointia, alaa jota haluan tutkia tarkemmin.