Ukuhanjiswa kweModeli ye-AI esebenzayo kwi-Edge Devices nge-Hardware-Software Co-Design | B4N1

Ukuhanjiswa kweModeli ye-AI esebenzayo kwi-Edge Devices nge-Hardware-Software Co-Design

3 months ago · b4n1 Tiempo de lectura: 3 min

Unikezelo olusebenzayo lweModeli ye-AI kwiZixhobo zoMda nge-Hardware-Software Co-Design

Intshayelelo

Ukwandiswa kwezixhobo ezinqamlekileyo kudale amathuba amatsha kwizicelo ze-Artificial Intelligence (AI) ukuba zifakwe ngexesha langempela, okwenza izicelo ezifana namakhaya ahlakaniphile, izithuthi ezizimeleyo, kunye ne-industrial automation. Nangona kunjalo, izixhobo ezilinganiselweyo zokubala kunye nemiqobo yamandla yezixhobo ezinqamlezileyo zibeka imingeni ebalulekileyo yokuhanjiswa kwemodeli ye-AI. Kweli nqaku, siza kuphonononga ukuhlangana kwe-AI, ubunjineli besoftware, kunye noyilo lokuphucula ukusebenza kwesixhobo, sifumana ukuqhubela phambili kwamva nje kwimodeli ye-AI esebenzayo kunye nobuchule bokuyila ngokubambisana kwesoftware.

Imingeni ye-AI yokuBekwa kweModeli kwi-Edge Devices

Izixhobo ze-Edge zibonakaliswe ngezixhobo zabo ezilinganiselweyo zokubala, kubandakanya i-CPU, imemori, kunye nokusetyenziswa kwamandla. Iimodeli ze-AI zesiNtu, ezihlala ziyilelwe ukuhanjiswa okusekwe kwilifu, azilungiselelwanga izixhobo zomda. Ngenxa yoko, banokukhokelela ekubeni:

  • Ukuthotywa kokusebenza: Imifuziselo ye-AI isenokungasebenzi ngokufanelekileyo kwizixhobo ezisekupheleni, okukhokelela kumaxesha okuphendula kancinane kunye nokuncipha kokuchaneka.
  • ** Ukusetyenziswa kwamandla **: Iimodeli ze-AI zingasebenzisa amandla abalulekileyo, anokuthi abe yinkxalabo yezixhobo eziphethe ibhetri.
  • Imithintelo yeMemori: Iimodeli ze-AI zinokufuna inani elikhulu lememori, enokuba ngumngeni kwizixhobo ezinqamlezileyo ezinezixhobo zememori ezilinganiselweyo.

IiNdlela zoYilo lweHardware-Software Co-Design Techniques

Ukujongana nale mingeni, iindlela ze-hardware-software-design co-design ziye zavela njengesisombululo esithembisayo. Obu buchule bubandakanya ukuyila zombini ihardware kunye nesoftware yesixhobo somda kwi-tandem, ukubenza balungele ukuhanjiswa kwemodeli ye-AI.

1. Umzekelo wokuPruna

Ukuthena imodeli kubandakanya ukususa ubunzima obungadingekile kunye nokudibanisa kwimodeli ye-AI, ukunciphisa ubukhulu bayo kunye neemfuno zokubala. Obu buchule bunokusetyenziswa kuzo zombini iinethiwekhi ze-neural kunye nemithi yesigqibo.

ngenisa itotshi
ngenisa itotshi.nn njenge nn

