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.