Habari za Kiswahili
Karibuni
AI na Teknolojia

Tensor Cores, Triton, mitandao ya masalio na transformer za maono

Maelezo ya kielelezo cha chipu ya CPU ya miaka ya 1980, si GPU.
Maelezo ya kielelezo cha chipu ya CPU ya miaka ya 1980, si GPU.

Kati ya 2015 na leo, ujifunzaji wa kina umebadilika kutoka msimbo wa GPU wa C++ uliorekebishwa kwa mkono na mitandao ya mikunjo hadi injini za matriki zinazoharakishwa na maunzi na usanifu wa Transformer. Hatua hizi tatu muhimu zinafafanua jinsi modeli za kisasa za AI zinavyobuniwa na kupanuliwa.

1. Mabadiliko ya Kisasa ya CUDA: Tensor Cores na OpenAI Triton

Mwaka 2012, Alex Krizhevsky aliandika CUDA C++ ya kiwango cha chini (cuda-convnet) kukokotoa operesheni moja moja za nukta inayoelea kwenye viini vya kawaida vya CUDA. Leo, ujifunzaji wa kina hutegemea maunzi maalumu ya matriki na vikompaila vya kiwango cha juu.

  • Kutoka CUDA Cores hadi Tensor Cores. Viini vya jadi vya CUDA hufanya uzidishaji mmoja wa skala na uongezaji mmoja kwa kila mzunguko wa saa. Kuanzia usanifu wa Volta (2017), NVIDIA ilianzisha Tensor Cores, ambazo huzidisha matriki nzima ndogo (kama vikundi vya 4×4 au 16×16) katika mzunguko mmoja wa saa. Tensor Cores za kisasa hutumia miundo ya usahihi mchanganyiko kama FP16, BF16, na FP8, zikitoa ongezeko la kasi la takriban mara kumi kwa uzidishaji wa matriki.
  • cuDNN na Uchaguzi wa Kerneli wa Kiotomatiki. Badala ya watafiti kuandika mikunjo maalumu ya C++, maktaba ya cuDNN ya NVIDIA sasa ina mamia ya kerneli za assembly zilizokompailiwa mapema. Wakati wa utekelezaji, mifumo kama PyTorch hupima utendaji wa algoriti mbalimbali kwa umbo lako halisi la tensor na kuchagua kiotomatiki utaratibu wa Tensor Core wenye kasi zaidi.
  • OpenAI Triton (Upangaji wa GPU Unaotegemea Python). Kuandika CUDA C++ moja kwa moja kunahitaji kusimamia mwenyewe uwekaji wa faharasa za nyuzi, migongano ya benki za kumbukumbu shiriki, na usawazishaji wa warp. Triton, iliyotolewa na OpenAI, huruhusu watafiti kuandika kerneli za GPU zenye utendaji wa juu moja kwa moja kwa Python. Unafafanua operesheni katika kiwango cha kikundi (vigae vya data), na kikompaila cha Triton hushughulikia kiotomatiki kuunganisha ufikiaji wa kumbukumbu, kugawa kumbukumbu shiriki katika vigae, na kupanga utekelezaji wa Tensor Core, mara nyingi ikilingana na au kuzidi CUDA C++ iliyorekebishwa kwa mkono.

2. Miunganisho ya Kuruka ya ResNet na Mtiririko wa Uenezaji wa Nyuma

Kabla ya ResNet (2015), kupanga zaidi ya takriban tabaka 20 za mikunjo juu ya nyingine kulisababisha makosa ya mafunzo kupanda kwa kasi. Gradienti ziliposafiri kurudi nyuma kupitia makumi ya hatua za uzidishaji, zilipungua kuelekea sifuri (gradienti zinazotoweka) au zikakosa uthabiti.

  • Kujifunza Masalio Badala ya Matokeo Ghafi. Katika kikundi cha kawaida cha mtandao, tabaka zilizopangwa juu ya nyingine hujaribu kujifunza ulinganishaji wa moja kwa moja H(x) kutoka ingizo x. ResNet huanzisha muunganisho wa kuruka (njia ya mkato ya utambulisho) unaoongeza ingizo la awali x moja kwa moja kwenye matokeo ya kikundi:

y=F(x)+x

Hapa, F(x) inawakilisha tabaka za mikunjo zilizopangwa juu ya nyingine. Badala ya kujenga tena uwakilishi wote kutoka mwanzo, tabaka zinahitaji tu kujifunza salio (marekebisho madogo F(x) = y - x). Ikiwa tabaka haihitajiki, mtandao unaweza kwa urahisi kusukuma F(x) kuelekea sifuri, ukiacha njia safi ya kupitisha utambulisho.

  • Njia Kuu ya Gradienti Isiyokatizwa. Wakati wa uenezaji wa nyuma, kanuni ya mnyororo hukokotoa gradienti ya hasara (L) kwa kuhusiana na ingizo x:

(∂ L)/(∂ x)=(∂ L)/(∂ y)((∂ F(x))/(∂ x)+1)

Kwa sababu ya neno + 1 lililoundwa na njia ya mkato ya utambulisho, gradienti inayotoka mbele ((∂ L)/(∂ y)) hutiririka moja kwa moja kurudi kwenye tabaka za awali bila kupunguzwa na matriki ndogo za uzani katika (∂ F(x))/(∂ x). Hili huruhusu gradienti kuenea vizuri kupitia tabaka 100+ au hata 1,000+.

3. Mabadiliko kutoka CNN hadi Vision Transformers (ViT)

Kwa karibu muongo mmoja baada ya AlexNet, Mitandao ya Neuroni ya Mikunjo (CNN) ilitawala maono ya kompyuta kwa kutelezesha vichujio vidogo vya karibu juu ya picha. Mwaka 2020, Google ilianzisha Vision Transformer (ViT), ikibadilisha usanifu wa Transformer kutoka uchakataji wa lugha asilia utumike kwa picha.

SifaMitandao ya Neuroni ya Mikunjo (CNNs)Vision Transformers (ViT)
Uchakataji wa IngizoHuchakata gridi nzima ya picha ya 2D kwa kutumia vichujio vinavyoteleza (k.m., 3×3).Hugawanya picha katika vipande vya ukubwa usiobadilika (k.m., pikseli 16×16) na kuvisawazisha kuwa mfuatano wa tokeni.
Eneo la UpokeajiHuanza na eneo la karibu. Tabaka za awali huona pikseli jirani pekee; muktadha wa jumla hujengeka polepole katika tabaka za kina.Picha nzima mara moja. Umakini wa kujitegemea huunganisha kila kipande cha picha na kila kipande kingine kuanzia Tabaka 1.
Upendeleo wa Kufikia HitimishoMkubwa. Dhana zilizojengewa ndani kuhusu kutobadilika kwa uhamisho wa mahali na ujirani wa kieneo wa 2D husaidia CNN kujifunza vizuri kwa mikusanyiko midogo ya data.Mdogo. Haina kanuni za kieneo za 2D zilizojengewa ndani (hutegemea upachikaji wa nafasi), hivyo inahitaji mikusanyiko mikubwa sana ya data ili kujifunza muundo wa picha.
Upanuzi wa MaunziHutegemea kerneli maalumu za mikunjo na mifumo changamano ya ufikiaji wa kumbukumbu.Hutegemea karibu kabisa uzidishaji wa matriki zenye data kamili (GEMMs), ambao hutumia kikamilifu Tensor Cores za GPU za kisasa kwa ufanisi wa juu kabisa.
  • Kwa Nini ViT Zilitawala AI ya Kisasa. Ingawa CNN bado zina ufanisi kwa vifaa vyepesi vya mkononi na vifaa vya ukingoni, Vision Transformers hupanuka vizuri zaidi zinapofundishwa kwa mamia ya mamilioni ya picha. Aidha, kwa kuwa ViT huwakilisha picha kama mifuatano ya tokeni, muundo uleule kabisa unaotumiwa kwa maandishi na sauti, ziliwezesha modeli za kisasa za AI za aina nyingi za data (kama GPT-4o na Gemini) kuchakata picha na lugha ndani ya usanifu mmoja uliounganishwa.

Habari zaidi: AI na Teknolojia