但,你并不走运
最初的市场反馈很好,在发布的最初几天里,大批客户涌入,他们积极地使用你的 AI 框架并分享他们的经验。你在 GitHub 收获了数百个星,并且在r/machinelearning 获得了 50 个赞。
但后来,用户增长逐渐趋于平稳甚至开始下滑。几周过去仍看不到起色,你暗自担心倾注的心血是否会功亏一篑,你的 AI 框架是否还能持续发展下去。
“为什么人们不愿意使用我的框架呢?”
你静静地坐着,思考着下一步行动。 这就是最终结局了吗?
了解 3 个常见错误
成功的故事总是相似的,而失败则各有各的不同。AI 架构的低采用率,初期通常由于三个常见问题导致:关注的方向错误,糟糕的上手体验以及功能上的不完善。本文我将利用插图逐一解释它们,更重要的是,我将向你展示如何解决这三个问题。
每个真正的问题都需要一个解决方案,我们有很多 AI 问题,无论大小,简单或者复杂,只要它们是真实存在的问题,那么都需要解决方案。
让我们用点集代表解决方案,将AI 解决方案的空间分布 想象成下图:
实际上,解决方案并不是均匀分布,而是聚集在一起的。这是因为不同的问题可能会有相似的解决方案,例如,情感分析和文本分类都可以用不同标签训练同一个语言模型,图像分割和目标检测都可以用 ResNet 解决。因此,真实的 AI 解决方案空间分布图更像是下图:
AI 解决方案空间分布的聚集性证明了 AI 框架存在的合理性,AI 框架是一种抽象形式,它提供了解决方案集群共享的通用功能,并且用户可以根据自己的需求编写代码。AI 框架提供了一种构建、部署应用的标准方法。如果解决方案是均匀分布的,就意味着无法抽象出通用的模式,也就是说明 AI 问题不需要软件框架。
LF AI & Data 基金会项目版图,涵盖 332 个 AI 框架,总计 2,765,397 颗星,市值 13 万 3 千亿美元,融资 196 亿美元。让我们在下图中回顾一下 问题、解决方案和框架 之间的关系:
有了这些清晰明确的概念,我们就能更容易地理解人工智能解决方案空间的构成,从而更容易发现构建软件框架的第一个错误。 错误1:过度关注于微小的细分市场
下图上,气泡 A、B、C、D 分别代表 4 个框架。在关注范围上,很容易看出 A > B > C > D,因为 A 囊括的解决方案最多,能满足最多真实的需求。D 是最糟糕的,因为它没有涵盖任何实际的问题,也就是说它的需求是不真实存在的。因此,长远来看,A 的采用率会是最高的。与此同时,无论你在 Hacker News 提交了多少帖子,在 GitHub 上获得多少星,D 的采用率都很低。
你可能会问,“谁会傻到选择 C 或者 D?”
但事实上,当你在慢跑时灵光一闪,或者在阅读本文时正在构建一个新框架,那么你很有可能正处在 C 或 D 之中。原因如下:
此时的你还不能看到 AI 解决方案空间的全貌,你的视角受限于你在 AI 和行业方面的知识和经验。
A 和 B 背后的市场是充满大鱼(并且还很饥饿)的海洋,你还没有足够的资源游得那么快或咬得那么紧。
你的经验和知识使你高估了 C、D 涵盖的解决方案和需求的总量。
作为一名工程师,你很容易沉迷于框架概念本身,而忽略它在现实世界中的应用价值。
无论如何,不要成为 D。如果你在 C 中,也不要沮丧。解决方案空间巨大且动态发展,并且它会随着时间不断变化。一旦新的问题和需求出现,旧的需求就是不必要的了。2021 与 2022 年的 生成式 AI市场就是一个很好的例子,早在 2021 年,我们还很少看到任何关于生成式 AI 的搜索,但现在它迎来了爆发式增长。
但如果你老板像这样 的话,也许你要考虑一份新工作https://jobs.lever.co/jina-ai,Jina AI 持续招人中跨越障碍的第一步就是认识自己的错误,听起来很容易,但在低采用率的巨大压力下,你可能会轻易跳出结论,认为自己犯了所有错误,口头上承认错误就像说“这没用”一样容易,如果你不剖析自己的错误,就找不到任何的行动点。在你有限的资源下,你又该如何确定优先级,逐一解决这些问题呢? 修正错误1:重新瞄准更大的需求
如果关注点错误,你就需要重新定位,摒弃做框架的执念,多去了解人们的需求。在搭建框架之前做更多的备选方案,并且发现它们之间的联系;做好用户调研和市场分析,找到更大、更有趣的蛋糕。
也有可能是你的关注点已经足够好了,但是你的品牌叙事却很糟糕,用户同样不会买账。在这种情况下,重新整理你的宣传内容,宣传重点放在真正重要的功能上,隐藏除了你没有人关心的复杂细节。 修正错误2:提升用户上手体验
如果框架的上手体验做的很糟糕,那么你就需要修改文档并组织教育用户的资源。软件框架需要不同层次的教程 —— API 参考文档、教程、代码片段、高级应用和行业基准。一个从文档字符串中自动生成的 API 参考文档是远远不够的。
回想一下你是如何学习英语的,一开始你会使用字典查找单词(即 API 参考文档),第一年你的课本里全部是日常对话(即代码片段),教你如何打招呼和买东西;进入二年级,你的课本里开始有更长的故事,帮助你掌握基本的语法和写作(即高级应用)。为了提高自己的语言技能,你开始看电影或者阅读著名作家写的书(即行业基准)。
你的用户和你是一样的,第一天,他们只是新手。但随着时间的推移,他们会吸收你教育的知识,不断取得进步。你的任务就是尽可能提供各级资源,帮助用户以最快的速度成长。等他们轻车熟路之后,你就可以松口气了,这时他们已经可以在没有你的情况下产出高质量的内容了。
上手教程的形式不要只停留文字上,最好是多模态联合,可以多多尝试使用播客、视频、线上线下的会议等等。 修正错误3:终身学习,快速行动
如果你的功能已经过时了,你需要了解前沿的研究,并及时更新自己的框架。学习流行的开源框架的 API 、设计模式和算法,密切关注他们的 Pull Request 和 Release Notes,并且思考把它添加进你的框架是否合适。始终要保持你的知识和代码库都是最新的。不时地回顾你设计的 Roadmap,确定自己的方向是否正确,添加的功能是否具有实用价值。
在开源的世界里,没有绝对的先进。这是一场关于速度的竞争,而你总是可以从其它软件中汲取经验。如果你暂时落后,但却进步得很快,最终还是可以跟上大部队。但如果你停止更新,捕食者很快就会把你当作午餐吃掉。速度是开源软件的生命线。 作者简介
肖涵,Jina AI 创始人兼 CEO 原文链接
https://jina.ai/news/why-dont-people-use-your-software-framework/