Kujenga Labeler NearBy

Table of Contents

Hackathon Yangu ya Kwanza

Mnamo sehemu za mwisho za msimu wa joto wa 2022, nilikuwa nataka sana kufanya kazi kwenye mradi wa kusisimua. Nilikuwa nimekamilisha shahada ya kwanza na nilikuwa nikifanya kazi kwa muda wote kama mhandisi wa programu. Nilitaka kujitolea kwa mradi wa pembeni na wakati huo, nilikuwa na muda wa kutosha wa bure kufanya hivyo. Sikuwa najua kabisa nifanye kazi gani, hadi nilipogundua tovuti iitwayo Devpost mwezi Agosti 2022. Devpost ni tovuti inayoshiriki mashindano ya programu yanayoitwa hackathons. Nilipotazama Devpost, niligundua hackathon iitwayo NEAR MetaBUILD III ambayo ilikuwa hackathon iliyoandaliwa na shirika la NEAR Protocol.

NEAR ni Nini?

NEAR Protocol ni blockchain inayounga mkono mikataba smart na sarafu ya NEAR. Inajulikana hasa kwa kuwa na ada za miamala ndogo sana, kuunga mkono mikataba smart, kuwa na mtandao wake rasmi wa majaribio, na mazingira mazuri ya waendelezaji kutokana na ukweli kwamba unaweza kuandika mikataba smart kwa Rust na/au JavaScript. Unaweza kupata muhtasari bora wa NEAR Protocol kupitia video ya kuvutia ya CoinGecko:

Wakati huo, Coinbase ilianza rasmi kuunga mkono NEAR Protocol kama sarafu inayoweza kuuzwa kwenye jukwaa lao. Hii ilikuwa jambo kubwa kwa sababu Coinbase inajulikana kwa kuwa mtaalamu sana linapokuja suala la sarafu wanazozitumia kwenye jukwaa lao. Hii ilisaidia kufanya NEAR kuwa jukwaa la kuaminika zaidi. Bado unaweza kubadilisha NEAR kwenye Coinbase hadi leo.

Kwa Nini Kujitolea?

Baada ya kutumia muda kufikiria, niliamua kujitolea wakati wangu kushiriki katika hackathon ya NEAR MetaBUILD III. Sababu zangu zilikuwa hizi:

  • Teknolojia ya kripto haitaondoka na ni teknolojia itakayodumu. Kwa hivyo ilikuwa busara kuwekeza muda kujifunza teknolojia hiyo.
  • Hackathon ilikuwa na zawadi nzuri, kati ya $20,000 hadi $100,000 kwa NEAR ikiwa wewe ni mmoja wa washindi.
  • Hackathon ilikuwa na tarehe maalum ya mwisho, ambayo ilimaanisha mradi haukuwezi kucheleweshwa kwa miezi kama ilivyo kwa miradi mingi ya pembeni.
  • Mradi ungekuwa uzoefu mzuri wa kujifunza na utangulizi mzuri kwa hackathons.
  • Katika hali mbaya zaidi, hackathon ingeniruhusu kutengeneza mradi mzuri wa kuonyesha kwenye wasifu wangu.

Kwa yote haya akilini, nilimpigia simu rafiki yangu wa karibu wa chuo tarehe 26 Agosti, 2022 na tukaanza kupanga hackathon hii. Hackathon ilipangwa kuanza tarehe 23 Septemba, 2023 na kumalizika tarehe 21 Novemba, 2022. Ingawa muda wa mwisho uliongezwa hadi tarehe 24 Novemba, 2023 mwishoni mwa hackathon. Kwa kuwa tulikuwa mwezi mmoja mapema, tuliamua kutumia muda huu kujifunza na kufikiri mawazo kuhusu kile tutakofanya kwa hackathon ya miezi 2. Katika mwezi huo wa kwanza, tulipata muhtasari wa jumla wa kripto na blockchains. Tulifanya mapitio na mazoezi kwenye testnet ya NEAR, tukakagua NEAR SDK, na kutuma baadhi ya mikataba smart.

Wazo

Baada ya kupata utangulizi mzuri wa mambo yote ya blockchain na NEAR, tulianza kufikiria mawazo. Nilitaka mradi huu kuwa kitu siyo tu “mradi wa hackathon”, bali kitu ambacho kinaweza kuwa bidhaa ambayo wengine wanaweza kuitumia na kuwa mfano wa jinsi kripto inaweza kuwa muhimu kwa mambo nje ya biashara pekee.

