Kako optimizirati AI modele

Kako optimizirati AI modele

Kratak odgovor: Da biste optimizirali AI modele, odaberite jedno primarno ograničenje (latencija, trošak, memorija, kvalitet, stabilnost ili propusnost), a zatim uhvatite pouzdanu osnovnu liniju prije nego što bilo šta promijenite. Prvo uklonite uska grla u cevovodu, a zatim primijenite niskorizične dobitke poput mješovite preciznosti i grupiranja; ako se kvalitet održi, prijeđite na alate za kompajliranje/izvršavanje i tek onda smanjite veličinu modela putem kvantizacije ili destilacije kada je to potrebno.

Ključne zaključke:

Ograničenje : Odaberite jednu ili dvije ciljne metrike; optimizacija je pejzaž kompromisa, a ne besplatnih pobjeda.

Mjerenje : Profilirajte stvarna opterećenja sa p50/p95/p99, propusnošću, iskorištenjem i memorijskim vršnim vrijednostima.

Cjevovod : Popravite tokenizaciju, učitavače podataka, prethodnu obradu i grupiranje prije nego što se dotaknete modela.

Posluživanje : Koristite keširanje, namjerno grupiranje, podešavanje konkurentnosti i pažljivo pratite latenciju repa.

Zaštitne ograde : Pokrenite zlatne promptove, metrike zadataka i nasumične provjere nakon svake promjene performansi.

Infografika o optimizaciji AI modela

🔗 Kako efikasno procijeniti AI modele
Ključni kriteriji i koraci za pravedno i pouzdano prosuđivanje modela.

🔗 Kako mjeriti performanse vještačke inteligencije pomoću stvarnih metrika
Koristite referentne vrijednosti, latenciju, cijenu i signale kvalitete za poređenje.

🔗 Kako testirati AI modele prije produkcije
Praktični tijek rada testiranja: podjele podataka, stresni slučajevi i praćenje.

🔗 Kako koristiti vještačku inteligenciju za kreiranje sadržaja
Pretvorite ideje u nacrte brže uz strukturirane upute i iteracije.


1) Šta "Optimizirati" znači u praksi (jer svako to koristi drugačije) 🧠

Kada ljudi kažu "optimizirati AI model", možda misle 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činite ga preciznijim (poboljšanje kvalitete, manje halucinacija)

  • Učinite ga stabilnijim (manje varijanse, 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 bilo šta dodirnete, odaberite svoje primarno ograničenje :

  • Ako pružate usluge korisnicima uživo, bitna vam je latencija p95 ( percentili AWS CloudWatch-a ) i performanse repa ( najbolja praksa za "latenciju repa" ) 📉

  • Ako trenirate, važno vam 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 sistem. 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 totalno prevrću.

  • Jasna ciljna metrika
    „Brže“ je nejasna. „Smanjiti latenciju p95 sa 900ms na 300ms uz isti rezultat kvalitete“ je pravi cilj.

  • Zaštitne ograde za kvalitet
    Svaka pobjeda u performansama riskira tihi pad kvalitete. Potrebni su vam testovi, evaluacije ili barem paket za procjenu zdravlja.

  • Svijest o hardveru
    "Brzi" model na jednoj grafičkoj procesorskoj jedinici može se koristiti na drugoj. CPU-i su posebna vrsta haosa.

  • 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 trebala biti kao štimovanje gitare - male prilagodbe, pažljivo slušajte, ponavljajte 🎸. Ako se osjeća kao žongliranje noževima, nešto nije u redu.


3) Tabela poređenja: Popularne opcije za optimizaciju AI modela 📊

Ispod je kratka i pomalo neuredna tabela poređenja uobičajenih alata/pristupa za optimizaciju. Ne, nije savršeno "fer" - ni stvarni život nije.

