Modele și platforme AI
Viitorul Inferenței Serverless pentru Modelele de Limbaj Mare
Avansurile recente în modelele de limbaj mare (LLM) precum GPT-4, PaLM au condus la capacități transformaționale în sarcinile de limbaj natural. LLM-urile sunt încorporate în diverse aplicații, cum ar fi chatbot-urile, motoarele de căutare și asistenții 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 această provocare se împart, în general, în două categorii principale:
- 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 redundant sau mai puțin importanți din model. Acest lucru creează un model sparse cu mai puțini parametri.
- Cuantizare – Utilizarea numerelor de 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 Cunoașterii – Antrenarea unui model “elev” mai mic pentru a imita un model “profesor” mai mare. Modelul mai mic este apoi utilizat pentru inferență.
- Execuție Selectivă
În loc de modele comprimate, aceste tehnici execută selectiv doar părți ale modelului pentru fiecare inferență:
- Activări Sparse – Sărirea calculelor 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ță serverless. În arhitecturile serverless, 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ări proeminente includ Amazon (AMZN ) SageMaker, Microsoft Azure ML și opțiuni open-source precum KServe.
În ciuda promisiunii LLM-urilor serverless, sistemele existente prezintă timpi de latență ridicați care degradează experiența utilizatorului în aplicațiile interactive:
- Descărcarea punctelor de control costisitoare: LLM-urile au amprente de memorie mari, adesea de gigabiți până la terabiți în dimensiune. Descărcarea punctelor de control de la stocarea remote este timp-consuming, luând peste 20 de secunde, chiar și cu rețele optimizate.
- Încărcarea punctelor de control ineficientă: Chiar și cu stocarea locală SSD, încărcarea punctelor de control în memoria GPU ia 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ță serverless cu latență redusă pentru LLM. ServerlessLLM îmbunătățește localitatea prin exploatarea capacității abundente, dar subutilizate, și a benzii de transfer în stocarea multi-nivel pentru implementarea LLM.
Inovații cheie în ServerlessLLM ServerlessLLM incorporează mai multe proiecte noi pentru a reduce timpul de încărcare al LLM în medii serverless:
- Încărcarea rapidă a punctelor de control
- Format de puncte de control optimizat pentru încărcare care permite citirea secvențială rapidă și adresarea eficientă a tensorilor în memorie.
- Conducerea multi-nivel a încărcării punctelor de control care maximizează utilizarea benzii de transfer pe rețea, SSD-uri, DRAM și memorie GPU prin tehnici precum I/O direct, transfer de memorie fixat și paralelism.
- Migrația live pentru inferență condusă de localitate
- Migrația bazată pe token care transmite doar tokeni de prompt esențiali peste 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.
- Alocarea serverului optimizată pentru latență
- Modele precise pentru a estima timpii de încărcare a punctelor de control din fiecare nivel și timpii de migrație pentru un server.
- Planificator conștient de localitate care selectează serverele care minimizează latența de pornire anticipată folosind modelele de mai sus.
Aceste optimizări permit ServerlessLLM să reducă timpii de încărcare a LLM cu 4-8X și timpii de pornire de la capăt la capăt cu peste 25X comparativ 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 de performanță semnificative.
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:
- 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 serverless, punctele de control sunt citite doar și accesate în mod repetat.
Pentru a optimiza pentru un astfel de uz intensiv de citire, 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 secvențiale mari.
- Adresare eficientă a tensorilor: Un index mapă numele tensorilor la offseturi de memorie, permițând restaurarea directă în memorie fără deserializare.
- Conducerea multi-nivel a încărcării punctelor de control
ServerlessLLM exploatează arhitectura în mai multe niveluri a serverelor GPU, cu medii de stocare precum SSD-urile și rețelele care se conectează la GPU-uri prin PCIe, NVMe etc.
Sistemul incorporează o conductă multi-etapă pentru a maximiza utilizarea benzii de transfer pe toate nivelurile:
- Bucățile de date în memorie sunt alocate folosind memoria fixată pentru transfer rapid de GPU.
- I/O direct este utilizat pentru citiri eficiente de pe SSD fără suprataxe de caching.
- Mai multe fire de execuție citesc fragmente diferite de stocare în paralel.
- Coordonarea între etape 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-8X mai rapidă decât PyTorch/TensorFlow, reducând timpii de pornire pentru LLM-uri mari de la peste un minut la sub 10 secunde.
Inferența LLM Conduită de Localitate prin Migrație Live
Cu încărcarea accelerată, ServerlessLLM se confruntă cu o nouă provocare – cum să exploateze punctele de control încărcate pentru localitate fără a întrerupe inferențele în curs pe servere ocupate?
ServerlessLLM introduce o tehnică inovatoare – migrația live a inferenței LLM între servere GPU. Acest lucru permite transferul suav al execuției către servere cu puncte de control locale disponibile.
Deblocări cheie ale migrației live LLM:
- Migrația bazată pe token
În loc de a face o copie a întregului stării modelului, ServerlessLLM migrează doar tokenii de prompt minimali peste rețea. Acest lucru transferă cantități de date de ordine de mărime mai mici decât snapshot-urile.
- Migrația în două faze
Serverul de destinație precalculează asincron stările de cache din tokenii de prompt. Odată gata, serverul sursă transferă tokenii finali înainte de a elibera resursele. Acest lucru previne blocajele inferenței.
Experimentele arată că migrația bazată pe token reduce 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ă atunci când se realizează alocarea condusă 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 considerând localitatea. Acest lucru implică:
- Estimator de timp de încărcare fin
Modelele prevăd timpii de încărcare din rețea, cache-urile SSD și memorie pentru fiecare server, utilizând metrice precum întârzierile de coadă, dimensiunile modelului și benzile de transfer măsurate.
- Predictor de timp de migrație precis
Planificatorul estimează timpii de migrație pentru servere utilizând numărul de tokeni de prompt și de ieșire. Urmează progresul inferenței în mod asincron pentru a evita suprataxele.
- Alocare conștientă de localitate
Pentru fiecare cerere de inferență, planificatorul evaluează timpii de încărcare și migrație estimați pe servere. Selectează serverul care minimizează latența de pornire anticipată.
Planificatorul menține, de asemenea, cozile de sarcini ale serverelor și utilizează un magazin puternic consistent pentru toleranță la defecte. Împreună, aceste inovații reduc suprataxele de planificare, maximizând beneficiile localității.
Evaluarea Performanței ServerlessLLM
Experimente cuprinzătoare măsoară eficacitatea de la capăt la capăt a ServerlessLLM împotriva sistemelor existente, utilizând modele reale precum OPT-175B și sarcini modelate după urme Azure.
Rezultate cheie:
- Micro-benchmark-uri: ServerlessLLM accelerează încărcarea punctelor de control cu 3,6-8,2X mai rapid decât PyTorch/TensorFlow. Saturează complet banda de transfer a stocării, chiar și pentru stocarea NVMe RAID de ultimă generație.
- Planificare: ServerlessLLM reduce latența de alocare cu 4-12X comparativ cu planificarea aleatorie, evidențiind 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 de 99% cu 28-200X comparativ cu sisteme precum KServe și Ray Serve. De asemenea, îmbunătățește 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 multi-nivel, migrația live și planificarea condusă de latență, pot ajuta la proiectarea arhitecturilor serverless viitoare. Capacitatea sistemului de a reduce timpii de încărcare și de pornire deblochează implementarea la scară a modelelor de limbaj mare pentru aplicații practice.
Privind Înainte: Provocări În Desfășurare
Deși reprezintă un salt semnificativ înainte, ServerlessLLM reprezintă doar primul pas în optimizarea inferenței serverless pentru LLM-uri masive. Mai rămân câteva probleme deschise, incluzând:
- Predicția cererii reale de model pentru a ghida provisionarea și încărcarea prealabilă
- Plasarea inteligentă a punctelor de control pe servere pentru a maximiza loviturile de 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 serverless
Abordarea acestor domenii poate ajuta la construirea pe promisiunea LLM-urilor serverless și la facerea capacităților lor și mai accesibile. Dincolo de optimizările la nivel de sistem, reducerea urmei de carbon uriașe și a potențialelor daune ale modelelor mari rămâne o prioritate urgentă.
ServerlessLLM demonstrează că există un spațiu enorm pentru inovare în arhitecturile serverless de următoare generație pentru sarcini de inteligență artificială. 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 de sisteme și a învățării automate poate introduce noi paradigme în servirea, partajarea și scalarea modelului de inteligență artificială în mod sigur și durabil.













