Usambazaji Ufanisi wa Muundo wa AI kwenye Vifaa vya Edge kupitia Usanifu Mwenza wa Vifaa-Programu | B4N1

Usambazaji Ufanisi wa Muundo wa AI kwenye Vifaa vya Edge kupitia Usanifu Mwenza wa Vifaa-Programu

7 months ago · b4n1 Read time: 4 min

Usambazaji Bora wa Muundo wa AI kwenye Vifaa vya Edge kupitia Usanifu Mwenza wa Programu-Mwili

Utangulizi

Kuongezeka kwa vifaa vya makali kumeunda fursa mpya za programu za Upelelezi Bandia (AI) kutumwa kwa wakati halisi, kuwezesha programu kama vile nyumba mahiri, magari yanayojiendesha na mitambo ya kiotomatiki ya viwandani. Hata hivyo, rasilimali chache za hesabu na vikwazo vya nguvu vya vifaa vya makali huleta changamoto kubwa kwa uwekaji wa muundo wa AI. Katika nakala hii, tutachunguza makutano ya AI, uhandisi wa programu, na usanifu ili kuboresha utendakazi wa kifaa, tukiboresha maendeleo ya hivi majuzi katika ufanisi wa muundo wa AI na mbinu za usanifu-programu za maunzi.

Changamoto za Usambazaji wa Modeli ya AI kwenye Vifaa vya Edge

Vifaa vya makali vina sifa ya rasilimali zao ndogo za kukokotoa, ikiwa ni pamoja na CPU, kumbukumbu, na matumizi ya nishati. Miundo ya jadi ya AI, ambayo mara nyingi imeundwa kwa ajili ya utumiaji wa msingi wa wingu, haijaboreshwa kwa vifaa vya makali. Kama matokeo, wanaweza kusababisha:

  • Kuharibika kwa utendakazi: Miundo ya AI inaweza isifanye kazi vizuri kwenye vifaa vya makali, hivyo basi kusababisha muda wa majibu polepole na usahihi uliopunguzwa.
  • Matumizi ya nishati: Miundo ya AI inaweza kutumia nishati kubwa, ambayo inaweza kuwa wasiwasi kwa vifaa vinavyotumia betri.
  • Vikwazo vya kumbukumbu: Miundo ya AI inaweza kuhitaji kiasi kikubwa cha kumbukumbu, ambayo inaweza kuwa changamoto kwa vifaa vya makali vilivyo na rasilimali chache za kumbukumbu.

Mbinu za Usanifu Mwenza wa Programu-Vifaa

Ili kukabiliana na changamoto hizi, mbinu za usanifu-programu-shirikishi wa programu zimeibuka kama suluhisho la kuahidi. Mbinu hizi zinajumuisha kubuni vifaa na vijenzi vya programu vya kifaa cha makali sanjari, kuviboresha kwa uwekaji wa muundo wa AI.

1. Mfano wa Kupogoa

Kupogoa kwa mfano kunahusisha kuondoa uzito na miunganisho isiyo ya lazima kutoka kwa muundo wa AI, kupunguza ukubwa wake na mahitaji ya hesabu. Mbinu hii inaweza kutumika kwa mitandao ya neva na miti ya maamuzi.

kuagiza tochi
import tochi.nn kama nn

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

    def mbele (binafsi, x):
        x = tochi.relu(self.fc1(x))
        x = self.fc2(x)
        kurudi x

model = ModelPruning()
pruned_model = torch.nn.utils.prune_l1_unstructured(mfano, 'uzito', 0.1)

2. Uboreshaji wa maarifa

Kuchemsha maarifa kunahusisha kuhamisha maarifa kutoka kwa kielelezo kikubwa na changamano cha AI hadi kwa ndogo, rahisi zaidi. Mbinu hii inaweza kutumika kupunguza ukubwa na mahitaji ya hesabu ya muundo wa AI.

kuagiza tochi
import tochi.nn kama nn

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

    def mbele (binafsi, x):
        x = tochi.relu(self.fc1(x))
        x = self.fc2(x)
        kurudi x

mwalimu_model = ModelPruning()
mwanafunzi_model = KnowledgeDistillation()

3. Quantization

Ukadiriaji unahusisha kupunguza usahihi wa uzani wa muundo wa AI na kuwezesha, kupunguza mahitaji ya hesabu ya muundo wa AI.

