Labeler NearBy erstellen

Table of Contents

Mein Erster Hackathon

In den späteren Teilen des Sommers 2022 wollte ich wirklich an einem spannenden Projekt arbeiten. Ich hatte gerade mein Grundstudium abgeschlossen und arbeitete Vollzeit als Softwareingenieur. Ich wollte mich wirklich einem Nebenprojekt widmen und hatte zu diesem Zeitpunkt genug Freizeit, um dies zu tun. Ich wusste wirklich nicht, woran ich arbeiten sollte, bis ich im August 2022 eine Website namens Devpost entdeckte. Devpost ist eine Website, die Softwarewettbewerbe namens Hackathons veranstaltet. Während ich auf Devpost stöberte, entdeckte ich einen Hackathon namens NEAR MetaBUILD III, der von der NEAR Protocol Organisation veranstaltet wurde.

Was ist NEAR?

Das NEAR Protocol ist eine Blockchain, die Smart Contracts und die NEAR-Kryptowährung unterstützt. Es ist hauptsächlich bekannt für sehr niedrige Transaktionsgebühren, die Unterstützung von Smart Contracts, ein eigenes offizielles Testnetz und eine großartige Entwicklerumgebung, da man Smart Contracts in Rust und/oder JavaScript schreiben kann. Sie können einen besseren Überblick über das NEAR Protocol durch das erstaunliche Video von CoinGecko erhalten:

In dieser Zeit begann Coinbase offiziell, das NEAR Protocol als handelbare Münze auf ihrer Plattform zu unterstützen. Das war ein großes Ding, da Coinbase dafür bekannt ist, sehr wählerisch zu sein, welche Münzen sie auf ihrer Plattform unterstützen. Dies half, NEAR zu einer vertrauenswürdigeren Plattform zu machen. Sie können NEAR auf Coinbase bis heute handeln.

Warum sich engagieren?

Nachdem ich einige Zeit nachgedacht hatte, entschied ich mich, meine Zeit für die Teilnahme am NEAR MetaBUILD III Hackathon zu investieren. Mein Grund war folgender:

  • Krypto wird nicht verschwinden und ist eine Technologie, die bleiben wird. Daher machte es Sinn, etwas Zeit in das Lernen der Technologie zu investieren.
  • Der Hackathon hatte großartige Belohnungen, zwischen 20.000 und 100.000 US-Dollar in NEAR, wenn man einer der Gewinner war.
  • Der Hackathon hatte eine spezifische Frist, was bedeutete, dass das Projekt nicht monatelang hinausgezögert werden konnte, wie es bei vielen Nebenprojekten der Fall ist.
  • Das Projekt wäre eine großartige Lernerfahrung und eine großartige Einführung in Hackathons.
  • Im schlimmsten Fall würde der Hackathon es mir ermöglichen, ein großartiges Projekt zu erstellen, das ich in meinem Lebenslauf zeigen kann.

Mit all dem im Hinterkopf rief ich am 26. August 2022 meinen engen Freund aus dem College an und wir begannen mit der Planung für diesen Hackathon. Der Hackathon sollte am 23. September 2023 beginnen und am 21. November 2022 enden. Obwohl die Frist gegen Ende des Hackathons auf den 24. November 2023 verlängert wurde. Da wir einen Monat im Voraus waren, beschlossen wir, diese Zeit mit Lernen und Brainstorming zu verbringen, woran wir für diesen zweimonatigen Hackathon arbeiten würden. Während des ersten Monats erhielten wir einen allgemeinen Überblick über Krypto und Blockchains. Wir überprüften und übten auf dem Testnetz von NEAR, überprüften das NEAR SDK und setzten ein paar Smart Contracts ein.

Die Idee

Nachdem wir eine großartige Einführung in alles, was mit Blockchain und NEAR zu tun hat, erhalten hatten, begannen wir mit dem Brainstorming von Ideen. Ich wollte, dass dieses Projekt nicht nur ein “Hackathon-Projekt” ist, sondern etwas, das zu einem Produkt werden kann, das andere nutzen können und als Beispiel dafür dient, wie Krypto für Dinge außerhalb des Handels nützlich sein könnte.

Mit diesem Gedanken beschlossen wir zunächst, etwas Ähnliches wie das Unreal Engine Blueprint zu erstellen, aber für die einfache Erstellung und Bereitstellung von Smart Contracts auf der NEAR-Blockchain ohne die Notwendigkeit von Programmierung. Eine Woche vor Beginn des Hackathons gaben wir jedoch die Idee auf, da sie einfach keinen Sinn ergab. Warum sollte jemand unser Tool verwenden, um NEAR-Smart Contracts zu erstellen, wenn es noch keinen praktischen Anwendungsfall dafür gab? Es wäre, als würde man ein Tool entwickeln, das viele Menschen nicht benötigen.

Mit nur noch einer Woche bis zum Beginn des Hackathons begannen wir erneut mit dem Brainstorming und einigten uns auf diese Idee:

Eine dezentrale Plattform, auf der KI-Forscher
Datenlabeling an Labeler auf der ganzen Welt auslagern können

Wir nannten das Projekt “Labeler NearBy.” Unsere Entscheidung, diese Idee zu wählen, basierte auf folgenden Gründen:

  • Die Entwicklung von KI erfordert menschliches Labeling von Daten für das Training.
  • Es ist herausfordernd, qualifizierte Personen für das Labeling spezifischer Datensätze zu finden und zu verwalten.
  • Die Idee wurde bereits erfolgreich von einem Unternehmen namens Scale AI umgesetzt, wie die erfolgreiche Produkt-Markt-Passung zeigt.
  • Zentralisierte Dienste wie Scale AI werfen Bedenken auf, da Organisationen ihre Daten an das Labeling-Unternehmen senden müssen, das dann menschliche Labeler weltweit auslagert. Nach dem Labeling-Prozess gibt das Unternehmen die gelabelten Daten an die Organisation zurück. Dies gibt die Kontrolle über wertvolle Trainingsdaten auf, die vom Labeling-Unternehmen verwendet werden könnten, um ihre eigenen Modelle zu trainieren. Die Dezentralisierung dieses Dienstes schien eine logische Lösung zu sein.
  • Wir fanden sehr wenige Projekte im Bereich der dezentralen Apps (dApp), die an dieser Idee arbeiteten, was uns die Möglichkeit gab, in diesem Bereich zu innovieren und Pionierarbeit zu leisten.

Um die Komplexität zu reduzieren, entschieden wir, dass Labeler NearBy vorerst nur Bilddaten unterstützen wird.

Einreichung

Mit der gewählten Idee und dem offiziellen Beginn des Hackathons begannen mein Freund und ich mit dem Bau von Labeler NearBy. Wir arbeiteten zwei Monate an unserem Projekt, bis wir am 24. November 2022 den endgültigen Entwurf unseres Projekts bei Devpost einreichten. Wir reichten unser Projekt bei Devpost ein und erstellten auch eine Kopie unserer Einreichung auf Github. Dieser Blog behandelt nicht jeden technischen Aspekt und Entwicklungsprozess von Labeler NearBy. In diesem Wissen, um mehr darüber zu erfahren, wie Labeler NearBy funktioniert oder um unsere endgültige Einreichung zu sehen, besuchen Sie bitte einen der folgenden Links:

Labeler NearBy besteht aus zwei Codebasen: ln-researcher und ln-labeler. Diese Codebasen sind vollständig Open Source unter der MIT-Lizenz und können über die folgenden Links eingesehen werden:

Hier ist ein allgemeiner Überblick darüber, wie Labeler NearBy (LN) funktionieren würde:

Ein Forscher benötigt gelabelte Bilder für das Training seines KI-Modells. Um dies zu erreichen, nutzt der Forscher LN, um seine Daten zu hosten und den Labelern eine Möglichkeit zu bieten, ihre Daten zu labeln. Dies geschieht über ln-researcher, einen selbst gehosteten Webdienst, der aus einer API, den Smart Contracts des Forschers und einer lokalen Postgres-Datenbank besteht. Für den Labeler wird ein Web-Frontend bereitgestellt, das es ihnen ermöglicht, auf die Bilder des Forschers zuzugreifen und sie zu labeln. Während des Labeling-Prozesses wird ein Bild dreimal von verschiedenen Labelern gelabelt. Nur der Labeler mit den besten Labels, die durch ein Abstimmungssystem bestimmt werden, wird mit NEAR-Münzen belohnt. Die Webanwendung, die für diesen Prozess verantwortlich ist, heißt ln-labeler. Der Forscher finanziert jede Labeling-Operation, und NEAR-Münzen können leicht über Coinbase in Dollar umgewandelt werden. Alle Transaktionslogistik wird durch Smart Contracts abgewickelt, die auf der NEAR Protocol Blockchain gehostet werden.

