škrbina Budućnost zaključivanja bez poslužitelja za modele velikih jezika - Unite.AI
Povežite se s nama

Umjetna inteligencija

Budućnost zaključivanja bez poslužitelja za modele velikih jezika

mm

Objavljeno

 on

Nedavni napredak u velikim jezičnim modelima (LLM) poput GPT-4, PaLM doveo je do transformativnih mogućnosti u zadacima prirodnog jezika. LLM-ovi se ugrađuju u razne aplikacije kao što su chatbotovi, tražilice i pomoćnici u programiranju. Međutim, opsluživanje LLM-a u velikom broju ostaje izazovno zbog njihovih značajnih zahtjeva za GPU i memoriju.

Pristupi za prevladavanje ovoga općenito spadaju u dvije glavne kategorije:

  1. Tehnike kompresije modela

Ove tehnike imaju za cilj smanjiti veličinu modela uz zadržavanje točnosti. Uobičajeni pristupi uključuju:

  • obrezivanje – Uklanjanje suvišnih ili manje važnih parametara iz modela. Ovo stvara rijedak model s manje parametara.
  • kvantizacija – Korištenje brojeva niže preciznosti kao što su int8 ili bfloat16 za predstavljanje težina umjesto fp32 ili fp16. Ovo smanjuje memorijski otisak.
  • Destilacija znanja – Osposobljavanje manjeg modela “učenika” da oponaša veliki model “učitelja”. Manji model se zatim koristi za zaključivanje.
  1. Selektivno izvršenje

Umjesto komprimiranih modela, ove tehnike selektivno izvršavaju samo dijelove modela po zaključku:

  • Rijetke aktivacije – Preskakanje računanja pri nula aktivacija.
  • Uvjetno računanje – Izvršavanje samo određenih slojeva uvjetovanih unosom.

Na komplementarnoj strani prema strani softverskog arhitekta; kako bi se omogućila brža implementacija LLM-ova, istraživači su predložili sustave zaključivanja bez poslužitelja. U arhitekturama bez poslužitelja, LLM-ovi se nalaze na zajedničkim GPU klasterima i dinamički se dodjeljuju na temelju zahtjeva. To omogućuje učinkovito korištenje GPU-a i smanjuje troškove za programere. Istaknute implementacije uključuju Amazon SageMaker, Microsoft Azure ML i opcije otvorenog koda kao što je KServe.

Unatoč obećanju LLM-ova bez poslužitelja, postojeći sustavi pokazuju velike troškove kašnjenja koji degradiraju korisničko iskustvo u interaktivnim aplikacijama:

  1. Skupa preuzimanja kontrolnih točaka: LLM-ovi imaju veliki memorijski otisak, često veličine od gigabajta do terabajta. Preuzimanje kontrolnih točaka iz udaljene pohrane oduzima puno vremena, traje više od 20 sekundi čak i s optimiziranim mrežama.
  2. Neučinkovito učitavanje kontrolne točke: Čak i s lokalnom SSD pohranom, učitavanje kontrolnih točaka u GPU memoriju traje desetke sekundi zbog faktora kao što su tenzorska deserijalizacija i dodjela. Ovo dodaje značajna kašnjenja izvan vremena pokretanja spremnika.

Kako bi se riješili ti problemi, predložili su istraživači s MIT-a CSAIL ServerlessLLM, inovativni sustav koji postiže zaključivanje bez poslužitelja s niskom latencijom za LLM. ServerlessLLM poboljšava lokalitet iskorištavanjem obilnog, ali nedovoljno iskorištenog kapaciteta i propusnosti u višeslojnoj pohrani poslužitelja za implementaciju LLM-a.

Pregled LLM sustava zaključivanja bez poslužitelja

Pregled LLM sustava zaključivanja bez poslužitelja

Ključne inovacije u ServerlessLLM-u ServerlessLLM uključuje nekoliko novih dizajna za smanjenje vremena učitavanja LLM-a u okruženjima bez poslužitelja:

  1. Brzo učitavanje kontrolne točke
  • Format kontrolne točke optimiziran za učitavanje koji omogućuje brzo sekvencijalno čitanje i učinkovito adresiranje tenzora u memoriji.
  • Višeslojni cjevovod za učitavanje kontrolnih točaka koji maksimalno povećava iskorištenost propusnosti preko mreže, SSD-ova, DRAM-a i GPU memorije putem tehnika kao što su izravni I/O, prijenos prikvačene memorije i paralelizam.
  1. Migracija uživo za zaključivanje na temelju lokacije
  • Migracija temeljena na tokenima koja putem mreže prenosi samo bitne promptne tokene, izbjegavajući spori prijenos snimke.
  • Dvofazna migracija koja omogućuje neprekinuto zaključivanje asinkronim ponovnim izračunavanjem stanja predmemorije na odredišnom poslužitelju prije prijenosa konačnih tokena.
  1. Dodjela poslužitelja optimizirana za kašnjenje
  • Precizni modeli za procjenu vremena učitavanja kontrolnih točaka sa svake razine i vremena migracije za poslužitelj.
  • Planer s obzirom na lokaciju koji odabire poslužitelje minimizirajući očekivanu latenciju pokretanja koristeći gore navedene modele.

Ove optimizacije omogućuju ServerlessLLM-u da smanji vrijeme učitavanja LLM-a za 4-8X i vrijeme pokretanja od kraja do kraja za više od 25X u usporedbi s postojećim sustavima kao što su PyTorch, TensorFlow i KServe.

Zaronimo dublje u to kako ServerlessLLM postiže ove značajne dobitke u performansama.

Ubrzavanje učitavanja kontrolne točke

Prvo veliko usko grlo koje rješava ServerlessLLM je velika latencija učitavanja LLM kontrolnih točaka iz pohrane u GPU memoriju.

Kako bi se omogućilo brzo učitavanje kontrolnih točaka, ServerlessLLM uvodi:

  1. Format kontrolne točke optimiziran za učitavanje

Standardne kontrolne točke koje koriste okviri poput PyTorcha dizajnirane su za obuku modela i otklanjanje pogrešaka. Ali za zaključivanje bez poslužitelja, kontrolne točke su samo za čitanje i pristupa im se više puta.

Za optimizaciju za tako intenzivno čitanje, ServerlessLLM pretvara kontrolne točke u format s dva ključna svojstva:

  • Sekvencijalno čitanje na temelju blokova: Tenzori su grupirani u binarne datoteke po GPU-u, olakšavajući velika sekvencijalna čitanja.
  • Učinkovito adresiranje tenzora: Indeks preslikava imena tenzora u memorijske pomake, dopuštajući izravno vraćanje u memoriju bez deserijalizacije.
  1. Višeslojni cjevovod za učitavanje kontrolnih točaka

ServerlessLLM iskorištava višeslojnu arhitekturu GPU poslužitelja, s medijima za pohranu poput SSD-ova i mrežnim povezivanjem s GPU-ima putem PCIe, NVMe itd.

Sustav uključuje višestupanjski cjevovod za maksimalnu iskorištenost propusnosti na svim razinama:

  • Dijelovi podataka u memoriji dodjeljuju se pomoću prikvačene memorije za brzi prijenos GPU-a.
  • Izravni I/O koristi se za učinkovito čitanje SSD-a bez dodatnih troškova predmemoriranja.
  • Višestruke niti paralelno čitaju različite dijelove pohrane.
  • Koordinacija između faza odvija se putem asinkronih redova zadataka.

Zajedno, ovo omogućuje zasićenje kapaciteta propusnosti čak i najbržih razina kao što je NVMe RAID. Eksperimenti otkrivaju da ServerlessLLM postiže 6-8X brže učitavanje od PyTorch/TensorFlow, smanjujući vrijeme pokretanja za velike LLM-ove s više od jedne minute na ispod 10 sekundi.

Zaključak LLM-a na temelju lokacije putem migracije uživo

Uz ubrzano učitavanje, ServerlessLLM se suočava s novim izazovom – kako iskoristiti unaprijed učitane kontrolne točke za lokalitet bez prekidanja tekućih zaključaka na zauzetim poslužiteljima?

ServerlessLLM uvodi novu tehniku ​​– živu migraciju zaključivanja LLM-a preko GPU poslužitelja. To omogućuje besprijekoran prijenos izvršenja na poslužitelje s dostupnim lokalnim kontrolnim točkama.

Ključni pokretači migracije LLM-a uživo:

  1. Migracija na temelju tokena

Umjesto snimanja cijelog stanja modela, ServerlessLLM migrira samo minimalne promptne tokene preko mreže. Time se prenosi red veličine manje podataka nego snimkama.

  1. Dvofazna migracija

Odredišni poslužitelj asinkrono unaprijed izračunava stanja predmemorije iz brzih tokena. Nakon što je spreman, izvorni poslužitelj prenosi konačne tokene prije oslobađanja resursa. Ovo sprječava zastoje u zaključivanju.

Eksperimenti otkrivaju da migracija na temelju tokena smanjuje vrijeme migracije s desetaka sekundi na manje od sekunde čak i za duge sekvence. Migracija uživo ključna je za sprječavanje kašnjenja u čekanju pri postizanju dodjele na temelju lokacije.

Zakazivanje modela optimizirano za kašnjenje

Kako bi se smanjila latencija od kraja do kraja, ServerlessLLM poboljšava planer za optimizaciju odabira poslužitelja s obzirom na lokalitet. Ovo uključuje:

  1. Fino zrnati procjenitelj vremena učitavanja

Modeli predviđaju vremena učitavanja iz mreže, SSD predmemorije i memorije za svaki poslužitelj koristeći metrike kao što su kašnjenja u redu čekanja, veličine modela i izmjerena propusnost.

  1. Precizan prediktor vremena migracije

Raspoređivač procjenjuje vremena migracije za poslužitelje koristeći broj brzih i izlaznih tokena. Asinkrono prati napredovanje zaključivanja kako bi se izbjeglo opterećenje.

  1. Dodjela s obzirom na lokalitet

Za svaki zahtjev za zaključivanjem, planer procjenjuje procijenjena vremena učitavanja i migracije između poslužitelja. Odabire poslužitelj minimalizirajući očekivanu latenciju pokretanja.

Raspoređivač također održava redove čekanja zadataka poslužitelja i koristi jako dosljednu pohranu za toleranciju grešaka. Zajedno, ove inovacije smanjuju režijske troškove raspoređivanja dok maksimiziraju lokalne prednosti.

Procjena performansi ServerlessLLM

Sveobuhvatni eksperimenti uspoređuju end-to-end učinkovitost ServerlessLLM-a u odnosu na postojeće sustave koristeći modele iz stvarnog svijeta kao što je OPT-175B i radna opterećenja modelirana prema Azure tragovima.

Ključni rezultati:

  • Mikrobenchmarkovi: ServerlessLLM ubrzava učitavanje kontrolnih točaka za 3.6-8.2X preko PyTorcha/TensorFlowa. U potpunosti zasićuje propusnost pohrane, čak i za vrhunski NVMe RAID.
  • Zakazivanje: ServerlessLLM smanjuje kašnjenje dodjele za 4-12X u usporedbi s nasumičnim rasporedom, ističući prednosti svijesti o lokalnosti. Migracija uživo sprječava kašnjenja u čekanju.
  • Posluživanje od kraja do kraja: Za velike modele poput OPT-30B, ServerlessLLM poboljšava latenciju 99. percentila za 28-200X u odnosu na sustave kao što su KServe i Ray Serve. Također povećava učinkovitost resursa.

Ovi značajni dobici pokazuju sposobnost ServerlessLLM-a da prevlada uska grla u postojećim implementacijama bez poslužitelja i otključa snagu LLM-ova za interaktivne usluge.

Optimizacije uvedene u ServerlessLLM, kao što je višeslojno učitavanje, živa migracija i planiranje na temelju latencije, mogu pomoći pri oblikovanju budućih arhitektura bez poslužitelja. Sposobnost sustava da smanji vrijeme učitavanja i pokretanja deblokira skalabilnu implementaciju velikih jezičnih modela za praktične primjene.

Pogled unaprijed: izazovi koji su u tijeku

Iako značajan korak naprijed, ServerlessLLM predstavlja samo prvi korak u optimizaciji zaključivanja bez poslužitelja za velike LLM-ove. Ostaje nekoliko otvorenih problema, uključujući:

  • Predviđanje potražnje modela u stvarnom vremenu za usmjeravanje pružanja i predučitavanja
  • Inteligentno postavljanje kontrolnih točaka na poslužitelje kako bi se maksimizirali rezultati predmemorije
  • Učinkovito skaliranje algoritama raspoređivanja za rukovanje većim klasterima
  • Osiguravanje pravednosti u raspodjeli resursa između modela i programera
  • Generaliziranje inovacija poput migracije uživo na druga radna opterećenja bez poslužitelja

Rješavanje ovih područja može pomoći u izgradnji obećanja LLM-ova bez poslužitelja i učiniti njihove mogućnosti još dostupnijima. Osim optimizacija na razini sustava, smanjenje nevjerojatnog ugljičnog otiska i potencijalnih šteta velikih modela također ostaje hitan prioritet.

ServerlessLLM pokazuje da postoji ogroman prostor za inovacije u sljedećoj generaciji arhitektura bez poslužitelja za AI radna opterećenja. Kako LLM nastavljaju rasti u veličini i popularnosti, rješenja poput ServerlessLLM koja otključavaju njihovu skalabilnost postat će još učinkovitija. Spoj istraživanja sustava i strojnog učenja može uvesti nove paradigme u posluživanje, dijeljenje i skaliranje AI modela na siguran i održiv način.

Proteklih pet godina proveo sam uranjajući u fascinantan svijet strojnog i dubokog učenja. Moja strast i stručnost naveli su me da pridonesem više od 50 različitih projekata softverskog inženjeringa, s posebnim fokusom na AI/ML. Moja stalna znatiželja također me povukla prema obradi prirodnog jezika, polju koje jedva čekam dalje istraživati.