Kwa hili akilini, awali tuliamua kuunda kitu kinachofanana na Unreal Engine Blueprint, lakini kwa ajili ya uundaji na utekelezaji rahisi wa mikataba smart kwenye blockchain ya NEAR bila hitaji la kuandika msimbo. Hata hivyo, wiki moja kabla ya hackathon kuanza, tuliacha wazo hilo kwa sababu halikuonekana lina mantiki. Kwa nini mtu angesumbuka kutumia zana yetu kuunda mikataba smart ya NEAR ikiwa bado hakuna kesi ya matumizi ya vitendo kwao? Ingekuwa kama kutengeneza zana ambayo watu wengi hawaihitaji.

Tukiwa na wiki moja tu kabla ya hackathon kuanza, tulianza kufikiria tena na tukakubaliana juu ya wazo hili:

A decentralized platform where AI researchers can outsource
data labeling to labelers around the world

Tukaita mradi “Labeler NearBy.” Uamuzi wetu wa kuchagua wazo hili ulitokana na sababu zifuatazo:

  • Maendeleo ya AI yanahitaji lebo za kibinadamu kwa data kwa ajili ya mafunzo.
  • Kupata na kusimamia watu wenye ujuzi wa kuweka lebo kwa seti maalum za data ni changamoto.
  • Wazo hili tayari limefanikiwa kutekelezwa na kampuni inayoitwa Scale AI, kama inavyoonekana jinsi walivyopata product-market fit.
  • Huduma za kati kama Scale AI zinaibua wasiwasi kwani mashirika yanapaswa kutuma data zao kwa kampuni ya kuweka lebo, ambayo kisha inatoa kazi kwa walebeleri wa kibinadamu duniani kote. Baada ya mchakato wa kuweka lebo, kampuni inarejesha data zilizolebwa kwa shirika. Hii inatoa upotevu wa udhibiti wa data muhimu za mafunzo, ambazo kampuni ya kuweka lebo inaweza kuzitumia kufundisha mifano yao wenyewe. Kuondoa uundaji wa kituo hicho kulionekana kuwa suluhisho la mantiki.
  • Tulipata miradi machache sana katika nafasi ya programu zisizo za kati (dApp) zinazofanya kazi kwenye wazo hili, ikitoa fursa kwetu kuibua ubunifu na kuongoza katika eneo hili.

Ili kusaidia kupunguza ugumu, tuliamua kwamba Labeler NearBy itaunga mkono data za picha kwa sasa.

Uwasilishaji

Baada ya kuchagua wazo na hackathon kuanza rasmi, mimi na rafiki yangu tulianza kujenga Labeler NearBy. Tulifanya kazi kwenye mradi wetu kwa miezi 2 hadi tulipotuma rasimu ya mwisho ya mradi wetu kwenye Devpost tarehe 24 Novemba, 2022. Tulituma mradi wetu kwenye Devpost na pia tulitengeneza nakala ya uwasilishaji wetu kwenye Github. Blogu hii haiwezi kufunika kila kipengele cha kiufundi na mchakato wa maendeleo wa Labeler NearBy. Kwa kuzingatia hili, ili kujifunza zaidi kuhusu jinsi Labeler NearBy inavyofanya kazi au kuona uwasilishaji wetu wa mwisho, tafadhali tembelea mojawapo ya viungo vifuatavyo:

Labeler NearBy inajumuisha misimbo miwili ya msingi: ln-researcher na ln-labeler. Msimbo huu wote uko wazi kabisa chini ya leseni ya MIT na unaweza kuangaliwa kupitia viungo vifuatavyo:

Hapa kuna muhtasari wa jumla wa jinsi Labeler NearBy (LN) ingefanya kazi:

Mtafiti anahitaji picha zilizo na lebo kwa ajili ya kufundisha modeli yao ya AI. Ili kufanikisha hili, mtafiti anatumia LN kuhifadhi data zao na kutoa njia kwa walebeleri kuweka lebo kwenye data zao. Hii inafikiwa kupitia ln-researcher, huduma ya wavuti iliyojimilikisha inayojumuisha API, mikataba smart ya mtafiti, na hifadhidata ya Postgres ya ndani. Kwa lebelari, kiolesura cha wavuti kilitolewa (kingetolewa), kikiruhusu kufikia na kuweka lebo kwenye picha za mtafiti. Wakati picha inakuwa ikilebwa, picha moja hulipwa lebo mara tatu na walebeleri tofauti. Ni lebelari aliyetoa lebo bora, iliyobainishwa kupitia mfumo wa kupiga kura, atakayelipwa kwa sarafu za NEAR. Programu ya wavuti inayohusika na mchakato huu inaitwa ln-labeler. Mtafiti analipa kila operesheni ya kuweka lebo, na sarafu za NEAR zinaweza kubadilishwa kwa urahisi kuwa dola kupitia Coinbase. Taratibu zote za miamala zinashughulikiwa na mikataba smart inayohifadhiwa kwenye blockchain ya NEAR Protocol.

