Kuyika Moyenera kwa AI Model pazida za Edge kudzera pa Hardware-Software Co-Design
Chiyambi
Kuchulukirachulukira kwa zida zam'mphepete kwapanga mwayi watsopano woti mapulogalamu a Artificial Intelligence (AI) agwiritsidwe ntchito munthawi yeniyeni, ndikupangitsa kuti ntchito monga nyumba zanzeru, magalimoto odziyimira pawokha, ndi makina opangira mafakitale. Komabe, zocheperako zowerengera komanso zovuta zamagetsi pazida zam'mphepete zimadzetsa zovuta pakuyika kwachitsanzo cha AI. M'nkhaniyi, tiwona njira zodutsamo za AI, uinjiniya wamapulogalamu, ndi zomangamanga kuti tikwaniritse magwiridwe antchito am'mphepete mwa chipangizocho, kutengera kupita patsogolo kwaposachedwa pakuchita bwino kwachitsanzo cha AI ndi njira zopangira ma hardware.
**Zovuta za AI Model Deployment pa Edge Devices **
Zida za Edge zimadziwika ndi zida zawo zochepa zowerengera, kuphatikiza CPU, kukumbukira, ndi kugwiritsa ntchito mphamvu. Zitsanzo zachikhalidwe za AI, zomwe nthawi zambiri zimapangidwira kuti zigwiritsidwe ntchito pamtambo, sizimakongoletsedwa ndi zida zam'mphepete. Chifukwa chake, zitha kukhala:
- Kuwonongeka kwa magwiridwe antchito: Mitundu ya AI mwina singayende bwino pazida zam'mphepete, zomwe zimapangitsa kuti nthawi yoyankhira pang'onopang'ono komanso kuchepa kulondola.
- **Kugwiritsa ntchito mphamvu **: Mitundu ya AI imatha kugwiritsa ntchito mphamvu zazikulu, zomwe zitha kukhala zodetsa nkhawa pazida zam'mphepete mwa batire.
- Zolepheretsa kukumbukira: Mitundu ya AI ingafunike kukumbukira zinthu zambiri, zomwe zingakhale zovuta kwa zida zam'mphepete zomwe zili ndi zinthu zochepa zokumbukira.
Njira Zopangira Ma Hardware-Software Co-Design
Kuti athane ndi zovuta izi, njira zopangira ma hardware ndi mapulogalamu adatuluka ngati yankho lodalirika. Njirazi zimaphatikizapo kupanga zida zonse za Hardware ndi mapulogalamu a chipangizo cham'mphepete mwa tandem, ndikuwongolera kuti azitha kutumizidwa kwachitsanzo cha AI.
###1. Kudulira Model*
Kudulira kwachitsanzo kumaphatikizapo kuchotsa zolemera zosafunikira ndi zolumikizira kuchokera ku mtundu wa AI, kuchepetsa kukula kwake ndi zofunikira zowerengera. Njirayi ingagwiritsidwe ntchito pa ma neural network ndi mitengo yosankha.
import tochi
import torch.nn ngati nn
class ModelPruning(nn.Module):
def __init__(yekha):
wapamwamba(ModelPruning, self).__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
def patsogolo (ndekha, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
kubwerera x
model = ModelPruning()
pruned_model = torch.nn.utils.prune_l1_unstructured(model, 'weight', 0.1)
###*2. Chidziwitso cha Distillation **
Kusungunula chidziwitso kumaphatikizapo kusamutsa chidziwitso kuchokera ku mtundu waukulu, wovuta wa AI kupita ku chaching'ono, chosavuta. Njirayi ingagwiritsidwe ntchito kuchepetsa kukula ndi zofunikira zamawerengedwe amtundu wa AI.
import tochi
import torch.nn ngati nn
kalasi KnowledgeDistillation(nn.Module):
def __init__(yekha):
wapamwamba(KnowledgeDistillation, self).__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
def patsogolo (ndekha, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
kubwerera x
teacher_model = ModelPruning()
student_model = KnowledgeDistillation ()
###*3. Quantization **
Kuchulukitsa kumaphatikizapo kuchepetsa kulondola kwa kulemera kwachitsanzo cha AI ndi ma activation, kuchepetsa zofunikira zowerengera za mtundu wa AI.
import tochi
import torch.nn ngati nn
kalasi Quantization (nn.Module):
def __init__(yekha):
wapamwamba(Quantization, self).__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
def patsogolo (ndekha, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
kubwerera x
model = ModelPruning()
quantized_model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)
**Malamulo/Zidutswa Zapamwamba za 5-10 **
| | Command/Snippet | Kufotokozera |
| | --- | --- |
| | torch.nn.utils.prune_l1_unstructured(model, 'weight', 0.1) | Kudulira kwachitsanzo pogwiritsa ntchito L1 kukhazikika |
| | torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8) | Quantization pogwiritsa ntchito dynamic quantization |
| | torch.nn.utils.kldistance(mphunzitsi_model, wophunzira_model) | Chidziwitso distillation pogwiritsa ntchito KL divergence |
| | torch.nn.utils.weight_norm(model.fc1) | Kulemera kwanthawi zonse pogwiritsa ntchito chizolowezi cholemetsa |
| | torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) | Kudula gradient pogwiritsa ntchito clip grad norm |
| | torch.nn.utils.clip_grad_value_(model.parameters(), 1.0) | Kudula gradient pogwiritsa ntchito clip grad value |
| | torch.nn.utils.remove_weight_norm(model.fc1) | Kuchepetsa kulemera kwanthawi zonse pogwiritsa ntchito chotsani chizolowezi |
| | torch.nn.utils.fuse_conv_bn_eval(model.fc1) | Kusintha kosanjikiza kosanjikiza pogwiritsa ntchito fuse conv bn eval |
| | torch.nn.utils.fuse_bn_eval(model.fc2) | Kuphatikizika kwa batch normalization pogwiritsa ntchito fuse bn eval |
| | torch.nn.utils.fuse_bn_eval(model.fc1) | Kuphatikizika kwa batch normalization pogwiritsa ntchito fuse bn eval |
**Kuwona **
{
"type": "bar",
"data": {
"labels": ["Kudulira Kwachitsanzo", "Knowledge Distillation", "Quantization"],
"ma dataset": {
"label": "Zolondola",
"Deta": [0.9, 0.85, 0.8]
}
},
"zosankha": {
"mutu": {
"kuwonetsa": zoona,
"text": "Kufananitsa Zolondola"
},
"nthano": {
"chiwonetsero": zoona
}
}
}
Mapeto
Kuyika bwino kwachitsanzo cha AI pazida zam'mphepete kumafuna kuphatikiza kwa hardware ndi mapulogalamu a co-design. Kudulira kwachitsanzo, kusungunula chidziwitso, ndikuchulutsa ndi njira zina zomwe zingagwiritsidwe ntchito kuchepetsa kukula ndi zofunikira zowerengera zamitundu ya AI. Pogwiritsa ntchito njirazi, omanga amatha kupanga mitundu ya AI yomwe imakongoletsedwa ndi zida zam'mphepete, zomwe zimathandizira kugwiritsa ntchito nthawi yeniyeni monga nyumba zanzeru, magalimoto odziyimira pawokha, komanso makina opangira mafakitale.
Ntchito Yamtsogolo
Ntchito zamtsogolo m'derali zikuphatikizapo:
- **Kupanga njira zatsopano zopangira ma hardware **: Ofufuza ndi opanga amatha kufufuza njira zatsopano zokongoletsera mitundu ya AI pazida zam'mphepete.
- Kupititsa patsogolo kudulira kwachitsanzo ndi ma aligorivimu a distillation: Kupanga ma algorithms aluso kwambiri pakudulira kwachitsanzo ndi kusungunula chidziwitso kumatha kubweretsa magwiridwe antchito komanso olondola.
- Kufufuza kagwiritsidwe ntchito ka mitundu ina ya AI: Mitundu ina ya AI, monga mitengo yachisankho ndi nkhalango zongochitika mwachisawawa, zitha kufufuzidwa kuti pakhale zida zam'mphepete.
Popitiriza kupititsa patsogolo gawo la hardware-software co-design, tikhoza kupanga zitsanzo za AI zogwira mtima komanso zogwira mtima pazida zam'mphepete, zomwe zimathandizira mitundu yosiyanasiyana ya ntchito ndi zochitika zogwiritsira ntchito.