Habari za Kiswahili
Karibuni
AI na Teknolojia

Ndani ya cuda-convnet: tabaka za AlexNet za GPU mbili na enzi ya ImageNet

Maelezo ya kielelezo cha chipu ya kichakataji, si GPU ya NVIDIA inayojadiliwa katika makala.
Maelezo ya kielelezo cha chipu ya kichakataji, si GPU ya NVIDIA inayojadiliwa katika makala.

Hatua muhimu ya AlexNet ya mwaka 2012 ilitegemea uhandisi wa GPU wa kiwango cha chini (cuda-convnet), usanifu uliogawanywa wa GPU mbili, na ilichochea moja kwa moja mbio za haraka kuelekea modeli za maono ya kompyuta zenye kina na ufanisi zaidi.

1. Jinsi cuda-convnet Ilivyofanya Kazi Ndani kwa Ndani

Kabla NVIDIA haijaunda cuDNN, Alex Krizhevsky aliandika cuda-convnet moja kwa moja kwa CUDA C++ ili kupata kasi ya juu kabisa kutoka kwa GPU za awali za usanifu wa Fermi (GTX 580). Maktaba za kisasa kwa kawaida hupanua mikunjo kuwa uzidishaji mkubwa wa matriki (im2col), jambo linalotumia kiasi kikubwa sana cha kumbukumbu. Kwa kuwa kila GTX 580 ilikuwa na GB 3 tu za VRAM, Krizhevsky alibuni taratibu za GPU za moja kwa moja zilizookoa kumbukumbu.

  • Mpangilio wa Kumbukumbu Unaotanguliza Kundi (CHWN). Mifumo ya kisasa hutumia NCHW (Kundi, Chaneli, Urefu, Upana) kama chaguo-msingi, ambayo huweka pikseli zote za picha moja karibu katika kumbukumbu. Krizhevsky alihifadhi tensor kwa mpangilio wa CHWN, akiweka kipimo cha kundi (N) mwisho. Wakati nyuzi 32 za GPU katika warp zilipochakata picha 32 tofauti kwenye eneo lilelile la pikseli, usomaji wao wa kumbukumbu ulikuwa mfululizo kabisa (uliounganishwa), hivyo kuongeza upana wa bendi wa VRAM hadi kiwango cha juu.
  • Ugawaji wa Kumbukumbu Shiriki katika Vigae. Kusoma kutoka VRAM ya jumla huchukua mamia ya mizunguko ya saa, ilhali Kumbukumbu Shiriki iliyo kwenye chipu (KB 48 tu kwa kila Streaming Multiprocessor kwenye GTX 580) huchukua mizunguko michache tu. Vikundi vya nyuzi vilipakia vipande vidogo vya 2D vya pikseli za picha na uzani wa vichujio kwenye Kumbukumbu Shiriki, vikikokotoa makumi ya zao la nukta kabla ya kuandika matokeo ya mwisho kurudi kwenye VRAM.
  • Kutumia Tena Rejista katika Kiwango cha Warp. Krizhevsky alikabidhi kila kikundi cha nyuzi kukokotoa kigae cha pikseli za matokeo katika vichujio vingi kwa wakati mmoja. Kwa kushikilia uzani wa vichujio katika rejista za haraka za GPU, kipande kimoja cha picha kilichopakiwa kutoka Kumbukumbu Shiriki kilitumiwa tena katika vichujio vingi kwa wakati mmoja, na kupunguza sana uhamishaji wa data kwenye kumbukumbu.

2. Tabaka Mahususi za AlexNet na Mgawanyo wa GPU Mbili

AlexNet ilikuwa na tabaka 8 zinazojifunza (5 za mikunjo na 3 zilizounganishwa kikamilifu) zenye jumla ya takriban vigezo milioni 60. Kwa kuwa GTX 580 moja haikuwa na zaidi ya GB 3 za VRAM zilizohitajika kwa uamilishaji, uzani, na gradienti, Krizhevsky aligawanya mtandao kiwima katika mikondo miwili sambamba.

