nykek5i 发表于 2024-7-28 01:20:00

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


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="http://mmbiz.qpic.cn/mmbiz_png/YicUhk5aAGtCTqlzCxiat4DkLqvYc5yqPUXHzatCgxeiaaTiaXmExUrjZnA4ia7V1qeJJVtvnfVz1aUlTQVvqQcrkYA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">唐旭 编译自 O’reilly</p>量子位 出品 | 公众号 QbitAI<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">TensorFlow开源一年半<span style="color: black;">败兴</span>,在GitHub上<span style="color: black;">已然</span>有了820位贡献者,close了5192条issue,还有1033条开放着。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="http://mmbiz.qpic.cn/mmbiz_png/YicUhk5aAGtCTqlzCxiat4DkLqvYc5yqPUaOzH6cB6vd57P3PHUPcH86kJbY5hseeYCTjs6ty2G1eexGwLDaCODg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">同期</span>,<span style="color: black;">倘若</span>所有TensorFlow团队成员都在GitHub上,<span style="color: black;">况且</span>属于这个组织的话,它在Google内部还有着一支75人的团队。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">一支人数不算少的全职团队,是<span style="color: black;">怎样</span>和数量众多的开源贡献者<span style="color: black;">一起</span>改进TensorFlow的呢?团队的技术主管Pete Warden<span style="color: black;">带着深深的怨念</span>,在O’reilly网站上<span style="color: black;">发布</span><span style="color: black;">文案</span>,讲述了<span style="color: black;">她们</span>是<span style="color: black;">怎样</span><span style="color: black;">守护</span>TensorFlow开源社区的。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">以下内容编译自Warden的<span style="color: black;">文案</span>:</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">开源可不只是把代码往GitHub上一扔,<span style="color: black;">而后</span>等着别人去用它就完事了。道理我都懂,可直到在谷歌<span style="color: black;">作为</span>TensorFlow团队的一员,我才真正开了眼:要围绕一个软件打造出一个社区,要<span style="color: black;">思虑</span>的<span style="color: black;">原因</span>实在是太多太多了。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">社区服务</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">当一个新的项目<span style="color: black;">刚才</span>诞生时,在这个项目上能被<span style="color: black;">叫作</span>作专家的,就<span style="color: black;">仅有</span><span style="color: black;">哪些</span>把它写出来的人。<span style="color: black;">她们</span>是仅有的能够撰写文档和解答问题的人,<span style="color: black;">同期</span>,在对软件的改进方面,<span style="color: black;">她们</span><span style="color: black;">亦</span>是最佳人选。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">但结果,<span style="color: black;">咱们</span>这类TensorFlow团队中的核心成员反倒<span style="color: black;">作为</span>了项目成长的瓶颈。<span style="color: black;">原由</span>其实很简单:<span style="color: black;">咱们</span>没法一次性把所有的事情都干完。是,<span style="color: black;">咱们</span>确实<span style="color: black;">晓得</span>该怎么腾出时间去写代码和文档,<span style="color: black;">由于</span>这本来<span style="color: black;">便是</span><span style="color: black;">咱们</span>在谷歌<span style="color: black;">平常</span>工作的一部分;但要给一个超大社区里的众多<span style="color: black;">研发</span>者解答问题,<span style="color: black;">咱们</span>就有点懵比了——尽管<span style="color: black;">咱们</span><span style="color: black;">晓得</span>,这<span style="color: black;">针对</span>项目的成功<span style="color: black;">非常</span>重要。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">为了<span style="color: black;">保证</span>用户们能够得到<span style="color: black;">她们</span>需要的答案,核心工程团队的全体成员<span style="color: black;">起始</span>轮班。<span style="color: black;">每一个</span>人<span style="color: black;">能够</span>从以下几个活里自己挑:处理Stack Overflow上带有#tensorflow标签的问题、<span style="color: black;">检测</span>一遍GitHub上的pull request、给GitHub上的issue<span style="color: black;">归类</span>、同步<span style="color: black;">外边</span>和内部代码,或是找到<span style="color: black;">哪些</span>失败测试的<span style="color: black;">原由</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">怎样</span>分配这些工作由大伙自己决定。<span style="color: black;">通常</span>来讲,<span style="color: black;">倘若</span><span style="color: black;">每一个</span>工程师每次在一个特定<span style="color: black;">行业</span>负责<span style="color: black;">1星期</span>的话, <span style="color: black;">咱们</span>勉强能让这个轮班机制循环起来。这个机制实行之后,工程师们在<span style="color: black;">她们</span>值班当周的本职工作产出会大大降低——<span style="color: black;">不外</span><span style="color: black;">最少</span>,<span style="color: black;">每一个</span>人的工作被打断的频率降到了几个月一次。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">Pull request</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>将TensorFlow开源来让社区能够对其贡献力量。到<span style="color: black;">日前</span>为止,<span style="color: black;">已然</span>有超过400人从<span style="color: black;">外边</span>为<span style="color: black;">咱们</span>贡献了代码,这其中既<span style="color: black;">包含</span>简单的文档修复,<span style="color: black;">亦</span><span style="color: black;">包含</span>像OS X的GPU支持、OpenCL的执行、InfiniBand架构下RDMA<span style="color: black;">这般</span>的大输血。<span style="color: black;">首要</span>,每次贡献都会先从轮值核心工程师那里审一遍,以确定其<span style="color: black;">是不是</span>真的管用;<span style="color: black;">倘若</span><span style="color: black;">方法</span><span style="color: black;">经过</span>了最初的审核,<span style="color: black;">咱们</span>会对它进行一组Jenkins测试来<span style="color: black;">保证</span>它不会<span style="color: black;">诱发</span>任何故障;<span style="color: black;">倘若</span>以上两道程序都被<span style="color: black;">经过</span>了,轮值工程师会将<span style="color: black;">方法</span>交给另一位更加<span style="color: black;">善于</span><span style="color: black;">关联</span><span style="color: black;">行业</span>的核心工程师再次进行审核。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在这一过程中,GitHub全新的精细代码审核工具能够为<span style="color: black;">咱们</span><span style="color: black;">供给</span><span style="color: black;">极重</span>的<span style="color: black;">帮忙</span>。而在它<span style="color: black;">显现</span>之前,要把所有人的<span style="color: black;">评估</span>都处理一遍是个<span style="color: black;">非常</span>痛苦的事情。当一名核心工程师与一位或<span style="color: black;">更加多</span>的<span style="color: black;">外边</span>贡献者协作时,经常会有更大的pull request会被放入正在进行的工作中。直到<span style="color: black;">每一个</span>人都满意之后,PR就会被合并到GitHub上的树顶,并在下一次同步运行时被合并进<span style="color: black;">咱们</span>的内部代码库。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">代码许可协议</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">做为</span>自动化pull request程序的一部分,<span style="color: black;">咱们</span>会将贡献者的GitHub账号与<span style="color: black;">咱们</span>在谷歌<span style="color: black;">研发</span>者网站上的代码许可协议(CLA)记录相匹配,以<span style="color: black;">保证</span><span style="color: black;">每一个</span><span style="color: black;">外边</span>贡献者都拿到了CLA。<span style="color: black;">咱们</span>的<span style="color: black;">目的</span>是是<span style="color: black;">保证</span><span style="color: black;">全部</span>代码库都在阿帕奇2.0协议下准确无误地得到了分配。当pull request的轮值工程师要对<span style="color: black;">显现</span>的<span style="color: black;">所有</span>问题进行归类的时候,<span style="color: black;">倘若</span>一个pull request的内部<span style="color: black;">相关</span>了多个邮箱,或是贡献者需要以团体名义登录,<span style="color: black;">状况</span>就会变得<span style="color: black;">非常</span>麻烦。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">GitHub issue</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">GitHub用户们<span style="color: black;">已然</span>提交了5000多个关于TensorFlow的issue。<span style="color: black;">针对</span>有些人<span style="color: black;">来讲</span>,这可能有点让人<span style="color: black;">懊丧</span>;但对我<span style="color: black;">来讲</span>,issue却是个最棒的单位——<span style="color: black;">由于</span>它证明,人们是真的在<span style="color: black;">运用</span>这个软件。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">为了<span style="color: black;">保证</span><span style="color: black;">咱们</span><span style="color: black;">回复</span>了<span style="color: black;">每一个</span>存档的issue,轮值工程师会时刻查看新<span style="color: black;">显现</span>的信息并试着用标签对其进行<span style="color: black;">归类</span>。<span style="color: black;">倘若</span>那是个<span style="color: black;">咱们</span>在短期内<span style="color: black;">没法</span>在内部搞定的问题,它就会被标记成“欢迎贡献”;<span style="color: black;">针对</span><span style="color: black;">有些</span>待处理的bug,<span style="color: black;">咱们</span>会给<span style="color: black;">她们</span>按轻重缓急排个<span style="color: black;">秩序</span>。这些天来,随着一些<span style="color: black;">外边</span>用户自己变<span style="color: black;">成为了</span>某些问题的专家,越来越多的问题<span style="color: black;">无</span>借助<span style="color: black;">咱们</span>的力量就被<span style="color: black;">处理</span>掉了,<span style="color: black;">尤其</span>是在像Windows这类<span style="color: black;">咱们</span>不会<span style="color: black;">每日</span>都用的平台上。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">倘若</span>一个issue没能在社区中找到回答或修复,而它的优先级又足够高时,值班的人就会把它分配给团队里一个<span style="color: black;">认识</span>此类问题的工程师。<span style="color: black;">全部</span>TensorFlow团队的成员都有自己的GitHub账号,<span style="color: black;">因此呢</span><span style="color: black;">咱们</span><span style="color: black;">能够</span>用正常的GitHub issue<span style="color: black;">跟踪</span>器来实现任务的分配。<span style="color: black;">咱们</span>确实<span style="color: black;">思虑</span>过把GitHub上提交的bug复制到<span style="color: black;">咱们</span>的内部系统中,但要为相同信息同步两份副本,代价太高了。最后,<span style="color: black;">咱们</span>让工程师们除了留意内部系统的<span style="color: black;">跟踪</span>器之外,<span style="color: black;">亦</span>要打开邮件<span style="color: black;">通告</span>,以便能够<span style="color: black;">即时</span>看到自己被分配了<span style="color: black;">那些</span>GitHub上的问题。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">Stack Overflow</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Derek Murray是Stack Overflow值班小组的带头大哥,我觉得他回答问题的技能真是碉堡了。<span style="color: black;">按照</span>他的资料页,这个人发过的帖子<span style="color: black;">已然</span>触及到了130万人;为了让<span style="color: black;">咱们</span>能够<span style="color: black;">即时</span><span style="color: black;">跟踪</span>网站上<span style="color: black;">哪些</span>带有#TensorFlow标签的问题,他还设法创建了一个RSS驱动的自动化电子表格。起初<span style="color: black;">咱们</span>采取每周轮班制,但<span style="color: black;">发掘</span>要处理问题的量<span style="color: black;">针对</span>一个人来讲实在是太大了;后来<span style="color: black;">咱们</span>采用了自动分配系统,<span style="color: black;">状况</span>变得好多了。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">我<span style="color: black;">自己</span>就在这个轮班小组里,<span style="color: black;">因此呢</span><span style="color: black;">每日</span>早上我浏览完自己的邮件后,我都会查看电子表格来弄清楚自己被分配到了<span style="color: black;">那些</span>问题。很遗憾,<span style="color: black;">咱们</span>没法自己回答<span style="color: black;">所有</span>的问题,但每一个新进来的问题<span style="color: black;">咱们</span>都会看。<span style="color: black;">倘若</span>问题相对简单的话,<span style="color: black;">咱们</span>就自己把它答了。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">当然,值班的工程师得顶到被问题轰炸的前线去,但有些时候,回答某些问题需要<span style="color: black;">更加多</span>的时间和专业知识。<span style="color: black;">倘若</span>某个问题看上去能被答出来,但社区里却没看见站出来的英雄,<span style="color: black;">咱们</span>就会<span style="color: black;">科研</span>一下代码,扒一下团队里有谁可能会对这个问题有些想法(<span style="color: black;">一般</span>是用git blame)。<span style="color: black;">而后</span>值班工程师就会向<span style="color: black;">咱们</span>找到的人发封邮件,看其<span style="color: black;">是不是</span>能<span style="color: black;">供给</span>一点<span style="color: black;">帮忙</span>。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">邮件列表</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>设置了一个邮件列表,但起初却并不<span style="color: black;">晓得</span>该怎么用它。<span style="color: black;">咱们</span><span style="color: black;">火速</span>就看出来,用这种<span style="color: black;">办法</span>来<span style="color: black;">跟踪</span>issue和回答<span style="color: black;">通常</span>问题有多辣鸡。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">后来,<span style="color: black;">咱们</span>把它当成讨论区来用,GitHub和Stackoverflow都不合适的<span style="color: black;">专题</span>,就发到邮件列表,<span style="color: black;">然则</span>在<span style="color: black;">实质</span>操作中<span style="color: black;">咱们</span><span style="color: black;">发掘</span>,即便是架构问题,用GitHub issue来讨论<span style="color: black;">亦</span>比邮件列表合适。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">此刻</span><span style="color: black;">咱们</span>用这个邮件列表来发送信息和贴<span style="color: black;">通告</span>,还算是值得订阅的。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">代码同步</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">和我聊过的许多人都对一件事<span style="color: black;">暗示</span><span style="color: black;">非常</span>吃惊——那<span style="color: black;">便是</span>在谷歌内部,<span style="color: black;">咱们</span><span style="color: black;">运用</span>的代码库和<span style="color: black;">咱们</span>在GitHub上所开放的几乎完全相同。<span style="color: black;">不外</span>,两者间还是存在一点区别的,比对谷歌专用<span style="color: black;">基本</span><span style="color: black;">设备</span>的支持是独立的,路径<span style="color: black;">亦</span>和GitHub版不<span style="color: black;">同样</span>,但同步的过程是完全机械的。<span style="color: black;">咱们</span><span style="color: black;">最少</span>每周推出一次内部更新,<span style="color: black;">更加多</span>时候是下载GitHub版本。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">麻烦的是,<span style="color: black;">咱们</span>要进行双向同步。在GitHub的公共项目和<span style="color: black;">咱们</span>的内部版本上,有<span style="color: black;">非常多</span>变动是<span style="color: black;">同期</span><span style="color: black;">出现</span>的,而<span style="color: black;">咱们</span>需要反反复复地把它们<span style="color: black;">所有</span>进行合并。<span style="color: black;">无</span>现成的<span style="color: black;">基本</span>架构可供利用,<span style="color: black;">因此呢</span><span style="color: black;">咱们</span><span style="color: black;">运用</span>了自己创造的一套Python脚本来处理这些问题。这些脚本能够将GitHub上所有的变动拉进<span style="color: black;">咱们</span>的内部资源库里,转换所有的header path和其他细微的变化,将它们和最新内部版代码合并,并在内部创建一个副本。随后就<span style="color: black;">能够</span>进行另一个方向的同步了,<span style="color: black;">咱们</span>会将所有的内部代码转换成<span style="color: black;">外边</span>的格式,并用相同的脚本把这些结果合并到最新的GitHub版上。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">针对</span>内部的修改,<span style="color: black;">咱们</span><span style="color: black;">一样</span>会尽力让每次check-in都呈现为单独的git commit,<span style="color: black;">同期</span>把作者的GitHub账号和解释这些变动的评论<span style="color: black;">包含</span>在内。<span style="color: black;">咱们</span>在GitHub上有一个<span style="color: black;">尤其</span>的“TensorFlow园丁”账号来完成<span style="color: black;">以上</span>过程,一个内部的commit被转移到GitHub上之后,是<span style="color: black;">这般</span>的:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="http://mmbiz.qpic.cn/mmbiz_png/YicUhk5aAGtCTqlzCxiat4DkLqvYc5yqPUwfUkxduPCkl1OB069om54TwsEiafpkPGdqJCEaLEP9MWUTzImDAf2eg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">要<span style="color: black;">保证</span>即使代码变了,这个转换流程依然有效,是<span style="color: black;">特别有</span>挑战性的。为了验证这种有效性,<span style="color: black;">咱们</span><span style="color: black;">需求</span>把内部代码<span style="color: black;">经过</span>这个脚本转换成<span style="color: black;">外边</span>版本,再转换回来之后,和最初的内部版一模<span style="color: black;">同样</span>。在任何接触到TensorFlow代码库的内部更改上,<span style="color: black;">咱们</span>都会运行这个测试,通<span style="color: black;">不外</span>测试的修改会被拒绝。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">针对</span><span style="color: black;">哪些</span>提交pull request的人,<span style="color: black;">咱们</span>常常会提<span style="color: black;">有些</span>奇怪的变更<span style="color: black;">需求</span>,<span style="color: black;">一般</span>,<span style="color: black;">这般</span>做的<span style="color: black;">原由</span>是<span style="color: black;">咱们</span>必须<span style="color: black;">保证</span><span style="color: black;">她们</span>的代码能适用于这个同步流程。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">Jenkins测试</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">由于</span>要支持<span style="color: black;">非常多</span><span style="color: black;">区别</span>的平台,<span style="color: black;">咱们</span><span style="color: black;">期盼</span>有一个适用范围很广的测试工具。TensorFlow会在Linux、Windows、OS X、iOS、Android、Android Things、以及树莓派上运行,<span style="color: black;">同期</span><span style="color: black;">咱们</span>还有为GPU准备的<span style="color: black;">区别</span>代码路径,<span style="color: black;">包含</span>CUDA和OpenCL支持、以及Bazel、cmake,和无格式makefile的构建进程。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">让每一位<span style="color: black;">研发</span>者都在做了变更时手动把上面这些东西全都测试一遍,是不可能的。<span style="color: black;">因此呢</span>,<span style="color: black;">咱们</span>有一套能在绝大部分支持平台上运行的自动化测试系统,这些系统全都<span style="color: black;">处在</span>Jenkins自动化系统的<span style="color: black;">掌控</span>之下。始终让它们发挥<span style="color: black;">功效</span><span style="color: black;">亦</span>不是件容易事,<span style="color: black;">由于</span>总会存在操作系统更新、硬件问题以及其他<span style="color: black;">有些</span>与TensorFlow<span style="color: black;">关联</span>的问题能让测试失败。<span style="color: black;">咱们</span>有一个工程师团队,专门负责让<span style="color: black;">全部</span>测试系统正常运行,这个团队曾经在系统出问题的时候救过<span style="color: black;">咱们</span><span style="color: black;">非常多</span>次。<span style="color: black;">因此呢</span>在这方面的投入<span style="color: black;">亦</span>是值得的。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">研发</span>者关系</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在开源<span style="color: black;">行业</span>,<span style="color: black;">咱们</span>在谷歌并不孤独:<span style="color: black;">咱们</span>曾经在Kubernetes和“ 开源计划办公室”(Open Source Program Office)<span style="color: black;">这般</span>的项目上学到过<span style="color: black;">非常多</span>东西。有一支非常勤奋的<span style="color: black;">研发</span>者关系专家团队<span style="color: black;">帮助</span><span style="color: black;">咱们</span>处理这些事务,<span style="color: black;">她们</span>还承担了<span style="color: black;">非常多</span>围绕文档、代码示例以及其他<span style="color: black;">有些</span><span style="color: black;">研发</span>者经验方面问题而产生的体力活。<span style="color: black;">咱们</span>的<span style="color: black;">长时间</span><span style="color: black;">目的</span>是,将关键的专业知识传递到核心<span style="color: black;">研发</span>者之外的范围,以便<span style="color: black;">更加多</span>的人能够对社区有所贡献。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">让这些核心工程师在部分时间内去承担客户服务工作的一大好处是,它给了<span style="color: black;">咱们</span>关于用户所遇到问题的直接洞见。参与客户服务<span style="color: black;">一样</span>驱动着我们去修复<span style="color: black;">哪些</span><span style="color: black;">平常</span>的bug和<span style="color: black;">弥补</span>文档,<span style="color: black;">由于</span>它在减少工作量方面让<span style="color: black;">咱们</span>看见了直接的<span style="color: black;">报答</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">将来</span>,<span style="color: black;">咱们</span><span style="color: black;">期盼</span>将这项工作更广泛地进行下去。<span style="color: black;">同期</span>,<span style="color: black;">咱们</span><span style="color: black;">亦</span>设计了<span style="color: black;">更加多</span>的“战术<span style="color: black;">指点</span>手册”以<span style="color: black;">帮忙</span>人们处理<span style="color: black;">平常</span>任务。能有机会同如此多的<span style="color: black;">外边</span><span style="color: black;">研发</span>者互动,我感觉<span style="color: black;">非常</span>幸运;我<span style="color: black;">亦</span><span style="color: black;">期盼</span>,自己能对<span style="color: black;">她们</span>产生积极的影响,<span style="color: black;">帮忙</span><span style="color: black;">她们</span>用<span style="color: black;">设备</span>学习创造新的神奇应用。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">关于作者</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Pete Warden是TensorFlow Mobile团队技术主管。在加入Google之前,他曾任Jetpac CTO,该<span style="color: black;">机构</span><span style="color: black;">供给</span>为手机和嵌入式设备而优化的深度学习技术,2014年被Google收购。他还曾在苹果工作,负责图像处理的GPU优化。(完)</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">招聘</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">量子位正在招募编辑记者、运营、<span style="color: black;">制品</span>等岗位,工作地点在北京中关村。<span style="color: black;">关联</span>细节,请在公众号对话界面,回复:“招聘”。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">One More Thing…</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">今天AI界还有<span style="color: black;">那些</span>事值得关注?在量子位(QbitAI)公众号会话界面回复“今天”,看<span style="color: black;">咱们</span>全网搜罗的AI行业和<span style="color: black;">科研</span>动态。笔芯~</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">另一</span>,欢迎加量子位小助手的<span style="color: black;">微X</span>:qbitbot,<span style="color: black;">倘若</span>你<span style="color: black;">科研</span><span style="color: black;">或</span>从事AI<span style="color: black;">行业</span>,小助手会把你带入量子位的交流群里。</p><img src="http://mmbiz.qpic.cn/mmbiz_jpg/YicUhk5aAGtDXJia2R1cD0gYhJhC3AyYszhlf215HO4QjaMicvK4Iz9z8yabicicsnaHppEiadkQMa4Chz5L8XSftaGg/640?wx_fmt=jpeg&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;">
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">△</span>&nbsp;扫码强行关注『量子位』</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">跟踪</span>人工智能<span style="color: black;">行业</span>最劲内容</p>




b1gc8v 发表于 2024-10-1 22:55:20

期待更新、坐等、迫不及待等。

4lqedz 发表于 4 天前

你的言辞如同繁星闪烁,点亮了我心中的夜空。
页: [1]
查看完整版本: TensorFlow技术主管详解:Google是怎么样管理开源软件的