Huawei компаниясы TensorFlow жана PyTorch стилиндеги MindSpore Deep Learning ортомдук программасы эми ачык булак экендигин жарыялады. Бул макалада анын эң маанилүү мүнөздөмөлөрүн билип алыңыз.
Huawei жакында AI тиркемелерин иштеп чыгуу үчүн MindSpore алкагы ачык булак болуп, GiHub жана Giteeде жеткиликтүү болуп жаткандыгын жарыялады. MindSpore - бул TensorFlow же PyTorch сыяктуу нейрон тармагынын моделдерин окутуу үчүн дагы бир Deep Learning алкагы, бул GPU жана, албетте, Huawei Ascend процессорлорун колдогон Edgeден Cloud чейин.
Өткөн август айында, Huawei өзүнүн Ascend процессорунун расмий ачылышын жарыялаганда, MindSpore алгач тааныштырылып, «ResNet-50 негизиндеги кадимки окутуу сессиясында Ascend 910 жана MindSpore айкалышы болжол менен эки эсе тез болот. TensorFlow колдонуп AI моделдерин башка ири окуу карталарына салыштырмалуу үйрөтүүдө Чындыгында, акыркы жылдары көптөгөн алкактар пайда болду, балким MindSpore бул TensorFlow (Google колдогон) жана PyTorch (Facebook колдогон) менен алыстан атаандаштыкка туруштук бере турган бир топтон башка нерсе эмес.).
Тутум архитектурасы
MindSpore веб-сайты инфраструктура үч негизги катмардан турарын сүрөттөйт: алдыңкы бет тутуму, графикалык кыймылдаткыч жана артта иштөө убактысы. Төмөнкү сүрөттө визуалдык диаграмма келтирилген:
Биринчи деңгээлдеги MindSpore программисттер үчүн Python API сунуш кылат. Биздин коомдогу тилдик лингвистика иш жүзүндө Python болгондуктан, MindSpore PyTorch жана TensorFlow менен атаандашууну каалайт. Бул API аркылуу программисттер моделдерди (окутуу, жыйынтык чыгаруу ж.б.) башкарып, маалыматтарды иштете алышат. Бул биринчи деңгээл параллелдештирүүдө жана автоматтык дифференциалдоодо (GHLO) жүргүзүлө турган көптөгөн оптимизациялардын негизинде коддун убактылуу өкүлчүлүгүн (MindSpore IR) колдоону камтыйт.
Төмөндө Графикалык кыймылдаткыч катмары келтирилген, ал графиктин автоматтык дифференциациясын түзүү жана аткаруу үчүн керектүү функционалды камсыз кылат. MindSpore менен, алар PyTorch (динамикалык аткаруу графигин жаратат) же TensorFlow (автоматтык түрдө дифференциалдаштыруу моделин) тандашты (натыйжалуу статикалык график түзүү варианты алгач тандалган болсо дагы, ал эми эми динамикалык графиктин вариантын сунуштайт жана мүмкүнчүлүк берет графиктин статикалык версиясы, анын төмөнкү деңгээлдеги APIнин @ tf.function декораторун колдонуу менен).
MindSpore тандоосу - бул эки моделдин артыкчылыгын пайдалануу үчүн баштапкы кодду ортоңку код форматына (MindSpore IR) айландыруу (кошумча маалымат алуу үчүн, MindSpore веб-сайтындагы "Автоматтык Бөлүү" бөлүмүн караңыз).
Акыркы катмар ар кандай аппараттык архитектураны колдоо үчүн талап кылынган бардык китепканалардан жана иштөө убактысынан турган чөйрөлөрдөн турат, анда код иштелип чыгат. Кыязы, бул NVIDIA NCCL (NVIDIA Жамааттык Байланыш Китепканасы) эквивалентиндеги HCCL (Huawei Жамааттык Байланыш Китепканасы) сыяктуу китепканалар сыяктуу Huawei функциялары менен, башка алкактарга абдан окшош бир артта калат.
Окутууну визуалдаштырууну колдоо
MindSpore окуу куралы боюнча, аларды орнотуу жана колдонуу мүмкүн болбогону менен, TensorBoard, TensorFlow эсинде калган визуалдаштырууларды түзүү үчүн MindInsight ээ. Алардын вебсайтында көрсөтүлгөн айрым скриншотторго көз чаптырыңыз:
Колдонмого ылайык, учурда MindSpore биз каалаган моделдин бардык параметрлерин жана гиперпараметрлерин окутуу процессинде (журнал файлында) жазуу үчүн кайра чакыруу механизмин (Керас менен кандайча жасалгандыгын эске салат) колдонот, ошондой эле эсептөө графиги нейрон тармагын аралык кодго түзүү аяктады.
Параллелизм
Алар өздөрүнүн окуу куралдарында эки параллелизация режими жөнүндө сүйлөшүшөт (DATA_PARALLEL жана AUTO_PARALLEL) жана AsNend 910 процессору үчүн ResNet-50ди CIFAR топтому менен окуткан үлгү кодун беришет (мен аны текшере алган жокмун). DATA_PARALLEL маалыматтын параллелизми деп аталган стратегияны билдирет, ал окутуу маалыматтарын ар бир моделдин бир эле нускасында иштеген, бирок ар башка иштетүү бөлүмдөрүндө иштөөчү бир нече чакан топторго бөлүүдөн турат. Graph Engine колдоосу код параллелизациясы жана айрыкча AUTO_PARALLEL параллелизми үчүн берилет.
AUTO_PARALLEL режими маалыматты параллелдештирүү стратегиясын (жогоруда талкууланган) моделдин параллелдештирүү стратегиясы менен айкалыштырып, параллелизацияны автоматтык түрдө оптималдаштырат, анда модель ар кандай бөлүктөргө бөлүнүп, ар бир бөлүгү ар кандай иштетүү бөлүмдөрүндө параллель аткарылат. Бул автоматтык режим мыкты артыкчылыктарды сунуш кылган параллелизация стратегиясын тандайт, ал жөнүндө MindSpore веб-сайтындагы Автоматтык Параллель бөлүмүнөн окусаңыз болот (бирок, алар эсептөөлөр жана чечимдер кандайча кабыл алынгандыгын сүрөттөшпөйт). Техникалык топ документтерди кеңейтип, авто-параллелдештирүү стратегиясы жөнүндө кененирээк маалымат алышы үчүн, убакытты күтүүгө туура келет. Бирок, бул авто-параллелдештирүү стратегиясы өтө маанилүү экени айдан ачык жана алар TensorFlow же PyTorch менен теңтайлашып, Huawei процессорлорун колдонуп, кыйла жакшыраак иштешет.
Пландалган жол картасы жана кантип салым кошуу керек
Аткарыла турган жумуштар арбын экендиги жана ушул маалда алар ушул бетте көрсөтүлгөн кеңири жол картасында келерки жылга ойлогон ойлорун иретке келтиргени менен, артыкчылыктар колдонуучуга ылайыкташтырылаарын жүйө келтиришти.
Кайра Байланыш. Учурда биз төмөнкү негизги линияларды таба алабыз:
- Көбүрөөк моделдерди колдоо (күтүлүп жаткан классикалык моделдер, GAN, RNN, Transformers, күчөтүлгөн окутуу моделдери, ыктымалдык программалоо, AutoML ж.б.).
- Колдонууну жана программалоо тажрыйбасын өркүндөтүү үчүн API жана китепканаларды кеңейтүү (көбүрөөк операторлор, оптимизаторлор, жоготуу функциялары ж.б.)
- Комплекстүү Huawei Ascend процессорун колдоо жана натыйжалуулугун оптималдаштыруу (компиляцияны оптималдаштыруу, ресурстарды пайдаланууну жакшыртуу ж.б.)
- Программалык камсыздоонун стекинин өнүгүшү жана эсептөөчү график оптимизациясынын аткарылышы (аралык IR чагылдырылышын өркүндөтүү, кошумча оптималдаштыруу мүмкүнчүлүктөрүн кошуу ж.б.).
- Көптөгөн программалоо тилдерин колдоо (бир гана Python эмес).
- Автоматтык пландаштырууну, маалыматтарды бөлүштүрүүнү ж.б. оптималдаштыруу менен бөлүштүрүлгөн окутуу жакшырды.
- Окутуу процессинде программистке "мүчүлүштүктөрдү оңдоону" оңдоо жана гиперпараметрлерди жөндөөнү жакшыртуу үчүн MindInsight куралын өркүндөтүңүз.
- Edge'деги түзмөктөргө корутунду функциясын жеткирүүдөгү ийгилик (коопсуздук, ONNX аркылуу платформалык эмес моделдерди колдоо ж.б.)
Коомчулук баракчасында MindSporeдун Huawei жана Кытайдан башка Эдинбург Университети, Лондон Империал Колледжи, Мюнстер Университети (Германия) же Париж-Саклей Университети сыяктуу өнөктөштөрү бар экендигин көрө аласыз. Алар ачык башкаруу моделин колдонушарын жана бардык жамаатты кодексте да, документтерде дагы өз салымын кошууга чакырышаарын билдиришти.
Корутунду
Ыкчам кароодон кийин, туура иштеп чыгуу жана ишке ашыруу чечимдери окшош (окшоштук жана автоматтык дифференциялоо) өркүндөтүүгө жана оптималдаштырууга мүмкүнчүлүк түзүп, алар каалаган алкактарга караганда жакшыраак иштешет. Бирок PyTorch жана TensorFlow кармаш үчүн алдыда дагы көп иштер бар, жана баарынан мурда жамаатты куруу, жөн гана эмес! Бирок, Huawei сыяктуу бир ири компаниянын колдоосу менен, бардыгы болуп калышы мүмкүн экендигин, же үч жыл мурун PyTorchтун (Facebook) биринчи версиясы чыгып, анын таманына жакын болушу мүмкүн экендиги баарыбызга белгилүү. of TensorFlow (Google)?