Labeler NearBy
Table of Contents
我的第一次黑客马拉松
在 2022 年夏季的后期,我真的想要做一个令人兴奋的项目。我刚刚完成本科学业,正在全职担任软件工程师。我真的想投入一个副项目,当时我有足够的空闲时间来做。我真的不知道该做什么,直到 2022 年 8 月我发现了一个叫 Devpost 的网站。Devpost 是一个举办软件竞赛(即黑客马拉松)的网站。在浏览 Devpost 时,我发现了一个叫 NEAR MetaBUILD III 的黑客马拉松,它是由 NEAR Protocol 组织举办的。
什么是 NEAR?
NEAR Protocol 是一个支持智能合约和 NEAR 加密货币的区块链。它主要因极低的交易费用、支持智能合约、拥有官方测试网络以及出色的开发者环境而闻名,因为你可以使用 Rust 和/或 JavaScript 编写智能合约。你可以通过 CoinGecko 的精彩视频更好地了解 NEAR Protocol:
在此期间,Coinbase 正式开始在其平台上支持 NEAR Protocol 作为可交易的币种。这是件大事,因为 Coinbase 在选择支持的币种时非常挑剔。这帮助提升了 NEAR 的可信度。你仍然可以在 Coinbase 上交易 NEAR 到今天。
为什么要投入?
经过一段时间的思考,我决定把时间投入到参加 NEAR MetaBUILD III 黑客马拉松。我的理由如下:
- 加密货币不会消失,它是一项将会持续的技术。因此投入时间学习这项技术是有意义的。
- 黑客马拉松有丰厚的奖励,获胜者可获得价值 20,000 到 100,000 NEAR 的奖励。
- 黑客马拉松有明确的截止日期,这意味着项目不会像许多副项目那样拖延数月。
- 该项目将是一次很好的学习体验,也是进入黑客马拉松的好入口。
- 最坏的情况是,黑客马拉松可以让我做出一个可以在简历上展示的优秀项目。
考虑到以上所有,我在 2022 年 8 月 26 日给大学的好朋友打了电话,我们开始为这次黑客马拉松做计划。黑客马拉松原定于 2023 年 9 月 23 日开始,2022 年 11 月 21 日结束。虽然截止日期在黑客马拉松结束前延长到了 2023 年 11 月 24 日。因为我们提前了 1 个月,我们决定利用这段时间学习并头脑风暴我们在这 2 个月的黑客马拉松中要做的事情。在第一个月里,我们对加密货币和区块链有了总体了解。我们在 NEAR 的测试网进行练习,审阅了 NEAR SDK,并部署了几个智能合约。
想法
在对区块链和 NEAR 有了很好的了解后,我们开始头脑风暴想法。我想让这个项目不仅仅是“黑客马拉松项目”,而是可以成为其他人可以使用的产品,并且作为加密货币在除交易之外的其他用途的示例。
基于此,我们最初决定创建类似于 Unreal Engine Blueprint 的工具,用于在 NEAR 区块链上轻松创建和部署智能合约,无需编码。然而,在黑客马拉松开始前一周,我们放弃了这个想法,因为它根本没有意义。为什么要使用我们的工具来创建 NEAR 智能合约,如果它们还没有实际的使用场景?这就像开发一个很多人不需要的工具。
在黑客马拉松开始前只剩一周时,我们再次进行头脑风暴,最终确定了以下想法:
一个去中心化平台,AI 研究人员可以将数据标注外包给全球的标注者
我们将项目命名为 “Labeler NearBy”。我们选择这个想法的原因如下:
- AI 开发需要人工标注数据进行训练。
- 找到并管理有技能的标注人员是一个挑战。
- 该想法已经被一家叫 Scale AI 的公司成功实现,证明了其产品市场匹配。
- 像 Scale AI 这样的中心化服务存在风险,因为组织必须将数据发送给标注公司,而该公司再将标注工作外包给全球的人工标注者。标注完成后,标注公司将标注好的数据返回给组织。这会失去对有价值的训练数据的控制,标注公司可能会用这些数据来训练自己的模型。去中心化此服务是一个合理的解决方案。
- 我们在去中心化应用(dApp)领域几乎没有看到类似项目,这为我们提供了创新和开拓的机会。
为了降低复杂性,我们决定 Labeler NearBy 暂时只支持图像数据。
提交
在确定想法并正式开始黑客马拉松后,我和朋友开始构建 Labeler NearBy。我们花了 2 个月的时间,直到 2022 年 11 月 24 日在 Devpost 上提交了项目的最终稿。我们在 Devpost 上提交了项目,并在 Github 上创建了提交的副本。此博客不涵盖 Labeler NearBy 的所有技术细节和开发过程。了解更多关于 Labeler NearBy 的工作方式或查看我们的最终提交,请访问以下链接之一:
Labeler NearBy 包含两个代码库:ln-researcher 和 ln-labeler。这些代码库在 MIT 许可证下完全开源,可通过以下链接查看:
以下是 Labeler NearBy(LN)工作方式的概览:
研究人员需要标注的图像来训练他们的 AI 模型。为此,研究人员使用 LN 托管他们的数据,并为标注者提供标注数据的方式。这通过 ln-researcher 实现,它是一个自托管的 Web 服务,包含 API、研究者的智能合约和本地 Postgres 数据库。对于标注者,提供(本应提供)一个 Web 前端,使其能够访问并标注研究者的图像。在标注过程中,一张图像会被不同的标注者标注三次。只有通过投票系统确定的最佳标注者会获得 NEAR 代币奖励。负责此过程的 Web 应用称为 ln-labeler。研究者为每次标注操作提供资金,NEAR 代币可以通过 Coinbase 轻松转换为美元。所有交易物流由 NEAR Protocol 区块链上的智能合约处理。
您可以在此观看我们在黑客马拉松中展示的 Labeler NearBy 演示视频:
最大成就
我最自豪的功能是 getImage() 函数。该函数是 ln-researcher 中的 API 端点,在 Labeler NearBy(LN)中在研究者和标注者之间的数据管道中起关键作用。
该 API 端点使研究者能够安全、可靠地分发图像进行标注。标注任务通过 NEAR 区块链上的智能合约管理,图像数据由研究者通过 ln-researcher 托管。
该端点执行一系列安全检查,确保只有被分配的标注者可以访问图像,包括验证请求签名并检查相关智能合约以确认任务和标注者的对应关系。
一旦在研究者自托管的 ln-researcher API 中验证请求后,函数从本地 Postgres 数据库中检索图像,进行加密,并将其交付给授权的标注者,后者可以解密图像进行标注。同时,函数更新数据库中图像的状态,指示图像标注的进度。整个过程使用研究者和标注者的 RSA 密钥进行身份验证,使用 AES 加密图像。
该端点在管理从研究者到标注者的安全、受控的图像分发中起关键作用,确保安全的数据传输并有效跟踪和管理图像标注过程。此外,该过程有潜力在此端点上不使用 HTTPS。
此特定端点/函数已测试并证明可用。下面的图示展示了 Labeler NearBy 的整体功能,包括上述端点/函数的工作方式:
结果
遗憾的是,现实是我们未能在黑客马拉松的截止日期前完全完成项目。大部分项目已完成,如 ln-researcher,但前端(ln-labeler)未完成,且我们未能部署 live demo。虽然后端(ln-researcher)基本完成,但没有可用的前端和 live demo,没人能尝试 Labeler NearBy 的想法。更糟的是,评委们也无法实际尝试项目,只能阅读提交、查看代码或自行运行。这导致我们获胜的机会几乎为零。2022 年 12 月 15 日公布获奖者时,我们不在其中。
失利
我不会掩饰这次黑客马拉松的最终结果令人沮丧。我们在这个项目上投入了数月时间,我对它有很大的愿景,认为它会为研究人员提供非常有用的工具。
我对自己承担的项目有明确的标准:要么成功,要么失败,没有中间地带。因此,这个项目是失败的,因为它未能在截止日期前完成,且对潜在用户不可访问。
但重要的是要记住,失败是生活的自然部分。我们的成功建立在从失败中学到的经验之上。虽然这次黑客马拉松的结果令人沮丧,但它仍为我们在开发和构建项目/产品时提供了宝贵的洞见。
教训
我从这次经历中得到的主要教训如下:
- 我们选择的项目需要在前期构建大量功能才能进行迭代。我的意思是,这个项目需要几乎所有的组件在我们测试想法之前就完成。更合理的做法是选择一个所需关键组件更少的项目,这样我们可以更快地构建核心组件,然后更快迭代。这样我们更容易在截止日期前完成,并且项目可能更简单但更完整。YC(一个科技创业加速器)强调要“快速上线、与用户交流、迭代”。我们本应在这个黑客马拉松的项目中采用这种方式。
- 我们低估了项目的开发时间。这是我们第一次参加黑客马拉松,也是第一次制作去中心化应用(dapp)。我全职工作,朋友在读硕士,但我们认为 2 个月足够。更合理的做法是缩小项目范围,或找一个团队成员来减轻工作负担。
- 温斯顿·丘吉尔曾说:“完美是进步的敌人”。我把这个项目当作 B2C 产品来对待,而实际上它只是一个黑客马拉松项目,最多是最小可行产品(MVP)。因此,我在细节上浪费了太多时间,而应该把时间集中在核心功能上。
除了这些宝贵的教训,我还获得了在个人副项目和职业工作中都非常有价值的新技能,包括:
- 使用 Node.js、JavaScript 和 Express.js 开发 API
- 设置和使用 PostgreSQL 进行数据管理
- 在 API 开发中使用 PG 包集成 PostgreSQL
- 使用 RSA(非对称加密)和 AES(对称加密)提升数据安全性
结论
总体而言,尽管对最终结果感到失望,我仍然很高兴我们参加了这次黑客马拉松。我感谢在 Labeler NearBy 项目中获得的宝贵经验和技能,它们让我成为更好的开发者,并为我的下一个项目 Notify-Cyber 的开发做出了重要贡献。
其他备注
- 我可能会回到 Labeler NearBy,但目前该项目处于“长期暂停”状态
- 目前,Labeler NearBy 只能在 NEAR 的测试网运行,需要进一步开发、测试和审计。