HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

从社区数据看大模型开发生态的全景与趋势

王旭、夏小雅

  • 2024-11-05
    北京
  • 本文字数:4451 字

    阅读完需:约 15 分钟

大小:2.12M时长:12:20
从社区数据看大模型开发生态的全景与趋势

10 月 19 日,我和小雅在 QCon 全球软件开发大会 2024(上海站)开源重塑 AI 开发生态」专题作了题为「从社区数据看大模型开发生态的全景与趋势」的演讲,作为该专题的出品人,两届“ QCon 优秀出品人”得主的 “老人”,为什么在出品的同时要兼做这个演讲?是因为在这个主题之下,我自己也产生了困惑 —— 开源生态到底发生了什么变化,我们又该从中学到点什么。这个演讲只是一个开始,后续还有继续的研究正在进行中。

破题:为什么要看社区


毫无疑问,我们每个人都或多或少地感知到大模型带给我们的冲击,然而,当我们看着充斥在眼前的信息,对训练和推理的需求疲于奔命的时候,什么是趋势,全景如何,破局点在哪里,应该放弃什么或是追逐什么,对每一个疲惫但仍心存未来的开发者来说,都是想弄清的问题之一,对我也不例外。


但是,当我作为架构师,尝试从现有系统、现有组织里来提取系统发生了什么变化的时候,看到的却是在被巩固的边界,和原有系统的延伸。不管它是不是有问题,边界和架构却都有发生什么变化,在面临破坏性(disruptive)变革的时候,这不是生态该有的演进方式,但是,已有的组织,从自己的出发点来看,又是那么地必然。


于是,我想起来,我还是一个开源世界的小分子。当我作为开源参与者,我看到了涌现的新项目,尤其是 llama2 发布之后大批涌现的项目,以及已有项目的转向,乃至很多项目的沉寂,开源世界是一个或很多自治的生态系统,这个系统的自底向下的演变,正是可以给我们一些输入,让我们审视——昨日明星今何在,生态全景又如何,关键锁钥入谁手,我欲入局做哪家。


刚好啊,我说刚好啊,我们开源办的同学们在很早就开始了数据上的研究和合作,我们还有小雅这样的研究了几年社区的博士同学,于是,我请来小雅一起做这个分析,一拍即合。当然啊,因为我们这个分析还在进行中,QCon 只是给大家一点点预览,后面还需要有更多工作。


不过,虽然还没有最终版,但做架构师就是要敢于下断言,我先说一个总体的想法:


生态是本无所谓有,无所谓无的。正如这些公共接口;其实项目之间本没有公共接口,重复造的轮子多了,也便成了接口。——鲁迅《故乡》(王旭微调版)

我们看到的开源 AI 生态


首先我做一个免责声明:社区的行为数据只反映一部分的社区关系,既不全面,也不充分,并不被视为是对项目本身「好坏」的公平评价,我们只是以此来提供一些参考信息。


那么我们拿到了什么社区数据呢:


  • 首先,我们有项目本身的活动数据,比如 commit, PR, Issue 以及它们的 comments 的数量、频率、分布情况等等;

  • 其次,通过共同参与项目的人,我们还有这些项目之间的关联信息,比如一个人对两个项目都有贡献;

  • 或者,对两个项目都做了 Star/Fork(当然这个数据我们实际没有记入,如果确实有贡献,Fork 就是 PR 的前置动作,反过来,单纯的 Star/Fork 产生的信息量还不太够看作是社区行为)。

  • 最后,虽然我们还没收入的,但是 GitHub 的部分项目提供了 SPDX 标准兼容的 Dependency 数据。


同时,我们假设项目之间会有什么关系呢,我认为,在构建一张生态全景图的时候,至少有这么几种关系:


  • 代码或执行依赖性:比如我依赖了数学库来做矩阵运算,依赖了网络库来做通信,当在这些库身上遇到问题的时候,我可能会去寻求解决(issue),甚至是去提 PR,如果是老用户,那么我可能会帮其他用户解决他们的 issue 或审阅它们的 PR;

  • 项目之间的上下游合作关系:考虑到一个应用的工作流,比如从终端到 Web 服务和应用,再到中间件,最后到数据库,这样的前后连接协作,对于彼此的协作和分工,如果产生了彼此的需求,那么会去提出自己的功能需求,甚至是增加自己的扩展,比如我们做容器运行时,会去改或扩展 containerd,就是这样的上下游关系,反过来 containerd 也会来要求我们这样做或不这样做,互动就出来了;

  • 另一种关系是同生态位的替换 / 竞争关系:这个很容易理解,比如 OB 替换 Oracle,它们在系统中位置完全相同,彼此穷则划江而治,达则一统江湖,当然也有不这么明显的,或者说,正在演进中的,比如用图数据库替换关系数据库,那上下游也需要一些变化。


综上,这些依赖性和合作关系就构成了一张张应用架构图,但只有在重复的位置上不断产生了替换竞争关系,在不同位置之间产生了逐渐被公认的接口,这才说明一个生态位在清晰起来,进而描绘出来了一个生态的大图,这就是我前面说的那句话——“生态是本无所谓有,无所谓无的。正如这些公共接口;其实项目之间本没有公共接口,重复造的轮子多了,也便成了接口。”


基于上面的这些假设,我请小雅做了如下的一些图(这些图的细节是可以交互式体验的,可以访问这个页面





在这些图里,我们以一些热门项目为出发点,对它们的高度关联项目展开了三度连接,项目本身的权重是它们在全域生态下体现出的一个值,是基于 X-lab 实验室提出的一套评价体系 OpenRank 进行计算的,而边上的权重是它们的关联程度。我们还尝试换了一些出发点,然后,我给一些简单的结论,大家可以继续发挥:


  1. 生态中的核心高光项目的稳定性——改变出发点会改变入选项目,但有些热点项目,不论从哪个点出发,都很容易被引入进来,比如 PyTorch, llama.cpp, huggingface/transformers 这些,可以认为关心 LLM 生态的人都会去这些项目有所表达;(当然,距离应用 / 算法开发比较近的项目热度会更高,这是很自然的)

  2. 生态中开发者的聚集效应——例如中国开发者会更容易和中国开发者产生互动,当我们以 Langchain-Chatchat 项目为出发点,就更容易把 MetaGPT, DB-GPT 这些中国人为核心开发的项目给联系进来;


以及生态的分裂,有些项目是不容易被大模型相关的开源项目引入进来的:


  1. 生态的隔离性——比如 Kubernetes,就完全没有被引入,虽然大家都会用它,我们推测可能的原因:

  2. 它的 API 已经比较稳定,即使是利用了接口也不需要去社区互动;

  3. 同时快速发展的项目可能更容易有互动,而在这些大模型项目崛起的时候,Kubernetes 已经处在一个相对成熟的状态了;


而且很有可能的一点——计算生态圈和 AI 生态圈的开发者之间可能是有相对强的隔离的,上面链接里,我们也做了一个图来验证,我们加入了 volcano 这个在 Kubernetes 上支持大模型训练的扩展,把 Kubernetes 链接进了图里,但是,很明显可以看出来,这两个生态之间的共同关联是非常少的(比如只有 vscode, argo-cd 这样的关联;


  1. 另外,其实 Ray 和 PyTorch 生态彼此也相当隔离,尽管主要开发语言都是 Python,并且也是 AI 领域的常用项目,这基本说明了两者在生态位上的区隔。

  2. 非社区化项目——有些很多人用的项目,但是互动比较少,比如大部分 Nvidia 的项目都没有被引入进来,推测是单向使用,或者社区比较高冷。

一张生态全景图

已经有的全景图


依照上述的关系,我们要来绘制一张全景图,但是明明已经有了 LF AI and Data 的全景图,CNCF 旗下的 CNAI 全景图等,我们画的图是否还有一席之地呢。我的理解是这样的,LF 旗下,包括 CNCF 的全景图,是给生态项目的一个定位自己、宣传自己的广告牌,其中的生态位的排布是有很强的参考价值的,我也参考了,但是项目的位置却是由项目自己提交的,其中的广告目的也会让它有点迷眼,而我们的社区行为数据在这里,是一份可观但不全面的数据,我们在绘图的时候,使用的是客观的数据,以及不可避免的我们自己的态度,兼听则明,并不是说哪个一定好,更不是说我没有看其他的图,这里希望能给各位一个参考。


一些前置定义


如上面“开源生态”部分描述的项目之间的关系,生态之中至少有这么几条不同的线索:


  • 开发链:以代码输入为起点,直到代码进入仓库,这个过程中可能有各种工具的掺入,常见的包括代码生成与辅助、测试与集成;而今,随着所谓 GenAI 的流行,越来越多的工具开始“有了(智障的)灵魂”,因此这一链条正在逐渐变得重要;

  • 供应链:以代码仓库以及相关的数据存储为起点,直到把要执行的二进制送到它的执行点上被运行,涉及到了存储、索引、生命周期、传输与分发等,一般的大图里,这个部分是画成一个横向的连通功能或者是旁边的辅助位置;

  • 执行链:这条链条常常是 SRE 或为 SRE 提供的基础设施最关心的,从部署任务的产生,到编排与调度,到执行点上的运行时和运行软件栈,这一条链在一般大图上是纵向线;此外上述供应链和执行链会在**“运行时”**这个位置交汇在一起

  • 工作流:这条链比较复杂,软件跑起来之后,这条链是前后串起来的数据流 / 调用流,这条链在一般大图上有点复杂,有的时候是并列的,比如不同的服务,有的时候是上下部署的,比如前后端、数据库服务等,也有的时候会画在一边,比如接入网关、端侧等。


可以看到,这四条链条(它甚至不是全的,比如可观测相关的监控、日志等都没在里面),它并不是二维平面图,这给我们画图带来了一定的麻烦,我们至少要自己能理解到这些关系,才能更好地理解一个生态。

生态中的生态位


生态位概览:


把一些核心项目投放到生态位上:



这里画出了一个简单的生态全景,但是并不是本文或这个研究的最终结果,找到生态位只是一个开始,我们还想看看生态上在发生着什么,有什么趋势。

趋势上的项目和项目的趋势


这些趋势图同样放在小雅的这个页面上(https://xiaoya-yaya.github.io/ant-ospo-insights/),在 Trends Tab 上。这里截出来一部分,看一点趋势:


  • 训练框架:PyTorch 一家独大,在它的生态位毋庸置疑是独一档的选择。(One more thing, 最近一段 Tensorflow 有个起死回生的趋势,有没有懂的朋友告诉我发生了什么)



  • 推理引擎:各大引擎几乎都是从 2023 年 3/4 月间开始的,vLLM 是其中最热门、趋势最好的项目,llama.cpp 势头有所回落,而新近的 sglang 的发展势头也很好,似乎有希望脱颖而出,这个领域看起来有一战之力。当然,vllm 仍然是入局者要来比较的对象;



  • 此外,如上文所说,过滤掉 vscode 之外,可以看到 IDE 开发工具相关的项目同样有很多异动,尤其是 cursor,快速崛起,“有灵魂的工具”让个人开发变成一种协作,确实非常有吸引力;



写在本文最后,但还没有完


回到上面的架构图上,我们可以看到,一些主要的领域里的一些大趋势似乎已经挺明显了。



这里有一些简单的观察:


  • 大模型开发的范式正在形成,有点类似 20 年前的 LAMP,做应用,或是做 LAMP (平台、基础设施)本身是留给参与者的问题;

  • 对于做自己的项目的人,最好能利用上一个好的生态位,或是和中心生态位产生良好互动;


到目前为止,在具体的生态里,可能还会有二级子生态,这里还没有做完整的分析;并且,其实我们还没有完全利用好 GitHub 提供的一些如 dependency 之类的额外信息、社区数据中的一些有向性信息等,因此我们也会继续来做更多的分析和观察。这里,我们发出来这个阶段性的结果,来供大家参考,也启发大家的思考。


会议推荐


2024 年收官之作:12 月 13 日 -14 日,AICon 全球人工智能开发与应用大会将在北京举办。从 RAG、Agent、多模态模型、AI Native 开发、具身智能,到 AI 智驾、性能优化与资源统筹等大热的 AI 大模型话题,60+ 资深专家共聚一堂,深度剖析相关落地实践案例,共话前沿技术趋势。大会火热报名中,详情可联系票务经理 13269078023 咨询。


2024-11-05 15:2410356

评论

发布
暂无评论

虚拟化解决方案 virtio 的技术趋势与 DPU 实践解读 | 龙蜥技术

OpenAnolis小助手

虚拟化 技术分享 DPU 龙蜥大讲堂 云豹智能

打造会“找”主人的麦克风,腾讯个性化语音增强技术荣获2022数博会领先科技成果奖

科技热闻

低碳数据中心建设思路及未来趋势

H3C-Navigator

一键式打造DAO,M-DAO或成Web3新宠儿

西柚子

技术分享 | Javaer 如何做单元测试?

LigaAI

Java 单元测试 LigaAI

从Oracle日志解析学习数据库内核原理

沃趣科技

oracle 数据库内核

加码布局版式文档垂直赛道,福昕船舶图纸管理系统重磅发布

联营汇聚

面向服务的架构

力软低代码开发平台

【技术干货】代码示例:使用 Apache Flink 连接 TDengine

TDengine

数据库 tdengine

元宇宙的十大经济规则

CECBC

图解|高性能服务器设计之缓存系统一致性

C++后台开发

redis 后端开发 Linux服务器开发 高性能服务器 系统缓存

【云堡垒机】云堡垒机很贵吗?怎么收费?

行云管家

网络安全 数据安全 堡垒机 云堡垒机

大数据ETL自动化调度运维专家-TASKCTL

敏捷调度TASKCTL

Docker 大数据 程序员 DevOps 数据仓库

怎么用netty开发一个同时提供http和websocket的服务?

风斩断晚霞

Java spring Netty springboot websocket

浪潮云应用质效管理系统(AOM)荣获2022数博会领先科技成果“优秀项目”奖

云计算

Hadoop3.0时代,怎么能不懂EC纠删码技术?

个推

大数据 hadoop hadoop3 大数据 开源

揭秘亚马逊云科技软件开发工程师团队

亚马逊云科技 (Amazon Web Services)

软件开发 工程师

【智人智语】史赛克全球数字化、机器人及赋能技术总裁柯若博:世界智能大会是一个非常重要的盛会

InfoQ 天津

免费领 CRMEB 移动社交电商系统源码与授权

CRMEB

ETH合并在即,这次升级将带来哪些机遇?

区块链前沿News

以太坊 eth Hoo

【LeetCode】单词距离Java题解

Albert

LeetCode 5月月更

带你学习MindSpore中算子使用方法

华为云开发者联盟

模型 mindspore 算子

AI简报-增强版GAN图像超分:ESRGAN

AIWeker

人工智能 深度学习 5月月更 AI简报

元宇宙用户已准备就绪,但技术瓶颈仍制约其真正“落地”

CECBC

周六晚8点,如何基于 eBPF 技术构建应用可观测平台?

OpenAnolis小助手

Linux 直播 内核 龙蜥社区 sig

谁需要实验室内部管理系统?

低代码小观

实验室管理系统 数据管理系统 LIMS实验室信息管理系统 企业管理工具 检查系统服务

密码学系列之:ASN.1接口描述语言详解

程序那些事

密码学 程序那些事 5月月更 ASN.1

【等保】等保测评中双因素认证是什么意思?等于双因子认证吗?

行云管家

网络安全 等保 双因子认证 等级保护

HashSet源码分析-基础结构

zarmnosaj

5月月更

如何实现24/7客户服务自动化?建设智能客服知识库

小炮

MASA Auth - SSO与Identity设计

MASA技术团队

C# .net 设计 构架 Auth

从社区数据看大模型开发生态的全景与趋势_AI&大模型_InfoQ精选文章