Jinsi ya Kuboresha Mifumo ya AI

Jinsi ya Kuboresha Mifumo ya AI

Jibu fupi: Ili kuboresha mifumo ya AI, chagua kikwazo kimoja cha msingi (ucheleweshaji, gharama, kumbukumbu, ubora, uthabiti, au matokeo), kisha andika msingi unaoaminika kabla ya kubadilisha chochote. Ondoa vikwazo vya bomba kwanza, kisha tumia faida zenye hatari ndogo kama vile usahihi mchanganyiko na upangaji; ikiwa ubora utadumu, endelea kwenye zana za mkusanyaji/uendeshaji na kisha tu punguza ukubwa wa mfumo kupitia upimaji au uchanganyaji inapohitajika.

Mambo muhimu ya kuzingatia:

Kizuizi : Chagua kipimo kimoja au viwili lengwa; uboreshaji ni mandhari ya maelewano, si ushindi wa bure.

Kipimo : Taja mzigo halisi wa kazi kwa kutumia p50/p95/p99, matokeo ya kazi, matumizi, na vilele vya kumbukumbu.

Bomba : Rekebisha tokeni, vipakiaji data, usindikaji wa awali, na upangaji kabla ya kugusa modeli.

Huduma : Tumia hifadhi ya data, kupanga kwa makusudi, kurekebisha sarafu kwa wakati mmoja, na uangalie kwa makini muda wa kusubiri.

Vizuizi : Tekeleza vidokezo vya dhahabu, vipimo vya kazi, na ukaguzi wa uhakika baada ya kila mabadiliko ya utendaji.

Jinsi ya Kuboresha Infographic ya Mifano ya AI

🔗 Jinsi ya kutathmini mifumo ya akili bandia kwa ufanisi
Vigezo na hatua muhimu za kuhukumu mifumo kwa haki na kwa uhakika.

🔗 Jinsi ya kupima utendaji wa akili bandia kwa kutumia vipimo halisi.
Tumia vipimo, muda wa kuchelewa, gharama, na ishara za ubora ili kulinganisha.

🔗 Jinsi ya kujaribu mifumo ya akili bandia (AI) kabla ya uzalishaji.
Mtiririko wa kazi wa majaribio ya vitendo: mgawanyiko wa data, hali za mkazo, na ufuatiliaji.

🔗 Jinsi ya kutumia AI kwa ajili ya uundaji wa maudhui
Badilisha mawazo kuwa rasimu haraka zaidi kwa kutumia vidokezo vilivyopangwa na marudio.


1) Maana ya "Boresha" katika Utendaji (Kwa sababu Kila Mtu Anaitumia Tofauti) 🧠

Watu wanaposema "boresha mfumo wa akili bandia," wanaweza kumaanisha:

  • Ifanye iwe haraka zaidi (punguza muda wa kusubiri)

  • Ifanye iwe nafuu (saa chache za GPU, matumizi ya chini ya wingu)

  • Ifanye iwe ndogo (alama ya kumbukumbu, uwekaji wa ukingo)

  • Ifanye iwe sahihi zaidi (maboresho ya ubora, punguza ndoto za kuona mambo bila mpangilio)

  • Ifanye iwe imara zaidi (tofauti ndogo, hitilafu chache katika uzalishaji)

  • Irahisishe kuhudumia (uzalishaji, upangaji wa bidhaa, utendaji unaotabirika)

Hapa kuna ukweli unaokera kidogo: huwezi kutumia haya yote kwa wakati mmoja. Uboreshaji ni kama kufinya puto - sukuma upande mmoja ndani na upande mwingine hutoka. Sio kila wakati, lakini mara nyingi vya kutosha kwamba unapaswa kupanga kwa ajili ya maelewano.

Kwa hivyo kabla ya kugusa chochote, chagua kizuizi chako cha msingi :


2) Toleo Nzuri la Uboreshaji wa Mifumo ya AI Linaonekanaje ✅

Toleo zuri la uboreshaji si tu "kutumia upimaji na kuomba." Ni mfumo. Mipangilio bora kwa kawaida huwa na:

  • Msingi unaouamini
    Ikiwa huwezi kurudia matokeo yako ya sasa, huwezi kujua umeboresha chochote. Rahisi… lakini watu huiruka. Kisha huzunguka.

  • Kipimo cha lengo lengwa kilicho wazi
    "Haraka" si dhahiri. "Kata muda wa kusubiri p95 kutoka 900ms hadi 300ms kwa alama sawa ya ubora" ni shabaha halisi.

  • Vizuizi vya ubora
    Kila ushindi wa utendaji una hatari ya kurudi nyuma kwa ubora kimya kimya. Unahitaji vipimo, vipimo, au angalau seti ya hali ya akili timamu.

  • Ufahamu wa vifaa
    Mfano "wa kasi" kwenye GPU moja unaweza kutambaa kwenye nyingine. CPU ni aina yao maalum ya machafuko.

  • Mabadiliko ya mara kwa mara, si uandishi mpya wa big-bang
    Unapobadilisha vitu vitano kwa wakati mmoja na utendaji unaboreka, hujui ni kwa nini. Ambayo ni ... kutatanisha.

Uboreshaji unapaswa kuhisi kama kurekebisha gitaa - marekebisho madogo, sikiliza kwa makini, rudia 🎸. Ikiwa inahisi kama kupiga visu, kuna kitu kibaya.


3) Jedwali la Ulinganisho: Chaguo Maarufu za Kuboresha Mifumo ya AI 📊

Hapa chini kuna jedwali la kulinganisha la haraka na lisilo nadhifu la zana/mbinu za kawaida za uboreshaji. Hapana, si "haki" kikamilifu - maisha halisi pia si sawa.

Zana / Chaguo Hadhira Bei Kwa nini inafanya kazi
Tochi ya PyTorch.compile ( hati za PyTorch ) Watu wa PyTorch Bure Mbinu za kunasa grafu + za kukusanya data zinaweza kupunguza gharama za uendeshaji… wakati mwingine ni uchawi ✨
Muda wa Kuendesha wa ONNX ( Hati za Muda wa Kuendesha wa ONNX ) Timu za ugawaji Huru-ish Uboreshaji mkubwa wa hitimisho, usaidizi mpana, mzuri kwa huduma sanifu
TensorRT ( hati za NVIDIA TensorRT ) Utekelezaji wa NVIDIA Mitindo ya kulipwa (mara nyingi huwekwa pamoja) Muunganisho mkali wa kernel + utunzaji sahihi, haraka sana inapobofya
DeepSpeed ​​( hati za ZeRO ) Timu za mafunzo Bure Uboreshaji wa kumbukumbu + upitishaji (ZeRO n.k.). Inaweza kuhisi kama injini ya jeti
FSDP (PyTorch) (Nyaraka za PyTorch FSDP ) Timu za mafunzo Bure Vigezo/mipana ya vipande, hufanya mifumo mikubwa isiogopeshe
upimaji wa bitsandbaiti ( bitsandbaiti ) Watengenezaji wa LLM Bure Uzito wa biti ndogo, akiba kubwa ya kumbukumbu - ubora unategemea, lakini whew 😬
Uchafuzi ( Hinton et al., 2015 ) Timu za bidhaa "Gharama ya muda" Mfano mdogo wa mwanafunzi hurithi tabia, kwa kawaida faida bora ya muda mrefu
Kupogoa ( mafunzo ya kupogoa ya PyTorch ) Utafiti + bidhaa Bure Huondoa uzito uliokufa. Hufanya kazi vizuri zaidi inapounganishwa na mazoezi ya upya
Uangalifu wa Flash / kokwa zilizounganishwa ( Karatasi ya FlashAttention ) Wasomi wa utendaji Bure Usikivu wa haraka, tabia bora ya kumbukumbu. Ushindi halisi kwa transfoma
Seva ya Uashirio ya Triton ( Uunganishaji Unaobadilika ) Ops/inframe Bure Huduma ya uzalishaji, upangaji, mabomba ya mifumo mingi - yanaonekana kama ya biashara

Kukiri kwa umbizo la ajabu: "Bei" si safi kwa sababu chanzo huria bado kinaweza kukugharimu wikendi ya utatuzi wa matatizo, ambayo ni ... bei. 😵💫


4) Anza na Vipimo: Wasifu Kama Unavyomaanisha 🔍