Unaweza kuangalia video ya maonyesho yetu ya Labeler NearBy kwa ajili ya hackathon hapa:

Mafanikio Makubwa

Sifa ambayo najivunia zaidi kutekeleza ni kazi iitwayo getImage(). Kazi hii inatumika kama endpoint ya API katika ln-researcher na inachukua nafasi muhimu katika mnyororo wa data kati ya watafiti na walebeleri katika Labeler NearBy (LN).

Endpoint hii ya API inawawezesha watafiti kusambaza picha zao kwa ajili ya kuwekwa lebo kwa usalama na kwa uaminifu. Majukumu ya kuweka lebo yanaendeshwa kupitia mikataba smart ya NEAR kwenye blockchain ya NEAR Protocol wakati data za picha zinahifadhiwa na mtafiti kupitia ln-researcher.

Endpoint inafanya mfululizo wa ukaguzi wa usalama ili kuhakikisha kwamba ni lebelari aliyeteuliwa tu anayeweza kufikia picha. Hii inajumuisha kuthibitisha saini ya ombi na kukagua mkataba smart unaohusishwa ili kuthibitisha kuwepo kwa kazi na uteuzi wake kwa lebelari aliyeomba.

Mara ombi linapothibitishwa katika API ya mtafiti iliyojimilikishwa ln-researcher, kazi inachukua picha kutoka kwenye hifadhidata ya ndani ya Postgres, kuificha (encrypt) picha hiyo, na kuileta kwa lebelari aliyeidhinishwa ambaye baadaye anaweza kufungua usimbuaji wa picha kwa ajili ya kuweka lebo. Kwa wakati huo huo, kazi inasasisha hali ya picha kwenye hifadhidata, ikionyesha maendeleo ya picha kupewa lebo. Katika mchakato huu, funguo za RSA kutoka kwa mtafiti na lebelari hutumika kwa uthibitisho. Wakati huo huo, usimbaji wa AES unatumiwa kuficha picha.

Endpoint hii inachukua jukumu muhimu katika kusimamia usambazaji salama na uliodhibitiwa wa picha kutoka kwa watafiti kwenda kwa walebeleri. Inahakikisha uhamisho salama wa data na inafuatilia na kusimamia mchakato wa kuweka lebo kwa ufanisi. Zaidi ya hayo, mchakato huu una uwezo wa kuondoa hitaji la kutumia HTTPS, angalau kwa endpoint hii.

Endpoint/kazi maalumu hii ilijaribiwa na kuthibitishwa kuwa inafanya kazi. Hapo chini kuna mchoro unaoonyesha utendakazi wa jumla wa Labeler NearBy, ikiwa ni pamoja na mchoro wazi wa jinsi endpoint/kazi iliyotajwa inavyofanya kazi:

Matokeo

Kwa bahati mbaya, ukweli wa kusikitisha ni kwamba hatukuweza kukamilisha mradi huu kikamilifu kabla ya tarehe ya mwisho ya hackathon. Sehemu kubwa ya mradi ilikamilika, kama ln-researcher, lakini frontend (ln-labeler) haikukamilika na hatukuweza kupeleka demo ya moja kwa moja. Ingawa backend (ln-researcher) kwa msingi ilikamilika, bila frontend inayofanya kazi ipasavyo na bila demo ya moja kwa moja, hakuna aliyekuwa na uwezo wa kujaribu wazo la Mtoa Lebo Karibu. Sio tu hivyo, bali majaji hawakuweza kujaribu mradi na badala yake walilazimika kusoma maombi, kupitia msimbo, na/au kujaribu kuuiendesha wenyewe. Hii ilisababisha nafasi zetu za kushinda kupungua hadi karibu sifuri asilimia. Hii ilithibitishwa tarehe 15 Desemba, 2022 wakati washindi wa hackathon walipotangazwa, na hatukuwa miongoni mwao.

Kushindwa

Sitaeza kuficha ukweli kwamba matokeo ya mwisho ya hackathon hii yalikuwa ya kukatisha tamaa. Miezi ilitumika kwenye mradi huu na nilikuwa na maono makubwa kwa mradi huu kwa sababu nilidhani ungeleta zana muhimu kwa watafiti.

Nina viwango wazi kwa miradi ninayojiingiza: ama yanafanikiwa au yanashindwa; hakuna njia ya kati. Kwa hivyo mradi huu ulikuwa kushindwa kwa sababu haukukamilika kikamilifu kabla ya tarehe ya mwisho na ulikaa haupatikani kwa watumiaji waliowezekana.

Lakini ni muhimu kukumbuka kwamba kushindwa ni sehemu ya kawaida ya maisha. Mafanikio yetu yamejengwa juu ya masomo tunayojifunza kutokana na kushindwa kwetu. Ingawa matokeo ya hackathon yalikuwa ya kukatisha tamaa, bado yalitoa maarifa muhimu linapokuja suala la kuendeleza na kujenga mradi/bidhaa.

Masomo Niliyopata

Masomo makuu niliyopata kutoka kwa uzoefu huu yalikuwa yafuatayo:

  1. Mradi tuliochagua ulihitaji vipengele vingi kujengwa kabla hata hatujaanza kufanya marekebisho na maendeleo. Namaanisha nini kwa hili? Naam, mradi huu ulihitaji karibu vipengele vyote vya wazo kujengwa kabla hata hatujajaribu wazo. Ingekuwa busara zaidi kuchagua mradi lenye vipengele muhimu vidogo vya kufanya kazi. Kwa kufanya hivyo, tungeweza kujenga vipengele muhimu haraka kisha kuendelea kuboresha mradi mapema. Kwa kufanya hivyo, tungeweza kufikia tarehe ya mwisho kwa urahisi zaidi na kutengeneza mradi ambao unaweza kuwa rahisi lakini kamili zaidi. YC, kiendelezi cha kuanzisha kampuni za teknolojia, anasisitiza kwamba unapaswa zindua haraka, zungumza na watumiaji, na rudia. Ilibidi tukafanya hivyo na mradi wetu kwa hackathon hii.
  2. Tulikadiria chini muda mradi huu ungechukua kujengwa. Hii ilikuwa hackathon yetu ya kwanza na wakati wetu wa kwanza kutengeneza programu isiyotawaliwa (dapp). Sio tu hivyo, bali nilikuwa nikifanya kazi kwa wakati wote kama mhandisi wa programu na rafiki yangu alikuwa akimaliza Shahada ya Uzamili. Licha ya yote, tulidhani miezi 2 itakuwa ya kutosha. Ingekuwa busara kupunguza wigo wa mradi na/au kupata mshiriki mwingine wa timu ambaye angeweza kupunguza mzigo wetu wa kazi.
  3. Winston Churchill alisema kwa umaarufu: “Ukamilifu ni adui wa maendeleo”. Nilikuwa nikitenda mradi huu kama bidhaa ya biashara-kwa-mteja (B2C), wakati kwa kweli huu ulikuwa mradi wa hackathon tu na kwa juu kabisa bidhaa ya msingi inayoweza kutumika (MVP). Kwa hivyo mapema, nilitumia muda mwingi sana kwenye undani mdogo wakati nilipaswa kuwa nikizingatia muda wangu kufanya vipengele vya msingi visifanye kazi vya kutosha.

Mbali na masomo haya muhimu, nimepata ujuzi mpya ambao umeonyesha kuwa wa thamani katika miradi yangu binafsi na shughuli za kitaalamu. Ujuzi huu unajumuisha:

  1. Kutengeneza API kupitia Node.js, JavaScript, na Express.js
  2. Kuweka na kutumia PostgreSQL kwa usimamizi wa data
  3. Kuingiza PostgresSQL katika maendeleo ya API kwa kutumia vifurushi kama PG.
  4. Kutumia RSA (usimbaji wa asymmetric) na AES (usimbaji wa symmetric) kwa kuongeza usalama wa data.

Hitimisho

Kwa ujumla, ninafurahi kwamba tulishiriki katika hackathon hii, licha ya kukata tamaa na matokeo ya mwisho. Ninashukuru kwa masomo muhimu na ujuzi nilioupata nilipokuwa nikifanya kazi kwenye Mtoa Lebo Karibu, kwani yamenifanya niwe mtaalamu bora wa programu na yamechangia kwa kiasi kikubwa katika maendeleo ya mradi wangu ujao: Taarifu-Cyber.

Vidokezo Vingine

  • Inawezekana nitarudi kwa Mtoa Lebo Karibu, lakini kwa sasa, mradi huu uko kwenye “mapumziko marefu”
  • Kwa sasa, Mtoa Lebo Karibu inapaswa KUENDESHA TU kwenye neti ya majaribio ya NEAR. Inahitaji maendeleo zaidi, upimaji, na ukaguzi.