Sie können unser Demovideo von Labeler NearBy für den Hackathon hier ansehen:

Größte Errungenschaft

Die Funktion, auf die ich am stolzesten bin, ist eine Funktion namens getImage(). Diese Funktion dient als API-Endpunkt in ln-researcher und spielt eine entscheidende Rolle in der Datenpipeline zwischen Forschern und Labelern in Labeler NearBy (LN).

Dieser API-Endpunkt ermöglicht es Forschern, ihre Bilder sicher und zuverlässig für das Labeling zu verteilen. Die Labeling-Aufgaben werden über einen NEAR-Smart Contract auf der NEAR Protocol Blockchain verwaltet, während die Bilddaten vom Forscher über ln-researcher gehostet werden.

Der Endpunkt führt eine Reihe von Sicherheitsprüfungen durch, um sicherzustellen, dass nur der zugewiesene Labeler auf das Bild zugreifen kann. Dazu gehört die Überprüfung der Signatur der Anfrage und die Überprüfung des zugehörigen Smart Contracts, um die Existenz der Aufgabe und deren Zuweisung an den anfragenden Labeler zu bestätigen.

Sobald die Anfrage im selbst gehosteten ln-researcher API des Forschers validiert ist, ruft die Funktion das Bild aus der lokalen Postgres-Datenbank ab, verschlüsselt das Bild und liefert es an den autorisierten Labeler, der das Bild dann für das Labeling entschlüsseln kann. Gleichzeitig aktualisiert die Funktion den Status des Bildes in der Datenbank, um den Fortschritt des Labelings anzuzeigen. Während dieses Prozesses werden RSA-Schlüssel sowohl des Forschers als auch des Labelers zur Authentifizierung verwendet. Während die AES-Verschlüsselung verwendet wird, um das Bild zu verschlüsseln.

Dieser Endpunkt spielt eine entscheidende Rolle bei der Verwaltung der sicheren und kontrollierten Verteilung von Bildern von Forschern zu Labelern. Er gewährleistet einen sicheren Datentransfer und verfolgt und verwaltet effektiv den Prozess des Bildlabelings. Darüber hinaus hat dieser Prozess das Potenzial, die Notwendigkeit der Verwendung von HTTPS zu beseitigen, zumindest für diesen Endpunkt.

Dieser spezifische Endpunkt/Funktion wurde getestet und als funktional erwiesen. Unten ist ein Diagramm, das die Gesamtfunktionalität von Labeler NearBy veranschaulicht, einschließlich einer klaren Darstellung, wie der oben genannte Endpunkt/Funktion funktioniert:

Ergebnis

Leider ist die traurige Realität, dass wir dieses Projekt bis zur Frist des Hackathons nicht vollständig abschließen konnten. Der Großteil des Projekts wurde abgeschlossen, wie der ln-researcher, aber das Frontend (ln-labeler) wurde nicht fertiggestellt und wir konnten keine Live-Demo bereitstellen. Obwohl das Backend (ln-researcher) im Grunde genommen abgeschlossen war, konnte niemand die Idee von Labeler NearBy ausprobieren, da es kein funktionierendes Frontend und keine Live-Demo gab. Nicht nur das, sondern die Juroren konnten das Projekt nicht ausprobieren und mussten stattdessen die Einreichung lesen, den Code durchgehen und/oder versuchen, es selbst auszuführen. Das verringerte unsere Gewinnchancen auf praktisch null Prozent. Dies wurde am 15. Dezember 2022 bestätigt, als die Gewinner des Hackathons bekannt gegeben wurden, und wir waren nicht unter ihnen.

Verlieren

Ich werde nicht verbergen, dass das endgültige Ergebnis dieses Hackathons enttäuschend war. Monate wurden in dieses Projekt investiert und ich hatte eine große Vision für dieses Projekt, da ich dachte, es würde ein sehr nützliches Werkzeug für Forscher bieten.

Ich habe einen klaren Standard für die Projekte, die ich angehe: entweder sie haben Erfolg oder sie scheitern; es gibt keinen Mittelweg. Dieses Projekt war also ein Misserfolg, weil es bis zur Frist nicht vollständig abgeschlossen wurde und für potenzielle Nutzer unzugänglich blieb.

Aber es ist wichtig, sich daran zu erinnern, dass Misserfolg ein natürlicher Teil des Lebens ist. Unsere Erfolge basieren auf den Lektionen, die wir aus unseren Misserfolgen lernen. Während das Ergebnis dieses Hackathons enttäuschend war, lieferte es dennoch wertvolle Einblicke in die Entwicklung und den Aufbau eines Projekts/Produkts.

Gelerntes

Die wichtigsten Lektionen, die ich aus dieser Erfahrung mitgenommen habe, sind die folgenden:

  1. Das Projekt, das wir gewählt haben, erforderte viele Funktionen, die im Voraus entwickelt werden mussten, bevor wir daran iterieren konnten. Was meine ich damit? Nun, dieses Projekt erforderte, dass fast alle Komponenten der Idee entwickelt wurden, bevor wir die Idee überhaupt testen konnten. Es hätte mehr Sinn gemacht, ein Projekt auszuwählen, das weniger wesentliche Komponenten zum Funktionieren hatte. Dadurch hätten wir die wesentlichen Komponenten schneller entwickeln und früher am Projekt iterieren können. So hätten wir die Frist leichter einhalten und ein Projekt erstellen können, das vielleicht einfacher, aber vollständiger gewesen wäre. YC, ein Accelerator für Tech-Startups, betont, dass man schnell starten, mit Nutzern sprechen und iterieren sollte. Das hätten wir mit unserem Projekt für diesen Hackathon tun sollen.
  2. Wir haben unterschätzt, wie lange es dauern würde, dieses Projekt zu bauen. Dies war unser erster Hackathon und unser erstes Mal, dass wir eine dezentrale Anwendung (dapp) erstellt haben. Außerdem arbeitete ich Vollzeit als Software-Ingenieur und mein Freund machte seinen Master. Dennoch dachten wir, dass 2 Monate ausreichen würden. Es hätte mehr Sinn gemacht, den Umfang des Projekts zu reduzieren und/oder ein weiteres Teammitglied zu finden, das unsere Arbeitslast hätte verringern können.
  3. Winston Churchill sagte berühmt: “Perfektion ist der Feind des Fortschritts”. Ich behandelte dieses Projekt wie ein Business-to-Consumer (B2C) Produkt, während es in Wirklichkeit nur ein Hackathon-Projekt und höchstens ein Minimum Viable Product (MVP) war. So verschwendete ich zu Beginn zu viel Zeit mit kleinen Details, während ich mich auf die Kernfunktionen konzentrieren sollte.

Neben diesen wertvollen Lektionen habe ich neue Fähigkeiten erlangt, die sich sowohl in meinen persönlichen Nebenprojekten als auch in meinen beruflichen Bestrebungen als unschätzbar erwiesen haben. Diese Fähigkeiten umfassen:

  1. Entwicklung von APIs mit Node.js, JavaScript und Express.js
  2. Einrichtung und Nutzung von PostgreSQL für das Datenmanagement
  3. Integration von PostgreSQL in die API-Entwicklung durch die Verwendung von Paketen wie PG.
  4. Nutzung von RSA (asymmetrische Verschlüsselung) und AES (symmetrische Verschlüsselung) zur Verbesserung der Datensicherheit.

Fazit

Insgesamt bin ich froh, dass wir an diesem Hackathon teilgenommen haben, obwohl ich mit dem endgültigen Ergebnis enttäuscht bin. Ich bin dankbar für die wertvollen Lektionen und Fähigkeiten, die ich beim Arbeiten an Labeler NearBy erworben habe, da sie mich zu einem besseren Entwickler gemacht haben und erheblich zur Entwicklung meines nächsten Projekts beigetragen haben: Notify-Cyber.

Weitere Anmerkungen

  • Ich könnte zu Labeler NearBy zurückkehren, aber vorerst ist dieses Projekt auf “langen Urlaub”
  • Derzeit sollte Labeler NearBy NUR im Testnetz von NEAR laufen. Es benötigt weitere Entwicklung, Tests und Audits.