Huawei'nin MindSpore: TensorFlow Və PyTorch üçün Yeni Bir Rəqib?

Mündəricat:

Huawei'nin MindSpore: TensorFlow Və PyTorch üçün Yeni Bir Rəqib?
Huawei'nin MindSpore: TensorFlow Və PyTorch üçün Yeni Bir Rəqib?

Video: Huawei'nin MindSpore: TensorFlow Və PyTorch üçün Yeni Bir Rəqib?

Video: Huawei'nin MindSpore: TensorFlow Və PyTorch üçün Yeni Bir Rəqib?
Video: MindSpore от Huawei: новый конкурент для TensorFlow и PyTorch? 2024, Bilər
Anonim

Huawei, TensorFlow və PyTorch üslubunda olan MindSpore Deep Learning orta proqramının artıq açıq mənbə olduğunu açıqladı. Bu məqalədə ən vacib xüsusiyyətlərini öyrənin.

Huawei tərəfindən hazırlanmış MindSpore
Huawei tərəfindən hazırlanmış MindSpore

Huawei yenicə AI tətbiqetmələrini inkişaf etdirmək üçün MindSpore çərçivəsinin GiHub və Gitee-də açıq mənbəyə çevrildiyini açıqladı. MindSpore, TensorFlow və ya PyTorch-a bənzər, həm GPU'ları, həm də Huawei Ascend prosessorlarını dəstəkləyən Edge-dən Cloud-a qədər istifadə üçün nəzərdə tutulmuş sinir şəbəkəsi modellərinin təhsili üçün başqa bir Dərin Öyrənmə çərçivəsidir.

Keçən avqust ayında, Huawei, Ascend prosessorunu rəsmi olaraq işə saldığını elan edərkən MindSpore ilk olaraq təqdim edildi və “tipik bir ResNet-50 əsaslı bir təlim sessiyasında Ascend 910 və MindSpore birləşməsinin təxminən iki qat daha sürətli olduğunu bildirdi. TensorFlow istifadə edərək AI modellərini digər əsas öyrənmə kartlarına qarşı öyrədərkən doğrudur ki, son illərdə bir çox çərçivə meydana çıxdı və bəlkə də MindSpore, TensorFlow (Google tərəfindən dəstəklənir) və PyTorch (Facebook tərəfindən dəstəklənir) ilə uzaqdan rəqabət edə biləcək bir qrupdan başqa bir şey deyil.).

Sistem arxitekturası

MindSpore veb saytında infrastrukturun üç əsas təbəqədən ibarət olduğu təsvir olunur: ön ifadə, qrafik mühərriki və arxa işləmə müddəti. Aşağıdakı şəkil əyani diaqramı göstərir:

Şəkil
Şəkil

MindSpore-un birinci səviyyəsi proqramçılar üçün Python API təklif edir. Cəmiyyətimizdəki dil dilçiliyi de-fakto Python olduğundan və əks halda MindSpore PyTorch və TensorFlow ilə rəqabət aparmaq istəyir. Bu API ilə proqramçılar modelləri (təlim, nəticə çıxarma və s.) İdarə edə və məlumatları işləyə bilər. Bu birinci səviyyə ayrıca paralelləşmə və avtomatik diferensiallaşdırmada (GHLO) həyata keçirilə bilən bir çox optimallaşdırmaya əsaslanacaq kod aralıq təmsilçiliyinə (MindSpore IR) dəstəyi də əhatə edir.

Aşağıda icra qrafikinin avtomatik fərqləndirilməsini yaratmaq və həyata keçirmək üçün lazımi funksionallığı təmin edən Graph Engine qatdır. MindSpore ilə PyTorch (dinamik icra qrafiki yaradan) və ya TensorFlow (daha effektiv statik icra cədvəli yaratmaq seçimi əvvəlcə seçilmiş olsa da, başqa bir dinamik icra qrafiki seçimi təklif edir və başqa bir avtomatik fərqləndirmə modelini seçdilər. aşağı səviyyəli API-nin @ tf.function dekorativindən istifadə edərək qrafikin statik versiyası).

MindSpore-un seçimi, iki modeldən faydalanmaq üçün mənbə kodunu ara kod formatına (MindSpore IR) çevirməkdir (daha çox məlumat üçün MindSpore veb saytındakı “Avtomatik Ayrılma” bölməsinə baxın).

Son qat, kodun işlənəcəyi müxtəlif hardware arxitekturalarını dəstəkləmək üçün lazım olan bütün kitabxanalardan və işləmə müddətlərindən ibarətdir. Çox güman ki, NVIDIA NCCL (NVIDIA Kollektiv Rabitə Kitabxanası) ekvivalenti kimi HCCL (Huawei kollektiv rabitə kitabxanası) kimi kitabxanalar kimi Huawei xüsusiyyətləri ilə digər çərçivələrə çox bənzər bir arxa plan olacaqdır.

Təlim görselleştirme dəstəyi

MindSpore təliminə görə, bunları quraşdırmaq və istifadə etmək mümkün olmasa da, TensorBoard, TensorFlow-u bir qədər xatırladan vizualizasiyalar yaratmaq üçün MindInsight-a sahibdirlər. Veb saytlarında göstərdikləri bəzi ekran görüntülərinə baxın:

Şəkil
Şəkil
Şəkil
Şəkil

Təlimata görə, MindSpore hal-hazırda istədiyimiz bütün bu model parametrlərini və hiperparametrləri, habelə hesablama cədvəlini öyrətmə prosesində (bir günlük sənədində) yazmaq üçün bir geri çağırma mexanizmindən (Keras ilə necə edildiyini xatırladır) istifadə edir. sinir şəbəkəsini ara kod halında tərtib etmək tamamlandı.

