AI-mallit ja alustat
Tulevaisuus palvelurittaiselle Inferenssille suurille kielimalleille
Viimeaikaiset edistysaskeleet suurilla kielimalleilla (LLM) kuten GPT-4 ja PaLM ovat johtaneet muodonmuutoksiin luonnollisen kielen tehtävissä. LLM:t ovat sisällytetty erilaisiin sovelluksiin, kuten chatbottiin, hakukoneisiin ja ohjelmistokehittäjien apuvälineisiin. Kuitenkin LLM:n skaalautuminen on edelleen haasteellista sen merkittävien GPU- ja muistivaatimusten vuoksi.
Tavallisesti LLM:n skaalautumisen esteiden voittamiseksi käytettävät lähestymistavat voidaan jakaa kahteen pääryhmään:
- Mallin pakkaustekniikat
Nämä tekniikat pyrkivät vähentämään mallin kokoa säilyttäen samalla tarkkuuden. Yleisiä lähestymistapoja ovat:
- Harvennus – Poistaa tarpeettomat tai vähemmän tärkeät parametri mallista. Tämä luo harvan mallin, jolla on vähemmän parametreja.
- Kvantifiointi – Käytetään alempaa tarkkuutta olevia lukuja, kuten int8 tai bfloat16, edustamaan painoja fp32 tai fp16 sijaan. Tämä vähentää muistinjäljentämistä.
- Tietämys tiivistäminen – Koulutetaan pienempi “oppilas” malli jäljittelemään suurempaa “opettaja” mallia. Pienempi malli käytetään sitten inferenceksi.
- Valikoivat suoritukset
Nämä tekniikat suorittavat valikoivasti vain osia mallista kunkin inferenceksen yhteydessä:
- Harvat aktivaatiot – Ohittaa laskenta nollaksi aktivoituneista arvoista.
- Ehdollinen laskenta – Suorittaa vain tiettyjä kerroksia ehdollisesti syötteen perusteella.
Lisäksi ohjelmistoarkkitehtuurin kannalta, tutkijat ovat ehdottaneet palvelurittaisia inference-järjestelmiä LLM:ien nopeampaan käyttöönottoon. Palvelurittaisissa arkkitehtuureissa LLM:t isännöidään jaettuilla GPU-klustereilla ja niitä allokoitiin dynaamisesti tarpeen mukaan. Tämä mahdollistaa tehokkaan GPU:n käytön ja vähentää kehittäjien kustannuksia. Merkittäviä toteutuksia ovat Amazon (AMZN ) 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:
- Kalliit tarkistuspisteiden lataukset: LLM:illä on suuret muistinjäljenteet, usein gigatavuista tai jopa teratavuista. Tarkistuspisteiden lataaminen etävarastosta on aikaa vievää, kestäen yli 20 sekuntia jopa optimoiduilla verkoilla.
- Tehottomat tarkistuspisteiden lataukset: Jopa paikallisella SSD-muistilla, tarkistuspisteiden lataaminen GPU-muistiin kestää kymmeniä sekunteja tekijöiden vuoksi, kuten tensorien deserialisointi ja varaus. Tämä lisää merkittäviä viiveitä konttin käynnistysajan lisäksi.
Näiden ongelmien ratkaisemiseksi MIT CSAIL:n tutkijat esittivät ServerlessLLM:n, innovatiivisen järjestelmän, joka saavuttaa matalan viiveen palvelurittaisen inference:n LLM:ille. ServerlessLLM parantaa paikallisuutta hyödyntämällä runsasta, mutta alikäytettyä kapasiteettia ja kaistanleveyttä monitasoisen palvelinvarastoinnin LLM-käyttöön.
Avaininnovaatiot ServerlessLLM:ssä ServerlessLLM sisältää useita uusia suunnitteluratkaisuja, jotka leikkaavat LLM-latausajat palvelurittaisissa ympäristöissä:
- Nopea tarkistuspisteen lataus
- Latauksen optimoitu tarkistuspisteen muoto, joka mahdollistaa nopean sekvenssaalisen lukemisen ja tehokkaan muistitensorin osoittamisen.
- Monitasoinen tarkistuspisteen latausputki, joka maksimoi kaistanleveyden hyödyntämisen verkon, SSD-levyjen, DRAM:n ja GPU-muistin välillä tekniikoita kuten suoraa I/O:ta, kiinnitettyä muistinsiirtoa ja rinnakkaisuutta käyttäen.
- Live-migraatio paikallisuuden mukaiselle inference:lle
- Token-pohjainen migraatio, joka siirtää vain olennaiset syöte-tokenit verkon yli, välttäen hitaata snapshot-siirtoa.
- Kahdenvaiheinen migraatio, joka sallii keskeytymättömän inference:n asynkronisesti laskemalla välimuistitilan kohdeserverillä ennen lopullisten tokenien siirtoa.
- Viiveen optimoitu palvelimen aloitus
- Tarkat mallit, jotka arvioivat tarkistuspisteiden latausajat ja migraatioajat kustakin palvelimesta.
- Paikallisuuden tietoinen aikataulutus, joka valitsee palvelimen, joka minimoi odotetun käynnistysviiveen käyttäen yllä mainittuja malleja.
Nämä optimoinnit mahdollistavat ServerlessLLM:lle LLM-latausajat 4-8 kertaa nopeammin ja loppuun asti käynnistysajat yli 25 kertaa nopeammin verrattuna olemassa oleviin järjestelmiin kuten PyTorch, TensorFlow ja KServe.
Tutustumme nyt tarkemmin siihen, miten ServerlessLLM saavuttaa nämä merkittävät suorituskykyparannukset.
Kiihdyttäminen tarkistuspisteen latausta
ServerlessLLM:n ensisijainen pullonkaula on LLM-tarkistuspisteiden lataamisen suuri viive muistiin.
Nopean tarkistuspisteen lataamisen mahdollistamiseksi ServerlessLLM esittelee:
- Latauksen optimoitu tarkistuspisteen muoto
Standardit tarkistuspisteet, joita kehykset kuten PyTorch käyttävät, on suunniteltu mallin koulutukseen ja virheenjäljitykseen. Palvelurittaisessa inference:ssä tarkistuspisteet ovat kuitenkin ainoastaan luettavia ja niitä käytetään toistuvasti.
Tällaisen lukuintensiivisen käytön optimoimiseksi ServerlessLLM muuttaa tarkistuspisteet muotoon, jossa on kaksi olennasta ominaisuutta:
- Sekvenssaalinen chunk-pohjainen lukeminen: Tensorit ryhmitellään GPU-kohtaisiin binääritiedostoihin, helpottaen suuria sekvenssaalisia lukuja.
- Tehokas tensorin osoittaminen: Indeksi karttaa tensorin nimet muistiin osoittimiin, sallien suoran muistin palauttamisen deserialisointia välttäen.
- Monitasoinen tarkistuspisteen latausputki
ServerlessLLM hyödyntää GPU-palvelinten tasorakenteista arkkitehtuuria, jossa on tallennusvälineitä kuten SSD-levyjä ja verkkoyhteyksiä, jotka liittyvät GPU:hin PCIe:n, NVMe:n kautta jne.
Järjestelmä sisältää monivaiheisen putken, joka maksimoi kaistanleveyden hyödyntämisen kaikissa tasoisissa:
- Muistitietoja varataan kiinni muistilla nopean GPU-siirron mahdollistamiseksi.
- Suoraa I/O:ta käytetään tehokkaaseen SSD-lukemiseen ilman välimuistin kustannuksia.
- Useat säikeet lukevat eri tallennuspalasia rinnakkain.
- Välivaiheiden koordinointi tapahtuu asynkronisesti tehtävien jonoin.
Yhdessä nämä mahdollistavat kaistanleveyden käytön jopa nopeimmissa tasoisissa kuten NVMe-RAID. Kokeet osoittavat, että ServerlessLLM saavuttaa 6-8 kertaa nopeamman lataamisen kuin PyTorch/TensorFlow, vähentäen käynnistysaikoja suurille LLM:ille yli minuutista alle 10 sekuntiin.
Paikallisuuden mukainen LLM-inference live-migraation kautta
Kiihdytetyn lataamisen myötä ServerlessLLM kohtaa uuden haasteen – miten hyödyntää esiladattuja tarkistuspisteitä paikallisuuden ilman inference:n keskeytymistä ruuhkaisilla palvelimilla?
ServerlessLLM esittelee uuden tekniikan – LLM-inferenssin live-migraation GPU-palvelimien välillä. Tämä mahdollistaa suorituksen siirtämisen palvelimille, joilla on paikalliset tarkistuspisteet käytettävissä.
Live LLM-migraation avainominaisuudet:
- Token-pohjainen migraatio
Sen sijaan, että koko mallitilaa siirtäisi, ServerlessLLM siirtää vain välttämättömät syöte-tokenit verkon yli. Tämä siirtää monien kertojen vähemmän dataa kuin snapshotit.
- Kahdenvaiheinen migraatio
Kohdepalvelin laskee etukäteen välimuistitilan syöte-tokeneista. Kun valmis, lähdepalvelin siirtää lopulliset tokenit ennen resurssien vapauttamista. Tämä estää inference:n keskeytymisen.
Kokeet osoittavat, että token-pohjainen migraatio leikkaa migraatioajat kymmenistä sekunneista alle sekuntiin, jopa pitkille sekvensseille. Live-migraatio on olennainen paikallisuuden saavuttamiseksi.
Viiveen optimoitu mallin aikataulutus
Jotta minimoidaan loppuun asti viive, ServerlessLLM parantaa aikataulutusta paikallisuuden huomioon ottamiseksi. Tämä sisältää:
- Hienojakoinen latausajan arvioija
Mallit arvioivat latausajat verkon, SSD-välimuistin ja muistin kullekin palvelimelle käyttäen metriikkoja kuten jonon viiveitä, mallikokoja ja mitattua kaistanleveyttä.
- Tarkan migraatioajan ennustaja
Aikataulutus arvioi migraatioajat palvelimille käyttäen syöte- ja tulostokenien määrää. Se seuraa inference-etenevää asynkronisesti välttäen kustannuksia.
- Paikallisuuden tietoinen aloitus
Kunkin inference-pyynnön kohdalla aikataulutus arvioi lataus- ja migraatioajat kaikissa palvelimissa. Se valitsee palvelimen, joka minimoi odotetun käynnistysviiveen käyttäen yllä mainittuja malleja.
Aikataulutus ylläpitää myös palvelimen tehtävien jonot ja hyödyntää vahvasti yhdenmukaisen tallennuksen virhetoleranssin vuoksi. Yhdessä nämä innovaatiot vähentävät aikataulutuksen kustannuksia samalla kun maksimoidaan paikallisuuden hyödyt.
ServerlessLLM-suorituskyvyn arviointi
Kattavat kokeet mittavat ServerlessLLM:n loppuun asti 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ää tarkistuspisteen lataamisen 3,6-8,2 kertaa nopeammin kuin PyTorch/TensorFlow. Se täyttää täysin tallennuskaistanleveyden, jopa uusimmissa NVMe-RAID-tekniikoissa.
- Aikataulutus: ServerlessLLM vähentää aloitusviivettä 4-12 kertaa verrattuna satunnaisiin aikatauluun, korostaen paikallisuuden hyötyjä. Live-migraatio estää jonon viiveet.
- Loppuun asti palvelu: Suurten mallien kuten OPT-30B osalta ServerlessLLM parantaa 99. prosenttipisteen viivettä 28-200 kertaa verrattuna järjestelmiin kuten KServe ja Ray Serve. Se myös parantaa resurssitehokkuutta.
Nämä merkittävät parannukset osoittavat ServerlessLLM:n kyvyn voittaa olemassa olevien palvelurittaisten toteutusten pullonkaulat ja avaamaan suurten kielimallien voiman interaktiivisille palveluille.
ServerlessLLM:ssä esitellyt optimoinnit, kuten monitasoinen lataus, live-migraatio ja viiveen optimoitu aikataulutus, voivat auttaa tulevien palvelurittaisten arkkitehtuurien suunnittelussa. Järjestelmän kyky leikata lataus- ja käynnistysajat esteettömästi suurten kielimallien skaalautuvaa käyttöönottoa käytännön sovelluksissa.
Eteenpäin katse: Jatkuvat haasteet
Vaikka merkittävä askel eteenpäin, ServerlessLLM edustaa vain ensimmäistä askelta palvelurittaisen inference:n optimoimisessa massiivisille LLM:ille. Useita avoimia ongelmia on edelleen:
- Mallin reaaliaikaisen kysynnän ennustaminen ohjaamaan varustelua ja esilatausta
- Tarkistuspisteiden älykäs sijoittaminen palvelimille maksimoimaan välimuistin osumia
- Aikataulutusalgoritmien tehokas skaalautuminen suurempien klustereiden käsittelyyn
- Reiluus resurssien jakautumisessa malleja ja kehittäjiä kohtaan
- Innovaatioiden yleistäminen, kuten live-migraatio, muihin palvelurittaisiin työmääriin
Näiden alojen ratkaiseminen voi auttaa rakentamaan palvelurittaisen LLM:n lupausta ja tehdä niiden ominaisuudet helpommin saataville. Järjestelmätason optimoinnien lisäksi, suurten mallien ilmastopäästöjen ja mahdollisten haittojen vähentäminen on edelleen kiireellinen prioriteetti.
ServerlessLLM osoittaa, että suuri kehittymismahdollisuus on palvelurittaisissa arkkitehtuureissa AI-työmäärille. Kun LLM:t jatkavat kasvamistaan sekä koossa että suosiossa, ratkaisut kuten ServerlessLLM, jotka avaavat niiden skaalautuvuuden, tulevat olemaan yhä vaikuttavampia. Järjestelmien ja koneoppimisen tutkimuksen yhdistyminen voi esitellä uusia paradigmoja AI-mallien turvallisessa ja kestävässä jakamisessa ja skaalauttamisessa.













