Эфектыўнае разгортванне мадэлі штучнага інтэлекту на памежных прыладах праз апаратна-праграмнае сумеснае праектаванне
Уводзіны
Распаўсюджванне краявых прылад стварыла новыя магчымасці для разгортвання прыкладанняў штучнага інтэлекту (AI) у рэжыме рэальнага часу, што дазваляе выкарыстоўваць такія праграмы, як разумныя дамы, аўтаномныя транспартныя сродкі і прамысловая аўтаматызацыя. Аднак абмежаваныя вылічальныя рэсурсы і абмежаванні магутнасці краявых прылад ствараюць значныя праблемы для разгортвання мадэлі штучнага інтэлекту. У гэтым артыкуле мы даследуем ўзаемасувязь штучнага інтэлекту, распрацоўкі праграмнага забеспячэння і архітэктуры для аптымізацыі прадукцыйнасці крайніх прылад, выкарыстоўваючы апошнія дасягненні ў эфектыўнасці мадэляў штучнага інтэлекту і метады сумеснага праектавання апаратнага і праграмнага забеспячэння.
Праблемы разгортвання мадэлі AI на краявых прыладах
Прылады Edge характарызуюцца абмежаванымі вылічальнымі рэсурсамі, уключаючы працэсар, памяць і энергаспажыванне. Традыцыйныя мадэлі штучнага інтэлекту, якія часта прызначаны для разгортвання ў воблаку, не аптымізаваны для краявых прылад. У выніку яны могуць прывесці да:
- Зніжэнне прадукцыйнасці: мадэлі штучнага інтэлекту могуць працаваць неэфектыўна на краявых прыладах, што прыводзіць да павольнага часу водгуку і зніжэння дакладнасці.
- Энергаспажыванне: Мадэлі са штучным інтэлектам могуць спажываць значную колькасць электраэнергіі, што можа быць праблемай для крайніх прылад з батарэйным харчаваннем.
- Абмежаванні памяці: Мадэлі штучнага інтэлекту могуць патрабаваць вялікіх аб'ёмаў памяці, што можа стаць праблемай для краявых прылад з абмежаванымі рэсурсамі памяці.
Метады сумеснага праектавання апаратнага і праграмнага забеспячэння
Для вырашэння гэтых праблем у якасці перспектыўнага рашэння з'явіліся метады сумеснага праектавання апаратнага і праграмнага забеспячэння. Гэтыя метады ўключаюць распрацоўку як апаратных, так і праграмных кампанентаў краявой прылады ў тандэме, аптымізуючы іх для разгортвання мадэлі штучнага інтэлекту.
1. Абразанне мадэлі
Скарачэнне мадэлі прадугледжвае выдаленне непатрэбных вагаў і злучэнняў з мадэлі штучнага інтэлекту, памяншэнне яе памеру і патрабаванняў да вылічэнняў. Гэты метад можа быць ужыты як да нейронавых сетак, так і да дрэў рашэнняў.
імпартны факел
імпартаваць torch.nn як nn
клас ModelPruning(nn.Module):
дэф __init__(сам):
super(ModelPruning, self).__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
дэф наперад(я, х):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
вярнуць х
мадэль = ModelPruning()
pruned_model = torch.nn.utils.prune_l1_unstructured(мадэль, 'вага', 0,1)
2. Дыстыляцыя ведаў
Дыстыляцыя ведаў прадугледжвае перадачу ведаў з вялікай, складанай мадэлі штучнага інтэлекту ў меншую, больш простую. Гэтую тэхніку можна выкарыстоўваць для памяншэння памеру і патрабаванняў да вылічэнняў мадэлі штучнага інтэлекту.
імпартны факел
імпартаваць torch.nn як nn
клас KnowledgeDistillation(nn.Module):
дэф __init__(сам):
супер(KnowledgeDistillation, сам).__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
дэф наперад(я, х):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
вярнуць х
teacher_model = ModelPruning()
student_model = Дыстыляцыя ведаў()
3. Квантаванне
Квантаванне прадугледжвае зніжэнне дакладнасці вагаў і актывацый мадэлі штучнага інтэлекту, зніжэнне патрабаванняў да вылічэнняў мадэлі штучнага інтэлекту.
імпартны факел
імпартаваць torch.nn як nn
клас Quantization (nn.Module):
дэф __init__(сам):
супер(квантаванне, самастойна).__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
дэф наперад(я, х):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
вярнуць х
мадэль = ModelPruning()
quantized_model = torch.quantization.quantize_dynamic(мадэль, {torch.nn.Linear}, dtype=torch.qint8)
Топ-5-10 найбольш часта выкарыстоўваюцца каманд/фрагментаў
| Каманда/ Фрагмент | Апісанне |
|---|---|
torch.nn.utils.prune_l1_unstructured(мадэль, 'вага', 0,1) |
Абразанне мадэлі з дапамогай рэгулярызацыі L1 |
torch.quantization.quantize_dynamic(мадэль, {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 |
torch.nn.utils.clip_grad_value_(model.parameters(), 1.0) |
Адсячэнне градыенту з выкарыстаннем значэння градацыі кліпа |
torch.nn.utils.remove_weight_norm(model.fc1) |
Выдаленне нармалізацыі вагі з дапамогай выдаліць норму вагі |
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 |
Візуалізацыя
{
"тып": "бар",
"дадзеныя": {
"ярлыкі": ["Адразанне мадэлі", "Перагонка ведаў", "Квантаванне"],
"наборы дадзеных": {
"label": "Дакладнасць",
"дадзеныя": [0,9, 0,85, 0,8]
}
},
"параметры": {
"назва": {
"дысплей": праўда,
"text": "Параўнанне дакладнасці"
},
"легенда": {
"дысплей": праўда
}
}
}
Выснова
Эфектыўнае разгортванне мадэлі штучнага інтэлекту на краявых прыладах патрабуе спалучэння метадаў сумеснага праектавання апаратнага і праграмнага забеспячэння. Скарачэнне мадэлі, перагонка ведаў і квантаванне - гэта некаторыя метады, якія можна выкарыстоўваць для памяншэння памеру і патрабаванняў да вылічэнняў мадэляў штучнага інтэлекту. Выкарыстоўваючы гэтыя метады, распрацоўшчыкі могуць ствараць мадэлі штучнага інтэлекту, якія аптымізаваны для перспектыўных прылад, дазваляючы выкарыстоўваць прыкладанні ў рэжыме рэальнага часу, такія як разумныя дамы, аўтаномныя транспартныя сродкі і прамысловая аўтаматызацыя.
Будучая праца
Будучая праца ў гэтай галіне ўключае:
- Распрацоўка новых метадаў сумеснага праектавання апаратнага і праграмнага забеспячэння: Даследчыкі і распрацоўшчыкі могуць вывучаць новыя метады аптымізацыі мадэляў штучнага інтэлекту для краявых прылад.
- Паляпшэнне алгарытмаў абрэзкі мадэлі і перагонкі ведаў: распрацоўка больш эфектыўных алгарытмаў абразання мадэлі і перагонкі ведаў можа прывесці да павышэння прадукцыйнасці і дакладнасці.
- Даследаванне выкарыстання іншых мадэляў штучнага інтэлекту: іншыя мадэлі штучнага інтэлекту, такія як дрэвы рашэнняў і выпадковыя лясы, могуць быць вывучаны для разгортвання краявых прылад.
Працягваючы развіваць сферу сумеснага праектавання апаратнага і праграмнага забеспячэння, мы можам ствараць больш эфектыўныя і эфектыўныя мадэлі штучнага інтэлекту для краявых прылад, забяспечваючы шырокі спектр прыкладанняў і варыянтаў выкарыстання.