Ja kādreiz esat vērojis, kā demonstrācijas modelis sagrauj nelielu testa slodzi un pēc tam iesaldē brīdī, kad parādās īsti lietotāji, jūs esat sastapis ļaundari: mērogošanu. Mākslīgais intelekts ir alkatīgs — pēc datiem, skaitļošanas jaudas, atmiņas, joslas platuma — un, dīvainā kārtā, arī uzmanības. Tātad, kas īsti ir mākslīgā intelekta mērogojamība un kā to panākt, nepārrakstot visu katru nedēļu?
Raksti, kurus jūs varētu vēlēties izlasīt pēc šī raksta:
🔗 Kas ir mākslīgā intelekta aizspriedumi, vienkārši izskaidrojot
Uzziniet, kā slēptās neobjektivitātes ietekmē mākslīgā intelekta lēmumus un modeļu rezultātus.
🔗 Iesācēja ceļvedis: kas ir mākslīgais intelekts
Pārskats par mākslīgo intelektu, pamatjēdzieniem, veidiem un ikdienas lietojumiem.
🔗 Kas ir izskaidrojamais mākslīgais intelekts un kāpēc tas ir svarīgs
Atklājiet, kā izskaidrojams mākslīgais intelekts palielina pārredzamību, uzticēšanos un atbilstību normatīvajiem aktiem.
🔗 Kas ir paredzošā mākslīgā intelekta (MI) sistēma un kā tā darbojas?
Izprotiet paredzošo mākslīgo intelektu, tā biežāk lietotos lietošanas gadījumus, priekšrocības un ierobežojumus.
Kas ir mākslīgā intelekta mērogojamība? 📈
Mākslīgā intelekta mērogojamība ir mākslīgā intelekta sistēmas spēja apstrādāt vairāk datu, pieprasījumu, lietotāju un lietošanas gadījumu, vienlaikus saglabājot veiktspēju, uzticamību un izmaksas pieņemamās robežās. Ne tikai lielāki serveri — viedākas arhitektūras, kas uztur zemu latentumu, augstu caurlaidspēju un nemainīgu kvalitāti, pieaugot līknei. Iedomājieties elastīgu infrastruktūru, optimizētus modeļus un novērojamību, kas faktiski norāda, kas ir aktuāls.
Kas nodrošina labu mākslīgā intelekta mērogojamību ✅
Kad mākslīgā intelekta mērogojamība ir labi izstrādāta, jūs iegūstat:
-
Paredzama latentuma vērtība pie lielas vai ilgstošas slodzes 🙂
-
Caurlaidspēja, kas pieaug aptuveni proporcionāli pievienotajai aparatūrai vai kopijām
-
Izmaksu efektivitāte , kas nepalielinās ar katru pieprasījumu
-
Kvalitātes stabilitāte , jo izejvielas dažādojas un apjomi pieaug
-
Darbības mierīgums, pateicoties automātiskai mērogošanai, izsekošanai un saprātīgiem SLO
Zem pārsega tas parasti apvieno horizontālu mērogošanu, partijveida apstrādi, kešatmiņu, kvantizāciju, stabilu apkalpošanu un pārdomātas izlaišanas politikas, kas saistītas ar kļūdu budžetiem [5].
Mākslīgā intelekta mērogojamība salīdzinājumā ar veiktspēju un ietilpību 🧠
-
Veiktspēja ir tas, cik ātri viens pieprasījums tiek izpildīts atsevišķi.
-
Ietilpība ir tas, cik daudz šādu pieprasījumu jūs varat apstrādāt vienlaikus.
-
Mākslīgā intelekta mērogojamība ir atkarīga no tā, vai resursu pievienošana vai viedāku metožu izmantošana palielina jaudu un saglabā nemainīgu veiktspēju, nepārspīlējot ar rēķinu vai jūsu ierīces darbību.
Neliela atšķirība, milzīgas sekas.
Kāpēc mērogs vispār darbojas mākslīgajā intelektā: mērogošanas likumu ideja 📚
Mūsdienu mašīnmācībā plaši izmantota atziņa ir tāda, ka zudumi samazinās paredzamā veidā, mērogojot modeļa lielumu, datus un skaitļošanas iespējas — saprāta robežās. Pastāv arī skaitļošanas ziņā optimāls līdzsvars starp modeļa lielumu un apmācības žetoniem; abu kopīga mērogošana ir labāka nekā tikai viena mērogošana. Praksē šīs idejas ietekmē apmācības budžetus, datu kopas plānošanu un apkalpošanas kompromisus [4].
Īss tulkojums: lielāks var būt labāks, bet tikai tad, ja ievades datus mērogo un aprēķinus veic proporcionāli — pretējā gadījumā tas ir kā vilkt traktora riepas uz velosipēda. Tas izskatās intensīvi, bet nekur neved.
Horizontāli pret vertikāli: divas mērogošanas sviras 🔩
-
Vertikālā mērogošana : lielākas kastes, jaudīgākas grafikas procesoru versijas, vairāk atmiņas. Vienkārši, dažreiz dārgi. Piemērots viena mezgla apmācībai, zema latentuma secinājumiem vai gadījumos, kad jūsu modelis atsakās labi sadalīties.
-
Horizontāla mērogošana : vairāk kopiju. Vislabāk darbojas ar automātiskajiem mērogotājiem , kas pievieno vai noņem podus, pamatojoties uz CPU/GPU vai pielāgotiem lietotņu rādītājiem. Kubernetes vidē HorizontalPodAutoscaler mērogo podus, reaģējot uz pieprasījumu, — jūsu pamata pūļa kontrole datplūsmas pieauguma gadījumā [1].
Anekdote (salikta): Augsta profila palaišanas laikā, vienkārši iespējojot servera puses partijveida apstrādi un ļaujot automātiskajam mērogotājam reaģēt uz rindas dziļumu, p95 tika stabilizēts bez jebkādām klienta izmaiņām. Neuzkrītoši panākumi joprojām ir panākumi.
Pilns mākslīgā intelekta mērogojamības klāsts 🥞
-
Datu slānis : ātra objektu glabāšana, vektoru indeksi un straumēšanas uzņemšana, kas neierobežo jūsu treneru darbību.
-
Apmācības slānis : izkliedēti ietvari un plānotāji, kas apstrādā datu/modeļa paralēlismu, kontrolpunktus, atkārtotus mēģinājumus.
-
Apkalpojošais slānis : optimizēti izpildlaiki, dinamiska partijveida apstrāde , lappušu uzmanības piesaiste LLM, kešatmiņa, marķieru straumēšana. Triton un vLLM šeit ir bieži sastopami varoņi [2][3].
-
Orķestrēšana : Kubernetes elastībai, izmantojot HPA vai pielāgotus automātiskās mērogošanas rīkus [1].
-
Novērojamība : izsekošanas dati, metrikas un žurnāli, kas seko lietotāju ceļojumiem un modelē uzvedību produkta izstrādē; izstrādājiet tos atbilstoši saviem SLO [5].
-
Pārvaldība un izmaksas : ekonomija katram pieprasījumam, budžets un izslēgšanas slēdži nekontrolējamai darba slodzei.
Salīdzināšanas tabula: rīki un modeļi mākslīgā intelekta mērogojamībai 🧰
Nedaudz nevienmērīgi ar nolūku — jo īstā dzīve tāda ir.
| Rīks/raksts | Auditorija | Dārgs | Kāpēc tas darbojas | Piezīmes |
|---|---|---|---|---|
| Kubernetes + HPA | Platformas komandas | Atvērtā koda programmatūra + infrastruktūra | Mērogo podus horizontāli, pieaugot metrikai | Pielāgotas metrikas ir zelts [1] |
| NVIDIA Triton | Secinājums SRE | Bezmaksas serveris; GPU $ | Dinamiskā partiju apstrāde palielina caurlaidspēju | Konfigurēt, izmantojot config.pbtxt [2] |
| vLLM (PagedAttention) | LLM komandas | Atvērtā pirmkoda | Augsta caurlaidspēja, pateicoties efektīvai KV kešatmiņas lapošanai | Lieliski piemērots garām uzvednēm [3] |
| ONNX izpildlaiks / TensorRT | Perf nerds | Bezmaksas/pārdevēju rīki | Kodola līmeņa optimizācijas samazina latentumu | Eksporta ceļi var būt sarežģīti |
| RAG modelis | Lietotņu komandas | Infrastruktūra + indekss | Pārnes zināšanas uz izgūšanu; mērogo indeksu | Lieliski piemērots svaigumam |
Padziļināta analīze 1: Servēšanas triki, kas iekustina veiksmi 🚀
-
Dinamiskā partiju apstrāde grupē mazus secinājumu izsaukumus lielākās partijās serverī, ievērojami palielinot GPU izmantošanu bez klienta izmaiņām [2].
-
Lapotā uzmanība saglabā atmiņā daudz vairāk sarunu, lapojot KV kešatmiņas, kas uzlabo caurlaidspēju vienlaicīguma apstākļos [3].
-
identisku uzvedņu vai iegulto elementu apvienošanu un kešatmiņu,
-
Spekulatīva dekodēšana un marķieru straumēšana samazina uztverto latentumu, pat ja sienas pulkstenis tik tikko pakustas.
Padziļināta analīze 2: Modeļa līmeņa efektivitāte — kvantizēšana, destilēšana, apgriešana 🧪
-
Kvantēšana samazina parametru precizitāti (piemēram, 8 biti/4 biti), lai samazinātu atmiņu un paātrinātu secinājumu izdarīšanu; pēc izmaiņām vienmēr atkārtoti novērtējiet uzdevuma kvalitāti.
-
Destilācija pārnes zināšanas no liela skolotāja mazākam studentam, kurš jūsu aparatūrai patiesībā patīk.
-
Strukturēta atzarošana apgriež svarus/galvas, kas rada vismazāko ietekmi.
Būsim godīgi, tas ir mazliet līdzīgi kā samazināt čemodānu un pēc tam uzstāt, ka visas kurpes joprojām der. Kaut kā tā lielākoties ir.
Padziļināta analīze 3: Datu un apmācības mērogošana bez pārrāvumiem 🧵
-
Izmantojiet izkliedētu apmācību, kas slēpj paralēlisma sarežģītās daļas, lai jūs varētu ātrāk piegādāt eksperimentus.
-
Atcerieties mērogošanas likumus : pārdomāti sadaliet budžetu atbilstoši modeļa lielumam un marķieriem; abu kopīga mērogošana ir skaitļošanas ziņā efektīva [4].
-
Mācību programma un datu kvalitāte bieži vien ietekmē rezultātus vairāk, nekā cilvēki atzīst. Labāki dati dažreiz ir labāki par vairāk datiem, pat ja jau esat pasūtījis lielāku klasteri.
Padziļināta analīze 4: RAG kā zināšanu mērogošanas stratēģija 🧭
Tā vietā, lai pārapmācītu modeli, lai tas neatpaliktu no mainīgajiem faktiem, RAG pievieno izguves soli secinājuma brīdī. Jūs varat saglabāt modeli nemainīgu un mērogot indeksu un izguves elementus , pieaugot jūsu korpusam. Eleganti un bieži vien lētāk nekā pilnīga pārapmācība lietotnēm, kurās ir daudz zināšanu.
Novērojamība, kas atmaksājas 🕵️♀️
To, ko neredzi, nevar izmērīt. Divi būtiski aspekti:
-
Jaudas plānošanas un automātiskās mērogošanas metrikas
-
Izsekošanas , kas seko vienam pieprasījumam visā vārtejā → izguve → modelis → pēcapstrāde. Saistiet savus mērījumus ar saviem SLO, lai informācijas paneļi atbildētu uz jautājumiem mazāk nekā minūtes laikā [5].
Kad informācijas paneļi atbild uz jautājumiem mazāk nekā minūtes laikā, cilvēki tos izmanto. Kad viņi to nedara, viņi izliekas, ka to dara.
Uzticamības aizsargbarjeras: SLO, kļūdu budžeti, saprātīga ieviešana 🧯
-
Definējiet SLO latentumam, pieejamībai un rezultātu kvalitātei un izmantojiet kļūdu budžetus lai līdzsvarotu uzticamību ar izlaišanas ātrumu [5].
-
Izvietojiet aiz satiksmes sadalījuma, izveidojiet kanārijputniņus un veiciet ēnu testus pirms globālām pārslēgšanām. Jūsu nākotnes "es" sūtīs uzkodas.
Izmaksu kontrole bez drāmas 💸
Mērogošana nav tikai tehniska; tā ir finansiāla. Izturieties pret GPU stundām un žetoniem kā pret pirmklasīgiem resursiem ar vienības ekonomiju (izmaksas par 1000 žetoniem, par iegulšanu, par vektora vaicājumu). Pievienojiet budžetus un brīdinājumus; sviniet lietu dzēšanu.
Vienkāršs ceļvedis mākslīgā intelekta mērogojamībai 🗺️
-
Sāciet ar SLO attiecībā uz p95 latentumu, pieejamību un uzdevumu precizitāti; pievienojiet metrikas/izsekošanas datus pirmajā dienā [5].
-
Izvēlieties apkalpojošo steku , kas atbalsta partijveida un nepārtrauktu partijveida apstrādi: Triton, vLLM vai līdzvērtīgus rīkus [2][3].
-
Optimizējiet modeli : kvantizējiet, kur tas ir nepieciešams, iespējojiet ātrākus kodolus vai destilējiet konkrētiem uzdevumiem; pārbaudiet kvalitāti ar reāliem novērtējumiem.
-
Elastības arhitekts : Kubernetes HPA ar pareizajiem signāliem, atsevišķiem lasīšanas/rakstīšanas ceļiem un bezvalstnieku secinājumu replikām [1].
-
Izmantojiet izgūšanas rīkus , kad svarīgs ir svaigums, lai mērogotu savu indeksu, nevis katru nedēļu pārkvalificētu.
-
Noslēdziet ciklu ar izmaksām : izveidojiet vienības ekonomiku un veiciet iknedēļas pārskatus.
Biežāk sastopamie kļūmju režīmi un ātrie risinājumi 🧨
-
GPU noslodze ir 30%, bet latentums ir slikts
-
Ieslēdziet dinamisko partiju apstrādi , uzmanīgi palieliniet partiju ierobežojumus un vēlreiz pārbaudiet servera vienlaicīgumu [2].
-
-
Caurlaidspēja sabrūk, ja tiek parādītas garas uzvednes
-
Izmantojiet apkalpošanu, kas atbalsta lappušu uzmanību , un maksimāli pielāgojiet vienlaicīgu secību skaitu [3].
-
-
Autoskalera atloki
-
Vienmērīga metrika ar logiem; mērogošana pēc rindas dziļuma vai pielāgoti tokenu skaits sekundē, nevis tikai CPU [1].
-
-
Izmaksas strauji pieaug pēc palaišanas
-
Pievienojiet pieprasījuma līmeņa izmaksu rādītājus, iespējojiet kvantizāciju, kur tas ir droši, kešatmiņā saglabājiet populārākos vaicājumus un ierobežojiet sliktākos pārkāpējus.
-
Mākslīgā intelekta mērogojamības rokasgrāmata: īss kontrolsaraksts ✅
-
SLO un kļūdu budžeti pastāv un ir redzami
-
Metrika: latentums, tps, GPU atmiņa, partijas lielums, token/s, kešatmiņas trāpījums
-
Traces no ieejas līdz modelim un pēcapstrādei
-
Apkalpošana: partijveida apstrāde ieslēgta, vienlaicīguma regulēšana, siltās kešatmiņas
-
Modelis: kvantizēts vai destilēts, kur tas ir noderīgi
-
Infrasarkanā sistēma: HPA konfigurēta ar pareizajiem signāliem
-
Zināšanu svaiguma atgūšanas ceļš
-
Bieži tiek pārskatīta vienības ekonomika
Pārāk ilgi to nelasīju un noslēguma piezīmes 🧩
Mākslīgā intelekta mērogojamība nav atsevišķa funkcija vai slepens slēdzis. Tā ir modeļu valoda: horizontāla mērogošana ar automātisko mērogošanu, servera puses partijveida apstrāde izmantošanai, modeļa līmeņa efektivitāte, zināšanu atgūšana un novērojamība, kas padara ieviešanu garlaicīgu. Pievienojiet SLO un izmaksu higiēnu, lai visi būtu saskaņoti. Jūs to neiegūsiet perfekti pirmajā reizē — neviens to nedara —, taču ar pareizajām atgriezeniskās saites cilpām jūsu sistēma augs bez aukstu sviedru sajūtas pulksten 2 naktī 😅
Atsauces
[1] Kubernetes dokumentācija — horizontālā poda automātiskā mērogošana — lasīt vairāk
[2] NVIDIA Triton — dinamiskais batčers — lasīt vairāk
[3] vLLM dokumenti — lappuses uzmanība — lasīt vairāk
[4] Hoffmann et al. (2022) — Lielo valodu modeļu apmācība skaitļošanas ziņā — lasīt vairāk
[5] Google SRE darbgrāmata — SLO ieviešana — lasīt vairāk