Ukifanya jambo moja tu kutoka kwa mwongozo huu wote, fanya hivi: pima ipasavyo.

Katika majaribio yangu mwenyewe, "mafanikio makubwa zaidi ya uboreshaji" yalitokana na kugundua kitu rahisi sana kama:

  • kipakiaji data kinasababisha GPU kukosa nguvu

  • Kikwazo cha usindikaji wa awali wa CPU

  • ukubwa mdogo wa kundi unaosababisha kernel kuzindua juu ya uendeshaji

  • uwekaji tokeni polepole (waweka tokeni wanaweza kuwa wabaya kimya kimya)

  • kugawanyika kwa kumbukumbu ( maelezo ya mgawanyaji wa kumbukumbu ya PyTorch CUDA )

  • hesabu inayotawala safu moja

Kipi cha kupima (seti ya chini kabisa)

  • Muda wa kusubiri (uk. 50, uk. 95, uk. 99) ( SRE kwenye asilimia za muda wa kusubiri )

  • Matokeo (tokeni/sekunde, maombi/sekunde)

  • Matumizi ya GPU (hesabu + kumbukumbu)

  • Vilele vya VRAM / RAM

  • Gharama kwa kila tokeni za 1k (au kwa kila makadirio)

Mtazamo wa vitendo wa uandishi wa wasifu

  • Wasifu wa hali moja unayoijali (sio kidokezo cha vitu vya kuchezea).

  • Rekodi kila kitu katika "shajara ndogo ya urembo."
    Ndiyo, inachosha ... lakini inakuokoa kutokana na kujichosha baadaye.

(Ikiwa unataka kifaa halisi cha kuanza nacho: PyTorch Profiler ( torch.profiler docs ) na Nsight Systems ( NVIDIA Nsight Systems ) ndizo zinazoshukiwa kwa kawaida.)


5) Uboreshaji wa Data + Mafunzo: Nguvu Nzuri ya Utulivu 📦🚀

Watu huzingatia usanifu wa mifumo na kusahau bomba. Wakati huo huo bomba huchoma nusu ya GPU kimya kimya.

Ushindi rahisi unaoonekana haraka

  • Tumia usahihi mchanganyiko (FP16/BF16 ambapo ni thabiti) ( PyTorch AMP / torch.amp )
    Kawaida ni haraka zaidi, mara nyingi ni sawa - lakini angalia tabia za nambari.

  • Mkusanyiko wa gradient wakati ukubwa wa kundi ni mdogo ( 🤗 Mwongozo wa kuongeza kasi )
    Huweka uboreshaji imara bila kulipuka kwa kumbukumbu.

  • Ukaguzi wa gradient ( torch.utils.checkpoint )
    Hufanya biashara ya hesabu kwa kumbukumbu - hufanya muktadha mkubwa uwezekane.

  • Utoaji tokeni wenye ufanisi ( 🤗 Tokenizers )
    Utoaji tokeni unaweza kuwa kikwazo kwa kiwango kikubwa. Sio wa kuvutia; ni muhimu.

  • Urekebishaji wa kipakiaji data
    Wafanyakazi zaidi, kumbukumbu iliyobanwa, uwekaji mapema - haionyeshi lakini ina ufanisi 😴➡️💪 ( Mwongozo wa Urekebishaji wa Utendaji wa PyTorch )

Urekebishaji bora wa vigezo

Ukirekebisha mifumo mikubwa, mbinu za PEFT (kama vile adapta za mtindo wa LoRA) zinaweza kupunguza gharama ya mafunzo kwa kiasi kikubwa huku zikiendelea kuwa imara kwa kushangaza ( 🤗 Mwongozo wa PEFT wa Transformers , karatasi ya LoRA ). Huu ni mmoja wa wale walio na wakati wa "kwa nini hatukufanya hivi mapema?".


6) Uboreshaji wa Kiwango cha Usanifu: Mfano wa Ukubwa wa Kulia 🧩

Wakati mwingine njia bora ya kuboresha ni… kuacha kutumia modeli ambayo ni kubwa sana kwa kazi hiyo. Najua, kufuru 😄.

Piga simu kwa misingi michache:

  • Amua kama unahitaji hisia kamili za akili ya jumla, au mtaalamu.

  • Weka dirisha la muktadha kubwa iwezekanavyo, si kubwa zaidi.

  • Tumia modeli iliyofunzwa kwa kazi iliyopo (modeli za uainishaji kwa kazi ya uainishaji, na kadhalika).

Mikakati ya vitendo ya ukubwa wa kulia

  • Badilisha hadi uti wa mgongo mdogo kwa maombi mengi.
    Kisha elekeza "maswali magumu" hadi kwenye modeli kubwa zaidi.

  • Tumia mpangilio wa hatua mbili.
    Rasimu za haraka za modeli, modeli imara zaidi huthibitisha au kuhariri.
    Ni kama kuandika na rafiki ambaye ni mchaguzi - anayekera, lakini mwenye ufanisi.

  • Punguza urefu wa matokeo
    Tokeni za matokeo hugharimu pesa na muda. Ikiwa modeli yako itabadilika, unalipia gharama ya mabadiliko.

Nimeona timu zikipunguza gharama kwa kiasi kikubwa kwa kutekeleza matokeo mafupi. Inahisi kama ni ndogo. Inafanya kazi.


7) Uboreshaji wa Kikusanyaji + Grafu: Kasi Inatoka Wapi 🏎️

Hii ni safu ya "kuifanya kompyuta ifanye mambo ya kompyuta nadhifu zaidi".

Mbinu za kawaida:

Kwa maneno rahisi: mfumo wako unaweza kuwa wa kasi kihisabati, lakini polepole katika utendaji. Vikusanyaji hurekebisha baadhi ya hayo.

Maelezo ya vitendo (pia hujulikana kama makovu)

  • Uboreshaji huu unaweza kuwa nyeti kwa mabadiliko ya umbo la modeli.

  • Baadhi ya mifano huharakisha sana, mingine hubadilika kidogo.

  • Wakati mwingine unapata mdudu wa kasi na mdudu wa kutatanisha - kama gremlin aliyehamishwa ndani 🧌

Hata hivyo, inapofanya kazi, ni mojawapo ya ushindi safi zaidi.


8) Upimaji, Kupogoa, Kuchachusha: Ndogo Bila Kulia (Kupita Kiasi) 🪓📉

Hii ndiyo sehemu ambayo watu wanataka… kwa sababu inaonekana kama utendaji huru. Inaweza kuwa hivyo, lakini lazima uichukulie kama upasuaji.

Upimaji (uzito/uanzishaji wa usahihi wa chini)

  • Nzuri kwa kasi ya hitimisho na kumbukumbu

  • Hatari: kushuka kwa ubora, hasa kwenye sehemu zenye ukingo

  • Mbinu bora: tathmini kwenye seti halisi ya majaribio, si hisia

Ladha za kawaida utasikia kuhusu:

Kupogoa (ondoa vigezo)

  • Huondoa uzito au miundo "isiyo muhimu" ( mafunzo ya kupogoa ya PyTorch )

  • Kwa kawaida huhitaji mafunzo upya ili kurejesha ubora

  • Inafanya kazi vizuri zaidi kuliko watu wanavyofikiria… inapofanywa kwa uangalifu

Kuyeyusha (mwanafunzi hujifunza kutoka kwa mwalimu)

Hii ni lever yangu binafsi ninayopenda ya muda mrefu. Kuyeyusha kunaweza kutoa modeli ndogo ambayo hufanya vivyo hivyo, na mara nyingi ni thabiti zaidi kuliko upimaji uliokithiri ( Kuyeyusha Maarifa katika Mtandao wa Neva ).

Sitiari isiyokamilika: kunyunyizia ni kama kumimina supu ngumu kupitia kichujio na kupata… supu ndogo. Hiyo si jinsi supu inavyofanya kazi, lakini unapata wazo 🍲.


9) Kuhudumia na Kuhitimisha: Eneo Halisi la Vita 🧯

Unaweza "kuboresha" mfumo na bado ukautumia vibaya. Kuhudumia ndiko ambapo ucheleweshaji na gharama huonekana kuwa halisi.

Kutumikia hushinda jambo hilo

  • Kuunganisha
    Huboresha upitishaji. Lakini huongeza muda wa kuchelewa ukizidisha. Isawazishe. ( Kuunganisha kwa nguvu kwa Triton )

  • Kuhifadhi Aktiki
    Kuhifadhi haraka na utumiaji tena wa kashe ya KV kunaweza kuwa kubwa kwa muktadha unaorudiwa. ( Maelezo ya kashe ya KV )

  • Matokeo ya utiririshaji
    Watumiaji wanahisi ni haraka zaidi hata kama muda wote unafanana. Mtazamo ni muhimu 🙂.

  • Kupunguza gharama ya ziada ya tokeni kwa tokeni
    Baadhi ya rafu hufanya kazi ya ziada kwa kila tokeni. Punguza gharama hiyo ya ziada na unashinda sana.

Jihadhari na ucheleweshaji wa mkia

Wastani wako unaweza kuonekana mzuri ilhali p99 yako ni janga. Kwa bahati mbaya, watumiaji wanaishi kwenye mkia. ( “Ucheleweshaji wa mkia” na kwa nini wastani hudanganya )


10) Uboreshaji Unaozingatia Maunzi: Linganisha Mfano na Mashine 🧰🖥️

Kuboresha bila ufahamu wa vifaa ni kama kurekebisha gari la mbio bila kuangalia matairi. Hakika, unaweza kufanya hivyo, lakini ni ujinga kidogo.

Mambo ya kuzingatia kuhusu GPU

  • Kipimo cha upana wa kumbukumbu mara nyingi huwa kikwazo, si hesabu mbichi

  • Ukubwa mkubwa wa kundi unaweza kusaidia, hadi wasipofanya hivyo

  • Muunganiko wa kernel na uboreshaji wa umakini ni mkubwa kwa transfoma ( FlashAttention: umakini kamili unaozingatia IO )

Mambo ya kuzingatia kuhusu CPU

  • Uundaji wa nyuzi, uundaji wa vekta, na eneo la kumbukumbu ni muhimu sana

  • Gharama ya tokeni inaweza kutawala ( 🤗 tokeni za "Haraka" )

  • Huenda ukahitaji mikakati tofauti ya upimaji kuliko kwenye GPU

Mazingatio ya Edge / simu

  • Kumbukumbu inakuwa kipaumbele namba moja

  • Tofauti ya muda wa kusubiri ni muhimu kwa sababu vifaa vina… hisia kali

  • Mifano midogo na maalum mara nyingi hushinda mifano mikubwa ya jumla


11) Vizuizi vya Ubora: Usijifanyie "Ubora" Kuwa Mdudu 🧪

Kila ushindi wa kasi unapaswa kuja na ukaguzi wa ubora. Vinginevyo utasherehekea, utasafirisha, na kisha utapata ujumbe kama "kwa nini msaidizi anaongea ghafla kama maharamia?" 🏴☠️

Vizuizi vya vitendo:

  • Vidokezo vya dhahabu (seti thabiti ya vidokezo unavyojaribu kila wakati)

  • Vipimo vya kazi (usahihi, F1, BLEU, chochote kinachofaa)

  • Ukaguzi wa doa la binadamu (ndio, kwa uzito)

  • Vizingiti vya urejeshaji ("kupungua kwa zaidi ya X% hakuruhusiwi")

Pia fuatilia hali za kushindwa:

  • umbizo la mkondo

  • mabadiliko ya tabia ya kukataa

  • masafa ya ndoto

  • urefu wa majibu mfumuko wa bei

Uboreshaji unaweza kubadilisha tabia kwa njia za kushangaza. Kwa njia ya kipekee. Inakera. Kwa kutabirika, kwa kuzingatia mambo ya nyuma.


12) Orodha ya Ukaguzi: Jinsi ya Kuboresha Mifumo ya AI Hatua kwa Hatua ✅🤖