Paralellik

Dərslərində iki paralelləşmə rejimi (DATA_PARALLEL və AUTO_PARALLEL) haqqında danışırlar və AsNend 910 prosessoru üçün CNAR məlumat dəsti ilə ResNet-50 hazırlayan nümunə kodu təqdim edirlər (test edə bilmədim). DATA_PARALLEL, təlim məlumatlarını hər biri modelin eyni kopyasında işləyən, lakin fərqli işləmə vahidlərində işləyən çoxlu alt qruplara bölməkdən ibarət olan, ümumiyyətlə məlumat paralelliyi kimi tanınan bir strategiyaya istinad edir. Graph Engine dəstəyi kod paralelləşməsi və xüsusilə AUTO_PARALLEL paralelliyi üçün təmin edilir.

AUTO_PARALLEL rejimi, məlumatın paralelləşdirmə strategiyasını (yuxarıda müzakirə edilmiş) modelin müxtəlif hissələrə bölündüyü və hər hissənin fərqli işləmə vahidlərində paralel olaraq həyata keçirildiyi model paralelləşdirmə strategiyası ilə birləşdirərək paralelləşməni avtomatik olaraq optimallaşdırır. Bu avtomatik rejim, MindSpore veb saytındakı Avtomatik Paralel bölməsində oxumaq üçün ən yaxşı fayda verən paralelləşdirmə strategiyasını seçir (təxminlər və qərarların necə verildiyini izah etməmələrinə baxmayaraq). Texniki qrupun sənədləri genişləndirməsi və avtomatik paralelləşmə strategiyası ilə bağlı daha çox təfərrüatları başa düşməsi üçün vaxt ayırmaq üçün gözləməli olacağıq. Ancaq bu avtomatik paralelləşdirmə strategiyasının kritik olduğu və Huawei prosessorlarını istifadə edərək əhəmiyyətli dərəcədə daha yaxşı performans əldə edərək TensorFlow və ya PyTorch ilə rəqabət etməli olduqları və rəqabət edə biləcəkləri yerlərdir.

Planlaşdırılan yol xəritəsi və necə töhfə verəcəyiniz

Şübhəsiz ki, görüləcək çox iş var və bu məqamda bu səhifədə təqdim olunan geniş yol xəritəsində gələn il üçün düşündükləri fikirləri düzəltdilər, lakin prioritetlərin istifadəçiyə uyğun olaraq düzəldiləcəyini iddia etdilər.

Əlaqə. Hazırda bu əsas xətləri tapa bilərik:

  1. Daha çox model üçün dəstək (gözləyən klassik modellər, GAN, RNN, Transformers, gücləndirilmiş öyrənmə modelləri, ehtimal olunan proqramlaşdırma, AutoML və s.).
  2. Kullanışlılığı və proqramlaşdırma təcrübəsini yaxşılaşdırmaq üçün API və kitabxanaları genişləndirin (daha çox operator, daha çox optimizator, daha çox zərər funksiyası və s.)
  3. Hərtərəfli Huawei Ascend prosessor dəstəyi və performans optimallaşdırması (tərtib optimallaşdırması, mənbələrdən istifadənin yaxşılaşdırılması və s.)
  4. Proqram yığınının inkişafı və hesablama qrafası optimallaşdırmalarının icrası (ara IR təqdimatının yaxşılaşdırılması, əlavə optimallaşdırma imkanlarının əlavə edilməsi və s.).
  5. Daha çox proqramlaşdırma dili üçün dəstək (yalnız Python deyil).
  6. Avtomatik planlaşdırma, məlumat paylanması və s.
  7. Proqramlaşdırıcının öyrənmə prosesi zamanı "debug" etməsini və hiperparametr tənzimlənməsini yaxşılaşdırmaq üçün MindInsight alətini təkmilləşdirin.
  8. Edgedəki cihazlara nəticə çıxarma funksionallığının çatdırılmasında irəliləyiş (təhlükəsizlik, ONNX vasitəsilə platforma olmayan modellərə dəstək və s.)

İcma səhifəsində, MindSpore'un Huawei və Çin xaricində Edinburq Universiteti, London İmperial Kolleci, Munster Universiteti (Almaniya) və ya Paris-Saclay Universiteti kimi ortaqlarının olduğunu görə bilərsiniz. Açıq idarəetmə modelini izləyəcəklərini və bütün icmanı həm məcəlləyə, həm də sənədləşməyə töhfə verməyə dəvət edəcəklərini söylədilər.

Nəticə

Tez bir ilk baxışdan sonra, düzgün dizayn və tətbiqetmə qərarlarının (paralellik və avtomatik fərqləndirmə kimi) üstələmək istədikləri çərçivələrdən daha yaxşı performans əldə edən inkişaf və optimallaşdırma üçün yer əlavə edə biləcəyi görünür. Ancaq PyTorch və TensorFlow-u tutmaq və hər şeydən əvvəl bir cəmiyyət yaratmaq üçün hələ çox iş var! Bununla birlikdə, artıq hamımız bilirik ki, sektorda Huawei kimi bir böyük şirkətin dəstəyi ilə hər şey mümkündür və ya üç il əvvəl PyTorch (Facebook) un ilk versiyası çıxdıqda dabana yaxın ola biləcəyi açıq idi. of TensorFlow (Google)?

Tövsiyə: