Connect with us

Inteligență artificială

Viitorul inferenței fără server pentru modelele de limbaj mari

mm

Avansurile recente în modelele de limbaj mari (LLM) precum GPT-4, PaLM au condus la capacități transformative în sarcinile de limbaj natural. LLM-urile sunt integrate în diverse aplicații, cum ar fi chatbot-uri, motoare de căutare și asistenți de programare. Cu toate acestea, servirea LLM-urilor la scară rămâne o provocare din cauza cerințelor lor substanțiale de GPU și memorie.

Abordările pentru a depăși aceste provocări se încadrează, în general, în două categorii principale:

  1. Tehnici de compresie a modelului

Aceste tehnici vizează reducerea dimensiunii modelului, menținând în același timp acuratețea. Abordările comune includ:

  • Pruning – Eliminarea parametrilor redundanți sau mai puțin importanți din model. Acest lucru creează un model rar cu mai puțini parametri.
  • Cuantizare – Utilizarea numerelor cu precizie mai mică, cum ar fi int8 sau bfloat16, pentru a reprezenta greutățile în loc de fp32 sau fp16. Acest lucru reduce amprenta de memorie.
  • Distilarea cunoștințelor – Antrenarea unui model “elev” mai mic pentru a imita un model “profesor” mai mare. Modelul mai mic este apoi utilizat pentru inferență.
  1. Execuție selectivă

În loc de modele compresate, aceste tehnici execută selectiv doar părți ale modelului pentru fiecare inferență:

  • Activațiuni rare – Omiterea calculului pentru activări zero.
  • Calcul condiționat – Executarea doar a anumitor straturi condiționate de intrare.

Pe partea complementară a arhitecturii software; pentru a permite o implementare mai rapidă a LLM-urilor, cercetătorii au propus sisteme de inferență fără server. În arhitecturile fără server, LLM-urile sunt găzduite pe clusteri de GPU partajați și alocate dinamic în funcție de cerere. Acest lucru permite o utilizare eficientă a GPU-urilor și reduce costurile pentru dezvoltatori. Implementările proeminente includ Amazon SageMaker, Microsoft Azure ML și opțiuni open-source precum KServe.

În ciuda promisiunii LLM-urilor fără server, sistemele existente prezintă timpi de latență ridicați care deteriorează experiența utilizatorului în aplicațiile interactive:

  1. Descărcarea costisitoare a punctelor de control: LLM-urile au amprente de memorie mari, adesea de ordinul gigabayților până la terabayți. Descărcarea punctelor de control de la stocarea remotă este timp-consuming, necesitând peste 20 de secunde, chiar și cu rețele optimizate.
  2. Încărcarea ineficientă a punctelor de control: Chiar și cu stocarea locală SSD, încărcarea punctelor de control în memoria GPU necesită zeci de secunde din cauza factorilor precum deserializarea tensorilor și alocarea. Acest lucru adaugă întârzieri semnificative dincolo de timpul de pornire a containerului.

Pentru a aborda aceste probleme, cercetătorii de la MIT CSAIL au propus ServerlessLLM, un sistem inovator care realizează inferență fără server cu latență scăzută pentru LLM-uri. ServerlessLLM îmbunătățește localitatea prin exploatarea capacității și a benzii largi abundente, dar subutilizate, în stocarea multi-nivel pentru implementarea LLM-urilor.

Prezentare generală a sistemelor de inferență fără server pentru LLM

Prezentare generală a sistemelor de inferență fără server pentru LLM

Inovații cheie în ServerlessLLM ServerlessLLM incorporează mai multe proiecte noi pentru a reduce timpul de încărcare a LLM-urilor în medii fără server:

  1. Încărcarea rapidă a punctelor de control
  • Format de puncte de control optimizat pentru încărcare care permite citirea rapidă secvențială și adresarea eficientă a tensorilor în memorie.
  • Conducerea de încărcare a punctelor de control în mai multe etape care maximizează utilizarea benzii largi în rețea, SSD-uri, DRAM și memorie GPU prin tehnici precum I/O direct, transfer de memorie fixată și paralelism.
  1. Migrația live pentru inferență condusă de localitate
  • Migrația bazată pe token care transmite doar tokeni de prompt esențiali prin rețea, evitând transferul lent de snapshot.
  • Migrația în două faze care permite inferența neîntreruptă prin recalcularea asincronă a stărilor de cache pe serverul de destinație înainte de a transfera tokenii finali.
  1. Alocarea serverului optimizată pentru latență
  • Modele precise pentru a estima timpii de încărcare a punctelor de control din fiecare etapă și timpii de migrație pentru un server.
  • Planificator conștient de localitate care selectează serverele care minimizează latența de pornire anticipată utilizând modelele de mai sus.

Aceste optimizări permit ServerlessLLM să reducă timpii de încărcare a LLM-urilor de 4-8 ori și timpii de pornire de la capăt la capăt de peste 25 de ori în comparație cu sistemele existente, cum ar fi PyTorch, TensorFlow și KServe.

Hăi să intrăm mai în detaliu despre cum ServerlessLLM realizează aceste câștiguri semnificative de performanță.

Accelerarea încărcării punctelor de control

Prima barieră majoră abordată de ServerlessLLM este latența ridicată a încărcării punctelor de control LLM din stocare în memoria GPU.

Pentru a permite încărcarea rapidă a punctelor de control, ServerlessLLM introduce:

  1. Format de puncte de control optimizat pentru încărcare

Punctele de control standard utilizate de cadre precum PyTorch sunt proiectate pentru antrenarea modelului și depanarea. Dar pentru inferența fără server, punctele de control sunt citite doar și accesate în mod repetat.

Pentru a optimiza astfel de utilizări intensiv citite, ServerlessLLM convertește punctele de control într-un format cu două proprietăți cheie:

  • Citire secvențială pe bază de fragmente: Tensorii sunt grupați în fișiere binare pe GPU, facilitând citirile mari secvențiale.
  • Adresare eficientă a tensorilor: Un index mapă numele tensorilor la offseturi de memorie, permițând restaurarea directă în memorie fără deserializare.
  1. Conducerea de încărcare a punctelor de control în mai multe etape

ServerlessLLM exploatează arhitectura în mai multe niveluri a serverelor GPU, cu medii de stocare precum SSD-uri și rețele care se conectează la GPU-uri prin PCIe, NVMe etc.

Sistemul incorporează o conductă pe mai multe etape pentru a maximiza utilizarea benzii largi în toate nivelurile:

  • Bucățile de date în memorie sunt alocate utilizând memoria fixată pentru transferul rapid către GPU.
  • I/O direct este utilizat pentru citiri eficiente de pe SSD fără suprataxă de cache.
  • Mai multe fire de execuție citesc bucăți diferite de stocare în paralel.
  • Coordonarea inter-etapă are loc prin intermediul cozilor de sarcini asincrone.

Împreună, acest lucru permite să se satureze capacitatea de bandă a chiar și a celor mai rapide niveluri, cum ar fi NVMe RAID. Experimentele arată că ServerlessLLM realizează o încărcare de 6-8 ori mai rapidă decât PyTorch/TensorFlow, reducând timpii de pornire pentru LLM-urile mari de la peste un minut la sub 10 secunde.

Inferență LLM condusă de localitate prin migrație live

Cu încărcarea accelerată, ServerlessLLM se confruntă cu o nouă provocare – cum să exploateze punctele de control preîncărcate pentru localitate fără a întrerupe inferențele în curs de desfășurare pe servere ocupate?

ServerlessLLM introduce o tehnică inovatoare – migrația live a inferenței LLM între serverele GPU. Acest lucru permite transferul fără întrerupere al execuției către servere cu puncte de control locale disponibile.

Dezvoltări cheie ale migrației live LLM:

  1. Migrația bazată pe token

În loc de a face o copie a întregului stării modelului, ServerlessLLM migrează doar tokenii de prompt minimali prin rețea. Acest lucru transferă cantități de date de ordinul magnitudinilor mai mici decât snapshot-urile.

  1. Migrația în două faze

Serverul de destinație precalculează asincron stările de cache de la tokenii de prompt. Odată gata, serverul sursă transferă tokenii finali înainte de a elibera resursele. Acest lucru previne opririle inferenței.

Experimentele arată că migrația bazată pe token taie timpii de migrație de la zeci de secunde la sub o secundă, chiar și pentru secvențe lungi. Migrația live este crucială pentru a preveni întârzierile de coadă la realizarea alocării conduse de localitate.

Planificarea modelului optimizată pentru latență

Pentru a minimiza latența de la capăt la capăt, ServerlessLLM îmbunătățește planificatorul pentru a optimiza selectarea serverului, luând în considerare localitatea. Acest lucru implică:

  1. Estimator de timp de încărcare fin