kuagiza tochi
import tochi.nn kama nn

Ukadiriaji wa darasa (nn.Module):
    def __init__(binafsi):
        super(Quantization, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def mbele (binafsi, x):
        x = tochi.relu(self.fc1(x))
        x = self.fc2(x)
        kurudi x

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

Amri/Vijisehemu 5-10 Bora Zaidi

Amri/ Kijisehemu Maelezo
mwenge.nn.utils.prune_l1_unstructured(mfano, 'uzito', 0.1) Kupogoa kwa mfano kwa kutumia urekebishaji wa L1
mwenge.quantization.quantize_dynamic(mfano, {tochi.nn.Linear}, dtype=tochi.qint8) Ukadiriaji kwa kutumia ukadiriaji unaobadilika
mwenge.nn.utils.kldistance(mwalimu_mfano, mwanafunzi_mfano) Kunyunyizia maarifa kwa kutumia tofauti ya KL
mwenge.nn.utils.weight_norm(model.fc1) Kurekebisha uzito kwa kutumia kawaida ya uzito
tochi.nn.utils.clip_grad_norm_(modeli.parameters(), 1.0) Upunguzaji wa gradient kwa kutumia klipu ya kawaida ya grad
tochi.nn.utils.clip_grad_value_(modeli.parameters(), 1.0) Kupunguza gradient kwa kutumia thamani ya klipu ya gradi
tochi.nn.utils.remove_weight_norm(model.fc1) Kuondoa uzito kuhalalisha kwa kutumia kawaida ya kuondoa uzito
torch.nn.utils.fuse_conv_bn_eval(model.fc1) Muunganisho wa safu ya ubadilishaji kwa kutumia fuse conv bn eval
torch.nn.utils.fuse_bn_eval(model.fc2) Muunganisho wa kuhalalisha bechi kwa kutumia fuse bn eval
torch.nn.utils.fuse_bn_eval(model.fc1) Muunganisho wa kuhalalisha bechi kwa kutumia fuse bn eval

Taswira

{
  "type": "bar",
  "data": {
    "labels": ["Kupogoa kwa Mfano", "Uenezaji wa Maarifa", "Quantization"],
    "seti za data": {
      "label": "Usahihi",
      "data": [0.9, 0.85, 0.8]
    }
  },
  "chaguo": {
    "kichwa": {
      "onyesha": kweli,
      "text": "Ulinganisho wa Usahihi"
    },
    "hadithi": {
      "onyesha": kweli
    }
  }
}

Hitimisho

Uwekaji mzuri wa muundo wa AI kwenye vifaa vya makali unahitaji mchanganyiko wa mbinu za usanifu wa maunzi na programu. Upogoaji wa kielelezo, uenezaji wa maarifa, na ujazo ni baadhi ya mbinu zinazoweza kutumika kupunguza ukubwa na mahitaji ya kimahesabu ya miundo ya AI. Kwa kutumia mbinu hizi, wasanidi programu wanaweza kuunda miundo ya AI ambayo imeboreshwa kwa ajili ya vifaa vya makali, kuwezesha utumizi wa wakati halisi kama vile nyumba mahiri, magari yanayojiendesha na mitambo ya viwandani.

Kazi ya Baadaye

Kazi za baadaye katika eneo hili ni pamoja na:

  • Kutengeneza mbinu mpya za usanifu-shirikishi wa programu-jalizi: Watafiti na wasanidi wanaweza kuchunguza mbinu mpya za kuboresha miundo ya AI kwa vifaa vya makali.
  • Kuboresha kanuni za upogoaji na maarifa za kunereka: Kutengeneza kanuni bora zaidi za upogoaji wa kielelezo na unyunyushaji wa maarifa kunaweza kusababisha utendakazi bora na usahihi.
  • Kuchunguza matumizi ya miundo mingine ya AI: Miundo mingine ya AI, kama vile miti ya maamuzi na misitu ya nasibu, inaweza kuchunguzwa kwa ajili ya matumizi ya vifaa vya makali.

Kwa kuendelea kuendeleza uga wa usanifu-shirikishi wa programu-jalizi, tunaweza kuunda miundo ya AI yenye ufanisi zaidi na yenye ufanisi kwa vifaa vya makali, kuwezesha utumizi mbalimbali na kesi za utumiaji.


Have Questions?

Let's Talk

Contact me on LinkedIn