Արդյունավետ արհեստական ​​ինտելեկտի մոդելի տեղադրում Edge սարքերի վրա՝ Hardware-Software Co-Design-ի միջոցով | B4N1

Արդյունավետ արհեստական ​​ինտելեկտի մոդելի տեղադրում Edge սարքերի վրա՝ Hardware-Software Co-Design-ի միջոցով

7 months ago · b4n1 Read time: 3 min

** Արդյունավետ AI մոդելի տեղադրում Edge սարքերի վրա Hardware-Software Co-Design-ի միջոցով**

Ներածություն

Եզրային սարքերի տարածումը նոր հնարավորություններ է ստեղծել Արհեստական ինտելեկտի (AI) հավելվածների համար, որոնք կարող են տեղակայվել իրական ժամանակում՝ հնարավորություն տալով այնպիսի ծրագրերի, ինչպիսիք են խելացի տները, ինքնավար մեքենաները և արդյունաբերական ավտոմատացումը: Այնուամենայնիվ, սահմանափակ հաշվողական ռեսուրսները և եզրային սարքերի հզորության սահմանափակումները զգալի մարտահրավերներ են ստեղծում AI մոդելի տեղակայման համար: Այս հոդվածում մենք կուսումնասիրենք AI-ի, ծրագրային ապահովման ճարտարագիտության և ճարտարապետության խաչմերուկը՝ եզրային սարքի աշխատանքը օպտիմալացնելու համար՝ օգտագործելով AI մոդելի արդյունավետության և ապարատային-ծրագրային համատեղ նախագծման տեխնիկայի վերջին զարգացումները:

AI մոդելի տեղադրման մարտահրավերները Edge սարքերում

Edge սարքերը բնութագրվում են իրենց սահմանափակ հաշվողական ռեսուրսներով, ներառյալ պրոցեսորը, հիշողությունը և էներգիայի սպառումը: Ավանդական AI մոդելները, որոնք հաճախ նախատեսված են ամպի վրա հիմնված տեղակայման համար, օպտիմիզացված չեն եզրային սարքերի համար: Արդյունքում նրանք կարող են հանգեցնել.

  • Կատարման վատթարացում. AI մոդելները կարող են արդյունավետորեն չաշխատել ծայրամասային սարքերի վրա, ինչը հանգեցնում է արձագանքման դանդաղեցման և ճշգրտության նվազմանը:
  • Էլեկտրաէներգիայի սպառում. AI մոդելները կարող են զգալի էներգիա սպառել, ինչը կարող է մտահոգիչ լինել մարտկոցով աշխատող ծայրամասային սարքերի համար:
  • Հիշողության սահմանափակումներ. AI մոդելները կարող են մեծ քանակությամբ հիշողություն պահանջել, ինչը կարող է մարտահրավեր լինել սահմանափակ հիշողության ռեսուրսներով եզրային սարքերի համար:

** Սարքավորումների և ծրագրային ապահովման համատեղ նախագծման տեխնիկա**

Այս մարտահրավերներին դիմակայելու համար ապարատային-ծրագրային համատեղ նախագծման տեխնիկան հայտնվել է որպես խոստումնալից լուծում: Այս տեխնիկան ներառում է եզրային սարքի և՛ ապարատային, և՛ ծրագրային բաղադրիչների նախագծում տանդեմում, օպտիմալացնելով դրանք AI մոդելի տեղակայման համար:

1. Մոդելային հատում

Մոդելային էտումը ներառում է AI մոդելից անհարկի կշիռների և կապերի հեռացում, դրա չափի և հաշվողական պահանջների կրճատում: Այս տեխնիկան կարող է կիրառվել ինչպես նեյրոնային ցանցերի, այնպես էլ որոշումների ծառերի վրա:

«Պիթոն». ներմուծման ջահ ներմուծել torch.nn որպես nn

դաս ModelPruning (nn.Module): def init(self): սուպեր (ModelPruning, self).init() self.fc1 = nn.Linear(784, 128) self.fc2 = nn.Linear(128, 10)

def առաջ (ես, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    վերադարձ x

մոդել = ModelPruning () pruned_model = torch.nn.utils.prune_l1_unstructured (մոդել, «քաշ», 0.1)


### **2. Գիտելիքների թորում**

Գիտելիքի թորումը ներառում է գիտելիքների փոխանցում մեծ, բարդ արհեստական ինտելեկտի մոդելից ավելի փոքր, ավելի պարզ մոդելի: Այս տեխնիկան կարող է օգտագործվել AI մոդելի չափը և հաշվողական պահանջները նվազեցնելու համար:

«Պիթոն».
ներմուծման ջահ
ներմուծել torch.nn որպես nn

դասի Գիտելիքի թորում (nn.Module):
    def __init__(self):
        սուպեր(Գիտելիք թորում, ինքնորոշում):__սկզբում__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def առաջ (ես, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        վերադարձ x

ուսուցիչ_մոդել = ModelPruning()
student_model = Գիտելիքի թորում ()

3. Քվանտացում

Քվանտացումը ներառում է AI մոդելի կշիռների և ակտիվացումների ճշգրտության նվազեցում, AI մոդելի հաշվողական պահանջների նվազեցում:

«Պիթոն». ներմուծման ջահ ներմուծել torch.nn որպես nn

դասի քվանտացում (nn.Module): def init(self): գեր(Քվանտացում, ինքնորոշում):սկզբում() self.fc1 = nn.Linear(784, 128) self.fc2 = nn.Linear(128, 10)

def առաջ (ես, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    վերադարձ x

մոդել = ModelPruning () quantized_model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)


**Թոփ 5-10 ամենաշատ օգտագործվող հրամաններ/հատվածներ**

| Հրաման/ Հատված | Նկարագրություն |
| --- | --- |
| `torch.nn.utils.prune_l1_unstructured(model, 'weight', 0.1)` | Մոդելային էտում՝ օգտագործելով L1 կանոնակարգման |
| `torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)` | Քվանտացում դինամիկ քվանտավորման միջոցով |
| `torch.nn.utils.kldistance(ուսուցիչ_մոդել, ուսանող_մոդել)` | Գիտելիքների թորում KL դիվերգենցիայի միջոցով |
| `torch.nn.utils.weight_norm(model.fc1)` | Քաշի նորմալացում՝ օգտագործելով քաշի նորմ |
| `torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)` | Գրադիենտ կտրում` օգտագործելով clip grad norm |
| `torch.nn.utils.clip_grad_value_(model.parameters(), 1.0)` | Գրադիենտ կտրում` օգտագործելով clip grad արժեքը |
| `torch.nn.utils.remove_weight_norm(model.fc1)` | Քաշի նորմալացման հեռացում՝ օգտագործելով քաշի նորմը |
| `torch.nn.utils.fuse_conv_bn_eval(model.fc1)` | Կոնվոլյուցիոն շերտի միաձուլում, օգտագործելով ապահովիչ conv bn eval |
| `torch.nn.utils.fuse_bn_eval(model.fc2)` | Խմբաքանակի նորմալացման միաձուլում, օգտագործելով ապահովիչ bn eval |
| `torch.nn.utils.fuse_bn_eval(model.fc1)` | Խմբաքանակի նորմալացման միաձուլում, օգտագործելով ապահովիչ bn eval |

**Վիզուալիզացիա**


``` գծապատկեր
{
  «տեսակ»՝ «բար»,
  "տվյալներ": {
    «պիտակներ»՝ [«Model Pruning», «Knowledge Distillation», «Quantization»],
    «տվյալների հավաքածուներ»: {
      «պիտակ»: «Ճշգրտություն»,
      «տվյալներ»: [0.9, 0.85, 0.8]
    }
  },
  «Ընտրանքներ»: {
    «վերնագիր»: {
      «ցուցադրում»՝ ճշմարիտ,
      "text": "Ճշգրտության համեմատություն"
    },
    "լեգենդ": {
      «ցուցադրում»՝ ճշմարիտ
    }
  }
}

Եզրակացություն

Արդյունավետ AI մոդելի տեղադրումը ծայրամասային սարքերի վրա պահանջում է ապարատային և ծրագրային համատեղ նախագծման տեխնիկայի համադրություն: Մոդելային էտումը, գիտելիքների թորումը և քվանտացումը այն մեթոդներից են, որոնք կարող են օգտագործվել AI մոդելների չափը և հաշվողական պահանջները նվազեցնելու համար: Օգտագործելով այս տեխնիկան՝ մշակողները կարող են ստեղծել AI մոդելներ, որոնք օպտիմիզացված են ծայրամասային սարքերի համար՝ հնարավորություն տալով իրական ժամանակում կիրառել այնպիսի ծրագրեր, ինչպիսիք են խելացի տները, ինքնավար մեքենաները և արդյունաբերական ավտոմատացումը:

Ապագայի աշխատանք

Այս ոլորտում հետագա աշխատանքը ներառում է.

  • Նոր ապարատային-ծրագրային համատեղ նախագծման տեխնիկայի մշակում. Հետազոտողները և ծրագրավորողները կարող են ուսումնասիրել նոր տեխնիկա` եզրային սարքերի համար AI մոդելների օպտիմալացման համար:
  • Մոդելների էտման և գիտելիքների թորման ալգորիթմների բարելավում. մոդելների էտման և գիտելիքների թորման ավելի արդյունավետ ալգորիթմների մշակումը կարող է հանգեցնել ավելի լավ կատարողականության և ճշգրտության:
  • Արհեստական ​​ինտելեկտի այլ մոդելների օգտագործման ուսումնասիրություն. AI-ի այլ մոդելներ, ինչպիսիք են որոշման ծառերը և պատահական անտառները, կարող են ուսումնասիրվել ծայրամասային սարքերի տեղակայման համար:

Շարունակելով զարգացնել ապարատային-ծրագրային համատեղ նախագծման ոլորտը՝ մենք կարող ենք ստեղծել ավելի արդյունավետ և արդյունավետ AI մոդելներ եզրային սարքերի համար՝ հնարավորություն տալով հավելվածների և օգտագործման դեպքերի լայն շրջանակ:


Have Questions?

Let's Talk

Contact me on LinkedIn