Modelele prevăd timpii de încărcare a punctelor de control de la rețea, cache-urile SSD și memorie pentru fiecare server, utilizând metrice precum timpii de așteptare în coadă, dimensiunile modelului și benzile largi măsurate.

  1. Predicția precisă a timpului de migrație

Planificatorul estimează timpii de migrație pentru servere utilizând numărul de tokeni de prompt și de ieșire. Acesta urmărește progresul inferenței în mod asincron pentru a evita suprataxarea.

  1. Alocare conștientă de localitate

Pentru fiecare cerere de inferență, planificatorul evaluează timpii de încărcare și migrație estimați pe servere. Acesta selectează serverul care minimizează latența de pornire anticipată.

Planificatorul menține, de asemenea, cozile de sarcini ale serverelor și utilizează un magazin consistent pentru toleranță la defecte. Împreună, aceste inovații reduc suprataxarea planificării, maximizând beneficiile localității.

Evaluarea performanței ServerlessLLM

Experimentele cuprinzătoare evaluează eficacitatea de la capăt la capăt a ServerlessLLM în comparație cu sistemele existente, utilizând modele reale precum OPT-175B și sarcini de lucru modelate după urmele Azure.

Rezultate cheie:

  • Benchmark-uri micro: ServerlessLLM accelerează încărcarea punctelor de control de 3,6-8,2 ori mai rapid decât PyTorch/TensorFlow. Acesta saturează complet banda de stocare, chiar și pentru stocarea NVMe RAID de ultimă generație.
  • Planificare: ServerlessLLM reduce latența de alocare de 4-12 ori în comparație cu planificarea aleatoare, subliniind beneficiile conștientizării localității. Migrația live previne întârzierile de coadă.
  • Servire de la capăt la capăt: Pentru modele mari precum OPT-30B, ServerlessLLM îmbunătățește latența la percentile 99 de 28-200 de ori în comparație cu sisteme precum KServe și Ray Serve. Acesta îmbunătățește, de asemenea, eficiența resurselor.

Aceste câștiguri substanțiale demonstrează capacitatea ServerlessLLM de a depăși blocajele din implementările serverless existente și de a debloca puterea LLM-urilor pentru servicii interactive.

Optimizările introduse în ServerlessLLM, cum ar fi încărcarea în mai multe etape, migrația live și planificarea condusă de latență, pot ajuta la informarea proiectării arhitecturilor serverless viitoare. Capacitatea sistemului de a reduce timpii de încărcare și de pornire deblochează implementarea la scară a LLM-urilor mari pentru aplicații practice.

Privind înainte: Provocări în curs

În timp ce reprezintă un salt semnificativ înainte, ServerlessLLM reprezintă doar primul pas în optimizarea inferenței fără server pentru LLM-urile masive. Mai rămân câteva probleme deschise, inclusiv:

  • Predicția cererii reale de modele pentru a ghida provisionarea și preîncărcarea
  • Plasarea inteligentă a punctelor de control pe servere pentru a maximiza lovitura în cache
  • Scalarea eficientă a algoritmilor de planificare pentru a gestiona clusteri mai mari
  • Asigurarea echității în alocarea resurselor între modele și dezvoltatori
  • Generalizarea inovațiilor precum migrația live la alte sarcini de lucru fără server

Abordarea acestor domenii poate ajuta la construirea pe promisiunea LLM-urilor fără server și la facerea capacităților lor și mai accesibile. Dincolo de optimizările la nivel de sistem, reducerea urmei de carbon și a prejudiciilor potențiale ale modelului mare rămâne o prioritate urgentă.

ServerlessLLM demonstrează că există un spațiu enorm pentru inovare în arhitecturile serverless de ultimă generație pentru sarcinile de lucru AI. Pe măsură ce LLM-urile continuă să crească în dimensiune și popularitate, soluții precum ServerlessLLM care deblochează scalabilitatea lor vor deveni și mai impactante. Confluența cercetării sistemelor și a învățării mașinilor poate introduce noi paradigme în servirea, partajarea și scalarea modelului AI în siguranță și în mod durabil.

Am petrecut ultimii cinci ani scufundându-mă în lumea fascinantă a Învățării Automate și a Învățării Profunde. Pasiunea și expertiza mea m-au condus să contribui la peste 50 de proiecte diverse de inginerie software, cu un accent deosebit pe AI/ML. Curiozitatea mea continuă m-a atras și spre Procesarea Limbajului Natural, un domeniu pe care sunt dornic să-l explorez mai departe.