Huawei-ийн MindSpore: TensorFlow болон PyTorch-ийн шинэ өрсөлдөгч үү?

Агуулгын хүснэгт:

Huawei-ийн MindSpore: TensorFlow болон PyTorch-ийн шинэ өрсөлдөгч үү?
Huawei-ийн MindSpore: TensorFlow болон PyTorch-ийн шинэ өрсөлдөгч үү?

Видео: Huawei-ийн MindSpore: TensorFlow болон PyTorch-ийн шинэ өрсөлдөгч үү?

Видео: Huawei-ийн MindSpore: TensorFlow болон PyTorch-ийн шинэ өрсөлдөгч үү?
Видео: MindSpore от Huawei: новый конкурент для TensorFlow и PyTorch? 2024, Арванхоёрдугаар сар
Anonim

Huawei компани TensorFlow болон PyTorch загварын MindSpore Deep Learning дундын програм хангамж нээлттэй эх сурвалж болсныг зарлав. Энэ нийтлэлээс түүний хамгийн чухал шинж чанаруудыг олж мэдэх.

MindSpore by Huawei
MindSpore by Huawei

Huawei саяхан AI програм хөгжүүлэх MindSpore хүрээ нь нээлттэй эх үүсвэр болж, GiHub, Gitee дээр ашиглах боломжтой болсныг дөнгөж сая зарлалаа. MindSpore бол TensorFlow эсвэл PyTorch-той адил мэдрэлийн сүлжээний загваруудыг сургах өөр нэг Deep Learning хүрээ бөгөөд GPU болон мэдээж Huawei Ascend процессоруудыг хоёуланг нь дэмждэг.

Өнгөрсөн наймдугаар сард Huawei компани Ascend процессороо албан ёсоор худалдаанд гаргаснаа зарлахад MindSpore анх танилцуулагдсан бөгөөд “ResNet-50 дээр суурилсан ердийн сургалтын үеэр Ascend 910 ба MindSpore-ийн хослол хоёр дахин хурдан байдаг. AI загварыг TensorFlow ашиглан бусад томоохон сургалтын картуудын эсрэг сургахдаа Сүүлийн жилүүдэд олон хүрээ бий болсон нь үнэн бөгөөд магадгүй MindSpore нь TensorFlow (Google-ийн дэмжлэгтэй), PyTorch (Facebook-ийн дэмжлэгтэй) алсаас өрсөлдөх чадвартай нэг бүлгээс өөр зүйл биш юм.).

Системийн архитектур

MindSpore вэбсайтад дэд бүтэц нь урд талын илэрхийлэл, график хөдөлгүүр, арын хэсгийн ажиллах хугацаа гэсэн гурван үндсэн давхаргаас бүрдэнэ гэж тайлбарласан болно. Дараахь зураг дээр харааны диаграммыг харуулав.

Зураг
Зураг

MindSpore-ийн эхний түвшин нь програмистуудад зориулсан Python API-г санал болгодог. Манай нийгэмлэгийн хэл шинжлэл нь де-факто Python бөгөөд өөрөөр хэлбэл MindSpore нь PyTorch, TensorFlow-той өрсөлдөхийг хүсдэг. Энэхүү API-ийн тусламжтайгаар програмистууд загвар (сургалт, дүгнэлт гаргах гэх мэт) -ийг удирдах, өгөгдлийг боловсруулах боломжтой. Энэ эхний түвшинд кодын завсрын дүрслэл (MindSpore IR) -ийн дэмжлэг орно. Үүн дээр параллелизаци ба автомат ялгах (GHLO) -д хийж болох олон оновчлолыг үндэслэнэ.

Доорх нь гүйцэтгэлийн графикийн автомат ялгаврыг бий болгох, гүйцэтгэхэд шаардлагатай ажиллагааг хангаж өгдөг Graph Engine давхарга юм. MindSpore-ийн тусламжтай тэд PyTorch (динамик гүйцэтгэлийн график үүсгэдэг) эсвэл TensorFlow-ээс бусад автоматаар ялгах загварыг сонгосон (хэдийгээр илүү үр дүнтэй статик гүйцэтгэлийн хуваарь бий болгох сонголтыг анх сонгосон байсан бол одоо динамик гүйцэтгэлийн графикийн сонголтыг санал болгож байна. графикийн статик хувилбар, түүний доод түвшний API-ийн @ tf.function чимэглэлийг ашиглана уу).

