经过一年多的孵化,近期,由 Zilliz 开发和开源的向量数据库 Milvus 从顶级开源基金会 LF AI & Data 毕业。这意味着,Milvus 得到全球技术专家的认可,成为世界顶级的开源项目之一,并在 LF AI & Data 技术咨询委员会获得投票席位。
作为在大数据和数据库领域拥有近 20 年经验的专家,Zilliz 合伙人、首席布道师顾钧代表 Zilliz 出席 LF AI & Data 基金会技术咨询委员会,并全程负责 Milvus 向量数据库在基金会的孵化工作。
开源为什么会是出路的职业命运又何以与技术的历史进程环环相扣文中,顾钧主要从自己的职业历程出发讲述了技术产业变迁的逻辑,以及他和 Milvus 团队在 LF AI & Data 基金会的成功经验。与各位共享~
带我走出程序员中年危机的开源项目
刚刚从 LF AI & DATA 基金会毕业了
程序员最害怕什么我的排名,第三位是上班 996、虚耗生命;第二位是年终 325、一年白干;排名第一自然是自己倾注了大量心血研习的技术突然被淘汰了。还有更糟的吗,就是那时候你已经过了 35 岁。
我,恰好遇见了最糟糕的情况。而那带我爬出深坑的绳子,叫做“开源”。
唯技术论的坑
2004 年,我从北大毕业加入宇宙行的数据中心,成为了一名支持大半个中国区核心系统的数据库工程师。我那时接触的技术平台,自然是“高端”的 IBM 大型机 Db2 数据库集群。给高端打上引 并非是反义或者嘲讽,而是为了强调 IBM 大型机一贯的两个标签:技术先进、价格昂贵。那时的我信奉技术至上,相信更先进的技术未来必有一席之地。
不过,我很快发现宇宙行的大型机团队规模增速远不及小 / 微型机团队。也许这是因为甲方部门的发展空间有限系,我可以去到乙方服务整个中国银行业。于是我加入 IBM,成为大型机数据库售前工程师。到了 2010 年左右,生意真是越来越难做了,市场上到处都在喊“去 IOE”。也许这是中国国情所致系,东边不亮西边亮,我还可以加入美国的银行呀。于是我加入了大摩的 IT 部门,这下总能安稳做技术了吧。
可惜美好的时光是短暂的。安稳日子没过 5 年,连美国的银行都开始将核心系统下移到 X86 服务器,甚至尝试使用开源数据库,你们也去 IOE,这是什么道理至上的逻辑出了什么问题吗p>
IT 产业的逻辑
虽然没有哪一个开源数据库敢说自己打败了 Oracle 与 Db2,但不妨碍开源数据库以及开源软件得到越来越广泛的应用。在很多行业,开源软件开始侵蚀传统闭源软件的市场份额。从技术角度来看,这似乎是一种“逆向淘汰”。“免费的往往是最贵的”,很多人这么嘲笑开源软件用户只是贪图便宜。
但要探寻技术至上逻辑的漏洞,首先得放下成见。我问自己,“技术至上”究竟是 IT 产业的逻辑,还是我的一厢情愿上的“逆向淘汰”在 IT 产业一而再、再而三地重复上演。比如,小型机在很多领域替代了大型机,而微型机几乎已经彻底淘汰了小型机。从技术角度看,这实在是反直觉。但如果换个角度来看,我们就会有不一样的答案——IT 能力的普及。
IT 产业的逻辑链里不单有技术因素,还有经济因素。在小型机代替大型机、X86 服务器代替数据库集群等大趋势成型的临界点上,往往不是我们有了更先进的新技术,而是我们有了能大幅度降低成本且够用的新技术。简而言之,存在这样一个趋势:强大、复杂又昂贵的技术很有可能会被够用、简单、低成本的技术所取代。虽然 X86 和智能手机已经把 IT 能力普及到了个人,但接下来还有物联 设备、自主机器人等等,只要 IT 能力的普及还未结束,这个趋势不会轻易停止。
可能的出路
想明白了这个道理,我开始探究是否存在这样一种可能——再也不用担心技术大方向更迭对程序员的职业生涯产生较大影响,通过参与开源软件 区来开拓出路。
当然,我所指的开源软件不是光光用了开源许可证的软件。
我所说的开源软件是一群人(贡献者),出于一个特定的主题(项目愿景),基于设定的规则( 区章程),共同开发的(开放协作)、使用开源许可证的软件产品。这为外部人员的参与提供了可能性。外部程序员如果能够深度参与一个开源项目,那么自然便可以对其施加一定的影响,他的投入就会更有保障。反之如果是闭源软件,或者封闭 区的产物,外部人员所花费的心力随时可能因为项目方修改技术路线而打水漂。所以,谨慎选择造神型的开源 区。
除此以外,在选择开源 区时,还需要考虑这个开源软件是否符合前文提到的技术趋势。提供足够功能这一点自不必说,我想提醒大家关注的是,该开源软件的功能是否足够单纯、与上下游的界限是否足够清晰。要谨慎看待那些大而全的开源项目,耦合度太高,鸡蛋都在一个篮子里。虽然短期来看学习成本似乎比学习多个项目要简单一些,但由于缺乏多样性,如果项目本身被淘汰,开发者付出的机会成本还是非常高的。
所以我认为,尽量使用多个小型 / 单纯的开源软件来构建系统。这样一方面可以参与到更多的开源 区里面,另一方面也可以抵御大型项目难免的系统性风险。
我是这样做的
拳王泰森有一句名言:“Everyone has a plan until they get punched in the mouth.”关于“开源”的道理我们可以讲很多,但如何践行才是关键,尤其我脸上已经挨了一拳。学游泳的第一步是跳到水里,于是我加入了创业团队,和伙伴一起从头开始构建一个开源 区——Milvus 向量数据库,并将之孵化成为第二个从 Linux 基金会毕业的由中国团队发起的 AI 开源项目。这两年间的经历初步验证了前文的理论。
首先,我们需要厘清项目的愿景——为什么创造这个项目。当我们在 GitHub 上创建一个 Repo 的时候,需要的是只是一个灵感、一种信念。但如果我们想把这个 Repo 推荐给其他开发者,让他们加入 区,那么我们需要一个清晰的理念来打动他。以 Milvus 为例,我们想要传达的理念是端到端的 AI 应用构建模式非常低效、不灵活,应该采用更加模块化的方式,算法层就负责模型的事情,后续的部分交给 Milvus 向量数据库,从而大大提升 AI 应用构建的效率。
愿景(有的 区会称之为宣言)的作用在于,帮我们更容易找到那些有相同想法的伙伴,为 区的参与者建立一个共同的目标。
其次,我们需要明确项目的定义。通常我们会把愿景设置得宏大一些,但远大的目标需要一步步脚踏实地才能达到。作为起点,项目的定义要单纯一些、落地一些,以确保项目一开始就处于一种基本可用的状态。然后通过不断的迭代去接近最终的目标。Milvus 向量数据库的核心功能非常单纯,就是服务于 AI 场景中由模型生成的嵌入向量(embedding vector)。最初,不少人担心“功能这么单纯(不客气的说法就是‘单薄’),会有人用么两年来的近千家 区用户,充分证明了功能纯粹的开源基础软件有着很强的适应性。
然后便是建立顺畅的 区沟通渠道。人与人之间的沟通是个永恒的话题,沟通方式也随着时代不断的演进,过去开源 区会主要依靠邮件列表来进行沟通,如今人们更倾向于 Slack 与微信群。不过即时聊天工具也有很明显的短板,噪音过大,讨论易受干扰以及内容难以沉淀。因此,论坛还是有很大的存在价值。
设置沟通渠道的时候,也需要考虑 区中不同人群的特点。一个活跃的 区通常包含这么几类人:软件使用者,代码贡献者,非代码贡献者等等。
对于软件使用者,他们需要在碰到问题时寻求解决的方法,因此对于 FAQ 型内容的沉淀有较高要求,可以考虑为他们设置论坛(比如使用 GitHub 自带的论坛功能)。而贡献者需要频繁展开讨论,对沟通的及时性、讨论结论的保存与分享有较高的要求,因此可以利用 IM 与一些在线文档工具。
由此可见,一个 区存在多种沟通渠道是很常见的。所以我们需要在项目 站上列出这些渠道以及这些渠道的使用指南,让用户与开发者更容易找到组织。
在开源的世界里,自身努力很重要,外部协作也非常重要。Milvus 项目在整个 AI 技术栈中和很多上下游项目有交界面。我们不能放弃这些互动的机会,但要和这么多不同的 区建立联系也不是件容易的事情。这里倒也有个取巧的方法——加入专项开源基金会。
专项基金会由于针对细分技术领域,其中的开源项目通常存在很多潜在的合作机会。Linux 基金会旗下专注于云计算的 CNCF 基金会是目前最广为人知的专项基金会,针对 AI 领域的另一个专项基金 LF AI & Data 基金会也是势头生猛,Milvus 项目在去年初便加入其中进行孵化。在基金会的帮助下,我们得到了很多合作和推广 Milvus 的机会,目前 Milvus 已经成为了毕业项目。
不过,加入基金会也意味着我们放弃了 Milvus 项目的商标等法律权利。很多人对此颇为犹豫,但这其实是开源 区最重要的一点,不要尝试去控制 区。来的都是朋友,而不是免费劳力。
我在开源中找回了技术的乐趣,希望你也可以。如果对 Milvus 项目感兴趣,欢迎在 GitHub 上搜索 milvus。要是能随手点个星,那就更好了。
Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。
Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 目前是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集。我们的技术在新药发现、计算机视觉、推荐引擎、聊天机器人等方面具有广泛的应用。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览211379 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!