Արհեստական բանականությունը՝ որպես ժամանակակից ճարտարագիտության հիմքային շերտ
Հայերեն թարգմանություն
Ինչպես է ԱԲ-ն անցնում ամեն տեսակի ապարատային միջոցների վրա, և ինչ պետք է իմանան ինժեներներն այսուհետ։
Հաջորդ տասնամյակում ԱԲ-ն չի լինի մի բան, որը վերջում «ավելացնում» եք արտադրանքին։ Դա կլինի մի բան, որն արտադրանքը առաջին օրվանից նախագծված է ընդունելու՝ լինի դա սենսորային հանգույց, ՌՀ համակարգ, ներկառուցված ապարատային սարք, թե ԱԲ-ով հագեցած նոութբուքի վրա աշխատող հավելված։
Այս հոդվածը բացատրում է՝ ինչ է փոխվում ապարատային միջոցներում, ինչու պետք է մոդելները օպտիմալացվեն, և ինչու ՌՀ-ի, ծրագրային ապահովման, ապարատային ապահովման, ներկառուցված համակարգերի կամ հավելվածների ոլորտում աշխատող յուրաքանչյուր ինժեների անհրաժեշտ կլինի մեքենայական ուսուցման գործնական ըմբռնում։
1. Տեղաշարժը. ԱԲ-ն լքում է ամպը
Ոչ վաղ անցյալում ընդհանուր օրինաչափությունը պարզ էր՝ սարքերը հավաքում էին տվյալներ, ուղարկում ամպ, և ամպը կայացնում էր «խելացի» որոշումը։ Այդ մոդելը դեռ գոյություն ունի, բայց շատ իրական համակարգերի համար այն այլևս բավարար չէ։
Այսօր տեսնում ենք շարժ դեպի եզրային հաշվարկներ (edge computing)՝ ավելի շատ հաշվարկներ կատարել տվյալների ստեղծման վայրին մոտ։ Ամպային ԱԲ-ն դեռ կարևոր է և կմնա անփոխարինելի ուսուցման և ծանր աշխատանքային բեռների համար, բայց երբ հաշվարկը մոտեցվում է սարքին և հիմնված է ԱԲ-ի վրա, այն անվանում ենք եզրային ԱԲ (edge AI)։ Գործնական պատճառը պարզ է՝ շատ համակարգեր չեն կարող իրենց թույլ տալ ուշացումներ, կապի խնդիրներ կամ տվյալների մշտական փոխանցում։
Երեք ուժ ԱԲ-ն տեղափոխում են սարքերի վրա՝
Ցածր ուշացում. ինտերակտիվ հավելվածները, իրական ժամանակի կառավարումը և ՌՀ հարմարեցումը հաճախ պահանջում են որոշումներ վայրկյանների ընթացքում կամ նույնիսկ ավելի արագ։
Գաղտնիություն՝ նախագծմամբ (privacy-by-design). երբ չմշակված աուդիոն, պատկերները, հեռաչափական տվյալները կամ օգտատիրոջ վարքագիծը երբեք չեն լքում սարքը, գաղտնիությունն ու համապատասխանությունը ավելի հեշտ է երաշխավորել։
Արժեք և հուսալիություն. թողունակությունը, ամպային ծախսերը և ցանցի խափանումները ավելի քիչ ցավոտ են դառնում, երբ սարքը կարող է «մտածել» տեղում։
Երբ ընդունում եք այդ սահմանափակումները, տեխնիկական նպատակը պարզ է դառնում՝ արդյունավետ կատարել սարքի վրա եզրակացում (inference), նույնիսկ սահմանափակ ապարատային միջոցների վրա։
2. Որտեղ է աշխատում ԱԲ-ն. միկրոկառավարիչներից մինչև ԱԲ համակարգիչներ
ԱԲ-ն աշխատում է ոչ միայն մեկ «տեսակի համակարգչի» վրա։ Այն աշխատում է հարթակների մի ամբողջ սպեկտրի վրա, որոնցից յուրաքանչյուրն ունի տարբեր սահմանափակումներ և ուժեղ կողմեր։ Գործնականում համակարգերը հաճախ օգտագործում են և՛ ամպային ԱԲ, և՛ տեղային հաշվարկներ. ամպն օգտագործվում է ուսուցման և ծանր հաշվարկների համար, իսկ սարքերը եզրակացումը կատարում են տեղում, երբ կարևոր են ուշացումը, գաղտնիությունը կամ հուսալիությունը։
Միկրոկառավարիչները (MCU) ամենափոքր դասն են։ Դրանք հաճախ ունեն կիլոբայթներով օպերատիվ հիշողություն և սնուցման խիստ սահմանափակումներ։ Այնուամենայնիվ, դրանք կարող են TinyML-ի միջոցով աշխատեցնել կոմպակտ մոդելներ, ինչը օգտակար է այնպիսի առաջադրանքների համար, ինչպիսիք են անոմալիաների հայտնաբերումը, ժեստերի ճանաչումը կամ սենսորների տվյալներով պարզ դասակարգումը։
Ներկառուցված Linux սարքերը (Linux-ով աշխատող փոքր տախտակներ կամ մոդուլներ) տրամադրում են ավելի շատ հիշողություն, բազմամիջուկ պրոցեսորներ և երբեմն արագացուցիչներ։ Դրանք տարածված են ռոբոտաշինության համակարգերում, արդյունաբերական դարպասներում և եզրային սերվերներում։
Ժամանակակից սպառողական և արդյունաբերական սարքերը գնալով ավելի են հենվում «համակարգ-բյուրեղի վրա» (SoC) նախագծերի վրա, որտեղ պրոցեսորի միջուկները, հիշողության կառավարիչները և մուտք/ելքը գտնվում են մեկ բյուրեղի վրա։ Շատ SoC-ներ ներառում են հատուկ NPU (նեյրոնային մշակման միավոր)՝ նեյրոնային ցանցերի գործողություններն արդյունավետ արագացնելու համար։
Այս ամենը հանգեցնում է տարասեռ հաշվարկների՝ համակարգ, որտեղ տարբեր հաշվողական բլոկներ (CPU, GPU, NPU, DSP) կիսում են աշխատանքային բեռը։ Արտադրողականությունն այլևս միայն պրոցեսորի հաճախականության մասին չէ. խոսքը ճիշտ գործողությունները ճիշտ շարժիչին ուղղելու մասին է։
3. Ինժեներական հնարքը. մոդելները տեղավորել
Սահմանափակ սարքերի վրա մեքենայական ուսուցում աշխատեցնելը կախարդանք չէ, այլ կարգապահ օպտիմալացում։ Նույն գաղափարը նորից ու նորից է հայտնվում՝ նվազեցնել այն, ինչ անհրաժեշտ է մոդելին (հիշողություն, հաշվարկ, էներգիա)՝ պահպանելով առաջադրանքի համար բավարար ճշգրտություն։
Մոդելների սեղմումն այս մեթոդների ընդհանուր անվանումն է։ Ամենատարածված գործիքներն են՝
Քվանտացում. ավելի ցածր ճշգրտության թվերի օգտագործում (օրինակ՝ 8-բիթանոց ամբողջ թվեր 32-բիթանոց սահող կետով թվերի փոխարեն)։ Սա սովորաբար նվազեցնում է մոդելի չափը և արագացնում եզրակացումը։
Էտում (pruning). քիչ ներդրում ունեցող կշիռների կամ ալիքների հեռացում, ինչը մոդելը դարձնում է ավելի փոքր և երբեմն ավելի արագ։
Գիտելիքի թորում (distillation). փոքր «աշակերտ» մոդելի ուսուցում՝ մեծ «ուսուցիչ» մոդելին նմանակելու համար, ինչը հաճախ պահպանում է լավ ճշգրտություն՝ ծախսի մի մասով։
Ավելի խորը մակարդակում թիմերը գնալով ավելի են կիրառում ապարատային և ծրագրային ապահովման համատեղ նախագծում՝ ընտրելով մոդելների ճարտարապետություններ, որոնք համապատասխանում են թիրախային սարքի հիշողության հիերարխիային և այն գործողությունների բազմությանը, որոնք արագացուցիչները կարող են արդյունավետ կատարել։
Արդյունքը՝ մոդելներ, որոնք ոչ միայն ճշգրիտ են նոթբուքում, այլև հուսալի են արտադրանքում։
4. Գործընթացի վրա ազդող սահմանափակումներ
Բենչմարքում ամենաբարձր արդյունք ունեցող մոդելը ինքնաբերաբար ճիշտ ընտրություն չէ տեղակայման համար։ Իրական նախագծերում տեղակայվում է այն մոդելը, որը բավարարում է համակարգի սահմանափակումներին, և դրա ընտրությունը գործընթաց է՝ թեկնածու մոդելի ընտրություն, դրա օպտիմալացում, բենչմարքային փորձարկում և վավերացում։ Այս գործընթացը կախված է նաև բուն համակարգի ընտրությունից և համակարգի պարտադրած սահմանափակումների հստակ սահմանումից։
Այլ կերպ ասած՝ տեղակայումը պարզապես «թղթի վրա լավագույն մոդելն ընտրել» չէ։ Դա գործընթաց է, որտեղ արտադրողականությունը պետք է դիմանա իրական սահմանափակումներին՝ ուշացում, հիշողություն, հաշվարկ, ջերմային ռեժիմ, արժեք, հուսալիություն և այն միջավայրը, որտեղ սարքն աշխատում է։
Էներգաարդյունավետությունը հիմնական սահմանափակումներից մեկն է, հատկապես ներկառուցված կամ ջերմային սահմանափակումներ ունեցող սարքերում։ Ժամանակի ընթացքում հոգնածությունը (FATIC) կամ ծերացումը, արտաքին միջավայրի ազդեցությունը և բուն սենսորի բնույթը կարող են ժամանակի ընթացքում առաջացնել տվյալների բացթողումներ (եթե տվյալները համապատասխանաբար չմշակեք)։
Մեկ այլ լուրջ մարտահրավեր տվյալների շեղումն է (data drift)՝ իրական աշխարհի մուտքային տվյալների բաշխումը փոխվում է՝ համեմատած այն բանի հետ, ինչ մոդելը տեսել է ուսուցման ընթացքում։ Մոդելը պետք է սպասարկվի տեղակայումից հետո (մոնիթորինգ, թարմացում, վերավավերացում)՝ հաշվի առնելով սենսորների իրական վարքագիծը, տվյալների բացթողումները, շեղումը և համակարգի սահմանափակումները։
5. Ինչու է յուրաքանչյուր ինժեների պետք ԱԲ-ի հիմունքներ
Քանի որ ԱԲ-ն դառնում է մատակարարվող համակարգերի մաս, ընկերություններին պետք են մասնագետներ, որոնք կարող են ԱԲ-ն երկարաժամկետ հուսալի դարձնել։ Հենց այստեղ է աճում ML ինժեների դերը։
ML ինժեները միայն մոդել ուսուցանողը չէ։ Նա կառուցում է ամբողջական համակարգը՝ տվյալների փոխակրիչներ, գնահատում, տեղակայում, մոնիթորինգ, թարմացումներ և հետ վերադարձի ռազմավարություններ։
Քանի որ ԱԲ-ն դառնում է հարթակների ստանդարտ հնարավորություն, այս ոլորտներից յուրաքանչյուրի ինժեներները կշփվեն ML գործընթացների, մասնավորապես մոդելների հետ, նույնիսկ եթե իրենք դրանք չեն ուսուցանում։
Եկեք տեսնենք, թե ինչպես այն կարող է օգտագործվել տարբեր կիրառություններում։
Բառարան
ՌՀ ճարտարագիտություն
ML-ը կարող է օգնել ալիքի գնահատման, խանգարումների հայտնաբերման, ազդանշանների դասակարգման և ռեսուրսների հարմարվողական կառավարման հարցում։ Այս գործիքներն անվտանգ օգտագործելու համար ՌՀ ինժեներները պետք է հասկանան, թե ինչ է օպտիմալացնում մոդելը և որտեղ այն կարող է ձախողվել։
Ներկառուցված համակարգերի ճարտարագիտություն
Սարքի վրա եզրակացումը սենսորների չմշակված հոսքերը վերածում է որոշումների։ Ինժեներները պետք է հաշվի առնեն հիշողության սահմանափակումները, ուշացման բյուջեները, քվանտացման ազդեցությունները և կայունությունը, ինչպես նաև էներգասպառումը՝ մոդելի հզորության բյուջեի շրջանակում։
Ապարատային ճարտարագիտություն
Ապարատային ԱԲ-ն փոխում է այն, թե ինչպես ենք նախագծում, փորձարկում և վավերացնում համակարգերը։ Այն նաև օգնում է գաղափարը հասցնել ապարատային պահանջների։
Ծրագրային ճարտարագիտություն
ML-ը գտնվում է արտադրանքների ներսում (որոնում, դասակարգում, անհատականացում, անոմալիաների հայտնաբերում)։ Ինժեներները պետք է մեկնաբանեն չափանիշները, հայտնաբերեն հետընթացները և հասկանան տվյալների փոխակրիչները։
Կիրառական ճարտարագիտություն
Կիրառական ճարտարագիտության մեջ պետք է հենց սկզբից հաշվի առնենք կիրառության պահանջները։ Նույն սարքը կարող է օգտագործվել տարբեր վայրերում, միջավայրերում և կոնֆիգուրացիաներում, ուստի պահանջները կարող են փոխվել՝ կախված նրանից, թե որտեղ և ինչպես է այն օգտագործվում։ Եթե այս տարբերությունները հաշվի չառնենք, համակարգը կարող է լավ աշխատել մի պայմաններում, բայց վատթարանալ կամ ձախողվել մյուսում։
6. Ինչ է սա նշանակում հաջորդ տասնամյակի համար
Եթե ավելի լայն նայեք, ի հայտ է գալիս պարզ օրինաչափություն՝
Ապարատային միջոցները լռելյայն դառնում են ԱԲ-ի ունակ (NPU-ներով SoC-ներ, եզրային մոդուլներ, արդյունավետ կատարման միջավայրեր)։
Մոդելները դառնում են ավելի փոքր և ավելի խելացի՝ սեղմման և համատեղ նախագծման շնորհիվ։
Կազմակերպություններին ամենուր պետք կլինեն ԱԲ-ի գրագետ ինժեներներ։
Ապարատային ԱԲ-ն դառնում է ավելի իրատեսական և կլինի ճարտարագիտական ճանապարհային քարտեզի մաս։
Հիմնական հասկացություններ (կարճ բացատրություններ)
Ամպային ԱԲ (Cloud AI)
ԱԲ-ի ուսուցում և/կամ եզրակացում, որը կատարվում է կենտրոնացված ամպային ենթակառուցվածքում։
Եզրային հաշվարկներ (Edge computing)
Հաշվարկներ, որոնք կատարվում են տվյալների ստեղծման վայրին մոտ (սարքեր, դարպասներ, տեղային մոդուլներ)։
Եզրային ԱԲ (Edge AI)
ԱԲ-ի եզրակացում, որը կատարվում է եզրային սարքերի վրա, այլ ոչ թե հեռավոր տվյալների կենտրոնում։
Սարքի վրա եզրակացում (On-device inference)
Ուսուցանված մոդելի տեղային աշխատեցում սարքի վրա։
Միկրոկառավարիչ (MCU)
Փոքր, ցածր էներգասպառմամբ համակարգիչ բյուրեղի վրա, որն օգտագործվում է ներկառուցված արտադրանքներում։
TinyML
ML մոդելները միկրոկառավարիչների և այլ գերցածր էներգասպառմամբ սարքերի վրա աշխատեցնելու մեթոդներ և գործիքներ։
Ներկառուցված Linux (Embedded Linux)
Ներկառուցված սարք, որն աշխատում է Linux օպերացիոն համակարգով։
Համակարգ-բյուրեղի վրա (SoC)
Մեկ բյուրեղ, որը միավորում է պրոցեսորի միջուկները, հիշողության կառավարիչները և մուտք/ելքը (և հաճախ արագացուցիչներ)։
Նեյրոնային մշակման միավոր (NPU)
Նեյրոնային ցանցերի գործողությունների համար օպտիմալացված ապարատային արագացուցիչ՝ մեկ վատտի հաշվով բարձր արտադրողականությամբ։
Տարասեռ հաշվարկներ
Նախագիծ, որտեղ մի քանի հաշվողական շարժիչներ (CPU, GPU, NPU, DSP) կիսում են աշխատանքային բեռները։
Մոդելների սեղմում
Մեթոդներ, որոնք նվազեցնում են մոդելի չափը և հաշվարկային ծախսը՝ պահպանելով ընդունելի արտադրողականություն։
Քվանտացում
Թվային ճշգրտության նվազեցում (օր.՝ FP32-ից INT8/INT4)՝ հիշողության օգտագործումը նվազեցնելու և եզրակացումն արագացնելու համար։
Էտում (Pruning)
Մոդելից ավելորդ կշիռների կամ ալիքների հեռացում՝ չափը նվազեցնելու և երբեմն արագությունը մեծացնելու համար։
Գիտելիքի թորում
Ավելի փոքր մոդելի (աշակերտ) ուսուցում՝ ավելի մեծ մոդելին (ուսուցիչ) նմանակելու համար։
Ապարատային և ծրագրային ապահովման համատեղ նախագծում
Մոդելի և տեղակայման փոխակրիչի նախագծում՝ թիրախային ապարատային միջոցները նկատի ունենալով։
Ուշացում (Latency)
Ժամանակը, որն անհրաժեշտ է համակարգին ելք տալու համար։
Էներգաարդյունավետություն
Որքան արդյունավետ է համակարգը կատարում եզրակացումը սահմանափակ հզորության/ջերմային բյուջեի պայմաններում։
Հզորության բյուջե
Սահմանված սահմանաչափ, թե որքան հզորություն կարող է սպառել մոդելը/համակարգը՝ կայուն և անվտանգ մնալու համար։
Տվյալների շեղում
Մուտքային տվյալների օրինաչափությունների փոփոխություն տեղակայումից հետո, որը ժամանակի ընթացքում կարող է նվազեցնել մոդելի որակը։

