Kratak odgovor: Za optimizaciju AI modela odaberite jedno primarno ograničenje (latencija, trošak, memorija, kvaliteta, stabilnost ili propusnost), a zatim zabilježite pouzdanu osnovnu vrijednost prije nego što bilo što promijenite. Prvo uklonite uska grla u cjevovodu, a zatim primijenite niskorizične dobitke poput mješovite preciznosti i grupiranja; ako se kvaliteta održi, prijeđite na alate za kompajliranje/izvođenje i tek zatim smanjite veličinu modela kvantizacijom ili destilacijom kada je to potrebno.
Ključne zaključke:
Ograničenje : Odaberite jednu ili dvije ciljne metrike; optimizacija je krajolik kompromisa, a ne besplatnih pobjeda.
Mjerenje : Profilirajte stvarna opterećenja s p50/p95/p99, propusnošću, iskorištenjem i vršnim opterećenjima memorije.
Cjevovod : Ispravite tokenizaciju, učitavače podataka, predobradu i grupiranje prije nego što se dotaknete modela.
Posluživanje : Koristite predmemoriranje, namjerno grupiranje, podešavanje konkurentnosti i pažljivo pratite latenciju repa.
Zaštitne ograde : Pokrenite zlatne upute, metrike zadataka i nasumične provjere nakon svake promjene performansi.

🔗 Kako učinkovito procijeniti AI modele
Ključni kriteriji i koraci za pravedno i pouzdano prosuđivanje modela.
🔗 Kako mjeriti performanse umjetne inteligencije stvarnim metrikama
Za usporedbu koristite referentne vrijednosti, latenciju, cijenu i signale kvalitete.
🔗 Kako testirati AI modele prije produkcije
Praktični tijek rada testiranja: podjele podataka, stresni slučajevi i praćenje.
🔗 Kako koristiti umjetnu inteligenciju za stvaranje sadržaja
Pretvorite ideje u nacrte brže uz strukturirane upute i iteracije.
1) Što "Optimizirati" znači u praksi (jer svatko to koristi drugačije) 🧠
Kada ljudi kažu "optimizirati AI model", mogli bi misliti na:
-
Ubrzajte (smanjite latenciju)
-
Učinite to jeftinijim (manje sati rada GPU-a, niža potrošnja na oblak)
-
Smanjite ga (zauzimanje memorije, implementacija na rubu mreže)
-
Učiniti ga točnijim (poboljšanje kvalitete, manje halucinacija)
-
Učiniti ga stabilnijim (manje varijance, manje kvarova u proizvodnji)
-
Olakšajte posluživanje (propusnost, grupiranje, predvidljive performanse)
Evo pomalo iritantne istine: ne možete sve ovo maksimizirati odjednom. Optimizacija je kao stiskanje balona - gurnete jednu stranu unutra, a druga strana iskoči. Ne uvijek, ali dovoljno često da biste trebali planirati kompromise.
Dakle, prije nego što išta dotaknete, odaberite svoje primarno ograničenje :
-
Ako korisnicima pružate usluge uživo, važna vam je latencija p95 ( percentili AWS CloudWatch-a ) i performanse repa ( najbolja praksa za "latenciju repa" ) 📉
-
Ako treniraš, važno ti je vrijeme potrebno za postizanje kvalitete i iskorištenost GPU-a 🔥
-
Ako implementirate na uređajima, važni su vam RAM i napajanje 🔋
2) Kako izgleda dobra verzija optimizacije AI modela ✅
Dobra verzija optimizacije nije samo "primijeni kvantizaciju i moli se". To je sustav. Najbolje postavke obično imaju:
-
Osnovna linija kojoj vjerujete
Ako ne možete reproducirati svoje trenutne rezultate, ne možete znati da ste išta poboljšali. Jednostavno… ali ljudi to preskaču. Onda se tone u začarani krug. -
Jasna ciljna metrika
„Brže“ je nejasna. „Smanjiti latenciju p95 s 900 ms na 300 ms uz isti rezultat kvalitete“ je pravi cilj. -
Zaštitne ograde za kvalitetu
Svaka pobjeda u izvedbi riskira tihi pad kvalitete. Potrebni su vam testovi, evaluacije ili barem paket za procjenu zdravog razuma. -
Svijest o hardveru
"Brzi" model na jednoj grafičkoj procesorskoj jedinici može se pojaviti na drugoj. CPU-i su svoja posebna vrsta kaosa. -
Iterativne promjene, a ne naglo prepisivanje.
Kada promijenite pet stvari odjednom i performanse se poboljšaju, ne znate zašto. Što je... uznemirujuće.
Optimizacija bi se trebala osjećati kao ugađanje gitare - male prilagodbe, pažljivo slušajte, ponavljajte 🎸. Ako se osjeća kao žongliranje noževima, nešto nije u redu.
3) Tablica usporedbe: Popularne opcije za optimizaciju AI modela 📊
U nastavku slijedi kratka i pomalo neuredna tablica usporedbe uobičajenih alata/pristupa za optimizaciju. Ne, nije savršeno „fer“ - ni stvarni život nije.
| Alat / Opcija | Publika | Cijena | Zašto to funkcionira |
|---|---|---|---|
PyTorch torch.compile ( PyTorch dokumentacija ) |
Ljudi iz PyTorcha | Besplatno | Hvatanje grafa + trikovi kompajlera mogu smanjiti opterećenje… ponekad je to magija ✨ |
| ONNX Runtime ( ONNX Runtime dokumentacija ) | Timovi za raspoređivanje | Slobodno | Snažne optimizacije zaključivanja, široka podrška, dobro za standardizirano posluživanje |
| TensorRT ( NVIDIA TensorRT dokumentacija ) | Implementacija NVIDIA-e | Plaćene vibracije (često u paketu) | Agresivna fuzija kernela + precizno rukovanje, vrlo brzo kad klikne |
| DeepSpeed ( ZeRO dokumentacija ) | Trenažni timovi | Besplatno | Optimizacije memorije + propusnosti (ZeRO itd.). Može se osjećati kao mlazni motor |
| FSDP (PyTorch) ( dokumentacija za PyTorch FSDP ) | Trenažni timovi | Besplatno | Parametri/gradijenti usitnjenih elemenata čine velike modele manje zastrašujućima |
| kvantizacija bitova i bajtova ( bitsandbytes ) | LLM majstori | Besplatno | Niske težine bitova, ogromne uštede memorije - kvaliteta ovisi, ali uf 😬 |
| Destilacija ( Hinton i sur., 2015. ) | Timovi proizvoda | "Trošak vremena" | Model manjeg učenika nasljeđuje ponašanje, obično najbolji povrat ulaganja dugoročno |
| Obrezivanje ( PyTorch vodič za obrezivanje ) | Istraživanje + proizvodnja | Besplatno | Uklanja mrtvi teret. Bolje funkcionira u kombinaciji s prekvalifikacijom |
| Flash Attention / spojene jezgre ( FlashAttention papir ) | Štreberi za performanse | Besplatno | Brža pažnja, bolje pamćenje. Prava pobjeda za transformatore |
| Triton Inference Server ( Dinamičko batchiranje ) | Operacije/infrastruktura | Besplatno | Posluživanje proizvodnje, grupiranje, višemodelni cjevovodi - djeluje poduzetnički |
Priznanje o neobičnosti formatiranja: „Cijena“ je neuredna jer vas otvoreni kod i dalje može koštati vikend otklanjanja pogrešaka, što je… cijena. 😵💫
4) Započnite s mjerenjem: Profilirajte kao da to mislite 🔍
Ako iz cijelog ovog vodiča radite samo jednu stvar, učinite ovo: pravilno izmjerite.
U mom vlastitom testiranju, najveći "optimizacijski proboji" došli su iz otkrića nečega neugodno jednostavnog poput:
-
učitivač podataka koji iscrpljuje GPU
-
Usko grlo predobrade CPU-a
-
male veličine serija koje uzrokuju opterećenje pri pokretanju kernela
-
spora tokenizacija (tokenizatori mogu biti tihi zlikovci)
-
fragmentacija memorije ( bilješke o alokatoru memorije PyTorch CUDA )
-
jednoslojno dominiranje računanja
Što mjeriti (minimalni skup)
-
Latencija (p50, p95, p99) ( SRE na percentilima latencije )
-
Propusnost (tokeni/sek, zahtjevi/sek)
-
Iskorištenost GPU-a (izračunavanje + memorija)
-
Vrhovi VRAM-a / RAM-a
-
Cijena po 1000 tokena (ili po inferenciji)
Praktični profilirajući način razmišljanja
-
Napravi profil jednog scenarija koji te zanima (ne dječje igre).
-
Zabilježite sve u mali "dnevnik performansi".
Da, zamorno je... ali vas štedi od kasnijeg samokritiziranja.
(Ako želite konkretan alat za početak: PyTorch Profiler ( torch.profiler docs ) i Nsight Systems ( NVIDIA Nsight Systems ) su uobičajeni osumnjičenici.)
5) Optimizacija podataka + treninga: Tiha supermoć 📦🚀
Ljudi opsjednuto koriste arhitekturu modela i zaborave na proces. U međuvremenu, proces tiho troši pola GPU-a.
Lake pobjede koje se brzo pojavljuju
-
Koristite mješovitu preciznost (FP16/BF16 gdje je stabilno) ( PyTorch AMP / torch.amp )
Obično brže, često dobro - ali pripazite na numeričke posebnosti. -
Akumulacija gradijenta kada je veličina serije ograničena ( 🤗 Vodič za ubrzanje )
Održava optimizaciju stabilnom bez preopterećenja memorije. -
Gradijentno kontrolno mjesto ( torch.utils.checkpoint )
Zamjenjuje računanje za memoriju - omogućuje veće kontekste. -
Učinkovita tokenizacija ( 🤗 Tokenizatori )
Tokenizacija može postati usko grlo u velikim razmjerima. Nije glamurozna; važna je. -
Podešavanje učitavača podataka
Više radnika, pričvršćena memorija, prethodno dohvaćanje - neupadljivo, ali učinkovito 😴➡️💪 ( Vodič za podešavanje performansi PyTorcha )
Parametarski učinkovito fino podešavanje
Ako fino podešavate velike modele, PEFT metode (poput adaptera u LoRA stilu) mogu uvelike smanjiti troškove obuke, a istovremeno ostati iznenađujuće jake ( 🤗 Transformers PEFT vodič , LoRA rad ). Ovo je jedan od onih trenutaka "zašto ovo nismo napravili ranije?".
6) Optimizacija na razini arhitekture: Određivanje veličine modela 🧩
Ponekad je najbolji način optimizacije... prestati koristiti model koji je prevelik za posao. Znam, svetogrđe 😄.
Nazovite na temelju nekoliko osnovnih stvari:
-
Odlučite trebate li potpune vibracije opće obavještajne službe ili specijalista.
-
Kontekstni prozor neka bude onoliko velik koliko je potrebno, ne veći.
-
Koristite model obučen za dotični posao (klasifikacijski modeli za klasifikacijski rad i tako dalje).
Praktične strategije za određivanje prave veličine
-
Za većinu zahtjeva
prebacite se na manju okosnicu, a zatim usmjerite „teške upite“ na veći model. -
Koristite dvofazno postavljanje.
Brzo izrađuje nacrte modela, jači model provjerava ili uređuje.
To je kao da pišete s prijateljem koji je izbirljiv - dosadno, ali učinkovito. -
Smanjite duljinu izlaza
Izlazni tokeni koštaju novca i vremena. Ako vaš model luta, plaćate za lutanje.
Vidio sam timove kako drastično smanjuju troškove nametanjem kraćih rezultata. Djeluje sitno. Funkcionira.
7) Optimizacija kompajlera + grafa: Odakle dolazi brzina 🏎️
Ovo je sloj „natjerajte računalo da radi pametnije računalne stvari“.
Uobičajene tehnike:
-
Fuzija operatora (kombiniranje kernela) ( NVIDIA TensorRT “fuzija slojeva” )
-
Konstantno savijanje (prethodno izračunavanje fiksnih vrijednosti) ( optimizacije grafova ONNX Runtime- a)
-
Odabir jezgre prilagođen hardveru
-
Snimanje grafa za smanjenje opterećenja Pythona ( pregled
torch.compile)
Jednostavno rečeno: vaš model može biti brz matematički, ali spor operativno. Kompajleri ispravljaju dio toga.
Praktične bilješke (tj. ožiljci)
-
Ove optimizacije mogu biti osjetljive na promjene oblika modela.
-
Neki modeli puno ubrzavaju, neki se jedva pomiču.
-
Ponekad dobiješ ubrzanje i zagonetnu bubu - kao da se gremlin uselio 🧌
Ipak, kada uspije, to je jedna od najčišćih pobjeda.
8) Kvantizacija, orezivanje, destilacija: Manje bez plakanja (previše) 🪓📉
Ovo je dio koji ljudi žele... jer zvuči kao besplatna izvedba. Može biti, ali morate to tretirati kao operaciju.
Kvantizacija (težine/aktivacije niže preciznosti)
-
Izvrsno za brzinu zaključivanja i pamćenje
-
Rizik: pad kvalitete, posebno u rubnim slučajevima
-
Najbolja praksa: procijenite na stvarnom testnom skupu, a ne na vibracijama
Uobičajeni okusi o kojima ćete čuti:
-
INT8 (često čvrst) ( TensorRT kvantizirani tipovi )
-
INT4 / niskobitni (ogromne uštede, rizik kvalitete raste) ( kvantizacija bitova i bajtova k-bita )
-
Mješovita kvantita (nije za sve potrebna ista preciznost)
Obrezivanje (uklanjanje parametara)
-
Uklanja "nevažne" težine ili strukture ( tutorial za PyTorch orezivanje )
-
Obično je potrebna prekvalifikacija za vraćanje kvalitete
-
Radi bolje nego što ljudi misle... kada se radi pažljivo
Destilacija (učenik uči od učitelja)
Ovo je moja osobna omiljena dugoročna poluga. Destilacija može proizvesti manji model koji se ponaša slično i često je stabilniji od ekstremne kvantizacije ( Destilacija znanja u neuronskoj mreži ).
Nesavršena metafora: destilacija je kao da prolijete kompliciranu juhu kroz filter i dobijete... manju juhu. Juha ne funkcionira tako, ali shvaćate poantu 🍲.
9) Serviranje i zaključivanje: Prava bojna zona 🧯
Možete "optimizirati" model, a i dalje ga loše posluživati. Posluživanje je mjesto gdje latencija i troškovi postaju stvarni.
Serviranje pobjeđuje koje je važno
-
Grupno generiranje
poboljšava propusnost. Ali povećava latenciju ako se pretjera. Uravnotežite to. ( Tritonovo dinamičko grupiranje ) -
Keširanje
Prompt keširanje i ponovna upotreba KV-keširanja mogu biti ogromni za ponovljene kontekste. ( Objašnjenje KV keširanja ) -
Streaming izlaz
Korisnici osjećaju da je brži čak i ako je ukupno vrijeme slično. Percepcija je važna 🙂. -
Smanjenje opterećenja token po token
Neki stogovi obavljaju dodatni posao po tokenu. Smanjite to opterećenje i dobit ćete veliku zaradu.
Pazite na latenciju repa
Vaš prosjek može izgledati sjajno, dok je vaš p99 katastrofa. Korisnici, nažalost, žive u repu. ( "Latencija repa" i zašto prosjeci lažu )
10) Optimizacija svjesna hardvera: Uskladite model sa strojem 🧰🖥️
Optimiziranje bez poznavanja hardvera je kao podešavanje trkaćeg automobila bez provjere guma. Naravno, možete to učiniti, ali je malo glupo.
Razmatranja GPU-a
-
Propusnost memorije je često ograničavajući faktor, a ne sirovo računanje
-
Veće veličine serija mogu pomoći, sve dok ne prestanu
-
Fuzija kernela i optimizacije pažnje su ogromne za transformatore ( FlashAttention: IO-svjesna točna pažnja )
Razmatranja CPU-a
-
Niti, vektorizacija i lokalnost memorije su jako važni
-
Troškovi tokenizacije mogu dominirati ( 🤗 “Brzi” tokenizatori )
-
Možda će vam trebati drugačije strategije kvantizacije nego na GPU-u
Razmatranja za rubne/mobilne uređaje
-
Memorijski otisak postaje prioritet broj jedan
-
Varijacija latencije je važna jer su uređaji… ćudljivi
-
Manji, specijalizirani modeli često pobjeđuju velike opće modele
11) Kvalitetne zaštitne ograde: Nemojte se "optimizirati" u bug 🧪
Svaka brza pobjeda trebala bi imati provjeru kvalitete. Inače ćete slaviti, slati pošiljku, a zatim dobiti poruku poput „zašto asistent odjednom priča kao gusar?“ 🏴☠️
Pragmatične ograde:
-
Zlatni upiti (fiksni skup upita koje uvijek testirate)
-
Metrike zadatka (točnost, F1, BLEU, što god odgovara)
-
Ljudske provjere na licu mjesta (da, ozbiljno)
-
Pragovi regresije („dopušten pad ne veći od X%)
Također pratite načine kvara:
-
pomak formatiranja
-
promjene u ponašanju odbijanja
-
učestalost halucinacija
-
inflacija duljine odgovora
Optimizacija može promijeniti ponašanje na iznenađujuće načine. Neobično. Iritantno. Predvidljivo, gledajući unatrag.
12) Kontrolna lista: Kako optimizirati AI modele korak po korak ✅🤖
Ako želite jasan redoslijed operacija za optimizaciju AI modela , evo tijeka rada koji pomaže ljudima da ostanu zdravi:
-
Definirajte uspjeh
Odaberite 1-2 primarne metrike (latencija, trošak, propusnost, kvaliteta). -
Mjerenje
stvarnih opterećenja osnovnog profila, zapisivanje p50/p95, memorije, troškova. ( PyTorch Profiler ) -
Ispravljanje uskih grla u cjevovodu
Učitavanje podataka, tokenizacija, predobrada, grupiranje. -
Primijenite računalne pobjede niskog rizika:
mješovita preciznost, optimizacije jezgre, bolje batchiranje. -
Isprobajte optimizacije kompajlera/izvršavanja:
hvatanje grafova, izvođenje inferencije, fuziju operatora. ( tutorialza torch.compile, dokumentacija za ONNX Runtime ) -
Smanjite trošak modela.
Pažljivo kvantificirajte, destilirajte ako možete, orezujte ako je prikladno. -
Posluživanje
podešavanja, keširanje, istodobnost, testiranje opterećenja, ispravci latencije repa. -
Validirajte kvalitetu.
Pokrenite regresijske testove i usporedite rezultate jedan pored drugog. -
Ponavljanje
Male promjene, jasne bilješke, ponavljanje. Neupadljivo - učinkovito.
I da, ovo je i dalje Kako optimizirati AI modele čak i ako se više čini kao "Kako prestati gaziti po grabljama". Ista stvar.
13) Uobičajene pogreške (kako ih ne biste ponavljali kao mi ostali) 🙃
-
Optimiziranje prije mjerenja.
Izgubit ćete vrijeme. A onda ćete samouvjereno optimizirati pogrešnu stvar... -
Potraga za jednom referentnom
vrijednošću Referentne vrijednosti lažu zbog izostavljanja. Vaše radno opterećenje je istina. -
Ignoriranje memorije
Problemi s memorijom uzrokuju usporavanja, rušenja i podrhtavanje. ( Razumijevanje korištenja CUDA memorije u PyTorchu ) -
Prerano prekvantiziranje
Kvantificiranje s malo bita može biti nevjerojatno, ali prvo počnite sa sigurnijim koracima. -
Nema plana vraćanja na prethodno stanje.
Ako se ne možete brzo vratiti na prethodno stanje, svako postavljanje postaje stresno. Stres stvara greške.
Završne bilješke: Ljudski način optimizacije 😌⚡
Optimizacija AI modela nije jednokratni trik. To je slojevit proces: mjerenje, popravljanje cjevovoda, korištenje kompajlera i runtimeova, podešavanje posluživanja, a zatim smanjivanje modela kvantizacijom ili destilacijom ako je potrebno. Radite to korak po korak, držite se granica kvalitete i nemojte vjerovati da se „osjeća brže“ kao metrici (vaši osjećaji su lijepi, vaši osjećaji nisu profiler).
Ako želite najkraću dostavu:
-
Prvo izmjeri 🔍
-
Sljedeće optimizirajte cjevovod 🧵
-
Zatim optimizirajte model 🧠
-
Zatim optimizirajte posluživanje 🏗️
-
Uvijek provjeravajte kvalitetu ✅
I ako pomaže, podsjetite se: cilj nije „savršen model“. Cilj je model koji je brz, pristupačan i dovoljno pouzdan da možete spavati noću... većinu noći 😴.
Često postavljana pitanja
Što optimizacija AI modela znači u praksi
„Optimizacija“ obično znači poboljšanje jednog primarnog ograničenja: latencije, troškova, memorijskog otiska, točnosti, stabilnosti ili propusnosti posluživanja. Teški dio su kompromisi - poticanje jednog područja može ugroziti drugo. Praktičan pristup je odabrati jasan cilj (poput latencije p95 ili vremena potrebnog za postizanje kvalitete) i optimizirati prema njemu. Bez cilja, lako je „poboljšati se“ i ipak izgubiti.
Kako optimizirati AI modele bez tihog narušavanja kvalitete
Tretirajte svaku promjenu brzine ili troškova kao potencijalnu tihu regresiju. Koristite zaštitne ograde poput zlatnih uputa, metrika zadataka i brzih ljudskih provjera. Postavite jasan prag za prihvatljivo odstupanje kvalitete i uspoređujte rezultate jedan pored drugog. To sprječava da se "brže je" pretvori u "zašto je odjednom postalo čudno u produkciji?" nakon što isporučite.
Što treba mjeriti prije početka optimizacije
Započnite s percentilima latencije (p50, p95, p99), propusnošću (tokeni/sek ili zahtjevi/sek), iskorištenjem GPU-a i vršnom VRAM/RAM vrijednošću. Pratite trošak po inferenciji ili po 1k tokena ako je trošak ograničenje. Napravite profil stvarnog scenarija kojem služite, a ne prompta igračke. Vođenje malog "dnevnika performansi" pomaže vam da izbjegnete nagađanja i ponavljanje pogrešaka.
Brze pobjede s niskim rizikom za učinkovitost treninga
Mješovita preciznost (FP16/BF16) često je najbrža prva ručica, ali pripazite na numeričke neobičnosti. Ako je veličina serije ograničena, akumulacija gradijenta može stabilizirati optimizaciju bez trošenja memorije. Kontrolne točke gradijenta mijenjaju dodatno računanje za manje memorije, omogućujući veće kontekste. Nemojte zanemariti tokenizaciju i podešavanje učitavača podataka - oni mogu tiho iscrpiti GPU.
Kada koristiti torch.compile, ONNX Runtime ili TensorRT
Ovi alati ciljaju operativne troškove: snimanje grafova, fuziju kernela i optimizaciju grafova za vrijeme izvođenja. Mogu pružiti čista ubrzanja inferencije, ali rezultati se razlikuju ovisno o obliku modela i hardveru. Neke postavke djeluju kao magija; druge se jedva pomiču. Očekujte osjetljivost na promjene oblika i povremene "gremlinske" greške - mjerite prije i poslije na svom stvarnom opterećenju.
Isplati li se kvantizacija i kako izbjeći pretjerano korištenje
Kvantizacija može smanjiti memoriju i ubrzati zaključivanje, posebno s INT8, ali kvaliteta može pasti u rubnim slučajevima. Opcije s nižim bitovima (poput INT4/k-bit) donose veće uštede s većim rizikom. Najsigurnija navika je procijeniti na stvarnom testnom skupu i usporediti rezultate, a ne intuiciju. Prvo počnite sa sigurnijim koracima, a zatim idite na nižu preciznost samo ako je potrebno.
Razlika između obrezivanja i destilacije za smanjenje veličine modela
Obrezivanje uklanja parametre "mrtvog tereta" i često zahtijeva ponovnu obuku kako bi se povratila kvaliteta, posebno kada se provodi agresivno. Destilacija obučava manji model učenika da oponaša ponašanje većeg učitelja i može biti dugoročni povrat ulaganja veći od ekstremne kvantizacije. Ako želite manji model koji se ponaša slično i ostaje stabilan, destilacija je često čišći put.
Kako smanjiti troškove zaključivanja i latenciju poboljšanjima posluživanja
Posluživanje je mjesto gdje optimizacija postaje opipljiva: grupiranje povećava propusnost, ali može umanjiti latenciju ako se pretjera, stoga ga pažljivo podesite. Predmemoriranje (brzo predmemoriranje i ponovna upotreba KV-predmemorije) može biti ogromno kada se konteksti ponavljaju. Streaming izlaza poboljšava percipiranu brzinu čak i ako je ukupno vrijeme slično. Također obratite pozornost na opterećenje tokena po tokenu u svom stogu - mali rad po tokenu se brzo zbraja.
Zašto je latencija repa toliko važna pri optimizaciji AI modela
Prosjeci mogu izgledati sjajno dok je p99 katastrofa, a korisnici obično žive u repu. Latencija repa često dolazi od podrhtavanja: fragmentacije memorije, skokova u predprocesiranju CPU-a, usporavanja tokenizacije ili lošeg ponašanja u grupiranju. Zato vodič naglašava percentile i stvarna opterećenja. Ako optimizirate samo p50, i dalje možete pružiti iskustvo koje se „nasumično čini sporim“
Reference
-
Amazon Web Services (AWS) - AWS CloudWatch percentili (definicije statistike) - docs.aws.amazon.com
-
Google - Rep u mjerilu (najbolja praksa za latenciju repa) - sre.google
-
Google - Ciljevi razine usluge (SRE knjiga) - percentili latencije - sre.google
-
PyTorch - torch.compile - docs.pytorch.org
-
PyTorch - FullyShardedDataParallel (FSDP) - docs.pytorch.org
-
PyTorch - PyTorch Profiler - docs.pytorch.org
-
PyTorch - CUDA semantika: upravljanje memorijom (bilješke o CUDA alokatoru memorije) - docs.pytorch.org
-
PyTorch - Automatska mješovita preciznost (torch.amp / AMP) - docs.pytorch.org
-
PyTorch - torch.utils.checkpoint - docs.pytorch.org
-
PyTorch - Vodič za podešavanje performansi - docs.pytorch.org
-
PyTorch - Vodič za orezivanje - docs.pytorch.org
-
PyTorch - Razumijevanje korištenja CUDA memorije u PyTorchu - docs.pytorch.org
-
PyTorch - vodič / pregled za torch.compile - docs.pytorch.org
-
ONNX Runtime - Dokumentacija za ONNX Runtime - onnxruntime.ai
-
NVIDIA - Dokumentacija za TensorRT - docs.nvidia.com
-
NVIDIA - TensorRT kvantizirani tipovi - docs.nvidia.com
-
NVIDIA - Nsight Systems - developer.nvidia.com
-
NVIDIA - Triton Inference Server - dinamičko batchiranje - docs.nvidia.com
-
DeepSpeed - Dokumentacija za ZeRO Stage 3 - deepspeed.readthedocs.io
-
bitsandbytes (bitsandbytes-foundation) - bitsandbytes - github.com
-
Zagrljaj lica - Ubrzanje: Vodič za akumulaciju gradijenta - huggingface.co
-
Hugging Face - Dokumentacija tokenizatora - huggingface.co
-
Hugging Face - Transformersi: PEFT vodič - huggingface.co
-
Hugging Face - Transformers: KV objašnjenje predmemorije - huggingface.co
-
Hugging Face - Transformers: “Brzi” tokenizatori (klase tokenizatora) - huggingface.co
-
arXiv - Destilacija znanja u neuronskoj mreži (Hinton i sur., 2015.) - arxiv.org
-
arXiv - LoRA: Prilagodba modela velikih jezika niskog ranga - arxiv.org
-
arXiv - FlashAttention: Brza i memorijski učinkovita točna pažnja s IO-svjesnošću - arxiv.org