Huawei-ning MindSpore: TensorFlow Va PyTorch Uchun Yangi Raqobatchi?

Mundarija:

Huawei-ning MindSpore: TensorFlow Va PyTorch Uchun Yangi Raqobatchi?
Huawei-ning MindSpore: TensorFlow Va PyTorch Uchun Yangi Raqobatchi?

Video: Huawei-ning MindSpore: TensorFlow Va PyTorch Uchun Yangi Raqobatchi?

Video: Huawei-ning MindSpore: TensorFlow Va PyTorch Uchun Yangi Raqobatchi?
Video: MindSpore от Huawei: новый конкурент для TensorFlow и PyTorch? 2024, Noyabr
Anonim

Huawei o'zining TensorFlow va PyTorch uslubidagi MindSpore Deep Learning qidiruv dasturi endi ochiq manba ekanligini e'lon qildi. Ushbu maqolada uning eng muhim xususiyatlarini bilib oling.

Huawei tomonidan yaratilgan MindSpore
Huawei tomonidan yaratilgan MindSpore

Huawei yaqinda AI dasturlarini ishlab chiqish uchun MindSpore ramkasi GiHub va Gitee-da ochiq manbaga aylanib borayotganini e'lon qildi. MindSpore - bu ikkala GPU va aniq Huawei Ascend protsessorlarini qo'llab-quvvatlaydigan, Edge-dan Cloud-ga foydalanish uchun mo'ljallangan, TensorFlow yoki PyTorchga o'xshash neyron tarmoq modellarini tayyorlash uchun yana bir chuqur o'rganish doirasi.

O'tgan avgust oyida, Huawei o'zining Ascend protsessorini rasmiy ravishda ishga tushirganligini e'lon qilganda, MindSpore birinchi bo'lib taqdim etilgan edi, chunki odatdagi ResNet-50 o'quv mashg'ulotlarida Ascend 910 va MindSpore kombinatsiyasi taxminan ikki baravar tezroq. TensorFlow-dan foydalangan holda sun'iy intellekt modellarini boshqa yirik o'quv kartalariga nisbatan o'rgatish paytida, so'nggi yillarda ko'plab ramkalar paydo bo'lishi haqiqatan ham, ehtimol MindSpore TensorFlow (Google tomonidan qo'llab-quvvatlanadigan) va PyTorch (Facebook tomonidan qo'llab-quvvatlanadigan) bilan masofadan turib raqobatlashadigan bitta guruhdan boshqa narsa emas.).

Tizim arxitekturasi

MindSpore veb-saytida infratuzilma uchta asosiy qatlamdan iboratligi tasvirlangan: frontend expressing, grafik dvigatel va backend ish vaqti. Quyidagi rasmda vizual diagramma ko'rsatilgan:

Rasm
Rasm

MindSpore-ning birinchi darajasi dasturchilar uchun Python API-ni taqdim etadi. Jamiyatimizdagi til lingvistikasi amalda Python ekan, aks holda MindSpore PyTorch va TensorFlow bilan raqobatlashishni xohlaydi. Ushbu API yordamida dasturchilar modellarni boshqarish (o'qitish, xulosa chiqarish va hk) va ma'lumotlarni qayta ishlashlari mumkin. Ushbu birinchi daraja paralellashtirish va avtomatik differentsiatsiya (GHLO) da bajarilishi mumkin bo'lgan ko'plab optimallashtirishga asoslangan kodlarni vaqtincha namoyish qilishni (MindSpore IR) qo'llab-quvvatlashni ham o'z ichiga oladi.

Quyida ijro grafikasini avtomatik ravishda differentsiatsiyalashtirishni yaratish va bajarish uchun zarur funktsiyalarni ta'minlaydigan Graph Engine qatlami keltirilgan. MindSpore yordamida ular PyTorch (dinamik ijro grafigini yaratadigan) yoki TensorFlow-dan tashqari avtomatik differentsiatsiya modelini tanladilar (garchi dastlab yanada samarali statik ijro jadvalini yaratish varianti tanlangan bo'lsa ham, endi u dinamik ijro grafikasi variantini taklif qiladi va imkon beradi grafikaning statik versiyasi, uning past darajadagi API ning @ tf.function dekoratividan foydalangan holda).