Ukitaka mpangilio wazi wa shughuli za Jinsi ya Kuboresha Mifumo ya AI , hapa kuna mtiririko wa kazi unaowaweka watu katika hali ya akili timamu:

  1. Fafanua mafanikio
    Chagua vipimo 1-2 vya msingi (ucheleweshaji, gharama, matokeo, ubora).

  2. Pima
    Wasifu wa msingi mzigo halisi wa kazi, rekodi p50/p95, kumbukumbu, gharama. ( PyTorch Profiler )

  3. Rekebisha vikwazo vya bomba la mafuta.
    Upakiaji wa data, uwekaji tokeni, usindikaji wa awali, upangaji wa data.

  4. Tumia ushindi wa hesabu wenye hatari ndogo
    Usahihi mchanganyiko, uboreshaji wa kernel, upangaji bora.

  5. Jaribu uboreshaji wa mkusanyaji/wakati wa utekelezaji
    Ukamataji wa grafu, muda wa utekelezaji wa makadirio, muunganisho wa opereta. ( mafunzo ya torch.compile , hati za wakati wa utekelezaji za ONNX )

  6. Punguza gharama ya modeli.
    Pima kwa uangalifu, nyunyiza ikiwa unaweza, pogoa ikiwa inafaa.

  7. Rekebisha huduma
    Kuhifadhi data, ulinganifu wa sarafu, upimaji wa mzigo, marekebisho ya muda wa kusubiri.

  8. Thibitisha ubora
    Fanya majaribio ya urejelezaji na ulinganishe matokeo sambamba.

  9. Rudia
    Mabadiliko madogo, futa maelezo, rudia. Haionyeshi - yenye ufanisi.

Na ndio, hii bado ni Jinsi ya Kuboresha Mifumo ya AI hata kama inahisi zaidi kama "Jinsi ya kuacha kukanyaga reki." Jambo lile lile.


13) Makosa ya Kawaida (Kwa hivyo Usirudie Kama Sisi Wengine) 🙃

  • Kuboresha kabla ya kupima
    Utapoteza muda. Na kisha utaboresha kitu kibaya kwa ujasiri…

  • Kufuatilia vigezo vya kiwango kimoja
    ni kwa kutofanya hivyo. Mzigo wako wa kazi ndio ukweli.

  • Kupuuza kumbukumbu
    Matatizo ya kumbukumbu husababisha kupungua kwa kasi, ajali, na msisimko. ( Kuelewa matumizi ya kumbukumbu ya CUDA katika PyTorch )

  • Kuhesabu mapema sana
    Kiasi kidogo cha biti kinaweza kuwa cha kushangaza, lakini anza na hatua salama zaidi kwanza.

  • Hakuna mpango wa kurudi nyuma
    Ikiwa huwezi kurudi haraka, kila uanzishaji unakuwa wa msongo wa mawazo. Msongo wa mawazo husababisha hitilafu.


Maelezo ya Kufunga: Njia ya Kibinadamu ya Kuboresha 😌⚡

Jinsi ya Kuboresha Mifumo ya AI si ujanja mmoja. Ni mchakato wenye tabaka: pima, rekebisha bomba, tumia vikusanyaji na muda wa utekelezaji, rekebisha huduma, kisha punguza modeli kwa kutumia upimaji au uchanganyaji ikiwa unahitaji. Ifanye hatua kwa hatua, weka vizuizi vya ubora, na usiamini "inahisi haraka" kama kipimo (hisia zako ni nzuri, hisia zako si kielelezo cha wasifu).

Ukitaka chakula kifupi zaidi cha kuchukua:

  • Pima kwanza 🔍

  • Boresha bomba linalofuata 🧵

  • Kisha boresha mfumo 🧠

  • Kisha boresha huduma 🏗️

  • Hakikisha unaangalia ubora kila wakati ✅

Na ikisaidia, jikumbushe: lengo si "mfano kamili." Lengo ni mfano ambao ni wa haraka, wa bei nafuu, na wa kutegemewa vya kutosha kiasi kwamba unaweza kulala usiku ... usiku mwingi 😴.

Maswali Yanayoulizwa Mara kwa Mara

Kuboresha mfumo wa akili bandia kunamaanisha nini katika vitendo?

"Boresha" kwa kawaida humaanisha kuboresha kikwazo kimoja kikuu: ucheleweshaji, gharama, alama ya kumbukumbu, usahihi, uthabiti, au matokeo ya huduma. Sehemu ngumu ni mabadiliko - kusukuma eneo moja kunaweza kupunguza lingine. Mbinu ya vitendo ni kuchagua shabaha iliyo wazi (kama vile ucheleweshaji wa p95 au wakati-kwa-ubora) na kuboresha kuelekea hilo. Bila shabaha, ni rahisi "kuboresha" na bado kupoteza.

