Preluat din ceea ce oamenii ne întreabă efectiv în chat și pe tichete, aproximativ în ordinea în care o întreabă. Primele două sunt cele care decid dacă o achiziție funcționează.
- Câtă memorie GPU are nevoie un model lingvistic mare?
- Ponderile reprezintă numărul de parametri înmulțit cu numărul de octeți per parametru: câte doi octeți la 16 biți, unul la 8 biți, jumătate la 4 biți. Un model cu 7-8 miliarde de parametri are 16 GB de ponderi la 16 biți, 8 GB la 8 biți și 5 GB la 4 biți; un model cu 70 de miliarde de parametri are 140 GB, 70 GB și 38 GB. Aceste cifre reprezintă doar ponderile și reprezintă un minim, nu o cerință - bugetați din nou un sfert până la jumătate, pe lângă acestea, pentru timpul de execuție, activări și memoria cache cheie-valoare.
- De ce se încarcă modelul meu, dar nu se difuzează?
- Deoarece ponderile nu sunt singurele elemente din memoria cardului. Timpul de execuție și bufferele sale sunt rezidente, iar fiecare token dintr-o conversație lasă o intrare în memoria cache cheie-valoare, astfel încât nu trebuie să fie recalculat. Memoria cache crește odată cu lungimea contextului și din nou cu fiecare cerere servită concomitent, astfel încât un model ale cărui ponderi se potrivesc abia va reține aproximativ o conversație scurtă. Dimensionați cardul la o dată și un sfert până la o dată și jumătate ponderile.
- Ce runtime de inferență pot instala?
- Oricare dintre ele. Mașina sosește cu un sistem de operare și un root curate și nu există niciun serviciu de inferență al furnizorului în fața ei. vLLM este răspunsul obișnuit pentru servirea traficului real, deoarece procesarea continuă în loturi permite unei singure plăci să răspundă la mai multe cereri simultan. llama.cpp este răspunsul obișnuit atunci când memoria este insuficientă sau placa este mai veche. TGI și SGLang rulează neschimbate. Ollama este cea mai scurtă cale de la o mașină goală la un model care răspunde pe un port. Fixezi driverul, versiunea CUDA sau ROCm și framework-ul la versiunile cu care a fost testat codul tău.
- Câte jetoane pe secundă voi primi?
- Nu publicăm o cifră de jetoane pe secundă, deoarece fiecare astfel de număr depinde de model, cuantizare, timpul de execuție și versiunea sa, dimensiunea lotului, lungimea promptului, lungimea răspunsului și concurență, iar modificarea oricăruia dintre acestea îl mută cu un multiplu. Ceea ce guvernează acest lucru: citirea promptului este limitată la procesare și se întâmplă o singură dată per cerere; generarea răspunsului este limitată la lățimea de bandă a memoriei, deoarece fiecare jeton necesită citirea ponderilor; iar procesarea în loturi amortizează acea citire în cererile concurente, ceea ce face ca servirea să fie economică până când memoria cache cheie-valoare rămâne fără spațiu. Solicitați un răspuns bazat pe model, cuantizare și concurență așteptată, bazat pe ceea ce am observat efectiv.
- Este GPU-ul partajat cu altcineva?
- Nu. Un singur client per mașină fizică, iar cardul este transmis către propriul sistem de operare. Nu există hypervisor, partiție MIG, profil vGPU și planificator de time-slicing, deci nimic altceva nu rulează pe card, iar latența inferenței nu se modifică din cauza jobului batch al altcuiva.
- Ce se întâmplă dacă modelul nu încape pe o singură carte?
- Apoi, este vorba de o versiune cu mai multe plăci video, care este cotată în cotații mai degrabă decât comandată de la un checkout: numărul de plăci video potrivite depinde de lățimea fizică a plăcii respective și de bugetul de putere al carcasei. Două plăci video oferă suma memoriei lor doar dacă runtime-ul poate împărți modelul pe ambele, lucru pe care orice runtime serios îl suportă cu un anumit cost în ceea ce privește debitul. Mai multe plăci video sau mașini acoperă aspectul acelei versiuni.
- Are nevoie de mai multă memorie reglajul fin decât servirea?
- Mult mai mult. Servirea necesită ponderi; antrenamentul necesită ponderi, gradienți și starea optimizatorului pentru fiecare parametru actualizat, toate rezidente simultan, plus activările păstrate pentru trecerea inversă. Un model care servește confortabil pe o singură placă poate fi de câteva ori prea mare pentru a fi complet reglat fin pe aceasta. Metodele eficiente din punct de vedere al parametrilor actualizează o mică parte din parametri și necesită o fracțiune corespunzătoare, mică, din memoria suplimentară, motiv pentru care majoritatea reglajelor fine de aici utilizează una.
- Pot rula o placă de bază AMD și funcționează ROCM?
- Da. Componentele AMD Instinct se numără printre cele mai mari plăci de memorie pe care le instalăm și oferă adesea cel mai bun raport calitate-preț per gigabyte, dar stack-ul dvs. trebuie să suporte ROCm în loc de CUDA. Majoritatea runtime-urilor de inferență actuale o fac; unele instrumente conexe încă nu o fac. Întrebați înainte de a comanda și vom verifica rezultatele în raport cu runtime-ul dvs. specific, în loc să răspundem în general.