MindSpore-ийн сонголт бол хоёр загварын давуу талыг ашиглахын тулд эх кодыг завсрын кодын формат (MindSpore IR) болгон хөрвүүлэх явдал юм (дэлгэрэнгүй мэдээллийг MindSpore вэбсайт дахь “Автомат тусгаарлалт” хэсгээс үзнэ үү).

Эцсийн давхарга нь кодыг боловсруулах тоног төхөөрөмжийн янз бүрийн архитектурыг дэмжихэд шаардагдах бүх номын сан, ажиллах орчноос бүрдэнэ. Энэ нь NVIDIA NCCL (NVIDIA хамтын холбооны номын сан) -тай дүйцэхүйц HCCL (Huawei хамтын холбооны номын сан) гэх мэт номын сангууд гэх мэт Huawei-ийн онцлог шинж чанаруудтай бусад хүрээтэй маш төстэй ар тал байх болно.

Сургалтын дүрслэлийг дэмжих

MindSpore гарын авлагын дагуу тэдгээрийг суулгах, ашиглах боломжгүй байсан ч TensorBoard, TensorFlow-ийг санагдуулам дүрслэх чадварыг MindInsight-тэй болгосон. Тэдний вэбсайт дээр үзүүлж буй зарим скриншотуудыг үзээрэй.

Зураг
Зураг
Зураг
Зураг

Гарын авлагын дагуу MindSpore нь одоогоор бидний хүссэн бүх загварын параметрүүд болон гиперпараметрүүдийг сургах явцад (бүртгэлийн файлд) бичихдээ буцаах механизм (Keras-тэй хэрхэн хийдэгийг санагдуулдаг) ашигладаг. мэдрэлийн сүлжээг завсрын код болгон хөрвүүлэх ажил дууссан.

Зэрэгцээ байдал

Тэд гарын авлагадаа параллелжуулах хоёр горимын тухай (DATA_PARALLEL ба AUTO_PARALLEL) ярилцаж, AsNend 910 процессорт зориулж ResNet-50-ийг CIFAR өгөгдлийн сангаар сургадаг жишээ кодыг өгдөг (би үүнийг шалгаж чадахгүй байсан). DATA_PARALLEL гэдэг нь сургалтын өгөгдлийг олон ижил дэд хэсэгт хуваахаас бүрдэх өгөгдлийн параллелизм гэж нэрлэгддэг стратегийг хэлдэг бөгөөд тэдгээр нь загвар бүрийн ижил хуулбар дээр ажилладаг боловч өөр өөр боловсруулалтын нэгжид байрладаг. График хөдөлгүүрийн дэмжлэг нь кодын параллелчлалд, ялангуяа AUTO_PARALLEL параллелизмд зориулагдсан болно.

AUTO_PARALLEL горим нь өгөгдлийг зэрэгцүүлэх стратегитай (дээр дурдсан) загварыг өөр өөр хэсэгт хувааж, хэсэг тус бүрийг зэрэгцүүлэн гүйцэтгэх параллелизацийн стратегитай хослуулан параллелизацийг автоматаар оновчтой болгодог. Энэхүү автомат горим нь хамгийн сайн үр өгөөжийг өгдөг параллелизацийн стратегийг сонгодог бөгөөд үүнийг MindSpore вэбсайтын Автомат Зэрэгцээ хэсгээс уншиж болно (хэдийгээр тооцоо, шийдвэрийг хэрхэн гаргадаг талаар тайлбарлахгүй). Техникийн баг баримтжуулалтыг өргөжүүлж, авто параллелизацийн стратегийн талаар илүү дэлгэрэнгүй ойлголттой болоход цаг зав гаргахыг бид хүлээх хэрэгтэй болно. Гэхдээ энэхүү автомат зэрэгцүүлэх стратеги нь маш чухал бөгөөд энэ нь тэд TensorFlow эсвэл PyTorch-тэй өрсөлдөх ёстой бөгөөд өрсөлдөх боломжтой болох нь тодорхой бөгөөд ингэснээр Huawei процессоруудыг ашиглан илүү сайн гүйцэтгэлийг олж авах болно.

Төлөвлөсөн замын зураглал, хэрхэн хувь нэмэр оруулах

Хийх ажил их байгаа нь тодорхой бөгөөд энэ үеэр тэд энэ хуудсанд танилцуулсан өргөн цар хүрээтэй замын зураг дээр ирэх жил бодож төлөвлөсөн санаагаа боловсронгуй болгосон боловч тэргүүлэх чиглэлийг хэрэглэгчийн дагуу тохируулна гэж маргаж байна.

Санал хүсэлт. Одоогийн байдлаар бид эдгээр үндсэн шугамуудыг олж болно.

  1. Илүү их загваруудад дэмжлэг үзүүлэх (хүлээгдэж буй сонгодог загварууд, GAN, RNN, Трансформерууд, сургалтын олшруулсан загварууд, магадлалын програмчлал, AutoML гэх мэт).
  2. Хэрэглээ, програмчлалын туршлагыг сайжруулахын тулд API болон номын сангуудыг өргөжүүл (илүү олон операторууд, илүү олон оптимизаторууд, илүү их алдагдалтай функцууд гэх мэт)
  3. Huawei Ascend процессорын цогц дэмжлэг, гүйцэтгэлийн оновчлол (эмхэтгэлийн оновчлол, нөөц ашиглалтыг сайжруулах гэх мэт)
  4. Програм хангамжийн стекийн хувьсал ба тооцооллын график оновчлолын гүйцэтгэл (завсрын IR дүрслэлийг сайжруулах, нэмэлт оновчлолын чадварыг нэмэх гэх мэт).
  5. Илүү олон програмчлалын хэлийг дэмжих (зөвхөн Python биш).
  6. Автомат хуваарь, өгөгдөл түгээх гэх мэтийг оновчтой болгох замаар тархсан сургалтыг сайжруулсан.
  7. Суралцах явцад програм зохиогчийг "дибаг хийх", гиперпараметрын тохируулгыг сайжруулахад хялбар болгох үүднээс MindInsight хэрэгслийг сайжруул.
  8. Edge дээрх төхөөрөмжүүдэд дүгнэлтийн функцийг хүргэх ахиц дэвшил (аюулгүй байдал, ONNX-ээр дамжуулан платформ бус загварыг дэмжих гэх мэт)

Олон нийтийн хуудсан дээрээс MindSpore нь Huawei болон Хятадаас гадна Эдинбургийн Их Сургууль, Лондонгийн Эзэн хааны Коллеж, Мюнстерийн Их Сургууль (Герман) эсвэл Парис-Саклэй Их Сургуультай түншүүдтэй байгааг харж болно. Тэд нээлттэй засаглалын загварыг дагаж, бүх нийтийг код, баримт бичигт хувь нэмэр оруулахыг уриална гэж тэд хэлэв.

Дүгнэлт

Эхний харцыг хурдан харсны дараа зөв төлөвлөлт, хэрэгжилтийн шийдвэрүүд (зэрэгцэх байдал, автоматаар ялгах гэх мэт) нь сайжруулахыг хүсч байгаа хүрээнүүдээс илүү сайн гүйцэтгэлд хүргэсэн сайжруулалт, оновчлолын орон зайг нэмж өгдөг юм шиг санагдаж байна. Гэхдээ PyTorch, TensorFlow-ийг барьж авах, цаашлаад олон нийтийг бий болгох олон ажил хүлээж байна! Гэсэн хэдий ч Huawei шиг салбарын нэг том компанийн дэмжлэгтэйгээр бүх зүйл боломжтой болох эсвэл гурван жилийн өмнө PyTorch (Facebook) -ын анхны хувилбар гарч ирэхэд өсгийтэй ойрхон байж болох нь тодорхой байсан гэдгийг бид бүгдээрээ мэддэг болсон. of TensorFlow (Google)?

Зөвлөмж болгож буй: