您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    维护一个大型开源项目是怎样的体验?AutoKeras作者亲述心路历程
    时间:2021-08-05 21:06 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    维护一个大型开源项目是怎样的体验?AutoKeras作者亲述心路历程

    我是 AutoKeras 项目的作者金海峰,是 Keras 团队的一名工程师,同时担任开发和维护 KerasTuner 项目。没时间听故事的同窗,可以直接下拉至「干货部分」。

    项目简介

    KerasTuner 可以在 Keras 模型构建进程中定义一些超参数的取值范围,并对他们的取值停止搜索,找到一个相对优的值,以构建一个好模型。

    AutoKeras 则是提早为几种常见的义务定义好了一系列模型和超参数范围,用户无需本人定义模型。只需输入训练数据,即可完成建模和训练。

    背后的故事

    这还要从我博士第二年说起,事先找暑期实习,拿到了微软的 offer。但导师说有个项目想让我参与,暑假就要末尾,和实习有抵触。我决议保持实习,来做这个项目。

    这是一个有关自动化机器学习(AutoML)的项目,有几十家高校和公司参与,试图打造一个能胜任所无机器学习义务的 AutoML 平台,还要有友好的人机交互界面。这个项目带我进入了 AutoML 这个范围。

    在一次学术会议上,我突发奇想,既然有传统机器学习模型的机器学习库(如:Auto-WEKA 和 Auto-Sklearn),为什么没有人做一个深度学习的同类产品呢?想到这里我立刻冲出了会场,翻开笔记本电脑,末尾了调研。

    我记得以前看罗振宇在一期《罗辑思想》中讲述什么样的人适宜创业。其中一条就是举动力极强,也许有一百团体同时能想到一个想法,但只要那个举动最快的人能把果实摘走。他说一次和一个冤家吃饭聊天,聊起本人的一个好想法,他的冤家在吃饭这会儿功夫就放置人把相关的域名都注册好了。可见举动力之强。

    我的举动也刻不容缓。经过调研,我决议把名字定为 AutoKeras,由于 Keras 的易用性是遭到普遍认可的,而我们就是要做一个傻瓜式的产品,名字就能让用户 get 到这个信息。

    没想到这个软件还真的没有人做,我在第一时间把能注册的平台都注册了,比如 PyPI 和 GitHub repo。

    我觉得我这个想法真实是太容易被想到了,随时有能够有一个团队跳出来把我想到的名字抢了,把东西提早做出来。

    于是,接上去我做了两件事,一是找协作同伴,加快开发进度。在我联络了一圈我看法的牛人小同伴之后,只要一个北邮的学弟情愿参与。于是,我们末尾了开发。二是决议这个开源软件从第一天起就是开源的,由于假设我们先开发再开源,很能够在开发进程中就被别人先做出来把名字抢了。

    我在当天找到了一篇陈天奇的论文 Net2Net,觉得可以作为处置方案的一部分。加上一个搜索算法就能用了。

    我开完了学术会议之后,回到学校,跟导师说了这个想法,失掉了导师的支持。

    这个开源软件,做了半年多,陆续有实验室的同窗参与开发,基本完成,其中的办法创新还宣布了论文。没想到,我们都没停止宣传,就遭到了少量的媒体报道。

    然后还与谷歌 Keras 团队达成协作,作为其官方 AutoML 软件停止开发。

    维护一个大型开源项目是怎样的体验?AutoKeras作者亲述心路历程

    博士毕业后我参加了谷歌公司,继续对该项目停止维护和开发。

    干货部分 对任务的影响

    关于团体开发者来讲,可以分为三种状况。

    1、大少数人只是将运营开源项目当做专业快乐喜欢。这也许会和开发者的正式任务产生抵触。

    2、关于一少部分,较成功的项目,开发者可以把开源项目作为全职任务。我就处于这个阶段。基本上可以全身心肠投入其中,但也会担忧本人由于太专注于一个项目,而在很多通用技术上有所完善。

    3、最成功的开发者会把开源软件变成人人都需求学的通用技术。这样也就彻底没有了后顾之忧。例如:Linux 和 VUE.js。

    抢占先机很重要

    我觉得我做的项目虽说有技术含量,但远没有到达无人能做的难度。回头来看,能遭到认可最关键的要素还是抢占了先机。

    协作才是霸道

    当你手中的资源有限的时分,唯有协作并合理地分配功劳和利益,才能把项目的规模最大化。包括和同窗、冤家以及大公司的协作。千万别由于怕别人分走了你的功劳和利益就玩火自焚。在此特别感谢一切参与了项目的同窗们,尤其是原论文二作,宋清全。

    别小瞧任何人或作品

    我学到了很重要的一课,就是不要随意小看人。假设有人有一件不错的作品,即使作品看上去很复杂,也不要随便地小看了作者。一是由于作品的难度不同等于作者的全部实力。也许作者厨艺一目了然,而这部作品不过是做个蛋炒饭罢了。二是由于要把蛋炒饭做到世界知名,那也是需求世界级的厨艺的。

    运气是不可或缺的

    从起名,到接受报道,到和大公司协作,任何一环都有很大的运气成分。运气差一点点能够影响力就要大打折扣。

    上手难度决议用户量

    假设你的技术或许用户体验没有牛到无独有偶的水平,那么用户选不选你能够主要取决于你的东西好不好上手。一个残缺详细的教程,就能轻松处置这个成绩。

    好的下层管理也是必要条件

    我导师,胡侠教员,在这个项目里起的作用是决议性的。看似我枪出如龙,抢占了先机,实则导师在我想到这个点子的两三年之前要拿到这个前沿范围的科研经费,并参与到这个多校协作的 AutoML 项目中来。这才是从基本上抢占了先机。所以,这个开源项目离不劝导师在小气向上高屋建瓴的目光。

    也许许多人觉得我们的项目很多实验室都能做,但其实这背后是雄厚的科研经费的支持。事先导师把我身上别的杂活都拿掉了,让我专心做这一个项目,才得以把项目做好。假设实验室没有足够的经费来支持足够多的人手,又怎样能做到这样的调度。

    而且,懂得且情愿让先生专注于一个项目以提升产出质量,也是很不足为奇的。

    「百亩之田,勿夺其时,数口之家可以无饥矣。」——《寡人之于国也》

    农民勤勤恳恳固然重要,但若是下层管理者总是耽误农时,也是无法取得歉收的。

    【编辑引荐】

    Web 趋向榜:上周又有意思又抢手的 10 大 Web 项目

    你想知道,Microsoft Edge这种巨型项目是如何停止版本管理的吗?

    让智能修建“智能”的4种技术

    小冰发布超级自然语音技术,并披露A轮融资完成

    开源定义是什么?为什么OSI不接受SSPL?

    (责任编辑:admin)