如果从事后的角度看互联网大厂的收购案例,我觉得以下几个可以被称为完美的例子:Google 收购了 YouTube 和 Android,Facebook 收购了 Instagram,字节收购了 Musical.ly,以及微软对 GitHub 的收购。
在如今的 AI 时代,微软以 75 亿美金的价格对 GitHub 的收购显得更加突出,它既走在了 AI 的最前沿,也让 GitHub 背后所代表的技术开发群体担心有一天可能会被 AI 所取代。
最近,GitHub CEO Thomas Dohmke 与 Freethink 进行了一次对话。在这个访谈中,Thomas Dohmke 表示 Copilot 很快将能够实现 80% 的代码编程(Copilot will write 80% of code "sooner than later"),而现在这个数字大约在 50% 左右。
Thomas Dohmke 认为开发者不会被取代,而是可以让他们将更多时间专注于剩余的 20% 部分。Copilot 将重塑编程这个职业,并且改变我们学习的方式。
同时,Thomas Dohmke 分享说,在今年 2 月份正式发布 GitHub Copilot for Business 版本后,已经有超过 1 万家企业客户在使用 Copilot 的企业版,包括可口可乐和 Airbnb 等企业。此外,微软本身也有 3 万多名员工在使用企业版的 Copilot,并且借助它进行编程。
整个对话给人很多启发,建议你阅读完整的原文 https://www.freethink.com/robots-ai/github-copilot
在过去的十五年中,GitHub已成为编码世界不可或缺的一部分。该平台于 2007 年推出,现在有超过 1 亿开发人员使用该平台进行协作、跟踪更改和存储他们的代码。
GitHub 于 2018 年被微软以75 亿美元收购,现在正以其他方式赢得声誉:从根本上改变编码的工作方式。催化剂是 Copilot,这是一种生成代码的 AI 工具,就像 OpenAI 的 ChatGPT 生成十四行诗一样容易。(事实上,Copilot 由 OpenAI 的 Codex 提供支持,这是一种大型语言模型,根据从互联网上收集的代码进行训练。)
只需按下 Tab 键,使用 Copilot 的开发人员就可以完成一行、生成代码块,甚至编写整个程序。根据 GitHub 的数据,从可口可乐到 Airbnb 等超过 10,000 家组织已经注册了Copilot 的企业版,微软本身的 30,000 多名员工现在定期在 Copilot 的帮助下进行编码。
“开发人员的技能将是弄清楚,'在我可以利用 AI 为我合成该代码之前,我必须做多小?'”
托马斯·多姆克
最近,Freethink 采访了 GitHub 的首席执行官 Thomas Dohmke,以详细了解 Copilot 如何承诺将编程重塑为一种职业,以及人工智能驱动的开发对创新本身的未来提出的问题。我们还讨论了为什么使用 Copilot 进行编码如此有趣,AI 将如何改变我们的学习方式,以及 Copilot 是否可以修复仍在大型机上运行 COBOL 的银行。
为了篇幅和清晰度,对这次采访进行了编辑。
Freethink:就编程的本质而言,您认为未来会发生什么变化?软件开发是否仍将是专家的领域?还是您认为以 AI 为动力的无代码开发会变得更加普遍——以至于成为一名软件工程师的意义看起来有所不同?
Thomas Dohmke:我认为系统思考——理解软件的复杂性并能够应对真正的大问题、大挑战、大的新功能并将其分解为小问题——将发挥越来越大的作用。
我们从穿孔卡到数百到数千再到数百万,现在可能是数万亿——如果不是数万亿之后的下一步——代码行。因此,作为开发人员,我们需要能够管理这些解决大型复杂问题的大型复杂系统。你需要能够将它们分解成小的构建块。
开发人员的技能将是弄清楚,“在我可以利用 AI 为我合成该代码之前,我需要做多小?” 至少在可预见的未来,我们仍将不得不审查所有源代码——了解它的作用,并进行安全审查、合规审查,看看你是否有及时注入,有人试图注入有害代码到代码库。
开发人员仍然是专家,了解代码以及人工智能合成的内容是否真正符合开发人员的意图。在接下来的十年中,这可能会发生变化——我们自己编写了多少,刚刚合成了多少。但我认为我们离一切都只是无代码开发的地方还差得很远。
“分心的事情并没有减少,但你可以更好地利用创作时间。”
托马斯·多姆克
Freethink:由于 Copilot,您如何看待程序员的日常工作发生的变化?
Dohmke:如今,开发人员实际上并没有将大部分时间花在编码上——开发人员每天有 2 到 4 个小时用于编写代码。剩下的时间他们做其他事情,比如站立会议,查看崩溃报告。(或者 App Store 评论中有人告诉您最新版本已损坏,您甚至无法重现该错误。)
使用 Copilot,如果您每天只有两到四个小时来实际编码,您可以更好地利用这段时间。您可以利用这段时间保持顺畅,完成工作并享受工作。
分心的数量并没有减少——无论是 Slack、Twitter,还是你的手机和 WhatsApp 消息。那些不会消失,但你可以更好地利用创作时间,你可以在某种程度上解决问题,因为如果你不经常从编辑器切换到其他东西,你也会减少分心的触发器. 所以我们看到人们更频繁地留在该区域。
“副驾驶带回了乐趣,带回了创造力。它把流量带回来了。”
托马斯·多姆克
Freethink:您自己编写软件的过程发生了怎样的变化?我不知道这些天你能投入多少时间来编码,但我真的很好奇你自己的编码过程是如何通过 Copilot 发展起来的。
Dohmke:这对我来说主要是业余爱好项目。但我首先想到的是:Copilot 带回了乐趣。很多时候,有很多分心的事情,而且您还有很多其他事情可以做。周末——我们下班的时间——在某种程度上是一场围绕注意力广度的竞赛:你想出去走走吗?或者你想搭建一些乐高套装吗?或者你想编码?
当我抽出一个小时来编写软件时,Copilot 会带回乐趣,带回创造力。它把流程带回来了,因为你不必不断地在编辑器、浏览器和搜索引擎之间切换上下文,也不需要像 Stack Overflow 或 GitHub 本身这样的东西,来找到你需要的那三行代码——我不'知道,在您正在构建的 iPhone 应用程序上做一个圆角。
所以我认为它带回了我当时的那种“我正在构建我的大灯泡想法”的感觉,在周日早上的那一两个小时里,在其他事情变得优先之前。
“初创公司明白,即使生产力提高 20-25% 也可能决定他们的生存。”
托马斯·多姆克
Freethink:如果您在创建第一家初创公司时能够使用像 Copilot 这样的工具,您认为自己作为创始人的经历会有什么不同?
Dohmke:我认为这会让我的生活更轻松。作为一家小型创业公司的创始人,您可以非常快速地行动,因为这是生存的唯一途径。因此,拥有一个可以让您保持顺畅的工具,一个可以让您获得原型、进行预览,然后最终实现产品市场契合的工具,这会令人难以置信地强大。
我与很多初创公司交谈过,我是其中一些的天使投资人,他们都在使用 Copilot,因为他们明白即使是 20-25% 的生产力提高也可能决定他们的生存。
“反应令人震惊。人们告诉我们,如果没有 Copilot,他们就无法开发。”
托马斯·多姆克
Freethink:我很好奇你收集了哪些关于 Copilot 如何改变 GitHub 和微软自己的程序员工作方式的数据——无论是轶事的还是更正式的。
Dohmke:我们于 2020 年 8 月开始研究 Copilot,然后在 2021 年初向大约 250 名 GitHub 员工或“Hubbers”推出了第一个内部预览版,我们得到的回应令人震惊。人们很兴奋。人们告诉我们,他们不能再没有 Copilot 了。
我们测量了净推荐值 NPS [ed. 注意:用户满意度的衡量标准],从负 100 到正 100。我们的 250 名测试人员的结果为 +73。我们从未在开发环境的任何其他更改中看到这些数字。通常,开发人员会说,“不要碰我的系统,我知道我在做什么,Thomas——你为什么要引入新工具?”
我们从我们的团队那里看到了巨大的积极反馈,并且留存率,即有多少人在第一天或第一周后继续使用它,非常高——高于我们构建的任何其他产品。你预计会有一定的下降——你在公司内推出一项新功能,第一天每个人都很兴奋,然后到第三天,每个人都继续回到他们的旧习惯。我们还没有在 Copilot 中看到这一点,无论是在 GitHub 中,在 Microsoft 中,还是在我们的客户中。
“平均将近一半的代码是由 Copilot 编写的。仅这一点就令人难以置信。”
托马斯·多姆克
Freethink:关于 GitHub 上更广泛的开发人员社区如何使用 Copilot,以及它对他们的工作效率有何影响,您是否有任何事实或数据?
Dohmke:当客户使用 Copilot 时,我们会跟踪他们按 Tab 键的频率以及 Copilot 在这些文件中编写了多少代码。这个数字现在平均为 46%——平均几乎一半的代码是由 Copilot 在启用它的文件中编写的。仅此一点就令人难以置信。
我们三年前开始研究 Copilot;它大约两年前进入预览。自我们推出以来,这个数字一直在稳步上升。迟早,80% 的代码将由 Copilot 编写。正如我们所讨论的,这并不意味着开发人员将被替换。这意味着开发人员有更多时间专注于他们正在编写的 20%。
当您使用 Copilot 时,您的风格会发生变化,因为您变得更加直率。你写代码注释,也许还有一个小例子。当您编写带有输入和输出的函数时,只需提供示例输入和输出,Copilot 就会“了解”您想要做什么,并将其用作额外的上下文来合成代码。
“配备 Copilot 的小组速度提高了 55%。这将改变这个行业。”
托马斯·多姆克
实际上,我们通过对 2,000 名开发人员进行的定量调查了解了他们对使用 Copilot 的感受,其中 75% 的开发人员表示他们感到更加满足。我们从他们那里听说,他们需要更少的心智能力来完成工作。他们花在编写样板文件上的时间越来越少,而我们作为开发人员总是必须这样做。
我们还进行了一项定性研究,我们向 50 名开发人员提供了 Copilot 的访问权限,并让大约 50 名没有 Copilot 的开发人员(如果您愿意的话,我们将其设为对照组),然后我们要求他们构建一个 Web 服务器。Copilot 组的速度提高了 55%。这将改变这个行业。
他们不仅速度提高了 55%,而且他们的成功率实际上更高:78% 比 70%。

“我认为我们的学习方式将彻底转变。”
托马斯·多姆克
Freethink:Copilot 对未来程序员的发展有什么影响?当你学习编程时,你会感到紧张,一方面是对看似简单的事情感到沮丧,另一方面是通过反复做这些事情,你最终会更深入地了解它是如何工作的。我很好奇像 Copilot 这样的工具可能会对正在学习如何进行冒泡排序的高中生产生什么影响,并且可以只按Tab 键并显示代码,而无需先从头开始。
Dohmke:我认为我们的学习方式将彻底转变,我们在学校的教学方式也将彻底转变。
我认为我们将更少关注于了解谁是 1845 年的总统,而更多地关注我们如何学习。老师更像是一名教练,帮助所有年龄段的孩子利用技术以自己的速度自行探索这些主题。我认为这对孩子们来说将是难以置信的民主化,特别是在软件开发方面。
在美国这里很容易忘记编码中最常用的语言是英语。如果你在这里长大,你可能比在巴西、中国或德国长大更容易理解英语。仅此一项就可以解放孩子们,因为他们可以用他们的母语查询 AI 代理,例如 Copilot。Copilot 将理解这些语言,并仍然以学生正在学习的编程语言合成代码,但学生可以用他们自己的语言进行互动和提问。
我认为知识将变得不那么重要,知道如何推理、知道如何探索内容——知道如何弄清楚人工智能提供的内容是否真的是正确答案将是至关重要的。教师将与孩子们一起学习如何做到这一点。学生们必须弄清楚,人工智能给我的是我正在解决的问题的实际答案,还是模型产生了幻觉?
“孩子们可以用他们的母语查询 AI 代理,比如 Copilot。”
托马斯·多姆克
Freethink:至少在我看来,似乎无论你选择哪个学科,无论是医学还是计算机科学,为了进行那种更高层次的推理,你都必须从一定程度的内容知识开始。
Dohmke:如果你使用 Copilot,你会相对较快地发现你仍然需要具备这些基础知识。没有它你就逃不掉。你可以去 ChatGPT 或 Copilot 上问它“如何构建 GitHub”,它会给你一个非常抽象的答案。
你必须有能力说,“好吧,现在我如何将这个非常大的问题分解成小问题?” 为此,您必须了解什么是数据库、什么是虚拟机、什么是容器?你必须了解计算机科学中的所有这些知识,才能真正达到 AI 可以解决你的问题的地步。
“我们一直在为开源开发者争取权利,因为我们相信开源是实现人类进步的基础。”
托马斯·多姆克
老师们,如果你回到学校的例子,就会立即发现这一点。如果学生只是想通过作弊来解决作业,他们不仅需要提供答案,还需要展示他们的作品。这就像数学课:展示您如何使用 Copilot 构建某些东西的工作。
另一件事是,没有一个软件项目是相同的,为超市构建销售点系统或构建在每台设备上运行但可能仍拥有 1 亿用户的 iPhone 应用程序之间存在很大差异。您仍然需要了解这些概念以及如何解决这些问题。而且我认为这对我们人类来说是比了解编程语言的所有细节更有用的技能。
Freethink:作为一个非常支持开源的人,您认为开源在这里扮演什么角色?
Dohmke:开源将在 Copilot 的发展中发挥基础性作用。OpenAI 为 Copilot 提供的模型是在互联网上的开放数据上训练的。不仅是源代码,还有其他各种文档。这使得副驾驶不仅可以说编程语言,还可以说人类语言。开源提供了用于训练这些模型的数据集。
我们现在已经看到了一些开源的大型语言模型。其中很多实际上都托管在 GitHub 上,这让我们很兴奋!在过去的 15 年里,GitHub 一直拥抱我们提供的开源生态系统。基本上我们所有的功能都可以免费提供给开源项目,我们希望继续支持这个生态系统。我们一直在为开源开发者争取权益,因为我们相信开源是实现人类进步的根本。
开源带来的协作模式可能是现存最无边界和无边界的协作模式:许多国家的开发人员相互合作,并不关心我们在这个星球上存在的所有其他冲突。
“语言已经过时了。但他们也永远不会停止服务。”
托马斯·多姆克
通常情况下,当你收到一个 pull request 时,你不知道那是谁,他们的头衔是什么,他们一直在做什么,他们是否上过大学。你不在乎。我不认为如果你想将代码贡献回 Linux 内核,没有人会问你,“你真的有适当的教育和五年的工作经验吗?” 这不是开源协作的工作方式。
在 GitHub,这就是我们已经接受并将永远接受的东西,作为我们授权和启用开源开发人员的使命的一部分。我认为大型语言模型将发挥巨大作用,并将帮助我们共同加速进步。
Freethink:您认为 Copilot 在开发新的编程语言方面可能扮演什么角色?语言流行起来,过时了——我很好奇 Copilot 对此有何影响。
Dohmke:你说语言会过时。我认为这是对的。但他们也永远不会停止服务。这里最常见的例子来自仍在大型机上运行 COBOL 的银行和金融服务机构。它不仅仅是某个地方的一家银行,它是我在世界上任何国家交谈过的仍在大型机上运行 COBOL 的任何银行。
这是个问题,因为幸运的是,60 年代编写 COBOL 的人现在都退休了,不再需要为银行维护该代码。Copilot 将在帮助公司实现代码库现代化方面发挥作用——而且它将以多种方式发挥作用。
一方面,Copilot 可以向现在必须拥有它的开发人员解释遗留代码。您可以突出显示代码并说:“请向我解释此代码。” 一旦有了解释,您就可以实际使用解释和代码来为该代码生成测试用例。下一个合乎逻辑的步骤是,您在与“飞行员”(开发人员)的迭代过程中利用 AI,用 Python 重写所有内容。因为 您 生成了测试并生成了描述——这两者在 60 年代都不太可能存在;很多代码没有文档记录——你可以将旧代码库转换为新代码库。
我们都在与上一*开代**发人员和我们自己六个月大的代码库的技术债务作斗争——大多数开发人员,无论他们六个月前写了什么,当他们现在看到这个时,他们会说,“我会现在比六个月前做得更好。” 我们将看到更多的迭代,希望我们背负的包袱更少。
我认为另一种方式是学习编*会码**更容易,并且编程语言本身可能会变得更加人性化。我可能不会写很多代码,而是写很多注释,然后综合其余代码。这些评论可能是德语、巴西葡萄牙语——实际上几乎任何语言都可以被这些模型理解,以用于合成代码。
最后一个是我们预览了一款名为 Copilot Voice 的产品,它可以帮助您用声音而不是双手进行编码——这将使那些因重复性劳损而无法整天打字的残障人士也能使用它。
Freethink:当我教高中生编程时,他们最大的飞跃是理解编码语言与自然语言的不同之处。让他们感到沮丧的是计算机如何 完全按照 你告诉他们的去做——就像一个烦人的兄弟姐妹会做明显错误的事情,然后说“嗯, 从技术上讲 ,你说过 这个 。” 使用像 Copilot 这样的工具,您认为会出现一种融合,编码变得更类似于我们人与人之间的交流方式吗?
Dohmke:我想你已经可以看到了。当你使用这些聊天代理时,它们不仅有你刚刚输入的句子,还有之前对话的上下文。对于 Copilot Chat,它实际上知道您的编辑器中有什么——不仅在您打开的文件中,而且实际上在相邻的选项卡中,以及在您的调试器中。将来,他们可能会将整个存储库或文件夹作为上下文提供给他们。
今天,您已经可以编写一个 HTML 文件——一个网页——并且在编写它时,在 Copilot 的帮助下,您可以说,“将此文本设为粗体。” 或者,“将此区域置于页面中央。” 然后它会告诉你如何去做,它消除了过去我们认为计算机不理解我想要什么的挫败感。好吧,现在可以了。
“与 Copilot 互动的最佳时刻之一就是您可以告诉它出了什么问题。”
托马斯·多姆克
就在最近的一次会议上,我构建了一个 Snake 游戏作为 Copilot 演示。我说,“让游戏更漂亮”,它只是输出样式表。我从没说过我想要样式表。我什至从未用 HTML 或 CSS 的概念来提示它。它通过了解我想要实现的目标来解决这个问题。
我认为与 Copilot 交互的最佳时刻之一是您可以告诉它出了什么问题。实际上,您可以说,“这不是我想要的”或“这行不通”。
然后它说,“哦,我道歉。这是您可以尝试的另一件事。” 所以它有这种交互模式,你不必知道编程语言的确切语法。你不必知道你必须知道什么才能解决这个问题。您可以探索它并自己找到解决方案。
“尽管他们只接受过现有艺术的培训,但他们可以创造出全新的艺术类别。”
托马斯·多姆克
Freethink:据我所知,Copilot 是建立在 OpenAI 的 Codex 上的,它是过去的快照,是 2021 年之前的代码。我不知道是否有计划将 Copilot 连接到互联网,所以它得到了更新更频繁,但我很好奇您是否发现 不必 如此频繁地编写样板文件可能带来的任何潜在损失。当你不得不一直钻进杂草中时,每 10 万人中就有一个人最终可能会说,“哇,这里有一种方法可以做得更好。” 然后该解决方案在整个开发人员社区传播。如果人们只是向 Copilot 询问基于昨天代码的最佳解决方案,那么您如何看待创新本身的变化?
Dohmke:首先要考虑的是,大型语言模型中没有存储代码片段的库。它们是具有数十亿个参数的神经网络,这些参数描述了如何预测某事的概率。就语言模型而言,那个东西就是下一个词。在扩散模型方面,它是如何从噪音到图片。
如果你把那些扩散模型作为一个可视化的例子,它们显然可以创造出以前不存在的新事物。即使他们只接受过现有艺术的培训,他们也可以创造出全新的艺术类别。您可以转到 Stable Diffusion 并说:“渲染纽约的天际线,就像法国印象派画家所画的那样。” 然后它实际上为您呈现了今天纽约的天际线,就好像它是由莫奈或其他法国印象派画家绘制的一样。
训练集中没有一张图片看起来真的像那样。图片根据您的提示自行生成,最终消除噪音。
我认为语言模型也是如此。他们可以生成全新的文本,以前从未有过的全新代码,因此,他们可以与开发人员合作,真正创造创新并创建新算法或新代码。但是,正如您可以从“Copilot”一词推断的那样,我们相信有一个飞行员与 Copilot 反复合作以实现这项创新。