TabakaAinaJumla ya Vichujio / NeuroniMgawanyo kwa Kila GPUMawasiliano Kati ya GPU
IngizoPicha ya RGB224 × 224 × 3Imenakiliwa kwenye GPU zote mbiliHakuna
Conv 111×11 Conv (hatua 4) + MaxPoolVichujio 96Vichujio 48 kwa kila GPUImetengwa (Hakuna usawazishaji)
Conv 25×5 Conv + MaxPoolVichujio 256Vichujio 128 kwa kila GPUImetengwa (Husoma Conv 1 ya GPU yake pekee)
Conv 33×3 ConvVichujio 384Vichujio 192 kwa kila GPUUsawazishaji Kamili (Husoma ramani zote 256 kutoka GPU zote mbili)
Conv 43×3 ConvVichujio 384Vichujio 192 kwa kila GPUImetengwa (Husoma Conv 3 ya GPU yake pekee)
Conv 53×3 Conv + MaxPoolVichujio 256Vichujio 128 kwa kila GPUImetengwa (Husoma Conv 4 ya GPU yake pekee)
FC 6Imeunganishwa Kikamilifu + DropoutNeuroni 4,096Neuroni 2,048 kwa kila GPUUsawazishaji Kamili (Huunganishwa na matokeo yote ya Conv 5)
FC 7Imeunganishwa Kikamilifu + DropoutNeuroni 4,096Neuroni 2,048 kwa kila GPUUsawazishaji Kamili (Huunganishwa na neuroni zote za FC 6)
FC 8Imeunganishwa Kikamilifu (Softmax)Madarasa 1,000Madarasa 1,000 (Yameunganishwa)Usawazishaji Kamili (Hutoa utabiri wa mwisho wa ImageNet)
  • Utaalamu wa Kiasili wa Sifa. Cha kuvutia, kwa kuwa Tabaka 1 na 2 hazikuwahi kuwasiliana kati ya GPU, kadi hizo mbili ziliendeleza majukumu maalumu kila mara. GPU moja ilijifunza vitambuzi vya kingo na umbile visivyotegemea rangi (vichujio vya viwango vya kijivu vinavyofanana na Gabor), huku GPU nyingine ikibobea katika mabaka na vivuli mahususi vya rangi.
  • Kupunguza Vikwazo vya PCIe. Kupitisha data kwenye basi ya PCIe ya ubao mkuu kulikuwa kwa polepole. Kwa kuzuia mawasiliano kati ya GPU yawe kwenye Conv 3 na tabaka Zilizounganishwa Kikamilifu tu, Krizhevsky alifanya GPU ziendelee kukokotoa kwa kasi kamili bila kusimama kusubiri uhamishaji wa data.

3. Kilichofuata Katika Enzi ya ImageNet

Ushindi wa AlexNet ulichochea mbio za kila mwaka katika shindano la ImageNet, na kusukuma mitandao kutoka tabaka 8 hadi zaidi ya tabaka 150 ndani ya miaka mitatu tu.

  • 2013 - ZFNet (Kuonyesha kwa Picha & Kurekebisha). Matthew Zeiler na Rob Fergus walianzisha mbinu za mkunjo-geuzi ili kuonyesha kile ambacho AlexNet ilikuwa ikiona hasa ndani ya tabaka zilizofichwa. Kwa kupunguza ukubwa wa kichujio cha tabaka ya kwanza ya AlexNet kutoka 11×11 hadi 7×7 na kupunguza hatua, ZFNet ilishusha kiwango cha makosa cha top-5 cha ImageNet kutoka 15.3% hadi 14.8%.
  • 2014 - VGGNet (Kina Kupitia Vichujio Sawa vya 3×3). Watafiti wa Oxford walithibitisha kuwa kupanga mikunjo mingi midogo ya 3×3 juu ya mingine (hadi tabaka 16 au 19) kulifanya kazi vizuri zaidi kuliko kutumia vichujio vikubwa kimojakimoja (kama 11×11 au 5×5). Tabaka mbili za 3×3 zilizopangwa juu ya nyingine hufunika eneo lilelile la mwonekano la 5×5 kwa vigezo vichache na uamilishaji wa ziada wa ReLU usio wa mstari, na kushusha viwango vya makosa hadi 7.3%.
  • 2014 - GoogLeNet / Inception (Ufanisi wa Vipimo Vingi). Google ilianzisha moduli ya Inception, ambayo iliendesha mikunjo ya 1×1, 3×3, na 5×5 sambamba ndani ya tabaka ileile na kuunganisha matokeo. Kwa kutumia mikunjo ya 1×1 yenye gharama ndogo kubana kina cha chaneli kabla ya hesabu zenye gharama kubwa, GoogLeNet ilifikia tabaka 22 na kiwango cha makosa cha 6.7% ikitumia vigezo vichache mara 12 kuliko AlexNet.
  • 2015 - ResNet (Miunganisho ya Kuruka & Tabaka 152). Kupanga tu tabaka zaidi juu ya nyingine hatimaye kulisababisha usahihi wa mafunzo kushuka kwa sababu gradienti zilitoweka wakati wa uenezaji wa nyuma. Microsoft Research ilitatua hili kwa Miunganisho ya Masalio (miunganisho ya kuruka), ikiruhusu data kupita kando ya tabaka kupitia njia za mkato za utambulisho za moja kwa moja. Hili liliwezesha mitandao ya tabaka 152, iliyofikia kiwango cha makosa cha top-5 cha 3.57%, na kuzidi utendaji wa kigezo cha kiwango cha binadamu (~5%) kwa mara ya kwanza.

Habari zaidi: AI na Teknolojia