iklasi yokuPruning(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 = itotshi.relu(self.fc1(x))
        x = self.fc2(x)
        imbuyekezo x

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

2. Ukuchithwa kolwazi

Ukuchithwa kolwazi kubandakanya ukudlulisa ulwazi ukusuka kwimodeli ye-AI enkulu, enzima ukuya kwencinci, elula. Obu buchule bunokusetyenziswa ukunciphisa ubungakanani kunye neemfuno zokubala zemodeli ye-AI.

ngenisa itotshi
ngenisa itotshi.nn njenge nn

iklasi UlwaziDistillation(nn.Modyuli):
    def __init__(self):
        super(KnowledgeDistillation, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def phambili(self, x):
        x = itotshi.relu(self.fc1(x))
        x = self.fc2(x)
        imbuyekezo x

teacher_model = ModelPruning()
student_model = KnowledgeDistillation ()

3. Ubungakanani

Ubungakanani bubandakanya ukunciphisa ukuchaneka kobunzima bemodeli ye-AI kunye nokusebenza, ukunciphisa iimfuno zokubala zemodeli ye-AI.

ngenisa itotshi
ngenisa itotshi.nn njenge nn

Ubungakanani beklasi(nn.Modyuli):
    def __init__(self):
        super(Ubungakanani, ubuqu).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def phambili(self, x):
        x = itotshi.relu(self.fc1(x))
        x = self.fc2(x)
        imbuyekezo x

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

Ephezulu 5-10 Eyeyona Isetyenziswayo Imiyalelo/iziqwengana

Umyalelo/ Isiqwengana Inkcazelo
torch.nn.utils.prune_l1_unstructured(imodeli, 'ubunzima', 0.1) Umfuziselo wokuthena usebenzisa i-L1 yohlengahlengiso
itotshi.quantization.quantize_dynamic(imodeli, {torch.nn.Linear}, dtype=totshi.qint8) Ubungakanani usebenzisa ubungakanani obuguquguqukayo
torch.nn.utils.kldistance(teacher_model, student_model) Ulwazi distillation usebenzisa KL divergence
torch.nn.utils.weight_norm(imodeli.fc1) Ubunzima obuqhelekileyo usebenzisa ubunzima obuqhelekileyo
torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) Ukunqunyulwa kwegradient usebenzisa ikliphu yesiqhelo
torch.nn.utils.clip_grad_value_(model.parameters(), 1.0) Ukunqunyulwa kwegradient usebenzisa ixabiso lekliphu yodidi
torch.nn.utils.remove_weight_norm(imodeli.fc1) Ukususwa kobunzima obuqhelekileyo usebenzisa susa ubunzima obuqhelekileyo
torch.nn.utils.fuse_conv_bn_eval(imodeli.fc1) Convolutional umaleko fusion usebenzisa i-fuse conv bn eval
torch.nn.utils.fuse_bn_eval(imodeli.fc2) Udibaniso lwebhetshi oluqhelekileyo usebenzisa i-fuse bn eval
torch.nn.utils.fuse_bn_eval(imodeli.fc1) Udibaniso lwebhetshi oluqhelekileyo usebenzisa i-fuse bn eval

Umbono

{
  "type": "bar",
  "idatha": {
    "labels": ["Umzekelo wokuPruna", "Ukusasazwa koLwazi", "Ubungakanani"],
    "iiseti zedatha": {
      "label": "Ukuchaneka",
      "idatha": [0.9, 0.85, 0.8]
    }
  },
  "iinketho": {
    "isihloko": {
      "bonisa": yinyani,
      "text": "Uthelekiso oluchanekileyo"
    },
    "legend": {
      "bonisa": yinyani
    }
  }
}

Isiphelo

Ukuhanjiswa kwemodeli ye-AI esebenzayo kwizixhobo ezinqamlezileyo kufuna indibaniselwano yehardware kunye nesoftware yobuchule bokuyila ngokubambisana. Imodeli yokuthena, i-distillation yolwazi, kunye ne-quantization zezinye zeendlela ezinokuthi zisetyenziswe ukunciphisa ubungakanani kunye neemfuno zokubala kwiimodeli ze-AI. Ngokusebenzisa obu buchule, abaphuhlisi banokudala iimodeli ze-AI ezilungiselelwe izixhobo ezisekupheleni, zivumela usetyenziso lwexesha lokwenyani olunje ngamakhaya ahlakaniphileyo, izithuthi ezizimeleyo, kunye ne-automation yemizi-mveliso.

Umsebenzi wexesha elizayo

Umsebenzi wexesha elizayo kule ndawo ubandakanya:

  • **Ukuqulunqa iindlela ezintsha zokuyila i-hardware-software co-design **: Abaphandi kunye nabaphuhlisi banokuphonononga iindlela ezintsha zokuphucula iimodeli ze-AI kwizixhobo ezisekupheleni.
  • Ukuphucula imodeli yokuthena kunye nolwazi lwe-distillation algorithms: Ukuphuhlisa i-algorithms esebenzayo yomzekelo wokuthena kunye nokuchithwa kolwazi kunokukhokelela ekusebenzeni okungcono kunye nokuchaneka.
  • Ukuphanda ngokusetyenziswa kweminye imifuziselo ye-AI: Ezinye iimodeli ze-AI, ezifana nemithi yesigqibo kunye namahlathi angenamkhethe, zinokuphononongwa ukusasazwa kwesixhobo edge.

Ngokuqhubeka nokuqhubela phambili intsimi ye-hardware-software co-design, sinokwenza imodeli ye-AI esebenzayo kunye nesebenzayo kwizixhobo ezinqamlekileyo, okwenza uluhlu olubanzi lwezicelo kunye namatyala okusebenzisa.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn