Uskuna-dasturiy ta'minotni birgalikda loyihalash orqali chekka qurilmalarda AI modelini samarali joylashtirish | B4N1

Uskuna-dasturiy ta'minotni birgalikda loyihalash orqali chekka qurilmalarda AI modelini samarali joylashtirish

7 months ago · b4n1 Read time: 3 min

Uskuna-dasturiy ta'minotni birgalikda loyihalash orqali chekka qurilmalarda AI modelini samarali joylashtirish

Kirish

Keng qurilmalarning ko'payishi sun'iy intellekt (AI) ilovalarini real vaqt rejimida joylashtirish uchun yangi imkoniyatlar yaratdi, bu aqlli uylar, avtonom transport vositalari va sanoat avtomatizatsiyasi kabi ilovalarga imkon beradi. Biroq, cheklangan hisoblash resurslari va chekka qurilmalarning quvvat cheklovlari sun'iy intellekt modelini joylashtirish uchun jiddiy qiyinchiliklar tug'diradi. Ushbu maqolada biz sun'iy intellekt modeli samaradorligi va apparat-dasturiy ta'minotni birgalikda loyihalash texnikasidagi so'nggi yutuqlardan foydalangan holda qurilmaning chekka ishlashini optimallashtirish uchun AI, dasturiy injiniring va arxitekturaning kesishishini o'rganamiz.

Edge qurilmalarida AI modelini joylashtirish muammolari

Edge qurilmalari cheklangan hisoblash resurslari, jumladan CPU, xotira va quvvat sarfi bilan tavsiflanadi. Ko'pincha bulutga asoslangan joylashtirish uchun mo'ljallangan an'anaviy AI modellari chekka qurilmalar uchun optimallashtirilmagan. Natijada, ular quyidagilarga olib kelishi mumkin:

  • Ushlash qobiliyatining pasayishi: AI modellari chekka qurilmalarda samarali ishlamasligi mumkin, bu esa javob vaqtini sekinlashtiradi va aniqlikni pasaytiradi.
  • Quvvat iste'moli: AI modellari katta quvvat iste'mol qilishi mumkin, bu esa batareya bilan ishlaydigan chekka qurilmalar uchun tashvish tug'dirishi mumkin.
  • Xotira cheklovlari: AI modellari katta hajmdagi xotirani talab qilishi mumkin, bu esa xotira resurslari cheklangan chekka qurilmalar uchun qiyinchilik tug‘dirishi mumkin.

Uskuna-dasturiy ta'minotni birgalikda loyihalash usullari

Ushbu muammolarni hal qilish uchun apparat-dasturiy ta'minotni birgalikda loyihalash usullari istiqbolli yechim sifatida paydo bo'ldi. Ushbu usullar chekka qurilmaning apparat va dasturiy komponentlarini tandemda loyihalashtirish, ularni AI modelini joylashtirish uchun optimallashtirishni o'z ichiga oladi.

1. Model Azizillo

Modelni kesish AI modelidan keraksiz og'irliklar va ulanishlarni olib tashlashni, uning hajmini va hisoblash talablarini kamaytirishni o'z ichiga oladi. Ushbu uslub neyron tarmoqlarda ham, qarorlar daraxtlarida ham qo'llanilishi mumkin.

import mash'alasi
torch.nn ni nn sifatida import qiling

Class ModelPruning(nn.Module):
    def __init__ (o'z-o'zidan):
        super(ModelPruning, self).__init__()
        self.fc1 = nn.Chiziqli(784, 128)
        self.fc2 = nn.Chiziqli(128, 10)

    def oldinga (self, x):
        x = torch.relu (self.fc1(x))
        x = self.fc2(x)
        x qaytaring

model = ModelPruning()
pruned_model = torch.nn.utils.prune_l1_unstructured(model, "og'irlik", 0,1)

2. Bilimni distillash

Bilimlarni distillash bilimlarni katta, murakkab AI modelidan kichikroq, oddiyroq modelga o'tkazishni o'z ichiga oladi. Ushbu texnikadan AI modelining hajmi va hisoblash talablarini kamaytirish uchun foydalanish mumkin.

import mash'alasi
torch.nn ni nn sifatida import qiling

Class Knowledge Distillation(nn.Module):
    def __init__ (o'z-o'zidan):
        super(KnowledgeDistillation, self).__init__()
        self.fc1 = nn.Chiziqli(784, 128)
        self.fc2 = nn.Chiziqli(128, 10)

    def oldinga (self, x):
        x = torch.relu (self.fc1(x))
        x = self.fc2(x)
        x qaytaring

teacher_model = ModelPruning()
student_model = Knowledge Distillation()

3. Kvantlash

Kvantlash AI modelining og'irliklari va faollashuvlarining aniqligini kamaytirishni, AI modelining hisoblash talablarini kamaytirishni o'z ichiga oladi.

import mash'alasi
torch.nn ni nn sifatida import qiling

Kvantlash sinfi (nn.Module):
    def __init__ (o'z-o'zidan):
        super(Kvantlash, o'z-o'zidan).__init__()
        self.fc1 = nn.Chiziqli(784, 128)
        self.fc2 = nn.Chiziqli(128, 10)

    def oldinga (self, x):
        x = torch.relu (self.fc1(x))
        x = self.fc2(x)
        x qaytaring

model = ModelPruning()
kvantlangan_model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)

Eng koʻp ishlatiladigan 5-10 ta buyruq/parchalar

Buyruq/Snippet Tavsif
torch.nn.utils.prune_l1_unstructured(model, 'vazn', 0,1) L1 tartibga solish yordamida model Azizillo
torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8) Dinamik kvantlash yordamida kvantlash
torch.nn.utils.kldistance(o'qituvchi_model, talaba_model) KL divergentsiyasi yordamida bilimlarni distillash
torch.nn.utils.weight_norm(model.fc1) Og'irlik me'yoridan foydalangan holda vaznni normallashtirish
torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) Klip gradus normasi yordamida gradientni kesish
torch.nn.utils.clip_grad_value_(model.parameters(), 1.0) Clip grad qiymati yordamida gradientni kesish
torch.nn.utils.remove_weight_norm(model.fc1) Og'irlik normasini olib tashlash yordamida vaznni normallashtirishni olib tashlash
torch.nn.utils.fuse_conv_bn_eval(model.fc1) Fuse conv bn eval
torch.nn.utils.fuse_bn_eval(model.fc2) Fuse bn eval
torch.nn.utils.fuse_bn_eval(model.fc1) Fuse bn eval

Vizualizatsiya

{
  "turi": "bar",
  "ma'lumotlar": {
    "yorliqlar": ["Model Azizillo", "Bilimlarni distillash", "Kvantlash"],
    "ma'lumotlar to'plami": {
      "label": "Aniqlik",
      "ma'lumotlar": [0,9, 0,85, 0,8]
    }
  },
  "variantlar": {
    "sarlavha": {
      "displey": rost,
      "text": "Aniqlikni taqqoslash"
    },
    "afsona": {
      "displey": rost
    }
  }
}

Xulosa

Keng qurilmalarda sun'iy intellekt modelini samarali qo'llash apparat va dasturiy ta'minotni birgalikda loyihalash usullarining kombinatsiyasini talab qiladi. Modelni kesish, bilimlarni distillash va kvantlash AI modellarining hajmini va hisoblash talablarini kamaytirish uchun ishlatilishi mumkin bo'lgan ba'zi usullardir. Ushbu usullardan foydalangan holda, ishlab chiquvchilar aqlli uylar, avtonom transport vositalari va sanoat avtomatizatsiyasi kabi real vaqtda ilovalarni ishga tushirish imkonini beruvchi chekka qurilmalar uchun optimallashtirilgan AI modellarini yaratishi mumkin.

Kelajak ish

Ushbu sohadagi kelgusi ishlar quyidagilarni o'z ichiga oladi:

  • Uskuna-dasturiy taʼminotni birgalikda loyihalash usullarini ishlab chiqish: Tadqiqotchilar va ishlab chiquvchilar chekka qurilmalar uchun AI modellarini optimallashtirishning yangi usullarini oʻrganishlari mumkin.
  • Modellarni kesish va bilimlarni distillash algoritmlarini takomillashtirish: Modelni kesish va bilimlarni distillash uchun yanada samarali algoritmlarni ishlab chiqish yaxshi ishlash va aniqlikka olib kelishi mumkin.
  • Boshqa sunʼiy intellekt modellaridan foydalanishni oʻrganish: Qaror daraxtlari va tasodifiy oʻrmonlar kabi boshqa sunʼiy intellekt modellari chekka qurilmalarni oʻrnatish uchun oʻrganilishi mumkin.

Uskuna-dasturiy ta'minotni birgalikda loyihalash sohasini rivojlantirishni davom ettirish orqali biz chekka qurilmalar uchun yanada samarali va samarali AI modellarini yaratishimiz mumkin, bu esa keng ko'lamli ilovalar va foydalanish holatlarini ta'minlaydi.


Have Questions?

Let's Talk

Contact me on LinkedIn