17611538698
webmaster@21cto.com

黄仁勋:AI 将“消灭”更多程序员

人工智能 0 311 2024-03-09 01:46:59

图片

最近社交媒体上流传的视频剪辑,黄仁勋预测人工智能的流行,将表示未来人们将不再需要学习编程。

黄仁勋是全球领先的 GPU 制造商 Nvidia 的首席执行官。他在迪拜举行的世界政府峰会上,希望推广用于运行人工智能模型的首选硬件,以及所有编程未来都由人工智能完成。

我们的工作是创造计算技术,让任何人都不用再编程。并且编程语言将使用人类语言。现在世界上每个人都是程序员,这就是人工智能的奇迹。

他还预测未来人工智能的长期目标:“虚拟宇宙将是互联网的未来”

AI会取代程序员吗?


黄仁勋的言论只是一长串预测编程将终结人物中的其中一位。


他这样说道:“如果可以要求人工智能为我们生成代码,为什么还需要有人学习编程吗?”


这种观点其实有一点点“表面”或者“浅薄”,但是他说的也不无道理,因为有很多的自动编码产品已经开始上线,并已经在普及。


比如 ChatGPT 等通用模型已经可以做到了这些,我们还可以使用专门用于处理编程查询的特殊模型(如 CodeGPT,GitHub Copilot等) 。


图片


这些人工智能模型在将提示转化为代码方面做得已经很好。

黄仁勋在上面提到这些产品的主要优点:不需要了解编程即可使用人工智能生成代码。只需用英语告诉它你想要什么,就可以复制粘贴到结果,人们就得到自己所要求的无错误并可执行的代码。

黄仁勋还提示各位女士:“妈妈们,不需要让孩子们学计算机科学与技术。因为已经有AI全部搞定了...”。

他说的很好,有事实有依据,而且让他的英伟达的股价提高了不少。但是实际还是有很多理由,我们仍要学习计算机科学技术和编程。

AI 代码仍然需要知识来检查错误

人工智能生成的代码通常可以运行而不会产生错误,但是它并不完美。学习如何编程可以为你提供完善和打磨人工智能生成的代码所需的知识。

使用CodeGPT 之类可以编写代码,但我们应该非常小心,因为它并不总是为我们提供最佳输出。其结果可能非常容易出错,并且可能不遵循编码最佳实践。每当你使用 CodeGPT 或任何其他人工智能驱动的工具编写代码时,请先阅读和理解代码的功能,不要只是复制和粘贴。

这不仅仅是会出现错况,这也是要让代码对人类保持可读性,并且确保它遵循每个程序员都应该知道的基本编程原则。如果盲目地添加人工智能生成的代码,可能会产生一大堆难以理清的混乱代码。或者更糟糕的是,在你的软件、网站或其它方面产生安全漏洞。

系统设计与经验,AI无法替代

要理解其中的原因,我们必须更深入地了解程序员与软件工程师们的工作细节。

程序员收集人们的需求,并利用自己对整个系统的理解和经验来设计架构与算法,生成解决问题的解决方案。 

有些问题很简单且易于解决,而另一些则不然,问题比较复杂。

在他们的职业生涯中,程序员经常解决相同的问题,并培养了识别他们所见过的问题的能力。经验丰富的程序员通常会本能地知道如何解决问题,即使他们不记得上次遇到问题是什么时候。


更复杂的问题不一定有简单的解决方案。即使是更有经验的程序员也需要想出一个创造性的解决方案,这才是真正的工作开始的地方。 


程序员分析问题以找到合理的解决方案。我们需要将复杂的问题分解为较小且易于解决的部分,然后对解决方案进行原型设计和测试。放弃失败的想法并迭代有潜力的想法。

☝️ 程序员所做的不仅仅是编写代码

这可能是一个漫长而疲惫的过程,需要高度集中注意力,但是也会让人们感到精神疲惫。


人工智能系统则截然不同。它们看到一个句子,尝试猜测下一个最有可能的单词是哪个。这听起来太简单了,令人难以置信,但诀窍在于它们是根据大量数据进行训练的。他们的概率模型经过微调,但是输出仍然是对下一个最可能的单词是什么的猜测。


该模型特别适合生成解决常见问题的代码。给定一个简单的编程问题,像 ChatGPT 或 Github Copilot 这样的人工智能可以比任何程序员更快地给出答案。


AI不能对代码进行优化迭代

我们可以将人工智能视为具有超人直觉的程序员。它比任何一位程序员见到的问题都要多,可以为更多的问题提供解决方案。但是有一个问题:它无法进行推理。如果答案不容易获得,那么就无法解决问题。如果它无法分析问题,就无法形成假设并对其进行测试。


这是现代人工智能的根本局限性。虽然 ChatGPT 4.0 的直觉比 3.0 好得多,但它仍然无法推理,虽然现代 AI 会有所改进,但改进能力正越来越小。

我们需要进行范式转变,以看到人工智能能够创建大型软件系统,而无需工程师验证每一行代码。虽然,这并非不可能,但我们需要专门为此而设计软件系统,而大模型系统并不是这些系统。


程序员能够适合最新和不断变化的技术趋势


举个例子,如果你正在为客户开发程序,他们很有可能会得到一些反馈。这是来回流程的自然组成部分,以确保客户获得他们想要的产品。


如果是人类对应用程序进行编码,他们可以自己实施相应的反馈并上线发布第二个版本,然后继续这种趋势,直到达到用户的需求。然而,如果有人被人工智能生成的代码困住了,他们能做的最好事情就是要求人工智能进行调整,并希望人工智能正确处理他们的请求。


同样,在不引入BUG的情况下,重写代码中已经有用的部分,又会引入其它漏洞。因此,程序员能比人工智能更快的解决系统在存在的安全漏洞。


AI 到底会对编程产生什么影响


工智能不会取代程序员。它将使数量倍增并提高效率。当使用 Github 的 Copilot 等工具,程序员可以比以前更快地生成代码。 


看待这一新趋势的一种方法是,公司将不需要雇用尽可能多的程序员来完成同样的工作。我们的观点是,公司从每个开发人员那里获得的价值将会增加。 


如果每种资源都能为您带来更多价值,您就可以负担得起更多资源,从而为自己带来更多价值。这就是增长,与我们过去几十年所看到的情况是一致的。


长期行业分析师帕特里克·穆尔黑德 (Patrick Moorhead) 并不相信黄的预测是准确的。


“30 多年来,我一直听说‘XYZ 将杀死编码’,但我们仍然没有足够的程序员,”Moorhead感叹道。他提到现在的低代码/无代码工具、IDE、Swift、Java、Python 甚至编译器这些年来都被认为会杀死编码,因此预测人工智能“暂时”不会结束编码。


人工智能将编码交到更多人手中,”穆尔黑德认为。“就像桌面出版并没有扼杀‘创造力’,它只是扩展了它。”


因此,不要绝望地认为你的学位毫无用处。即使是 "进取号" 也需要时不时地请来专门的程序员进行检查,而《星际迷航》中的生成式 AI 绝对比我们现有的能力更强。

黄仁勋在一件事上是正确的:“世界上的每个人现在都是程序员”,但这并不是因为人工智能。每个人都可以编程,因为没有编码,人工智能将被用作猜测我们试图构建什么的工具,我们仍然需要想象力来想出美丽的新做事方式,而这正是黄没有看到的。


人工智能不会取代程序员,虚拟宇宙也不是互联网的未来。


作者:校长

评论