Jinsi ya kuboresha mifumo ya akili bandia bila kuharibu ubora kimya kimya

Chukulia kila kasi au mabadiliko ya gharama kama urejeshaji kimya kimya unaowezekana. Tumia vizuizi kama vile vidokezo vya dhahabu, vipimo vya kazi, na ukaguzi wa haraka wa doa wa kibinadamu. Weka kizingiti kilicho wazi cha kuteleza kwa ubora unaokubalika na ulinganishe matokeo sambamba. Hii inazuia "ni haraka" isigeuke kuwa "kwa nini ghafla ikawa ya ajabu katika uzalishaji?" baada ya kusafirisha.

Mambo ya kupima kabla ya kuanza kuboresha

Anza na asilimia ya muda wa kusubiri (p50, p95, p99), matokeo ya kupita (tokeni/sekunde au maombi/sekunde), matumizi ya GPU, na kilele cha VRAM/RAM. Fuatilia gharama kwa kila makadirio au kwa tokeni za 1k ikiwa gharama ni kikwazo. Wazia hali halisi unayotoa, si kidokezo cha kuchezea. Kuweka "shajara ndogo ya utendaji" hukusaidia kuepuka kubahatisha na kurudia makosa.

Ushindi wa haraka na hatari ndogo kwa utendaji wa mafunzo

Usahihi mchanganyiko (FP16/BF16) mara nyingi ndio kigezo cha kwanza cha haraka zaidi, lakini angalia tabia za nambari. Ikiwa ukubwa wa kundi ni mdogo, mkusanyiko wa gradient unaweza kuleta utulivu wa uboreshaji bila kuharibu kumbukumbu. Ukaguzi wa gradient hubadilishana hesabu ya ziada kwa kumbukumbu ya chini, na kuwezesha miktadha mikubwa. Usipuuze urekebishaji wa tokeni na urekebishaji wa kipakiaji data - zinaweza kuzima GPU kimya kimya.

Wakati wa kutumia torch.compile, ONNX Runtime, au TensorRT

Zana hizi zinalenga uendeshaji wa uendeshaji: upigaji picha wa grafu, muunganiko wa kernel, na uboreshaji wa grafu ya muda wa utekelezaji. Zinaweza kutoa kasi safi ya makadirio, lakini matokeo hutofautiana kulingana na umbo la modeli na vifaa. Baadhi ya mipangilio huhisi kama ya ajabu; mingine husogea kidogo. Tarajia unyeti kwa mabadiliko ya umbo na hitilafu za mara kwa mara za "gremlin" - pima kabla na baada ya mzigo wako halisi wa kazi.

Ikiwa upimaji wa hesabu unafaa, na jinsi ya kuepuka kwenda mbali sana

Upimaji unaweza kupunguza kumbukumbu na kuharakisha makadirio, hasa kwa kutumia INT8, lakini ubora unaweza kuteleza kwenye sehemu zenye ukingo. Chaguo za biti ya chini (kama vile INT4/k-bit) huleta akiba kubwa zaidi yenye hatari kubwa. Tabia salama zaidi ni kutathmini kwenye seti halisi ya majaribio na kulinganisha matokeo, si hisia ya utumbo. Anza na hatua salama zaidi kwanza, kisha nenda kwa usahihi wa chini tu ikiwa inahitajika.

Tofauti kati ya kupogoa na kunereka kwa ajili ya kupunguza ukubwa wa modeli

Kupogoa huondoa vigezo "vilivyokufa" na mara nyingi huhitaji mafunzo upya ili kurejesha ubora, hasa inapofanywa kwa nguvu. Kupogoa hufundisha mfumo mdogo wa wanafunzi kuiga tabia ya mwalimu mkubwa, na inaweza kuwa faida kubwa ya muda mrefu kuliko upimaji uliokithiri. Ukitaka mfumo mdogo unaofanya kazi sawa na kubaki imara, upogoaji mara nyingi ndio njia safi zaidi.

Jinsi ya kupunguza gharama ya makadirio na ucheleweshaji kupitia maboresho ya huduma

Kuhudumia ndiko ambapo uboreshaji unakuwa dhahiri: upangaji huongeza upitishaji lakini unaweza kuathiri muda wa kusubiri ukifanywa kupita kiasi, kwa hivyo irekebishe kwa uangalifu. Kuhifadhi (hifadhi ya haraka na utumiaji tena wa kashe ya KV) kunaweza kuwa kubwa wakati muktadha unarudiwa. Matokeo ya utiririshaji huboresha kasi inayoonekana hata kama muda wote ni sawa. Pia tafuta gharama ya juu ya tokeni kwa tokeni kwenye rundo lako - kazi ndogo ya kila tokeni huongezeka haraka.

Kwa nini muda wa kuchelewa kwa mkia ni muhimu sana wakati wa kuboresha mifumo ya AI

Wastani unaweza kuonekana mzuri huku p99 ikiwa janga, na watumiaji huwa wanaishi katika hali ya mkia. Ucheleweshaji wa mkia mara nyingi hutokana na mtetemo: kugawanyika kwa kumbukumbu, kuongezeka kwa usindikaji wa awali wa CPU, kupungua kwa tokeni, au tabia mbaya ya kupanga. Ndiyo maana mwongozo huu unasisitiza asilimia na mzigo halisi wa kazi. Ukiboresha p50 pekee, bado unaweza kutuma uzoefu ambao "huhisi polepole nasibu."

Marejeleo

  1. Huduma za Wavuti za Amazon (AWS) - Asilimia za AWS CloudWatch (ufafanuzi wa takwimu) - docs.aws.amazon.com

  2. Google - Mkia katika Kiwango (mazoezi bora ya kuchelewa kwa mkia) - sre.google

  3. Google - Malengo ya Kiwango cha Huduma (Kitabu cha SRE) - asilimia za kuchelewa - sre.google

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

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

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

  7. PyTorch - Semantiki ya CUDA: usimamizi wa kumbukumbu (maelezo ya mgawaji kumbukumbu wa CUDA) - docs.pytorch.org

  8. PyTorch - Usahihi Mchanganyiko Kiotomatiki (torch.amp / AMP) - docs.pytorch.org

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

  10. PyTorch - Mwongozo wa Kurekebisha Utendaji - docs.pytorch.org

  11. PyTorch - Mafunzo ya Kupogoa - docs.pytorch.org

  12. PyTorch - Kuelewa matumizi ya kumbukumbu ya CUDA katika PyTorch - docs.pytorch.org

  13. PyTorch - mafunzo ya torch.compile / muhtasari - docs.pytorch.org

  14. Muda wa Kuendesha wa ONNX - Nyaraka za Muda wa Kuendesha wa ONNX - onnxruntime.ai

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

  16. NVIDIA - Aina za kipimo cha TensorRT - docs.nvidia.com

  17. NVIDIA - Mifumo ya Nsight - developer.nvidia.com

  18. NVIDIA - Seva ya Uashirio ya Triton - uunganishaji unaobadilika - docs.nvidia.com

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

  20. bitsandbytes (msingi wa bitsandbytes) - bitsandbytes - github.com

  21. Uso Unaokumbatiana - Kuharakisha: Mwongozo wa Kukusanya Gradient - huggingface.co

  22. Uso Unaokumbatiana - Nyaraka za Tokenizers - huggingface.co

  23. Uso Unaokumbatiana - Transfoma: Mwongozo wa PEFT - huggingface.co

  24. Uso Unaokumbatiana - Transfoma: Maelezo ya kashe ya KV - huggingface.co

  25. Uso Unaokumbatiana - Transfoma: Viashiria vya "Haraka" (madarasa ya viashiria) - huggingface.co

  26. arXiv - Kusambaza Maarifa katika Mtandao wa Neva (Hinton et al., 2015) - arxiv.org

  27. arXiv - LoRA: Urekebishaji wa Viwango vya Chini wa Mifano ya Lugha Kubwa - arxiv.org

  28. arXiv - FlashAttention: Uangalifu Halisi wa Haraka na Ufanisi wa Kumbukumbu kwa Kutumia Uelewa wa IO - arxiv.org

Pata Akili ya Kielektroniki ya Hivi Punde katika Duka Rasmi la Msaidizi wa Akili ya Kielektroniki

Kuhusu Sisi

Rudi kwenye blogu