Jinsi ya Kuboresha Mifumo ya AI

Jinsi ya Kuboresha Mifumo ya AI [Video na Maswali]

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) (Nyarakaza 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. (torch.compile mafunzo ya, 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 😴.

Mfano halisi: Kuboresha muhtasari wa tiketi za usaidizi 🎟️⚡

Hali

Hebu fikiria timu ndogo ya SaaS inayotumia modeli ya AI kufupisha tiketi za usaidizi zinazoingia kabla ya wakala wa kibinadamu kujibu. modeli hiyo inafanya kazi, lakini ni polepole: mawakala husubiri kwa muda mrefu sana kwa muhtasari, na kampuni inalipa zaidi ya ilivyotarajiwa kwa ajili ya makadirio.

Lengo si kufanya mfumo uwe "bora" kwa kila njia inayowezekana. Timu inachagua kikwazo kimoja cha msingi: kupunguza muda wa kuchelewa wa p95 huku ikidumisha ubora wa muhtasari unaokubalika.

Lengo lao liko wazi:

Punguza muda wa kuchelewa kwa p95 kutoka takriban sekunde 2.4 hadi chini ya sekunde 1.2, bila hitilafu kubwa ya muhtasari katika seti ya majaribio ya tikiti 50.

Kinachohitajika katika mtiririko wa kazi

Ili kufanya hili liwe la vitendo, timu inakusanya:

Seti ya majaribio ya dhahabu yenye tikiti 50 yenye tikiti fupi, za wastani, na zisizo nadhifu

Mtindo wa muhtasari unaotarajiwa: risasi 3, hakuna ukweli uliobuniwa, unajumuisha uharaka ikiwa ni dhahiri

Vipimo vya msingi: ucheleweshaji wa p50, p95, p99, tokeni zinazozalishwa, gharama kwa kila tiketi, na idadi ya makosa

Orodha rahisi ya ukaguzi wa kibinadamu

Ufikiaji wa kumbukumbu za modeli, hesabu za tokeni, na mipangilio ya kundi/saa za pamoja

Chaguo la kurudi nyuma ikiwa ubora utapungua

Jambo muhimu: hawaanzi na upimaji wa kiasi. Kwanza, wanaangalia kama bomba linapoteza muda.

Mfano wa maelekezo

Kwa kila tiketi ya usaidizi, andika muhtasari wa tatizo la mteja katika nukta tatu haswa.

Jumuisha:

  • tatizo kuu

  • eneo lolote la bidhaa lililotajwa

  • dharura au athari ya biashara, ikiwa imetajwa

Usibuni maelezo yaliyokosekana. Ikiwa mteja hatoi taarifa za kutosha, sema "haijabainishwa".

Weka muhtasari chini ya maneno 80.

Jinsi ya kuijaribu

Endesha tiketi zile zile 50 kupitia mpangilio wa zamani na mpya.

Kwa kila mbio, rekodi:

ucheleweshaji wa p50, p95, na p99

Tokeni za wastani za matokeo

Gharama kwa kila tiketi 1,000

Idadi ya muhtasari wenye maelezo yaliyobuniwa

Idadi ya muhtasari unaohitaji kuandikwa upya na binadamu

Kisha jaribu kesi chache zisizo za kawaida:

Tikiti yenye matoleo matatu tofauti

Ujumbe wa mteja mwenye hasira sana

Tikiti isiyoeleweka vizuri isiyo na maelezo mengi

Tikiti iliyo na kumbukumbu zilizobandikwa

Tikiti ambapo mteja anataja kughairi akaunti yake

Hii inaangazia hitilafu ya kawaida ambapo uboreshaji hufanya modeli iwe ya haraka lakini isiyo makini sana.

Matokeo

Matokeo ya kielelezo, kulingana na muda wa tiketi 50 za sampuli kabla na baada ya kupita mara tatu za uboreshaji:

Msingi:

Muda wa kusubiri wa p95: sekunde 2.4

Muda wa kusubiri p99: sekunde 3.1

Urefu wa wastani wa matokeo: maneno 142

Uandishi upya wa kibinadamu: 11 kati ya 50

Makosa makubwa ya undani yaliyobuniwa: 3 kati ya 50

Baada ya uboreshaji:

Muda wa kusubiri p95: sekunde 1.1

Muda wa kuchelewa wa p99: sekunde 1.6

Urefu wa wastani wa matokeo: maneno 61

Uandishi upya wa kibinadamu: 5 kati ya 50

Makosa makubwa ya undani yaliyobuniwa: 1 kati ya 50

Kilichobadilika:

Timu ilifupisha urefu wa matokeo hadi maneno 80

Waligawanya tiketi zisizo na kipaumbele katika makundi ya watu 8

Walihifadhi muktadha unaorudiwa wa sera ya bidhaa

Waliwasha usahihi mchanganyiko baada ya kuthibitisha ubora uliowekwa

Waliacha upimaji kwa ajili ya baadaye kwa sababu lengo la muda wa kusubiri lilikuwa tayari limetimizwa

Gharama pia ilishuka katika mfano huu kwa sababu modeli ilizalisha tokeni chache. Ikiwa mpangilio wa zamani ulizalisha takriban maneno 142 kwa kila tiketi na mpangilio mpya ulizalisha takriban maneno 61, urefu wa matokeo ulipungua kwa takriban 57%. Hiyo ni kipimo ambacho timu inaweza kuthibitisha moja kwa moja kutoka kwa kumbukumbu.

Ni nini kinachoweza kwenda vibaya

Kosa linalovutia zaidi ni kuboresha kasi yenyewe. Muhtasari wa haraka unaobuni ahadi ya kurejeshewa pesa si uboreshaji.

Makosa mengine rahisi:

Kujaribu tiketi safi pekee

Kupuuza muda wa kuchelewa wa p99

Kusahau kulinganisha urefu wa matokeo

Kubadilisha mipangilio ya batching na modeli kwa wakati mmoja

Kutumia wastani wa muda wa kusubiri badala ya muda wa kusubiri wa mkia

Kudai "ubora ulibaki vile vile" bila orodha ya ukaguzi

Kanuni salama zaidi ya mapitio ni rahisi: ikiwa zaidi ya mihtasari 2 kati ya 50 inabuni maelezo muhimu, rudi nyuma na uchunguze.

Kuchukua kwa vitendo

Hivi ndivyo uboreshaji thabiti wa modeli za AI unavyoonekana katika vitendo: chagua kizuizi kimoja, pima mfumo wa sasa, ondoa taka kwanza, tumia mabadiliko ya hatari ndogo, kisha angalia ubora kwa kutumia majaribio ya humdrum lakini yenye thamani. Ushindi si tu modeli ya haraka zaidi. Ni modeli ya haraka zaidi ambayo bado unaweza kuiamini.

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

Jaribio la Uboreshaji wa Mifumo ya AI
1. Kabla ya kubadilisha chochote katika mtiririko wako wa kazi wa uboreshaji, ni hatua gani muhimu ya kwanza unayopaswa kuchukua?
2. Ikiwa unawahudumia watumiaji moja kwa moja, ni vipimo vipi vinavyosisitizwa kama muhimu zaidi kuzingatia utendaji wa mkia?
3. Ni mkakati gani wenye ufanisi mkubwa na wa kiwango cha usanifu unaotajwa ili kupunguza gharama na ucheleweshaji kwa kuzuia uchezaji wa modeli?
4. Ni faida gani kuu ya kutumia utengenzaji badala ya upimaji uliokithiri kwa ajili ya kupunguza ukubwa inatajwa kama faida kuu?
5. Kwa nini kutegemea vipimo vya wastani vya muda wa kuchelewa kunachukuliwa kuwa ni mtego wa kawaida wa uboreshaji?
Rudi kwenye blogu

Maswali Yanayoulizwa Mara kwa Mara

  • Ninawezaje kuanza kuboresha mifumo ya AI kwa ufanisi?

    Anza kwa kufafanua vigezo vyako vya mafanikio na uchague vipimo 1-2 vya msingi vya kuzingatia, kama vile kuchelewa au gharama. Pima utendaji wako wa msingi kwa kuorodhesha mzigo halisi wa kazi kabla ya kufanya mabadiliko.

  • Ni mitego gani ya kawaida ya kuepuka wakati wa kuboresha mifumo ya AI?

    Makosa ya kawaida ni pamoja na kuboresha bila kupima, kufuata kipimo kimoja, kupuuza matumizi ya kumbukumbu, na kupima kupita kiasi mapema sana. Kuwa na mpango wa kurejesha data ili kudhibiti matatizo yanayoweza kutokea.

  • Kwa nini ni muhimu kupima ucheleweshaji na matokeo?

    Kupima muda wa kuchelewa na upitishaji husaidia kuelewa utendaji wa mfumo wako chini ya hali halisi ya mzigo wa kazi, na kukuwezesha kutambua vikwazo na maeneo ya kuboresha.

  • Ni mbinu gani ninaweza kutumia kuboresha kasi ya uelekezaji wa modeli?

    Fikiria mbinu kama vile mafunzo ya usahihi mchanganyiko, uboreshaji wa kernel, upangaji wa data, na kutumia zana maalum kama vile PyTorch torch.compile, ONNX Runtime, au TensorRT kwa ufanisi wa uendeshaji.

  • Upimaji unaathiri vipi utendaji wa modeli?

    Upimaji kwa kawaida hupunguza matumizi ya kumbukumbu na kuharakisha makadirio. Hata hivyo, inaweza pia kusababisha upotevu wa ubora, hasa kwa chaguo za biti ya chini. Ni muhimu kutathmini modeli kwenye seti halisi ya majaribio baada ya upimaji.

  • Ni mikakati gani ninayoweza kutumia ili kudumisha ubora wakati wa uboreshaji?

    Tekeleza vizuizi vya ubora kama vile kutumia vidokezo vya dhahabu kwa ajili ya majaribio, kuweka vizingiti vya urejeshaji kwa ajili ya kupotoka kwa ubora unaokubalika, na kufanya ukaguzi wa doa wa kibinadamu ili kufuatilia mabadiliko katika tabia ya modeli.

  • Uboreshaji wa huduma na makadirio huathiri vipi uzoefu wa mtumiaji?

    Uboreshaji wa huduma, kama vile upangaji na uhifadhi wa data kwa ufanisi, unaweza kuboresha kwa kiasi kikubwa upitishaji na kupunguza muda unaoonekana wa kuchelewa, na kuboresha moja kwa moja uzoefu wa mtumiaji na mfumo wako wa AI.

  • Ni lini ninapaswa kuzingatia kupogoa au kusaga kwa mfano?

    Kata modeli yako ili kuondoa vigezo visivyo muhimu wakati wa mazoezi upya ili kudumisha ubora. Kuchanganyika kunapendelewa unapotaka kuunda modeli ndogo inayoiga kubwa huku ikidumisha uthabiti.