MindSpore Të Huawei: Një Konkurrent I Ri Për TensorFlow Dhe PyTorch?

Përmbajtje:

MindSpore Të Huawei: Një Konkurrent I Ri Për TensorFlow Dhe PyTorch?
MindSpore Të Huawei: Një Konkurrent I Ri Për TensorFlow Dhe PyTorch?

Video: MindSpore Të Huawei: Një Konkurrent I Ri Për TensorFlow Dhe PyTorch?

Video: MindSpore Të Huawei: Një Konkurrent I Ri Për TensorFlow Dhe PyTorch?
Video: MindSpore от Huawei: новый конкурент для TensorFlow и PyTorch? 2024, Nëntor
Anonim

Huawei njoftoi se programi i saj mesatar i TensorFlow dhe PyTorch MindSpore Deep Learning tani është burim i hapur. Gjeni në këtë artikull karakteristikat e tij më të rëndësishme.

MindSpore nga Huawei
MindSpore nga Huawei

Huawei sapo ka njoftuar se korniza e saj MindSpore për zhvillimin e aplikacioneve të UA po bëhet me burim të hapur dhe të disponueshëm në GiHub dhe Gitee. MindSpore është një tjetër kornizë e Mësimit të Thellë për trajnimin e modeleve të rrjetit nervor, të ngjashëm me TensorFlow ose PyTorch, i krijuar për përdorim nga Edge në Cloud, i cili mbështet të dy GPU-të dhe padyshim procesorët Huawei Ascend.

Gushtin e kaluar, kur Huawei njoftoi fillimin zyrtar të procesorit të saj Ascend, MindSpore u prezantua për herë të parë, duke deklaruar se në një sesion trajnimi tipik të bazuar në ResNet-50, kombinimi i Ascend 910 dhe MindSpore është rreth dy herë më i shpejtë. Kur trajnoni modelet e AI kundrejt kartave të tjera kryesore të të mësuarit duke përdorur TensorFlow isshtë e vërtetë që shumë korniza janë shfaqur vitet e fundit, dhe mbase MindSpore nuk është asgjë më shumë se një grup që mund të konkurrojë edhe në distancë me TensorFlow (mbështetur nga Google) dhe PyTorch (mbështetur nga Facebook))

Arkitektura e sistemit

Uebfaqja MindSpore përshkruan se infrastruktura përbëhet nga tre shtresa kryesore: shprehja e frontit, motori grafik dhe koha e funksionimit të backend. Figura e mëposhtme tregon një diagram vizual:

Imazh
Imazh

Niveli i parë i MindSpore ofron një Python API për programuesit. Meqenëse gjuhësia e gjuhës në komunitetin tonë është de facto Python, dhe përndryshe MindSpore dëshiron të konkurrojë me PyTorch dhe TensorFlow. Me këtë API, programuesit mund të manipulojnë modele (trajnim, konkluzion, etj.) Dhe të përpunojnë të dhëna. Ky nivel i parë gjithashtu përfshin mbështetjen për përfaqësimin e përkohshëm të kodit (MindSpore IR), në të cilën do të bazohen shumë optimizime që mund të kryhen në paralelizëm dhe diferencim automatik (GHLO).

Më poshtë është shtresa Motor Grafiku që siguron funksionalitetin e nevojshëm për të krijuar dhe ekzekutuar diferencimin automatik të grafikut të ekzekutimit. Me MindSpore, ata zgjodhën një model automatik të diferencimit përveç PyTorch (i cili gjeneron një grafik ekzekutues dinamik) ose TensorFlow (megjithëse fillimisht u zgjodh opsioni për të krijuar një orar ekzekutimi statik më efikas, ai tani gjithashtu ofron një mundësi grafike dinamike të ekzekutimit dhe lejon një version statik i grafikut me përdorimin e zbukuruesit @ tf.funksioni të API-së së tij të nivelit të ulët).

Zgjedhja e MindSpore është shndërrimi i kodit burim në formatin e kodit ndërmjetës (MindSpore IR) për të përfituar nga të dy modelet (për më shumë informacion, shihni seksionin "Ndarja Automatike" në faqen e internetit të MindSpore).

Shtresa përfundimtare përbëhet nga të gjitha bibliotekat dhe mjediset e kohës së nevojshme për të mbështetur arkitekturat e ndryshme të pajisjeve në të cilat do të përpunohet kodi. Më shumë gjasa, do të jetë një prapavijë shumë e ngjashme me kornizat e tjera, ndoshta me karakteristikat e Huawei, të tilla si biblioteka të tilla si HCCL (Biblioteka e Komunikimit Kolektiv Huawei), ekuivalente me NVIDIA NCCL (Biblioteka e Komunikimit Kolektiv NVIDIA).

Mbështetje për vizualizimin e trajnimit

Sipas udhëzuesit të MindSpore, megjithëse ishte e pamundur instalimi dhe përdorimi i tyre, ata kanë MindInsight për të krijuar vizualizime që të kujtojnë disi TensorBoard, TensorFlow. Shikoni disa pamje të ekranit që ato tregojnë në faqen e tyre të internetit:

Imazh
Imazh
Imazh
Imazh

Sipas manualit, MindSpore aktualisht përdor një mekanizëm rikthimi (të kujton mënyrën se si bëhet me Keras) për të shkruar (në një skedar regjistri) në procesin e trajnimit të të gjithë atyre parametrave të modelit dhe hiperparametrave që duam, si dhe orarin e llogaritjes kur përpilimi i rrjetit nervor në kodin e ndërmjetëm është i plotë.

Paralelizëm

Në udhëzimet e tyre, ata flasin për dy mënyra paralelizimi (DATA_PARALLEL dhe AUTO_PARALLEL) dhe ofrojnë shembullin e kodit që stërvit ResNet-50 me një bazë të dhënash CIFAR për një procesor Ascend 910 (të cilin nuk isha në gjendje ta provoja). DATA_PARALLEL i referohet një strategjie të njohur zakonisht si paralelizëm i të dhënave, e cila konsiston në ndarjen e të dhënave të trajnimit në nënbashkësi të shumta, secila prej të cilave funksionon në të njëjtën kopje të modelit, por në njësi të ndryshme përpunuese. Grafiku Mbështetja e motorit sigurohet për paralelizimin e kodit dhe në veçanti për paralelizmin AUTO_PARALLEL.

Modaliteti AUTO_PARALLEL automatikisht optimizon paralelizmin duke kombinuar strategjinë e paralelizimit të të dhënave (diskutuar më lart) me strategjinë e paralelizimit të modelit, në të cilën modeli ndahet në pjesë të ndryshme dhe secila pjesë ekzekutohet paralelisht në njësi të ndryshme përpunimi. Kjo mënyrë automatike zgjedh strategjinë e paralelizimit që ofron përfitimet më të mira, të cilat mund të lexohen në seksionin Paralel paraprak automatik në faqen e internetit të MindSpore (megjithëse ato nuk përshkruajnë se si bëhen vlerësimet dhe vendimet). Do të duhet të presim për të gjetur kohë që ekipi teknik të zgjerojë dokumentacionin dhe të kuptojë më shumë detaje në lidhje me strategjinë e automatizimit. Por është e qartë se kjo strategji e paralelizimit automatik është kritike, dhe kjo është ajo ku ata duhet dhe mund të konkurrojnë me TensorFlow ose PyTorch, duke marrë një performancë dukshëm më të mirë duke përdorur procesorët Huawei.

Udhërrëfyesi i planifikuar dhe si të kontribuojmë

Obviousshtë e qartë se ka shumë punë për të bërë dhe në këtë pikë ata kanë përmirësuar idetë që kanë në mendje për vitin e ardhshëm në udhërrëfyesin e gjerë të paraqitur në këtë faqe, por ata argumentojnë se përparësitë do të rregullohen sipas përdoruesit.

Reagime Për momentin mund të gjejmë këto linja kryesore:

  1. Mbështetje për më shumë modele (modele klasike në pritje, GAN, RNN, Transformuesit, modele të mësimit të amplifikuar, programim probabilistik, AutoML, etj.).
  2. Zgjasni API-të dhe bibliotekat për të përmirësuar përdorshmërinë dhe përvojën e programimit (më shumë operatorë, më shumë optimizues, më shumë funksione humbjeje, etj.)
  3. Mbështetje gjithëpërfshirëse e procesorit Huawei Ascend dhe optimizim i performancës (optimizimi i përpilimit, përmirësimi i përdorimit të burimeve, etj.)
  4. Evolucioni i pirgut të softuerit dhe ekzekutimi i optimizimeve të grafikëve llogaritës (përmirësimi i përfaqësimit të ndërmjetëm IR, shtimi i aftësive shtesë të optimizimit, etj.).
  5. Mbështetje për më shumë gjuhë programimi (jo vetëm Python).
  6. Përmirësimi i mësimit të shpërndarë me optimizimin e planifikimit automatik, shpërndarjes së të dhënave, etj.
  7. Përmirësoni mjetin MindInsight për ta bërë më të lehtë për programuesin për të "korrigjuar gabimet" dhe për të përmirësuar akordimin e hiperparametrit gjatë procesit të të mësuarit.
  8. Progresi në shpërndarjen e funksionalitetit të konkluzionit në pajisjet në Edge (siguria, mbështetja për modelet jo-platformë përmes ONNX, etj.)

Në faqen e komunitetit, ju mund të shihni se MindSpore ka partnerë jashtë Huawei dhe Kinë, të tilla si Universiteti i Edinburgut, Imperial College London, Universiteti i Munster (Gjermani) ose Universiteti Paris-Saclay. Ata thonë se do të ndjekin një model të hapur qeverisje dhe do të ftojnë të gjithë komunitetin të kontribuojë si në kod ashtu edhe në dokumentacion.

Përfundim

Pas një shikimi të shpejtë të shpejtë, duket sikur vendimet e duhura të dizajnit dhe zbatimit (si konkurenca dhe diferencimi automatik) mund të shtojnë hapësirë për përmirësime dhe optimizime që arrijnë një performancë më të mirë sesa kornizat që ata duan të tejkalojnë. Por ka ende shumë punë përpara për të kapur PyTorch dhe TensorFlow, dhe mbi të gjitha për të ndërtuar një komunitet, jo vetëm! Sidoqoftë, të gjithë tashmë e dimë që me mbështetjen e një kompanie të madhe në sektor si Huawei, gjithçka është e mundur, ose ishte e qartë tre vjet më parë kur doli versioni i parë i PyTorch (Facebook) që mund të ishte afër thembra të TensorFlow (Google)?

Recommended: