社会焦点

TensorFlow技术主管详解:Google是怎样管理开源软件的(2)

字号+ 作者: 来源: 2017-05-07

和我聊过的许多人都对一件事表示十分吃惊——那就是在谷歌内部,我们使用的代码库和我们在GitHub上所开放的几乎完全相同。不过,两者间还是存在一点区别的,比对谷歌专用基础设施的支持是独立的,路径也和GitHub版

  和我聊过的许多人都对一件事表示十分吃惊——那就是在谷歌内部,我们使用的代码库和我们在GitHub上所开放的几乎完全相同。不过,两者间还是存在一点区别的,比对谷歌专用基础设施的支持是独立的,路径也和GitHub版不一样,但同步的过程是完全机械的。我们至少每周推出一次内部更新,更多时候是下载GitHub版本。

  麻烦的是,我们要进行双向同步。在GitHub的公共项目和我们的内部版本上,有很多变动是同时发生的,而我们需要反反复复地把它们全部进行合并。没有现成的基础架构可供利用,因此我们使用了自己创造的一套Python脚本来处理这些问题。这些脚本能够将GitHub上所有的变动拉进我们的内部资源库里,转换所有的header path和其他细微的变化,将它们和最新内部版代码合并,并在内部创建一个副本。随后就可以进行另一个方向的同步了,我们会将所有的内部代码转换成外部的格式,并用相同的脚本把这些结果合并到最新的GitHub版上。

  对于内部的修改,我们同样会尽力让每次check-in都呈现为单独的git commit,同时把作者的GitHub账号和解释这些变动的评论包括在内。我们在GitHub上有一个特别的“TensorFlow园丁”账号来完成上述过程,一个内部的commit被转移到GitHub上之后,是这样的:

  TensorFlow技术主管详解:Google是怎样管理开源软件的

  要确保即使代码变了,这个转换流程依然有效,是很有挑战性的。为了验证这种有效性,我们要求把内部代码通过这个脚本转换成外部版本,再转换回来之后,和最初的内部版一模一样。在任何接触到TensorFlow代码库的内部更改上,我们都会运行这个测试,通不过测试的修改会被拒绝。

  对于那些提交pull request的人,我们常常会提一些奇怪的变更要求,通常,这样做的原因是我们必须确保他们的代码能适用于这个同步流程。

  Jenkins测试

  因为要支持很多不同的平台,我们希望有一个适用范围很广的测试工具。TensorFlow会在Linux、Windows、OS X、iOS、Android、Android Things、以及树莓派上运行,同时我们还有为GPU准备的不同代码路径,包括CUDA和OpenCL支持、以及Bazel、cmake,和无格式makefile的构建进程。

  让每一位开发者都在做了变更时手动把上面这些东西全都测试一遍,是不可能的。因此,我们有一套能在绝大部分支持平台上运行的自动化测试系统,这些系统全都处于Jenkins自动化系统的控制之下。始终让它们发挥作用也不是件容易事,因为总会存在操作系统更新、硬件问题以及其他一些与TensorFlow相关的问题能让测试失败。我们有一个工程师团队,专门负责让整个测试系统正常运行,这个团队曾经在系统出问题的时候救过我们很多次。因此在这方面的投入也是值得的。

  开发者关系

  在开源领域,我们在谷歌并不孤独:我们曾经在Kubernetes和“ 开源计划办公室”(Open Source Program Office)这样的项目上学到过很多东西。有一支非常勤奋的开发者关系专家团队协助我们处理这些事务,他们还承担了很多围绕文档、代码示例以及其他一些开发者经验方面问题而产生的体力活。我们的长期目标是,将关键的专业知识传递到核心开发者之外的范围,以便更多的人能够对社区有所贡献。

  让这些核心工程师在部分时间内去承担客户服务工作的一大好处是,它给了我们关于用户所遇到问题的直接洞见。参与客户服务同样驱动着我们去修复那些常见的bug和补充文档,因为它在减少工作量方面让我们看见了直接的回报。

  未来,我们希望将这项工作更广泛地进行下去。同时,我们也设计了更多的“战术指导手册”以帮助人们处理常见任务。能有机会同如此多的外部开发者互动,我感觉十分幸运;我也希望,自己能对他们产生积极的影响,帮助他们用机器学习创造新的神奇应用。

  关于作者

  Pete Warden是TensorFlow Mobile团队技术主管。在加入Google之前,他曾任Jetpac CTO,该公司提供为手机和嵌入式设备而优化的深度学习技术,2014年被Google收购。他还曾在苹果工作,负责图像处理的GPU优化。(完)

  招聘

  量子位正在招募编辑记者、运营、产品等岗位,工作地点在北京中关村。相关细节,请在公众号对话界面,回复:“招聘”。

  One More Thing…

  今天AI界还有哪些事值得关注?在量子位(QbitAI)公众号会话界面回复“今天”,看我们全网搜罗的AI行业和研究动态。笔芯~

  另外,欢迎加量子位小助手的微信:qbitbot,如果你研究或者从事AI领域,小助手会把你带入量子位的交流群里。

  追踪人工智能领域最劲内容

相关阅读:

  • 获取tensorflow的元素个数
  • 怎样安装tensorflow镜像
  • 用pip下载tensorflow代码
  • 用tensorflow训练自己的图片
  • google内部基于tensorflow的项目
  • tensorflow google深度学习框架
  • 树莓派3+tensorflow
  • ubuntu16.04 tensorflow gpu
  • 开源硬件
  • 开源中国社区
  • 开源代码
  • 相关推荐:

  • 华为史上最美操作系统,你绝对不能错过的EMUI5.0
  • 国产操作系统典范:deepin操作系统
  • 娱乐办公两不误!这个笔记本能把屏幕拔下来写字
  • 斗鱼响应新规加强监管,坚持打造优质精品直播
  • SpaceX 火箭爆炸原因确定:液态氧过冷成了固态
  • 华为Mate9中国版真机秀 你绝对没发现它有两种版本
  • 99%的人都不知道的微信高效使用术?
  • 乐视网一周蒸发88亿元 贾跃亭反思节奏发展过快
  • 似乎已经战胜传统渠道的小米 今年为什么被OPPO、vivo 打败?
  • 优雅商务风,性能一鸣惊人—TCL 950体验评测
  • 转载请注明出处。


    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章