MindSpore-ning tanlovi - ikkita modeldan foydalanish uchun manba kodini oraliq kod formatiga (MindSpore IR) aylantirish (qo'shimcha ma'lumot olish uchun MindSpore veb-saytidagi "Avtomatik ajratish" bo'limiga qarang).

Oxirgi qavat kodni qayta ishlanadigan turli xil apparat arxitekturalarini qo'llab-quvvatlash uchun zarur bo'lgan barcha kutubxonalar va ish vaqti muhitlaridan iborat. Ehtimol, bu boshqa ramkalarga juda o'xshash, ehtimol Huawei funktsiyalari bilan, masalan, HCCL (Huawei jamoaviy aloqa kutubxonasi) kabi kutubxonalar, NVIDIA NCCL (NVIDIA jamoaviy aloqa kutubxonasi) ga teng.

Vizualizatsiyani qo'llab-quvvatlash

MindSpore o'quv qo'llanmasiga ko'ra, ularni o'rnatish va ulardan foydalanish imkonsiz bo'lsa-da, ular TensorBoard, TensorFlow-ni eslatuvchi vizualizatsiyalar yaratish uchun MindInsight-ga ega. O'zlarining veb-saytlarida ko'rsatadigan ba'zi skrinshotlarni ko'rib chiqing:

Rasm
Rasm
Rasm
Rasm

Qo'llanmada ko'rsatilganidek, MindSpore hozirda biz xohlagan barcha model parametrlari va giperparametrlarni, shuningdek hisoblash jadvalini o'qitish jarayonida (jurnal faylida) yozish uchun qayta chaqirish mexanizmidan foydalanadi (Keras bilan qanday bajarilishini eslatadi). neyron tarmoqni oraliq kodga kompilyatsiya qilish tugallandi.

Parallelizm

O'quv qo'llanmasida ular ikkita parallellashtirish rejimi (DATA_PARALLEL va AUTO_PARALLEL) haqida gaplashadilar va AsNend 910 protsessori uchun CIFAR ma'lumotlar bazasi bilan ResNet-50 ni o'qitadigan namunaviy kodni taqdim etadilar (men uni sinab ko'rmadim). DATA_PARALLEL odatda ma'lumotlarning parallelligi deb nomlanadigan strategiyani anglatadi, bu o'quv ma'lumotlarini bir nechta kichik to'plamlarga bo'lishdan iborat, ularning har biri modelning bir xil nusxasida ishlaydi, lekin turli xil ishlov berish birliklarida. Graph Engine-ni qo'llab-quvvatlash kodni parallellashtirish uchun, xususan AUTO_PARALLEL parallelligi uchun taqdim etiladi.

AUTO_PARALLEL rejimi ma'lumotlarni parallellashtirish strategiyasini (yuqorida muhokama qilingan) modelni parallellashtirish strategiyasi bilan birlashtirib, parallel ravishda avtomatik ravishda optimallashtiradi, unda model turli qismlarga bo'linadi va har bir qism har xil ishlov berish birliklarida parallel ravishda bajariladi. Ushbu avtomatik rejim eng yaxshi foyda keltiradigan parallellashtirish strategiyasini tanlaydi, bu haqda MindSpore veb-saytidagi Avtomatik Parallel bo'limida o'qish mumkin (garchi ular taxminlar va qarorlar qanday qabul qilinishini tasvirlamasa ham). Texnik guruh hujjatlarni kengaytirishi va avtoparallelizatsiya strategiyasi haqida batafsil ma'lumotlarni tushunishi uchun vaqt ajratish uchun kutishimiz kerak. Biroq, ushbu avtomatik parallellashtirish strategiyasi juda muhim va bu erda ular TensorFlow yoki PyTorch bilan raqobatlashishlari kerak va ular Huawei protsessorlari yordamida sezilarli darajada yaxshi ishlashga erishishlari mumkin.

Rejalashtirilgan yo'l xaritasi va qanday hissa qo'shish kerak

Bajarilishi kerak bo'lgan ishlar ko'pligi aniq va shu o'rinda ular ushbu sahifada keltirilgan keng yo'l xaritasida kelgusi yil uchun o'ylagan g'oyalarini soddalashtirdilar, ammo ular ustuvorliklar foydalanuvchiga ko'ra o'zgartirilishini ta'kidladilar.

Qayta aloqa. Ayni paytda biz ushbu asosiy yo'nalishlarni topamiz:

  1. Ko'proq modellarni qo'llab-quvvatlash (kutilayotgan klassik modellar, GAN, RNN, Transformers, kuchaytirilgan o'quv modellari, ehtimollik dasturlash, AutoML va boshqalar).
  2. Foydalanish va dasturlash tajribasini yaxshilash uchun API va kutubxonalarni kengaytiring (ko'proq operatorlar, ko'proq optimallashtiruvchilar, ko'proq yo'qotish funktsiyalari va boshqalar).
  3. Huawei Ascend protsessorini kompleks qo'llab-quvvatlash va ishlashni optimallashtirish (kompilyatsiya optimallashtirish, resurslardan foydalanishni yaxshilash va hk)
  4. Dasturiy ta'minot to'plamining rivojlanishi va hisoblash grafigini optimallashtirish (oraliq IQ tasvirini takomillashtirish, qo'shimcha optimallashtirish imkoniyatlarini qo'shish va hk).
  5. Ko'proq dasturlash tillarini qo'llab-quvvatlash (nafaqat Python).
  6. Avtomatik rejalashtirish, ma'lumotlarni tarqatish va boshqalarni optimallashtirish bilan taqsimlangan o'qitish yaxshilandi.
  7. Dasturchi uchun "disk raskadrovka" qilishni osonlashtirish va o'quv jarayonida giperparametrlarni sozlashni yaxshilash uchun MindInsight vositasini yaxshilang.
  8. Edge-dagi qurilmalarga xulosa chiqarish funksiyasini etkazib berishda yutuqlar (xavfsizlik, ONNX orqali platformadan tashqari modellarni qo'llab-quvvatlash va boshqalar).

Hamjamiyat sahifasida MindSpore-ning Huawei va Xitoydan tashqarida Edinburg universiteti, London Imperial kolleji, Munster universiteti (Germaniya) yoki Parij-Saklay universiteti kabi hamkorlari borligini ko'rishingiz mumkin. Ular ochiq boshqaruv modeliga amal qilishlarini va barcha jamoatchilikni kodeks va hujjatlarga o'z hissalarini qo'shishga taklif qilishlarini aytmoqdalar.

Xulosa

Birinchi qarashdan so'ng, to'g'ri loyihalashtirish va amalga oshirish qarorlari (o'xshashlik va avtomatik differentsiatsiya kabi) takomillashtirish va optimallashtirish uchun joy ajratishi mumkin, ular istagan ramkalarga qaraganda yaxshiroq ishlashga erishishi mumkin. Ammo PyTorch va TensorFlowni qo'lga olish va avvalambor, nafaqat jamiyatni qurish uchun hali ko'p ish bor! Biroq, biz hammamiz allaqachon bilamizki, Huawei singari bitta yirik kompaniyaning qo'llab-quvvatlashi bilan hamma narsa mumkin yoki uch yil oldin PyTorch (Facebook) ning birinchi versiyasi chiqqach, tovonga yaqinlashishi mumkin edi. of TensorFlow (Google)?

Tavsiya: