活动链接:【Meet up 来了】对话 Jina AI CEO——从开源大牛到商业新星
演讲者简介
非官方消息,我自己查的
- JINA 科技:jina-ai/jina: Cloud-native neural search framework for 𝙖𝙣𝙮 kind of data
- 肖涵的 GitHub:hanxiao (Han Xiao)
- 肖涵的个人博客:Han Xiao Tech Blog - Neural Search & AI Engineering
- 个人博客其中一篇:德国人工智能对比中国人工智能:大学、产业及规划
会议内容
演讲标题
开源的核心竞争力是什么?
核心竞争力:速度
3 个速度:研发速度、分发速度、接纳速度
- 研发速度
分层设计提升项目的 capacity。 -> 容纳量,即工程师人数。- 新的(内外)开发者能快速进入
- 保证大规模重构能分层进行,上层 API 重构不会影响下层 API 执行
- 精准调整公有私有 API
降低 Time-to-Merge。- 主观 - 文化:
- 培养主人翁意识,不到 Master 不算 Done
指作为贡献者,一个 PR 什么时候结束?不是 commited,不是 pulled judging,而是被 merged 才算结束。 - 加强决策意识,控制 PR 的生命周期
理性认识到一个 PR,3 天内要么 Bump 要么 Merged,加快 Code Review 速度。 - 精简 Code Review 规范
- 培养主人翁意识,不到 Master 不算 Done
- 客观 - 技术:
- 使用 Bot 等自动化工具让 Review 集中在逻辑上。
协同社区分摊研发成本
举例:Jina 升级需要兼容 Python 3.9,但上层依赖版本就不支持新版本,因此需要社区完成上层依赖的升级适配工作。 - 分发速度(略讲)
指产品从生产者到使用者的速度。例如 Jina 的 CI pipeline。 - 接纳速度(重要)
- 耐心,对新人开发不要炫技,容易劝退新手。
- README 建设
README、文档和社区的区别:- README:5 分钟之内抓住第一次来访者
- 文档 & 教程(tutorials):一周内转化小白成为初级用户
- 社区:通过激励和互动,留存培养中高级用户
区分 文档 和 教程 不一样。
API 文档:作用主要是查询,类似字典功能(来源为 Docs 生成) Tutorials 教程:指自然语言书写的入门指南
在腾讯的经验:- Why
- Get Started
- Examples
- Docs
- Contributition
- Help
- 首屏原则
一进页面就能看到 README,甚至不需要往下滚动页面,在首屏最快速度抓住第一次来访者。
- 国际化
开源一定要做国际化,必须有外语文档。
- Reward 原则
要有 Reward 机制,例如把 contributor 头像贴在 readme 里
- README as Code (CI/CD)
要像维护 Code 一样维护 Readme,甚至可以用自动化工具 CICD。
- 社区发育
- 鼓励 Self-service 创造内循环
举例:社区中提出一个问题,作为创建者不需要立即回答,让那些核心 contributor 去回答,创建社区文化的内循环。 - 奖励积极者 Gift Culture in OSS
- 果断维护社区规则(Code of Conduct)
- 创造同步沟通机会(All hands)
- 衡量指标
如何判断接纳速度得到优化?
在团队人数不变的情况下,社区是否呈现指数增长。(相对于线性增长而言)
- Two More Things...
- 避免内卷:虽然做 Refator,但对项目本身没有帮助。方向要向上而不是向内。有时需要些独裁决定项目的方向。
- 期望管理:创建者、用户、社区对产品的愿景。
提问环节
- 企业开源和社区开源有什么区别?
企业缺乏紧迫感:非开源原生企业,没有生存的紧迫性,因为本身有产业不需要基金会。
社区:靠这个吃饭的,有紧迫感,搜罗各种手段去增强。 - 紧迫感会不会破坏社区氛围?
紧迫感指的是社区的责任感,决策要快,因为不仅要维持产品的迭代,还要养活别人吃饭 - 如何把这种紧迫感传递到社区其他人身上?
认同感;说服社区里的每一个人。聚拢核心开发者。 - 投资人为什么会来到开源领域?
mongodb elastic-search 第一批 价值已经可以支撑投资。 - 怎么让自己的软件吸引投资方?
残酷的事实:开源已经不是理想主义的东西了。。包上了资本主义的。。
技术的眼界要放开,用资本帮助创业开发者成长。
如果初期有钱,可能会用于接纳速度(推广)上 - JINA 公司怎么变现?
JINA:open-core,核心开放,周边付费 例如 linux 培训,周边物品收费。
部分 SASS 公司:付费的核心服务,边缘服务开放(与上面相反)
另,Tech lead 转变为 organization lead:软件架构会影响公司组织架构。 - JINA 的国际化
开源是 异步分布式开发,招能接受这种的人。
以下为网友提问
- 为什么 Nertual Search 2.0 的时候实现指数增长了?
做了分层。分层设计有好处也有弊端,1.0 对开发者来说 不知道从哪切入。(过于炫技)
2.0 做了文档和教程的分层。有了清晰的入门指南。 - 开源层级中的几层中有些人贡献层级高 有些贡献层级低,如何看待?
正是我们所需要的!typo 这种就是入门。
当有人提出修改高阶 api 的时候,这种人员就可以挖进来了 - 开源以什么为持续?
企业咨询、定制化:并不可持续,只能短暂盈利。
早期获取用户可以,主要是为了获得案例,最终做成通用层的标准化。standardable
定制化 打磨产品、探索经验
软件资产化 - 怎么宣传推广(布道)
社交媒体,线上线下活动等 开源社 关键在于分享内容,要把大家说服,foundation 建立技术上的信任
作为参会者的心得
概括的说讲的很实在,作为开源新手十分有启发。演讲者不是那种看起来很售前工程师的感觉,他是真的在讲自己的代码所带来的一系列思考,是踏实务实的演讲。
让我认识到了商业化开源的大概总体运行逻辑。另外探讨了部分技术相关问题,比如迁移学习对于深度学习的重要意义。因为自监督学习只能从集合学习到子集( A -> A* ),但迁移学习可以从其他数据中得到不在数据中的结果。( A -> B )
另外就是从如何写好 readme 这开源的第一门课到如何运行维护一个社区这个层级的各切面问题。