回到三个月前
一个晨跑的上午,你突然萌生了一个绝妙的想法在:“我要建立一个 AI 框架!”
你的大脑飞速运转,你的指尖在键盘上飞速敲打,快速地记下此刻的想法和灵感。你梦想着潜在的投资者,全新的应用程序,甚至已经开始想象 Hacker News 和 Product Hunt 对你产品的介绍。
但,你并不走运
最初的市场反馈很好,在发布的最初几天里,大批客户涌入,他们积极地使用你的 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 的搜索,但现在它迎来了爆发式增长。
假设你现在有一个很好的关注点,并且你的框架在概念上涵盖了真正的需求。恭喜你!让我们继续,看看你可能会陷入的另外两个常见陷阱。
错误2:糟糕的上手体验和教程资源
让我们放大一个框架“气泡”:
首先要强调的是你和用户之间的知识差距,你的框架可能涵盖用户需要的所有功能,但是由于缺乏说明文档和糟糕的上手体验,用户可能并不知道你的框架可以解决他们的问题。这直接会导致框架的采用率低。
和你不同(你对自己的框架无所不知),用户是从完全不同的角度了解框架。他们只能从你的文档、教程、参考资料、视频或者代码中学习框架。事实上,缺乏耐心的用户只会根据优质的资源学习。一旦他们觉得上手难度大,他们会立刻放弃,并寻求其他方案。他们没有你那么坚定和热情。
开发人员常犯的一个错误是在构建框架时忽略了教程资源和 DocOps 的重要性。他们天真地认为只要功能提交到了 master 分支,用户就会使用;只要在 commit message 中写了几个模糊的功能关键词,用户就会理解这个功能;只要做出重大更改,用户就会相应地修改自己的代码。
不,用户不会。
用户不会为了理解功能的工作原理,去花时间研究单元测试。
用户不会阅读你谜语一样的 commit message 或 pull request 标题来猜测你的新功能。
用户不会检查垃圾邮件,来阅读你的框架的突破性进展的 Newsletter。
用户不会阅读写得糟糕的文档,也不会为了一些无法执行的代码片段,还向你报告 bug。
如果你不花费时间引导他们,他们自然也不会在你的软件上浪费时间。
因此,你开始竭尽全力减少知识差距:良好的文档、详细的教程、教学视频、线上线下见面会、每日推文和每周的 Newsletter。
你完成了以上所有的工作,并且绕开了第一个错误,确定了重点,但是框架的使用率依然很低,这次又是因为什么呢?
错误3:过时和缺失的功能
AI 领域飞速发展,市场竞争日益激烈。而你的框架则过时了,像是一个已经淘汰的遗迹。
每天都有数百篇论文在 ArXiv 上发表,benchmark 排行榜也在不断刷新,GitHub 上热门的代码库层出不穷。如果你的框架不能追赶前沿的技术,那么它很快就会过时,再也无法吸引用户的注意力。
第二个错误是用户不知道可以使用你的框架完成他们的需求,但现在的错误是用户知道他们不能使用你的框架完成自己的功能。对你来说,游戏结束了。
你是否厌倦了这种竞争?但这是你自己选择的构建 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/
更多技术文章
📖 Jina AI创始人肖涵博士解读多模态AI的范式变革
🎨 语音生成图像任务|🚀 模型微调神器Finetuner
💨 DocArray + Redis:快到飞起来的推荐系统
😎 Jina AI正式将DocArray捐赠给Linux基金会
🧬 搜索是过拟合的生成;生成是欠拟合的搜索
点击“阅读原文”,进入 Jina 官网