Labeler NearBy तयार करणे

Table of Contents

माझा पहिला हॅकाथॉन

2022 च्या उन्हाळ्याच्या उत्तरार्धात, मला एका रोमांचक प्रकल्पावर काम करण्याची खरोखर इच्छा होती. माझे पदवीपूर्व शिक्षण नुकतेच पूर्ण झाले होते आणि मी सॉफ्टवेअर अभियंता म्हणून पूर्णवेळ काम करत होतो. मला साईड प्रकल्पासाठी खरोखर वेळ देण्याची इच्छा होती आणि त्या वेळी तसे करण्यासाठी माझ्याकडे पुरेसा मोकळा वेळही होता. ऑगस्ट 2022 मध्ये Devpost नावाची वेबसाइट सापडेपर्यंत मला नेमके कशावर काम करावे हे माहीत नव्हते. Devpost ही हॅकाथॉन नावाच्या सॉफ्टवेअर स्पर्धा आयोजित करणारी वेबसाइट आहे. Devpost पाहत असताना, मला NEAR MetaBUILD III नावाचा एक हॅकाथॉन सापडला. हा हॅकाथॉन NEAR Protocol संस्थेने आयोजित केला होता.

NEAR म्हणजे काय?

NEAR Protocol हा एक ब्लॉकचेन आहे जो स्मार्ट कॉन्ट्रॅक्ट्स आणि NEAR क्रिप्टोकरन्सीला समर्थन देतो. अत्यंत कमी व्यवहार शुल्क, स्मार्ट कॉन्ट्रॅक्ट्ससाठी समर्थन, स्वतःचे अधिकृत चाचणी नेटवर्क आणि Rust आणि/किंवा Java Script मध्ये स्मार्ट कॉन्ट्रॅक्ट्स लिहिता येत असल्यामुळे उत्तम विकासक वातावरण यांसाठी तो मुख्यतः ओळखला जातो. CoinGecko च्या उत्कृष्ट व्हिडिओद्वारे तुम्ही NEAR Protocol चे अधिक चांगले अवलोकन मिळवू शकता:

याच काळात, Coinbase ने अधिकृतपणे त्यांच्या प्लॅटफॉर्मवर NEAR Protocol ला व्यापारयोग्य नाणे म्हणून समर्थन देण्यास सुरुवात केली. ही मोठी गोष्ट होती, कारण त्यांच्या प्लॅटफॉर्मवर कोणत्या नाण्यांना समर्थन द्यायचे याबाबत Coinbase अत्यंत निवडक म्हणून ओळखले जाते. यामुळे NEAR ला अधिक विश्वासार्ह प्लॅटफॉर्म बनण्यास मदत झाली. आजही तुम्ही Coinbase वर NEAR चा व्यापार करू शकता.

वेळ देण्याचा निर्णय का घेतला?

काही काळ विचार केल्यानंतर, मी NEAR MetaBUILD III हॅकाथॉनमध्ये स्पर्धा करण्यासाठी माझा वेळ देण्याचा निर्णय घेतला. माझे कारण असे होते:

  • क्रिप्टो नष्ट होणार नाही आणि हे टिकून राहणारे तंत्रज्ञान आहे. त्यामुळे हे तंत्रज्ञान शिकण्यासाठी काही वेळ गुंतवणे अर्थपूर्ण होते.
  • हॅकाथॉनमध्ये उत्तम बक्षिसे होती; विजेत्यांपैकी एक ठरल्यास NEAR मध्ये $20,000 ते $100,000 पर्यंत.
  • हॅकाथॉनची एक निश्चित अंतिम मुदत होती, म्हणजे अनेक साईड प्रकल्पांप्रमाणे हा प्रकल्प अनेक महिने लांबवता आला नसता.
  • हा प्रकल्प शिकण्याचा उत्तम अनुभव आणि हॅकाथॉनची उत्कृष्ट ओळख ठरला असता.
  • सर्वांत वाईट परिस्थितीत, हॅकाथॉनमुळे माझ्या बायोडेट्यावर दाखवता येईल असा उत्तम प्रकल्प तयार करता आला असता.

हे सर्व लक्षात घेऊन, मी 26 ऑगस्ट 2022 रोजी माझ्या महाविद्यालयातील जवळच्या मित्राला फोन केला आणि आम्ही या हॅकाथॉनसाठी नियोजन सुरू केले. हॅकाथॉन 23 सप्टेंबर 2023 रोजी सुरू होऊन 21 नोव्हेंबर 2022 रोजी संपणार होता. मात्र हॅकाथॉनच्या शेवटी अंतिम मुदत 24 नोव्हेंबर 2023 पर्यंत वाढवण्यात आली. आम्ही 1 महिना आधी सुरुवात केली होती, म्हणून या 2 महिन्यांच्या हॅकाथॉनसाठी आपण कशावर काम करणार आहोत हे शिकण्यासाठी आणि विचारमंथन करण्यासाठी हा वेळ वापरण्याचे आम्ही ठरवले. त्या पहिल्या महिन्यात, आम्हाला क्रिप्टो आणि ब्लॉकचेन्सचे सर्वसाधारण अवलोकन मिळाले. आम्ही NEAR च्या टेस्टनेटवर अभ्यास आणि सराव केला, NEAR SDK चे पुनरावलोकन केले आणि काही स्मार्ट कॉन्ट्रॅक्ट्स तैनात केले.

कल्पना

ब्लॉकचेन आणि NEAR शी संबंधित सर्व गोष्टींची उत्तम ओळख झाल्यानंतर, आम्ही कल्पनांचे विचारमंथन सुरू केले. हा प्रकल्प केवळ एक “हॅकाथॉन प्रकल्प” नसावा, तर इतर लोक वापरू शकतील असे उत्पादन बनावे आणि केवळ व्यापार करण्याव्यतिरिक्त इतर गोष्टींसाठी क्रिप्टो कसे उपयुक्त ठरू शकते याचे उदाहरण म्हणून काम करावे, अशी माझी इच्छा होती.

हे लक्षात घेऊन, सुरुवातीला आम्ही Unreal Engine Blueprint सारखे, परंतु कोडिंगची गरज नसताना NEAR ब्लॉकचेनवर स्मार्ट कॉन्ट्रॅक्ट्स सहजपणे तयार आणि तैनात करण्यासाठीचे काहीतरी तयार करण्याचे ठरवले. मात्र हॅकाथॉन सुरू होण्याच्या एक आठवडा आधी, आम्ही ही कल्पना सोडून दिली, कारण तिचा फारसा अर्थ नव्हता. अजून त्यांचा कोणताही व्यावहारिक उपयोग नसताना, NEAR स्मार्ट कॉन्ट्रॅक्ट्स तयार करण्यासाठी कोणी आमचे साधन का वापरेल? अनेक लोकांना गरज नसलेले साधन विकसित करण्यासारखेच ते झाले असते.

हॅकाथॉन सुरू होण्यास केवळ एक आठवडा बाकी असताना, आम्ही पुन्हा विचारमंथन सुरू केले आणि या कल्पनेवर स्थिरावलो:

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

आम्ही या प्रकल्पाचे नाव “Labeler NearBy” ठेवले. ही कल्पना निवडण्यामागील आमची कारणे पुढीलप्रमाणे होती:

  • AI विकासासाठी प्रशिक्षणाकरिता मानवांकडून डेटाचे लेबलिंग आवश्यक असते.
  • विशिष्ट डेटासेट्सचे लेबलिंग करण्यासाठी कुशल व्यक्ती शोधणे आणि त्यांचे व्यवस्थापन करणे आव्हानात्मक असते.
  • ही कल्पना Scale AI नावाच्या कंपनीने आधीच यशस्वीपणे अंमलात आणली आहे, त्यांच्या उत्पादनाला बाजारपेठेत योग्य स्थान मिळाले यावरून हे स्पष्ट होते.
  • Scale AI सारख्या केंद्रीकृत सेवांमुळे चिंता निर्माण होतात, कारण संस्थांना त्यांचा डेटा लेबलिंग कंपनीकडे पाठवावा लागतो आणि ती कंपनी त्यानंतर जगभरातील मानवी लेबलर्सना हे काम देते. लेबलिंग प्रक्रिया पूर्ण झाल्यानंतर, कंपनी लेबल केलेला डेटा संस्थेकडे परत पाठवते. यामुळे मौल्यवान प्रशिक्षण डेटावरील नियंत्रण सुटते; लेबलिंग कंपनी हा डेटा स्वतःच्या मॉडेल्सना प्रशिक्षण देण्यासाठी वापरू शकते. या सेवेचे विकेंद्रीकरण करणे हा तार्किक उपाय वाटला.
  • विकेंद्रीकृत अॅप (dApp) क्षेत्रात या कल्पनेवर काम करणारे फारच कमी प्रकल्प आम्हाला आढळले, त्यामुळे या क्षेत्रात नावीन्य आणण्याची आणि पायोनियर होण्याची संधी आम्हाला मिळाली.

गुंतागुंत कमी करण्यासाठी, सध्या Labeler NearBy केवळ प्रतिमा डेटाला समर्थन देईल, असे आम्ही ठरवले.

सादरीकरण

कल्पना निश्चित झाल्यानंतर आणि हॅकाथॉन अधिकृतपणे सुरू झाल्यानंतर, माझ्या मित्राने आणि मी Labeler NearBy तयार करण्यास सुरुवात केली. 24 नोव्हेंबर 2022 रोजी आम्ही आमच्या प्रकल्पाचा अंतिम मसुदा Devpost वर सादर करेपर्यंत आम्ही 2 महिने आमच्या प्रकल्पावर काम केले. आम्ही आमचा प्रकल्प Devpost वर सादर केला आणि Github वर आमच्या सादरीकरणाची एक प्रतही तयार केली. या ब्लॉगमध्ये Labeler NearBy च्या प्रत्येक तांत्रिक पैलूचा आणि विकास प्रक्रियेचा समावेश नाही. हे लक्षात घेऊन, Labeler NearBy कसे कार्य करते याबद्दल अधिक जाणून घेण्यासाठी किंवा आमचे अंतिम सादरीकरण पाहण्यासाठी, कृपया पुढीलपैकी एका दुव्याला भेट द्या:

Labeler NearBy मध्ये दोन कोडबेस आहेत: ln-researcher आणि ln-labeler. हे कोडबेस MIT परवान्याअंतर्गत पूर्णपणे मुक्त स्रोत आहेत आणि पुढील दुव्यांद्वारे पाहता येतात:

Labeler NearBy (LN) कसे कार्य करेल याचे सर्वसाधारण अवलोकन येथे दिले आहे:

एका संशोधकाला त्याच्या AI मॉडेलच्या प्रशिक्षणासाठी लेबल केलेल्या प्रतिमांची आवश्यकता असते. हे साध्य करण्यासाठी, संशोधक त्याचा डेटा होस्ट करण्यासाठी आणि लेबलर्सना त्याचा डेटा लेबल करण्याचे साधन उपलब्ध करून देण्यासाठी LN चा वापर करतो. हे ln-researcher द्वारे साध्य केले जाते. ही स्वतः होस्ट करता येणारी वेब सेवा असून त्यात API, संशोधकाचे स्मार्ट कॉन्ट्रॅक्ट्स आणि स्थानिक Postgres डेटाबेसचा समावेश असतो. लेबलरसाठी, एक वेब फ्रंटएंड उपलब्ध करून दिले जाते (दिले गेले असते), ज्यामुळे त्यांना संशोधकाच्या प्रतिमांपर्यंत पोहोचता येते आणि त्यांना लेबल करता येते. लेबलिंगच्या प्रक्रियेदरम्यान, प्रत्येक प्रतिमेला वेगवेगळ्या लेबलर्सकडून तीन वेळा लेबल केले जाते. मतदान प्रणालीद्वारे ठरवलेल्या सर्वोत्तम लेबल्स असलेल्या लेबलरलाच NEAR नाण्यांचे बक्षीस मिळते. या प्रक्रियेसाठी जबाबदार असलेल्या वेब अॅपला ln-labeler असे म्हणतात. संशोधक प्रत्येक लेबलिंग प्रक्रियेसाठी निधी पुरवतो आणि Coinbase द्वारे NEAR नाणी सहजपणे डॉलरमध्ये रूपांतरित करता येतात. सर्व व्यवहारविषयक प्रक्रिया NEAR Protocol ब्लॉकचेनवर होस्ट केलेल्या स्मार्ट कॉन्ट्रॅक्ट्सद्वारे हाताळल्या जातात.

हॅकाथॉनसाठी Labeler NearBy चा आमचा डेमो व्हिडिओ तुम्ही येथे पाहू शकता:

सर्वांत मोठे यश

मला अंमलात आणल्याचा सर्वाधिक अभिमान असलेले वैशिष्ट्य म्हणजे getImage() नावाचे फंक्शन. हे फंक्शन ln-researcher मध्ये API एंडपॉइंट म्हणून काम करते आणि Labeler NearBy (LN) मधील संशोधक आणि लेबलर्समधील डेटा पाइपलाइनमध्ये महत्त्वाची भूमिका बजावते.

हा API एंडपॉइंट संशोधकांना त्यांच्या प्रतिमा सुरक्षितपणे आणि विश्वासार्हपणे लेबलिंगसाठी वितरित करण्याची सुविधा देतो. लेबलिंगची कामे NEAR Protocol ब्लॉकचेनवरील NEAR स्मार्ट कॉन्ट्रॅक्ट्सद्वारे व्यवस्थापित केली जातात, तर प्रतिमा डेटा संशोधकाद्वारे ln-researcher मार्फत होस्ट केला जातो.

केवळ नियुक्त केलेला लेबलरच प्रतिमेपर्यंत पोहोचू शकेल याची खात्री करण्यासाठी हा एंडपॉइंट अनेक सुरक्षा तपासण्या करतो. यामध्ये विनंतीची स्वाक्षरी पडताळणे आणि कार्य अस्तित्वात आहे तसेच विनंती करणाऱ्या लेबलरला ते नियुक्त केलेले आहे याची पुष्टी करण्यासाठी संबंधित स्मार्ट कॉन्ट्रॅक्ट तपासणे यांचा समावेश होतो.

संशोधकाच्या स्वतः होस्ट केलेल्या ln-researcher API मध्ये विनंतीची पडताळणी झाल्यानंतर, फंक्शन स्थानिक Postgres डेटाबेसमधून प्रतिमा मिळवते, प्रतिमा एन्क्रिप्ट करते आणि अधिकृत लेबलरपर्यंत पोहोचवते. त्यानंतर तो लेबलर लेबलिंगसाठी प्रतिमा डिक्रिप्ट करू शकतो. त्याच वेळी, फंक्शन डेटाबेसमधील प्रतिमेची स्थिती अद्ययावत करते, ज्यामुळे प्रतिमेचे लेबलिंग किती पुढे झाले आहे हे सूचित होते. या संपूर्ण प्रक्रियेदरम्यान, प्रमाणीकरणासाठी संशोधक आणि लेबलर या दोघांच्या RSA की वापरल्या जातात. प्रतिमा एन्क्रिप्ट करण्यासाठी AES एन्क्रिप्शन वापरले जाते.

हा एंडपॉइंट संशोधकांकडून लेबलर्सकडे प्रतिमांचे सुरक्षित आणि नियंत्रित वितरण व्यवस्थापित करण्यात महत्त्वपूर्ण भूमिका बजावतो. तो सुरक्षित डेटा हस्तांतरण सुनिश्चित करतो आणि प्रतिमा लेबलिंग प्रक्रियेचा प्रभावीपणे मागोवा घेतो व तिचे व्यवस्थापन करतो. याव्यतिरिक्त, या प्रक्रियेमुळे किमान या एंडपॉइंटसाठी HTTPS वापरण्याची गरज दूर होण्याची शक्यता आहे.

या विशिष्ट एंडपॉइंट/फंक्शनची चाचणी घेण्यात आली आणि ते कार्यक्षम असल्याचे सिद्ध झाले. Labeler NearBy ची एकूण कार्यक्षमता दर्शवणारा, तसेच वर उल्लेख केलेला एंडपॉइंट/फंक्शन कसा कार्य करतो हे स्पष्टपणे दाखवणारा आकृतीबंध खाली दिला आहे:

परिणाम

खेदाची बाब म्हणजे, हॅकाथॉनच्या अंतिम मुदतीपर्यंत आम्ही हा प्रकल्प पूर्णपणे पूर्ण करू शकलो नाही. ln-researcher सारखा प्रकल्पाचा बहुतांश भाग पूर्ण झाला होता, परंतु फ्रंटएंड (ln-labeler) पूर्ण झाला नव्हता आणि आम्ही लाइव्ह डेमो तैनात करू शकलो नाही. बॅकएंड (ln-researcher) मूलतः पूर्ण झाला असला तरी, योग्यरीत्या कार्य करणारा फ्रंटएंड आणि लाइव्ह डेमो नसल्यामुळे, कोणालाही Labeler NearBy ही कल्पना वापरून पाहता आली नाही. एवढेच नव्हे, तर परीक्षकांनाही प्रकल्प वापरून पाहता आला नाही; त्याऐवजी त्यांना सबमिशन वाचावे लागले, कोड तपासावा लागला आणि/किंवा तो स्वतः चालवण्याचा प्रयत्न करावा लागला. त्यामुळे जिंकण्याची आमची शक्यता जवळजवळ शून्य टक्क्यांपर्यंत घसरली. 15 डिसेंबर 2022 रोजी हॅकाथॉनच्या विजेत्यांची घोषणा झाली तेव्हा याची पुष्टी झाली आणि त्यांच्यामध्ये आमचा समावेश नव्हता.

पराभव

या हॅकाथॉनचा अंतिम परिणाम निराशाजनक होता, ही वस्तुस्थिती मी लपवणार नाही. या प्रकल्पासाठी अनेक महिने गुंतवले गेले होते आणि या प्रकल्पासाठी माझ्याकडे एक मोठी दृष्टी होती, कारण मला वाटत होते की तो संशोधकांसाठी अतिशय उपयुक्त साधन ठरेल.

मी हाती घेतलेल्या प्रकल्पांसाठी माझे एक स्पष्ट मानक आहे: ते एकतर यशस्वी होतात किंवा अपयशी ठरतात; मधला कोणताही मार्ग नाही. त्यामुळे हा प्रकल्प अपयशी ठरला, कारण तो अंतिम मुदतीपर्यंत पूर्णपणे पूर्ण झाला नाही आणि संभाव्य वापरकर्त्यांसाठी अनुपलब्ध राहिला.

परंतु हे लक्षात ठेवणे महत्त्वाचे आहे की अपयश हा जीवनाचा एक नैसर्गिक भाग आहे. आपल्या अपयशांमधून आपण शिकत असलेल्या धड्यांवर आपली यशे उभी असतात. या हॅकाथॉनचा परिणाम निराशाजनक असला तरी, प्रकल्प/उत्पादन विकसित आणि तयार करण्याच्या बाबतीत त्याने अद्याप मौल्यवान अंतर्दृष्टी दिली.

शिकलेले धडे

या अनुभवातून मी घेतलेले मुख्य धडे पुढीलप्रमाणे आहेत:

  1. आम्ही निवडलेल्या प्रकल्पासाठी त्यावर पुनरावृत्तीने काम करण्यापूर्वीच अनेक वैशिष्ट्ये तयार करणे आवश्यक होते. मला याचा अर्थ काय आहे? तर, या प्रकल्पासाठी कल्पनेतील जवळजवळ सर्व घटक तयार करणे आवश्यक होते, तेव्हाच आम्ही कल्पनेची चाचणी घेऊ शकलो असतो. कार्य करण्यासाठी कमी आवश्यक घटक असलेला प्रकल्प निवडणे अधिक योग्य ठरले असते. असे केल्याने आम्ही आवश्यक घटक अधिक जलद तयार करू शकलो असतो आणि त्यानंतर प्रकल्पावर लवकर पुनरावृत्तीने काम करू शकलो असतो. असे केल्याने आम्ही अंतिम मुदत अधिक सहजपणे गाठू शकलो असतो आणि कदाचित अधिक साधा, परंतु अधिक पूर्ण प्रकल्प तयार करू शकलो असतो. YC, हे तंत्रज्ञान स्टार्टअप प्रवेगक, तुम्ही त्वरित लॉन्च करा, वापरकर्त्यांशी बोला आणि पुनरावृत्तीने काम करा यावर भर देते. या हॅकाथॉनसाठी आमच्या प्रकल्पाबाबत आम्ही तसे करायला हवे होते.
  2. हा प्रकल्प तयार करण्यासाठी किती वेळ लागणार आहे, याचा आम्ही कमी अंदाज लावला. हा आमचा पहिला हॅकाथॉन होता आणि विकेंद्रित अनुप्रयोग (dapp) तयार करण्याची आमची पहिलीच वेळ होती. एवढेच नव्हे, तर मी सॉफ्टवेअर अभियंता म्हणून पूर्णवेळ काम करत होतो आणि माझा मित्र त्याची पदव्युत्तर पदवी पूर्ण करत होता. तरीही, आम्हाला वाटले की 2 महिने पुरेसे असतील. प्रकल्पाची व्याप्ती कमी करणे आणि/किंवा आमचा कामाचा भार कमी करू शकणारा आणखी एक टीम सदस्य शोधणे अधिक योग्य ठरले असते.
  3. विन्स्टन चर्चिल यांनी प्रसिद्धपणे म्हटले आहे: “परिपूर्णता ही प्रगतीची शत्रू आहे.” मी या प्रकल्पाकडे व्यवसाय-ते-ग्राहक (B2C) उत्पादनाप्रमाणे पाहत होतो, प्रत्यक्षात हा केवळ हॅकाथॉन प्रकल्प आणि जास्तीत जास्त किमान व्यवहार्य उत्पादन (MVP) होता. त्यामुळे सुरुवातीला मी छोट्या तपशीलांवर खूप वेळ वाया घालवला, जेव्हा माझा वेळ मूलभूत वैशिष्ट्ये पुरेशा प्रमाणात कार्यरत करण्यावर केंद्रित करायला हवा होता.

या मौल्यवान धड्यांव्यतिरिक्त, माझ्या वैयक्तिक साइड प्रकल्पांमध्ये आणि व्यावसायिक प्रयत्नांमध्ये अत्यंत उपयुक्त ठरलेली नवीन कौशल्ये मी आत्मसात केली आहेत. या कौशल्यांमध्ये पुढील गोष्टींचा समावेश आहे:

  1. Node.js, JavaScript आणि Express.js वापरून API विकसित करणे
  2. डेटा व्यवस्थापनासाठी PostgreSQL स्थापित करणे आणि वापरणे
  3. PG सारख्या पॅकेजेसचा वापर करून API विकासामध्ये PostgresSQL समाविष्ट करणे.
  4. अधिक मजबूत डेटा सुरक्षेसाठी RSA (असममित कूटबद्धीकरण) आणि AES (सममित कूटबद्धीकरण) वापरणे.

निष्कर्ष

एकूणच, अंतिम परिणामामुळे निराशा झाली असली तरी आम्ही या हॅकाथॉनमध्ये सहभागी झालो याचा मला आनंद आहे. Labeler NearBy वर काम करताना मिळालेले मौल्यवान धडे आणि कौशल्ये यांसाठी मी कृतज्ञ आहे, कारण त्यांनी मला अधिक चांगला विकसक बनवले आहे आणि माझ्या पुढील प्रकल्पाच्या विकासात महत्त्वपूर्ण योगदान दिले आहे: Notify-Cyber.

इतर नोंदी

  • मी कदाचित Labeler NearBy कडे पुन्हा परत येईन, परंतु सध्या हा प्रकल्प “दीर्घ विश्रांतीवर” आहे.
  • सध्या, Labeler NearBy फक्त NEAR च्या टेस्टनेटवरच चालवला जावा. त्यासाठी पुढील विकास, चाचणी आणि ऑडिटिंग आवश्यक आहे.