Alat / Opcija Publika Cijena Zašto to funkcioniše
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 inferencije, široka podrška, dobro za standardizirano posluživanje
TensorRT ( NVIDIA TensorRT dokumentacija ) Raspoređivanje NVIDIA-e Plaćene vibracije (često u paketu) Agresivna fuzija kernela + precizno rukovanje, vrlo brzo kada klikne
DeepSpeed ​​( ZeRO dokumentacija ) Trenažni timovi Besplatno Optimizacije memorije + propusnosti (ZeRO itd.). Može se osjećati kao mlazni motor
FSDP (PyTorch) ( PyTorch FSDP dokumentacija ) Trenažni timovi Besplatno Parametri/gradijenti usitnjenih elemenata čine velike modele manje zastrašujućim
kvantizacija bitova i bajtova ( bitovi i bajtovi ) LLM majstori Besplatno Niske težine bitova, ogromne uštede memorije - kvalitet zavisi, ali uf 😬
Destilacija ( Hinton i dr., 2015. ) Timovi proizvoda "Trošak vremena" Model manjeg studenta nasljeđuje ponašanje, obično najbolji povrat ulaganja dugoročno
Orezivanje ( tutorijal za orezivanje na PyTorchu ) Istraživanje + proizvodnja Besplatno Uklanja mrtvi teret. Bolje funkcioniše u kombinaciji s prekvalifikacijom
Flash Attention / spojene jezgre ( FlashAttention papir ) Zagovornici performansa Besplatno Brža pažnja, bolje pamćenje i ponašanje. Prava pobjeda za transformatore
Triton Inference Server ( Dinamičko batching ) Operacije/infrastruktura Besplatno Opsluživanje proizvodnje, grupiranje, višemodelni cjevovodi - djeluje podjednako poslovno

Priznanje o neobičnosti formatiranja: „Cijena“ je neuredna jer vas otvoreni kod i dalje može koštati vikend otklanjanja grešaka, što je... cijena. 😵💫


4) Počnite s mjerenjem: Profilirajte kao da to mislite 🔍

Ako radite samo jednu stvar iz cijelog ovog vodiča, uradite ovo: pravilno izmjerite.

U mom vlastitom testiranju, najveći "proboji u optimizaciji" došli su iz otkrića nečega neugodno jednostavnog poput:

  • učitavanje podataka izgladnjuje GPU

  • Usko grlo predobrade CPU-a

  • male veličine paketa koje uzrokuju opterećenje pri pokretanju kernela

  • spora tokenizacija (tokenizatori mogu biti tihi zlikovci)

  • fragmentacija memorije ( napomene o alokatoru memorije u PyTorch CUDA )

  • jednoslojno dominiranje računanjem

Šta mjeriti (minimalni set)

  • Latencija (p50, p95, p99) ( SRE na percentilima latencije )

  • Propusnost (tokeni/sek, zahtjevi/sek)

  • Iskorištenost GPU-a (računarstvo + memorija)

  • Vrhovi VRAM-a / RAM-a

  • Cijena po 1000 tokena (ili po inferenciji)

Praktični profilirajući način razmišljanja

  • Napravite profil jednog scenarija koji vas zanima (ne igračku).

  • Zabilježite sve u mali "dnevnik performansi".
    Da, dosadno je... ali vas štedi od toga da kasnije sami sebe kritikujete.

(Ako želite konkretan alat za početak: PyTorch Profiler ( torch.profiler dokumentacija ) i Nsight Systems ( NVIDIA Nsight Systems ) su uobičajeni osumnjičeni.)


5) Optimizacija podataka + obuke: Tiha supermoć 📦🚀

Ljudi su opsjednuti arhitekturom modela i zaboravljaju 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 pazite na numeričke specifičnosti.

  • Akumulacija gradijenta kada je veličina serije ograničena ( 🤗 Vodič za ubrzanje )
    Održava optimizaciju stabilnom bez preopterećenja memorije.

  • Gradijentno kontrolno određivanje ( torch.utils.checkpoint )
    Zamjenjuje računanje za memoriju - omogućava veće kontekste.

  • Efikasna 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, zakačena memorija, prethodno učitavanje - neupadljivo ali efikasno 😴➡️💪 ( Vodič za podešavanje performansi PyTorcha )

Parametarski efikasno fino podešavanje

Ako fino podešavate velike modele, PEFT metode (poput adaptera u LoRA stilu) mogu znatno smanjiti troškove obuke, a istovremeno ostati iznenađujuće jake ( 🤗 Transformers PEFT vodič , LoRA rad ). Ovo je jedan od onih trenutaka kada se pitate "zašto ovo nismo uradili ranije?".


6) Optimizacija na nivou arhitekture: Određivanje veličine modela 🧩

Ponekad je najbolji način za optimizaciju... prestati koristiti model koji je prevelik za posao. Znam, svetogrđe 😄.

Obavite poziv na osnovu nekoliko osnovnih stvari:

  • Odlučite da li vam je potreban kompletan test opšte obavještajne službe ili specijalista.

  • Kontekstni prozor neka bude onoliko velik koliko je potrebno, ne veći.

  • Koristite model obučen za dati posao (klasifikacijski modeli za klasifikacijski rad i tako dalje).

Praktične strategije za određivanje prave veličine

  • Prebacite se na manju okosnicu za većinu zahtjeva,
    a zatim usmjerite „teške upite“ na veći model.

  • Koristite dvostepeno podešavanje.
    Brzo izrađujete nacrte modela, a jači model ih provjerava ili uređuje.
    To je kao da pišete s prijateljem koji je izbirljiv - dosadno je, ali efikasno.

  • Smanjite dužinu izlaza.
    Izlazni tokeni koštaju novca i vremena. Ako vaš model luta, vi plaćate za lutanje.

Vidio sam timove kako drastično smanjuju troškove nametanjem kraćih rezultata. Djeluje sitničavo. Funkcionira.


7) Optimizacija kompajlera + grafa: Odakle dolazi brzina 🏎️

Ovo je sloj „natjerajte računar da radi pametnije računarske stvari“.

Uobičajene tehnike:

Jednostavno rečeno: vaš model može biti brz matematički, ali spor operativno. Kompajleri ispravljaju dio toga.

Praktične napomene (tj. ožiljci)

  • Ove optimizacije mogu biti osjetljive na promjene oblika modela.

  • Neki modeli znatno ubrzavaju, neki se jedva pomjeraju.

  • Ponekad dobiješ ubrzanje i zagonetnu bubu - kao da se gremlin uselio 🧌

Ipak, kada uspije, to je jedna od najčistijih pobjeda.


8) Kvantizacija, orezivanje, destilacija: Manje bez plakanja (previše) 🪓📉

Ovo je dio koji ljudi žele... jer zvuči kao besplatan nastup. Može biti, ali morate to tretirati kao operaciju.

Kvantizacija (težine/aktivacije niže preciznosti)

  • Odlično 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:

Orezivanje (uklanjanje parametara)

  • Uklanja "nevažne" težine ili strukture ( tutorijal za PyTorch orezivanje )

  • Obično je potrebna prekvalifikacija kako bi se povratio kvalitet

  • Funkcioniše bolje nego što ljudi misle... kada se uradi pažljivo

Destilacija (učenik uči od nastavnika)

Ovo je moja lična 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 sipate kompliciranu supu kroz filter i dobijete... manju supu. Supa ne funkcioniše tako, ali shvatate poentu 🍲.


9) Serviranje i zaključivanje: Prava bojna zona 🧯

Možete "optimizirati" model, a i dalje ga loše opsluživati. Opsluživanje je mjesto gdje latencija i troškovi postaju stvarni.

Serviranje pobjeđuje koje je važno

  • Grupno dodavanje
    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 )

  • Korisnici
    smatraju da je brže čak i ako je ukupno vrijeme slično. Percepcija je bitna 🙂.

  • Smanjenje opterećenja token po token.
    Neki stekovi obavljaju dodatni posao po tokenu. Smanjite to opterećenje i osvojićete veliku zaradu.

Pazite na latenciju repa

Vaš prosjek može izgledati sjajno, dok je vaš p99 katastrofa. Nažalost, korisnici žive u repu. ( "Latencija repa" i zašto prosjeci lažu )


10) Optimizacija svjesna hardvera: Uskladite model sa mašinom 🧰🖥️

Optimizacija bez poznavanja hardvera je kao podešavanje trkaćeg automobila bez provjere guma. Naravno, možete to uraditi, ali je malo glupo.

Razmatranja za GPU

  • Propusnost memorije je često ograničavajući faktor, a ne sirovo računanje

  • Veće serije mogu pomoći, sve dok ne prestanu

  • Fuzija kernela i optimizacija pažnje su ogromne za transformatore ( FlashAttention: IO-svjesna tačna pažnja )

Razmatranja CPU-a

  • Niti, vektorizacija i lokalnost memorije su veoma 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 bitna jer su uređaji... ćudljivi

  • Manji, specijalizirani modeli često pobjeđuju velike opće modele


11) Kvalitetne zaštitne ograde: Nemojte se "optimizovati" do greške 🧪

Svaka pobjeda u brzoj igri trebala bi imati provjeru kvalitete. U suprotnom ćete slaviti, slati pošiljku, a zatim dobiti poruku poput „zašto asistent odjednom priča kao pirat?“ 🏴☠️

Pragmatične zaštitne ograde:

  • Zlatni upiti (fiksni skup upita koje uvijek testirate)

  • Metrike zadataka (tačnost, F1, BLEU, šta god odgovara)

  • Ljudske provjere na licu mjesta (da, ozbiljno)

  • Pragovi regresije („dozvoljen pad ne veći od X%)

Također pratite načine kvara:

  • pomak formatiranja

  • promjene u ponašanju odbijanja

  • učestalost halucinacija

  • inflacija dužine 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 radnog toka koji obično pomaže ljudima da ostanu zdravi:

  1. Definirajte uspjeh.
    Odaberite 1-2 primarne metrike (latencija, trošak, protok, kvalitet).

  2. Mjerenje
    stvarnih opterećenja osnovnog profila, evidentiranje p50/p95, memorije, troškova. ( PyTorch Profiler )

  3. Ispravljanje uskih grla u cevovodu
    Učitavanje podataka, tokenizacija, predobrada, grupiranje.

  4. Primijenite niskorizične računske pobjede:
    mješovita preciznost, optimizacije kernela, bolje batching.

  5. Isprobajte optimizacije kompajlera/runtime okruženja:
    hvatanje grafova, runtime zaključivanja, fuzija operatora. ( tutorijal za torch.compile , dokumentacija za ONNX Runtime ).

  6. Smanjite troškove modela.
    Pažljivo kvantificirajte, destilirajte ako možete, orezujte ako je potrebno.

  7. Podešavanje servisa:
    keširanje, konkurentnost, testiranje opterećenja, ispravke latencije repa.

  8. Validirajte kvalitet.
    Pokrenite regresijske testove i uporedite rezultate jedan pored drugog.

  9. Ponavljajte.
    Male promjene, jasne bilješke, ponavljajte. Neupadljivo - efektivno.

I da, ovo je i dalje Kako optimizirati AI modele čak i ako više liči na "Kako prestati gaziti po grabljama". Ista stvar.


13) Uobičajene greške (kako ih ne biste ponavljali kao mi ostali) 🙃

  • Optimizacija prije mjerenja.
    Izgubit ćete vrijeme. A onda ćete samouvjereno optimizirati pogrešnu stvar...

  • Potraga za jednim kriterijem Kriteriji
    lažu izostavljanjem. Vaše radno opterećenje je istina.

  • Ignorisanje memorije
    Problemi s memorijom uzrokuju usporavanja, padove i podrhtavanje. ( Razumijevanje korištenja CUDA memorije u PyTorchu )

  • Prerano prekvantiziranje. Kvantificiranje s
    malo bita može biti izvrsno, ali prvo počnite s sigurnijim koracima.

  • Nema plana za vraćanje na prethodno stanje.
    Ako ne možete brzo vratiti na prethodno stanje, svako raspoređivanje postaje stresno. Stres stvara greške.


Završne napomene: Ljudski način optimizacije 😌⚡

Optimizacija AI modela nije jednokratni trik. To je slojevit proces: mjerenje, popravljanje protočne obrade, korištenje kompajlera i runtime okruženja, podešavanje posluživanja, a zatim smanjivanje modela kvantizacijom ili destilacijom ako je potrebno. Radite to korak po korak, održavajte granice kvalitete i ne vjerujte da se „osjeća brže“ kao metrika (vaši osjećaji su divni, 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 kvalitet ✅

I ako vam 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

Šta optimizacija AI modela znači u praksi

"Optimizacija" obično znači poboljšanje jednog primarnog ograničenja: latencije, troškova, memorijskog otiska, tačnosti, stabilnosti ili protoka usluga. Težak dio su kompromisi - forsiranje jednog područja može ugroziti drugo. Praktični pristup je odabrati jasan cilj (kao što je latencija p95 ili vrijeme potrebno 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 kao što su zlatni uputni koraci, metrike zadataka i brze ljudske provjere na licu mjesta. Postavite jasan prag za prihvatljivo odstupanje od kvalitete i upoređujte rezultate jedan pored drugog. Ovo sprječava da se "brže je" pretvori u "zašto je odjednom postalo čudno u produkciji?" nakon što isporučite.

Šta treba mjeriti prije nego što počnete s optimizacijom

Počnite s percentilima latencije (p50, p95, p99), propusnošću (tokeni/sek ili zahtjevi/sek), iskorištenjem GPU-a i vršnom VRAM/RAM memorijom. Pratite cijenu po inferenciji ili po 1k tokena ako je cijena ograničenje. Napravite profil stvarnog scenarija kojem služite, a ne šaljive upute. Vođenje malog "dnevnika performansi" pomaže vam da izbjegnete nagađanja i ponavljanje grešaka.

Brze pobjede s niskim rizikom za performanse treninga

Mješovita preciznost (FP16/BF16) je često 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 tačke gradijenta mijenjaju dodatno računanje za manje memorije, omogućavajući veće kontekste. Ne zanemarujte 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 čisto ubrzanje inferencije, ali rezultati variraju ovisno o obliku modela i hardveru. Neka podešavanja djeluju kao magija; druga se jedva pomiču. Očekujte osjetljivost na promjene oblika i povremene "gremlin" greške - mjerite prije i poslije na vašem stvarnom opterećenju.

Da li se kvantizacija isplati i kako izbjeći pretjerano korištenje

Kvantizacija može smanjiti memoriju i ubrzati zaključivanje, posebno s INT8, ali kvalitet može opasti u graničnim 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 izlaze, a ne na temelju intuicije. Prvo počnite sa sigurnijim koracima, a zatim idite na nižu preciznost samo ako je potrebno.

Razlika između orezivanja i destilacije za smanjenje veličine modela

Rezidacija uklanja parametre "mrtvog tereta" i često zahtijeva ponovnu obuku kako bi se povratio kvalitet, posebno kada se radi agresivno. Destilacija obučava manji model učenika da oponaša ponašanje većeg nastavnika i može biti dugoročni povrat ulaganja (ROI) veći od ekstremne kvantizacije. Ako želite manji model koji se ponaša slično i ostaje stabilan, destilacija je često čistiji put.

Kako smanjiti troškove zaključivanja i latenciju kroz poboljšanja posluživanja

Usluživanje je mjesto gdje optimizacija postaje opipljiva: grupiranje povećava propusnost, ali može uticati na latenciju ako se pretjera, stoga ga pažljivo podesite. Keširanje (brzo keširanje i ponovna upotreba KV-keširanja) 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 pažnju na opterećenje tokena po tokenu u vašem steku - mali rad po tokenu se brzo akumulira.

Zašto je latencija repa toliko važna pri optimizaciji AI modela

Prosjeci mogu izgledati sjajno dok je p99 katastrofa, a korisnici imaju tendenciju da ž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

  1. Amazon Web Services (AWS) - AWS CloudWatch percentili (definicije statistike) - docs.aws.amazon.com

  2. Google - Rep u velikoj mjeri (najbolja praksa za latenciju repa) - sre.google

  3. Google - Ciljevi nivoa usluge (SRE knjiga) - percentili latencije - sre.google

  4. PyTorch - torch.compile - docs.pytorch.org

  5. PyTorch - FullyShardedDataParallel (FSDP) - docs.pytorch.org

  6. PyTorch - PyTorch Profiler - docs.pytorch.org

  7. PyTorch - CUDA semantika: upravljanje memorijom (bilješke o CUDA alokatoru memorije) - docs.pytorch.org

  8. PyTorch - Automatska mješovita preciznost (torch.amp / AMP) - docs.pytorch.org

  9. PyTorch - torch.utils.checkpoint - docs.pytorch.org

  10. PyTorch - Vodič za podešavanje performansi - docs.pytorch.org

  11. PyTorch - Vodič za orezivanje - docs.pytorch.org

  12. PyTorch - Razumijevanje korištenja CUDA memorije u PyTorchu - docs.pytorch.org

  13. PyTorch - tutorijal / pregled za torch.compile - docs.pytorch.org

  14. ONNX Runtime - Dokumentacija za ONNX Runtime - onnxruntime.ai

  15. NVIDIA - Dokumentacija za TensorRT - docs.nvidia.com

  16. NVIDIA - TensorRT kvantizirani tipovi - docs.nvidia.com

  17. NVIDIA - Nsight sistemi - developer.nvidia.com

  18. NVIDIA - Triton Inference Server - dinamičko batchiranje - docs.nvidia.com

  19. DeepSpeed ​​- ZeRO Stage 3 dokumentacija - deepspeed.readthedocs.io

  20. bitsandbytes (bitsandbytes-fondacija) - bitsandbytes - github.com

  21. Zagrljaj lica - Ubrzaj: Vodič za akumulaciju gradijenta - huggingface.co

  22. Hugging Face - Dokumentacija tokenizatora - huggingface.co

  23. Hugging Face - Transformersi: PEFT vodič - huggingface.co

  24. Hugging Face - Transformers: KV objašnjenje keša - huggingface.co

  25. Hugging Face - Transformers: "Brzi" tokenizatori (klase tokenizatora) - huggingface.co

  26. arXiv - Destilacija znanja u neuronskoj mreži (Hinton i dr., 2015) - arxiv.org

  27. arXiv - LoRA: Adaptacija modela velikih jezika niskog ranga - arxiv.org

  28. arXiv - FlashAttention: Brza i memorijski efikasna tačna pažnja sa IO-svjesnošću - arxiv.org

Pronađite najnoviju umjetnu inteligenciju u službenoj trgovini AI Assistant

O nama

Nazad na blog