Ukuthunyelwa Okuphumelelayo Kwemodeli ye-AI kumadivayisi e-Edge nge-Hardware-Software Co-Design | B4N1

Ukuthunyelwa Okuphumelelayo Kwemodeli ye-AI kumadivayisi e-Edge nge-Hardware-Software Co-Design

7 months ago · b4n1 Read time: 3 min

Ukusetshenziswa Okuphumelelayo Kwemodeli ye-AI kumadivayisi e-Edge nge-Hardware-Software Co-Design

Isingeniso

Ukwanda kwamadivayisi asemaphethelweni kudale amathuba amasha ezinhlelo zokusebenza ze-Artificial Intelligence (AI) ukuthi zisetshenziswe ngesikhathi sangempela, okuvumela izinhlelo zokusebenza ezifana nezindlu ezihlakaniphile, izimoto ezizimele, kanye ne-automation yezimboni. Kodwa-ke, izinsiza ezilinganiselwe zokubala kanye nezingqinamba zamandla zamadivayisi asemaphethelweni zibeka izinselelo ezinkulu ekusetshenzisweni kwemodeli ye-AI. Kulesi sihloko, sizohlola ukuhlangana kwe-AI, ubunjiniyela besoftware, kanye nezakhiwo ukuze sithuthukise ukusebenza kwedivayisi enqenqemeni, sithole intuthuko yakamuva ekusebenzeni kahle kwemodeli ye-AI kanye namasu okuklama ngokubambisana kwesoftware yehadiwe.

Izinselelo Zokusetshenziswa Kwemodeli ye-AI kumadivayisi we-Edge

Amadivayisi e-Edge abonakala ngezisetshenziswa zawo ezilinganiselwe zokubala, ezifaka i-CPU, inkumbulo, nokusetshenziswa kwamandla. Amamodeli endabuko e-AI, avame ukudizayinelwa ukusetshenziswa okusekelwe emafini, awathuthukisiwe kumadivayisi asemaphethelweni. Ngenxa yalokho, zingaholela ku:

  • Ukonakaliswa kokusebenza: Amamodeli e-AI angase angasebenzi kahle kumadivayisi asemaphethelweni, okuholela ezikhathini zokuphendula ezihamba kancane nokuncipha kokunemba.
  • Ukusetshenziswa kwamandla: Amamodeli e-AI angasebenzisa amandla abalulekile, okungaba ukukhathazeka kumadivayisi aphethwe yibhethri.
  • Izingqinamba zememori: Amamodeli e-AI angadinga inani elikhulu lememori, okungaba inselele kumadivayisi asemaphethelweni anezinsiza zenkumbulo ezilinganiselwe.

I-Hardware-Software Co-Design Techniques

Ukubhekana nalezi zinselelo, amasu okuklama ngokubambisana kwe-hardware-software avele njengesixazululo esithembisayo. Lawa masu afaka ukuklama kokubili izingxenye zehadiwe nesofthiwe yedivayisi esemaphethelweni e-tandem, ukuzilungiselela ukuthunyelwa kwemodeli ye-AI.

1. Ukuthena Imodeli

Ukuthena okuyimodeli kubandakanya ukususa izisindo ezingadingekile kanye nokuxhunywa kumodeli ye-AI, ukunciphisa ubukhulu bayo kanye nezidingo zokubala. Le nqubo ingasetshenziswa kuwo womabili amanethiwekhi we-neural nezihlahla zokunquma.

ngenisa ithoshi
ngenisa ithoshi.nn njenge-nn

class ModelPruning(nn.Module):
    def __init__(self):
        super(ModelPruning, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def phambili(self, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        buyisela x

imodeli = ModelPruning()
pruned_model = torch.nn.utils.prune_l1_unstructured(imodeli, 'isisindo', 0.1)

2. Ukwehliswa kolwazi

Ukucwiliswa kolwazi kubandakanya ukudlulisa ulwazi kusuka kumodeli ye-AI enkulu, eyinkimbinkimbi iye kwencane, elula. Le nqubo ingasetshenziswa ukunciphisa usayizi kanye nezidingo zokubala zemodeli ye-AI.

ngenisa ithoshi
ngenisa ithoshi.nn njenge-nn

class KnowledgeDistillation(nn.Module):
    def __init__(self):
        super(KnowledgeDistillation, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def phambili(self, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        buyisela x

teacher_model = ModelPruning()
student_model = KnowledgeDistillation()

3. Quantization

Ukulinganisa kuhlanganisa ukwehlisa ukunemba kwezisindo zemodeli ye-AI nokwenza kusebenze, ukwehlisa izidingo zokubala zemodeli ye-AI.

ngenisa ithoshi
ngenisa ithoshi.nn njenge-nn

i-class Quantization(nn.Module):
    def __init__(self):
        super(Quantization, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def phambili(self, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        buyisela x

imodeli = ModelPruning()
quantized_model = torch.quantization.quantize_dynamic(imodeli, {torch.nn.Linear}, dtype=torch.qint8)

Imiyalo/Amazwibela Aphezulu Okuyi-5-10

Umyalo/ Amazwibela Incazelo
torch.nn.utils.prune_l1_unstructured(imodeli, 'isisindo', 0.1) Imodeli yokuthena usebenzisa i-L1 ejwayelekile
ithoshi.quantization.quantize_dynamic(imodeli, {torch.nn.Linear}, dtype=torch.qint8) I-Quantization usebenzisa i-dynamic quantization
torch.nn.utils.kldistance(imodeli_kathisha, imodeli_yomfundi) Ulwazi distillation usebenzisa KL divergence
torch.nn.utils.weight_norm(model.fc1) Ukujwayelekile kwesisindo kusetshenziswa inkambiso yesisindo
torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) Ukusika i-Gradient usebenzisa i-clip grad evamile
torch.nn.utils.clip_grad_value_(model.parameters(), 1.0) Ukusika igrediyenti kusetshenziswa inani le-clip grad
torch.nn.utils.remove_weight_norm(imodeli.fc1) Ukususwa kwesisindo esijwayelekile usebenzisa susa isisindo esijwayelekile
torch.nn.utils.fuse_conv_bn_eval(model.fc1) I-Convolutional layer fusion kusetshenziswa i-fuse conv bn eval
torch.nn.utils.fuse_bn_eval(model.fc2) I-Batch normalization fusion kusetshenziswa i-fuse bn eval
torch.nn.utils.fuse_bn_eval(model.fc1) I-Batch normalization fusion kusetshenziswa i-fuse bn eval

Ukubona

{
  "type": "bar",
  "idatha": {
    "labels": ["Imodeli Yokuthena", "Ukuchithwa Kolwazi", "Quantization"],
    "idathasethi": {
      "label": "Ukunemba",
      "idatha": [0.9, 0.85, 0.8]
    }
  },
  "izinketho": {
    "isihloko": {
      "Display": iqiniso,
      "text": "Ukuqhathanisa Okunembayo"
    },
    "i-legend": {
      "isibonisi": iqiniso
    }
  }
}

Isiphetho

Ukuthunyelwa kwemodeli ye-AI esebenzayo kumadivayisi asemaphethelweni kudinga inhlanganisela yehadiwe kanye namasu okuklama ngokubambisana kwesoftware. Ukuthena okuyimodeli, ukuhluzwa kolwazi, kanye nokulinganisa amanani amanye amasu angasetshenziswa ukunciphisa usayizi nezidingo zokubala zamamodeli we-AI. Ngokusebenzisa lawa maqhinga, abathuthukisi bangakha amamodeli e-AI alungiselelwe amadivayisi asemaphethelweni, anikeze amandla izinhlelo zokusebenza zesikhathi sangempela njengezindlu ezihlakaniphile, izimoto ezizimele, kanye ne-automation yezimboni.

Umsebenzi Wesikhathi esizayo

Umsebenzi wesikhathi esizayo kule ndawo uhlanganisa:

  • Ukuthuthukisa amasu amasha okuklama ngokubambisana kwesoftware yehadiwe: Abacwaningi nonjiniyela bangahlola amasu amasha okuthuthukisa amamodeli e-AI kumadivayisi asemaphethelweni.
  • Ukuthuthukisa imodeli yokuthena kanye ne-algorithm yolwazi yokuhluza: Ukuthuthukisa ama-algorithms asebenza kahle kakhulu okuthena okuyimodeli kanye nokuhluza ulwazi kungaholela ekusebenzeni okungcono nokunemba.
  • Ukuphenya ukusetshenziswa kwamanye amamodeli e-AI: Amanye amamodeli e-AI, njengezihlahla zesinqumo namahlathi angahleliwe, angahlolwa ukuze kusetshenziswe idivayisi esemaphethelweni.

Ngokuqhubeka nokuthuthukisa inkambu ye-hardware-software co-design, singakha amamodeli e-AI asebenza kahle kakhulu nasebenza ngempumelelo kumadivayisi asemaphethelweni, okuvumela inhlobonhlobo yezinhlelo zokusebenza kanye namacala okusebenzisa.


Have Questions?

Let's Talk

Contact me on LinkedIn