开源,不只 coding!
共 4414字,需浏览 9分钟
·
2022-04-04 15:11
我们都知道传统意义上的开源是指开放源代码,在源代码的基础上进行协作然后逐渐庞大衍生出了像现在这样的开源社区等。但是开源经过这么多年的发展,开源这个词现在貌似代表的更像是一种态度和观念,就是你有没有一种开放的心态去分享你的技术积累和沉淀,有没有一种开放的心态去融合更多人的智慧从而构造出更完善的体系或者产品,我们是否可以称这种态度和观念为广义的开源呢?有这样一个组织,它的所有内容是开源的,所有的协作方式也是开源的,而且通过开源协作的方式目前已经出版了两本人工智能相关书籍,它就是 Datawhale。
Datawhale 是一个专注于数据科学与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale 以“for the learner,和学习者一起成长”为愿景,鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时 Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。Datawhale倡导的开源学习旨在创造自主设计学什么、如何学的过程。由学习者自己的需求出发,依托社区的内容和社群资源,自主设计学习路径和产出,并随着学习者的参与和贡献,不断迭代进化。学习者通过构建个人博客打卡,输出倒逼输入,沉淀知识网络;同时通过组队连接志同道合的同伴,建构长期的社交网络,从传统网络教学中知识单向传播转向学生主体参与,互相协作,长期发展。通过自组织学习,学习者可以实现资源共享和开源学习社区建构,并在此过程中共同发展与成长,一个人可以走的很快,一群人可以走的更远。
Datawhale 做了什么组队学习
Datawhale 目前已经组织了近四十期组队学习,通过组队学习已经与大量从事数据科学的朋友建立起了连接,其模式是每期组织几门课程的组队学习,对于每一门课程会有志愿者同学作为助教帮助大家解答问题,每位学员会根据兴趣组队,通过小队的模式互相激励交流完成整体的学习内容。这个模式不是 Datawhale 首创,但是通过对流程的一些优化以及创新,目前已经沉淀的较为成熟,关于组队学习的相关内容可以在 datawhalechina/team-learning[1] 找到,组织成员提出了组队学习的大航海模型[2]将组队学习模式以及概念进行了许多抽象,但是这样对于初次接触的同学可能会比较迷茫,对于领航员,船长等概念不能很快的理解也是抽象带来的负面影响。
教程
与上文提到的组队学习对应,每期组队学习的课程内容现在越来越多是基于组织成员共同推出的内容,这样做的好处可以形成正向闭环,首先内容刚推出并不会非常完善,但是因为内容完全开源所以无论是参与学习的学员还是其他同学均可对内容提出质疑或进行校对完善,这样经过几期组队学习下来内容就会愈加完善,反过来好的内容也会吸引更多人参与关注。Datawhale 通过开源协作的方式目前推出了机器学习公式详解“南瓜书”[3]以及强化学习教程“蘑菇书”[4]不仅占据图书排行榜前列,还受到人工智能领域高校以及众教授推荐。下图清华大学官方公众号推荐:
团队成员编写的 pands 教程《joyful-pandas》[5]不仅获得了2.9k star,被 pandas 官方社区推荐。还有许多优质的项目正在完善与孵化中,更多内容可见 Datawhale[6] 仓库。未来通过开源的方式可以整理出更多完善的教程,最终形成 AI 人才的培养方案[7],这里也体现了开源模式的好处,需求都是来自真实场景和用户,经过反复的质疑与重构,那么最终推出的内容相信也会更加符合需求。
竞赛
除了上面提到的组队学习更多是对 AI 知识本身的了解,竞赛是一个相对实践性更强的内容,Datawhale 在竞赛方面也投入了许多的精力,例如联合天池,科大讯飞等平台推出学习赛,除此之外还有面向数据科学竞赛知识、baseline、思路的项目 datawhalechina/competition-baseline[8]。以及组织成员推出的专门面向竞赛的 coggle[9] 项目。综合来说,Datawhale 通过组队学习,教程,竞赛这三个方面来帮助学习者更好的学习了解数据科学领域和 AI 领域。
Datawhale 怎么做的上面提到的是 Datawhale 都做了什么内容,那么下面就看一下 Datawhale 是怎么做到的。Datawhale 通过持续的技术分享,多期的组队学习 Datawhale 已经和大量的学习者构建起了一个庞大的社区,在这个社区中有一个核心观点持续的打造了社区的活力,那就是社区成员成功。类似于商业公司提出的客户成功,是要通过公司的产品帮助客户创造更大的价值,反过来实现公司的价值,Datawhale 构建社区的同时希望能够尽可能帮助更多的社区同学成功,社区同学的成功也会进一步促进 Datawhale 社区的发展,体现在以下几个方面:
- 构建更开放的贡献机会
- 赋能每个人
构建更开放的贡献机会
对于构建更开放的贡献机会这点,在 Datawhale 社区中如果你有想法,只要你与项目负责人联系,你是可以自由的参与或者发起项目的,同时一些项目也会不定时的召集一些负责人,如果参与过 Datawhale 社区的同学就会感到,一些项目会有大的方向,但是具体做什么程度完全是看你的发挥的,这就给了你足够的自主性,你可能在参与某个项目的过程中有了更多的想法,从而发起一个全新的项目,Datawhale 会给你机会让你成为这个项目的主角,这种晋升渠道对于社区的成员来说是一种非常大肯定与支持。
赋能每个人
Datawhale 也会为每一个社区成员提供尽可能的帮助,例如构建项目,Datawhale 可以帮助召集人来一起完善项目。例如社区成员有职业上的困扰,Datawhale 可以帮助协调资源大家一起交流尝试走出困境,例如如果你在某个领域比较专业,Datawhale 会将你打造为类似于 KOL 的角色,等等。这些都是赋能的表现。通过这些方式会进一步增强社区成员的归属感,同样也会促进这些社区成员贡献自己的力量。
Datawhale 与开源开源项目协作方式
不同于传统的开源项目,Datawhale 的开源项目一般都为教程类的学习内容,更类似于传统开源项目的项目文档,目前 Datawhale 采取的形式是每个项目会有指定的负责人,由负责人召集团队对这个项目进行完善,目前基于这种模式已经积累了许多内容,而且也是 MVP 的,保证项目可以 run 起来,但是这样的缺点也不能忽视,就是过于依赖小团队的创造力与精力,而且可能随着内容的完善让人望而却步不敢参与,但是完全的开放也可能导致项目没有核心的负责人导致难产,而且开源项目有个共识就是大部分人喜欢白嫖,真正想要参与项目的人还是少数,所以对于开源项目来说,如何抓住想要参与项目建设的人,再结合核心团队持续迭代的方式,是每个开源项目需要思考的。虽然 Datawhale 鼓励大家更多的参与项目建设,但是目前对于想要参与到项目建设中的朋友似乎还缺少必要的引导,概要的分为下面两方面:
- 缺少 Contribution Guide
- roadmap 需要更清晰
我们分别来说,Contribution Guide 是引导刚接触项目的朋友如何参与项目的重要文档,例如 Flink 项目的 Contribution Guide[10],在贡献文档指引中,指导了如何获取文档,并要求在贡献文档之前提交对应的 issue,以及一些提交的规范。这样相当给想要参与项目的同学一个抓手和规范,让维护项目的同学不用再去操心一些基础的流程化内容,其次通过 Contribution Guide 可以实现想法的收集,提供 proposal 指引,给有想法的人提供渠道,再交给团队进行决策。
其次是 roadmap,对于Datawhale 的开源项目来说不能说是没有 roadmap,因为每个学习教程都是分章节的,每个章节或许就可以看作一个 milestone,但是如果针对一个项目有更为清晰的 roadmap 来标记当前的项目处在什么阶段,未来要做成什么样,就像开源项目的 feature list,或许可以激发更多人的灵感来共同打造项目。
组织的持续迭代
Datawhale 持续迭代的方式采用的推荐机制,与开源项目中的提名机制类似,在指定阶段由组织成员提名,得到票数多的同学可以加入 Datawhale,这样可以尽可能的保证加入的伙伴是得到大多数人认可的。同时流出机制也类似于开源项目中的 retire 机制,筛选出现阶段不适合共同发展的伙伴,以此来保持社区整体的良性发展。但是如果缺少相应的贡献引导方式,当前的机制会不会引发小圈子效应也是值得思考的问题。
总结可以看到,Datawhale 采用的社区治理方式其实与开源项目的治理方式在某些方面类似,其核心都是想要构建一个良性的社区,吸收大家共同的智慧,让大家参与社区的项目与活动更加容易,让更多人发挥价值。我们不能拿基于代码的开源项目的要求来规范这样的开源组织,这样的开源组织在实践开源的过程中本身就是对开源新的突破。
任何形式的分析和调研基于个人认知所限,难免有失偏颇,欢迎大家批评指正,多多交流。
参考文献- https://github.com/datawhalechina/team-learning
- https://mp.weixin.qq.com/s/D2SedoGaGYOfzsaXa2BIww
- https://github.com/datawhalechina/pumpkin-book
- https://github.com/datawhalechina/easy-rl
- https://github.com/datawhalechina/joyful-pandas
- https://github.com/datawhalechina
- https://zhuanlan.zhihu.com/p/446455353?utm_source=wechat_session&utm_medium=social&utm_oi=1065289502221799424&utm_content=group3_article&utm_campaign=shareopn&s_r=0
- https://github.com/datawhalechina/competition-baseline
- https://coggle.club/
- https://flink.apache.org/zh/contributing/contribute-documentation.html