Huawei's MindSpore: ახალი კონკურენტი TensorFlow- სა და PyTorch- ისთვის?

Სარჩევი:

Huawei's MindSpore: ახალი კონკურენტი TensorFlow- სა და PyTorch- ისთვის?
Huawei's MindSpore: ახალი კონკურენტი TensorFlow- სა და PyTorch- ისთვის?

ვიდეო: Huawei's MindSpore: ახალი კონკურენტი TensorFlow- სა და PyTorch- ისთვის?

ვიდეო: Huawei's MindSpore: ახალი კონკურენტი TensorFlow- სა და PyTorch- ისთვის?
ვიდეო: PyTorch or TensorFlow? | 2021 2024, ნოემბერი
Anonim

Huawei– მ გამოაცხადა, რომ მისი TensorFlow და PyTorch სტილის MindSpore Deep Learning საშუალო პროგრამა ახლა ღია წყაროა. ამ სტატიაში გაეცანით მის ყველაზე მნიშვნელოვან მახასიათებლებს.

MindSpore ავტორი Huawei
MindSpore ავტორი Huawei

Huawei– მ ახლახან გამოაცხადა, რომ მისი MindSpore ჩარჩო AI პროგრამების შესაქმნელად ხდება ღია წყაროს და ხელმისაწვდომია GiHub– სა და Gitee– ზე. MindSpore არის კიდევ ერთი ღრმა სწავლის ჩარჩო ნერვული ქსელის მოდელების მოსამზადებლად, მსგავსი TensorFlow ან PyTorch, შექმნილია Edge– დან Cloud– ით, რომელიც მხარს უჭერს როგორც GPU– ს, ასევე აშკარად Huawei Ascend პროცესორებს.

გასულ აგვისტოში, როდესაც Huawei– მ გამოაცხადა Ascend პროცესორის ოფიციალური გაშვება, MindSpore პირველად დაინერგა, რომელშიც ნათქვამია, რომ”ResNet-50– ზე დაფუძნებულ ტრენინგზე Ascend 910 და MindSpore კომბინაცია ორჯერ უფრო სწრაფია. TensorFlow- ის გამოყენებით AI მოდელების სწავლებისას სხვა ძირითადი სასწავლო ბარათების მართალია, მართალია, ბოლო წლების განმავლობაში მრავალი ჩარჩო გაჩნდა და, შესაძლოა, MindSpore სხვა არაფერია, თუ არა ერთი ჯგუფი, რომელსაც შეუძლია დისტანციურად კონკურენცია გაუწიოს TensorFlow- ს (Google- ის მხარდაჭერით) და PyTorch- ს (მხარდაჭერით Facebook)

Სისტემური არქიტექტურა

MindSpore ვებსაიტზე აღწერილია, რომ ინფრასტრუქტურა შედგება სამი ძირითადი შრისგან: ფრონტის გამოხატვის, გრაფიკული ძრავისა და ბონდის მუშაობის დროს. შემდეგი სურათი გვიჩვენებს ვიზუალურ სქემას:

სურათი
სურათი

MindSpore- ის პირველი დონე გთავაზობთ Python API- ს პროგრამისტებისთვის. ვინაიდან ჩვენს საზოგადოებაში ენის ენათმეცნიერება de facto Python- ია, წინააღმდეგ შემთხვევაში MindSpore- ს სურს კონკურენცია გაუწიოს PyTorch- სა და TensorFlow- ს. ამ API– ს საშუალებით პროგრამისტებს შეუძლიათ მოახდინონ მოდელების მანიპულირება (ტრენინგი, დასკვნა და ა.შ.) და მონაცემთა დამუშავება. ეს პირველი დონე ასევე მოიცავს კოდის შუალედური რეპრეზენტაციის მხარდაჭერას (MindSpore IR), რომელზეც დაფუძნებული იქნება მრავალი ოპტიმიზაცია, რომელთა შესრულება შესაძლებელია პარალელიზაციისა და ავტომატური დიფერენცირების დროს (GHLO).

ქვემოთ მოცემულია Graph Engine ფენა, რომელიც უზრუნველყოფს აუცილებელ ფუნქციონირებას შესრულების გრაფიკის ავტომატური დიფერენცირების შესაქმნელად. MindSpore– ს საშუალებით, მათ აირჩიეს ავტომატური დიფერენცირების მოდელი, გარდა PyTorch– ისა (რომელიც წარმოქმნის დინამიკურ შესრულების გრაფიკს) ან TensorFlow (თუმცა თავდაპირველად შეირჩა უფრო ეფექტური სტატიკური შესრულების გრაფიკი, ახლა იგი ასევე გთავაზობთ დინამიკურ შესრულების გრაფიკის ვარიანტს და საშუალებას იძლევა გრაფიკის სტატიკური ვერსია მისი დაბალი დონის API- ს @ tf.function დეკორატორის გამოყენებით).

MindSpore– ის არჩევანი არის კოდის გადაქცევა შუა კოდის ფორმატში (MindSpore IR), რომ ისარგებლოს ორი მოდელით (დამატებითი ინფორმაციისთვის იხილეთ MindSpore ვებ – გვერდზე განყოფილება “ავტომატური განცალკევება”).

საბოლოო ფენა მოიცავს ყველა ბიბლიოთეკასა და მუშაობის დროს საჭირო გარემოს, რომელიც საჭიროა სხვადასხვა ტექნიკის არქიტექტურის მხარდასაჭერად, რომელშიც კოდი დამუშავდება. სავარაუდოდ, ეს იქნება უკანა მხარე, რომელიც ძალიან ჰგავს სხვა ჩარჩოებს, შესაძლოა Huawei– ს მახასიათებლებს, როგორიცაა ბიბლიოთეკები, როგორიცაა HCCL (Huawei კოლექტიური კომუნიკაციური ბიბლიოთეკა), ექვივალენტურია NVIDIA NCCL (NVIDIA კოლექტიური კომუნიკაციური ბიბლიოთეკა).

ტრენინგის ვიზუალიზაციის მხარდაჭერა

MindSpore- ის სახელმძღვანელოს თანახმად, მართალია შეუძლებელი იყო მათი ინსტალაცია და გამოყენება, მათ აქვთ MindInsight ვიზუალიზაციის შესაქმნელად, რომელიც გარკვეულწილად მოგაგონებთ TensorBoard, TensorFlow. გადახედეთ ეკრანულ კადრებს, რომლებიც მათ ვებ – გვერდზე აჩვენეს:

სურათი
სურათი
სურათი
სურათი

სახელმძღვანელოს თანახმად, MindSpore ამჟამად იყენებს ზარის უკუკავშირის მექანიზმს (ახსენებს თუ როგორ ხდება Keras– ის საშუალებით) დასაწერად (ჟურნალ ფაილში) ყველა იმ მოდელის პარამეტრებისა და ჰიპერპარატების მომზადების პროცესში, რომლებიც გვსურს და ასევე გამოთვლის გრაფიკს ნერვული ქსელის შუალედურ კოდში შედგენა დასრულებულია.

პარალელიზმი

თავის სახელმძღვანელოში ისინი საუბრობენ პარალელიზაციის ორ რეჟიმზე (DATA_PARALLEL და AUTO_PARALLEL) და გვთავაზობენ კოდის ნიმუშს, რომელიც ამზადებს ResNet-50 CIFAR მონაცემთა ნაკრებს Ascend 910 პროცესორისთვის (რომლის ტესტირება ვერ შეძლო). 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- ს ჰუავეის და ჩინეთის ფარგლებს გარეთ ჰყავს პარტნიორები, როგორიცაა ედინბურგის უნივერსიტეტი, ლონდონის საიმპერატორო კოლეჯი, მიუნსტერის უნივერსიტეტი (გერმანია) ან პარიზ-საკლაის უნივერსიტეტი. მათი თქმით, ისინი დაიცვან მმართველობის ღია მოდელი და მოიწვევენ მთელ საზოგადოებას, რომ წვლილი შეიტანონ კოდექსში და დოკუმენტაციაში.

დასკვნა

სწრაფი ერთი შეხედვით, როგორც ჩანს, დიზაინისა და განხორციელების სწორ გადაწყვეტილებებს (მაგალითად, ერთდროულობასა და ავტომატურ დიფერენცირებას) შეიძლება დაემატოს გაუმჯობესებისა და ოპტიმიზაციის შესაძლებლობები, რაც უკეთეს შედეგებს მიაღწევს, ვიდრე იმ ჩარჩოებს, რომელთა სურთ უკეთესი.მაგრამ ჯერ კიდევ ბევრი სამუშაოა PyTorch- ისა და TensorFlow- ს დასაჭერად, და უპირველეს ყოვლისა საზოგადოების შესაქმნელად და არა მხოლოდ! ამასთან, ყველამ უკვე ვიცით, რომ სექტორის ერთი დიდი კომპანიის მხარდაჭერით, როგორიცაა Huawei, ყველაფერი შესაძლებელია, ან აშკარა იყო სამი წლის წინ, როდესაც PyTorch- ის (Facebook) პირველი ვერსია გამოვიდა, რომ ის შეიძლება ახლოს ყოფილიყო TensorFlow (Google)?

გირჩევთ: