什么Openai和GitHub的“AI对程序员”为软件行业的意思

8分钟阅读

OpenAI再次成为头条新闻,这次是与GitHub联合开发的人工智能驱动编程工具Copilot。建立在…之上GPT-3,Openai的着名语言模型,Copilot是一个自动完成工具,提供相关(有时冗长)的建议,按照写入代码。

Copilot目前可以作为Visual Studio Code的扩展选择申请人,Visual Studio Code是微软(GitHub的母公司)的旗舰编程工具。

虽然人工智能驱动的代码生成器仍在开发中,但它提供了一些有趣的提示大型语言模型的业务以及软件行业的未来发展方向。

不是GPT-3的预期用途

官方网站Copilot将其描述为“AI对程序员”,该“编辑器内部的全线或整个函数”。有时,只是提供函数签名或描述足以生成整个代码块。

Copilot的背后是一个名为Codex的深度学习模型,它基本上是GPT-3的一个特殊版本,用于编程任务。该工具的工作方式非常类似于GPT-3:它将提示符作为输入,并生成一个字节序列作为输出。在这里,提示符(或上下文)是您正在处理的源代码文件,输出是您收到的代码建议。

所有这些都很有趣的是意外的转弯人工智能产品管理可以采取。根据CNBC:“......当Openai是第一次训练[GPT-3]后,启动无意教授如何帮助代码,[Openai CTO Greg] Brockman表示。它的意思是一个通用语言模型[强调矿井]可以例如生成文章,修复不正确的语法并从一种语言转换为另一个语言。“

通用语言应用程序已经被证明是非常难以指甲.将自然语言处理应用于广泛环境时,存在许多复杂的复杂性。人类倾向于在日常语言中使用大量抽象和快捷方式。单词,短语和句子的含义可以根据共享的感官体验,工作环境,先验知识等而变化。这些细微差别很难掌握已经训练的深度学习模型,以掌握一个非常大的数据集的统计规则予取予求。

相反,当语言模型被提供了正确的上下文,并且它们的应用程序被缩小到一个或几个相关任务时,它们的性能会很好。例如,深度学习驱动的聊天机器人经过大量客户聊天的训练或微调,可以作为客户服务代理的一个不错的补充,承担与客户的大量简单交互,将复杂的请求留给人工操作人员。针对不同的语言任务,已有大量的专用深度学习模型。

因此,第一个用于GPT-3的应用程序不是通用语言任务也就不足为奇了。

使用语言模型进行编码

通过Beta Web应用程序编程接口提供GPT-3之后,许多用户发布了使用语言模型来生成源代码的示例。这些实验显示了GPT-3的未探明一侧,以及大型语言模型的潜在用例。

有趣的是,微软的前两个应用独家许可证持有人OpenAI的语言模型,建立在GPT-3之上,与计算机编程有关。今年5月,微软宣布了一项GPT-3-powered工具为Power Apps生成查询。现在,它正和副驾驶一起试水。

神经网络非常擅长从大型训练数据集找到和建议模式。在这种光中,使用GPT-3或FineTuned版本来帮助程序员在GitHub中的公开可用源代码的非常大的语料库中找到解决方案。

Codepilot的主页显示,Codex接受了“从公开资源(包括GitHub上公共存储库中的代码)中选择英语语言和源代码”的培训。

如果您提供正确的上下文,它将能够提出一块类似于其他程序员的代码块来解决类似的问题。并给予它更详细的评论和描述将改善您获得代号的合理输出的机会。

生成代码vs理解软件

人类思维的思想
图片来源:Depositphotos

根据该网站,“GitHub Copilot尝试了理解(强调mine)你的意图并生成最好的代码,但它所建议的代码可能并不总是有效,甚至没有意义。”

“理解”这个词可能用错了.GPT-3等语言模型不了解源代码的目的和结构。他们不了解计划的目的。他们不能提出新的想法,将问题分解为较小的组件,并以人类软件工程师所做的方式设计和建立应用程序。

按照人类的标准,编程是一项相对困难的任务(好吧,我在90年代学习时曾经是这样)。它需要仔细的思考、逻辑和架构设计来解决特定的问题。每种语言都有自己的范例和编程模式。开发人员必须学会使用不同的应用程序编程接口,并以一种有效的方式将它们组合在一起。简而言之,这是一种很大程度上依赖的技能符号操作这一领域并非深度学习算法的强项。

Copilot的创造者承认,他们的人工智能系统绝不是一个完美的编程伴侣(我甚至不认为“结对编程,是最恰当的说法)。他们警告说:“GitHub Copilot实际上并没有测试它建议的代码,因此代码甚至可能无法编译或运行。”

GitHub还警告,Copilot可能会建议“旧或弃用的库和语言”,这可能导致安全问题。这使得开发人员非常重要,以彻底查看AI生成的代码。

所以,我们还没有到期望人工智能系统自动编程的阶段。但正如Copilot的创造者所言,将它们与知道它们在做什么的人类配对肯定能提高生产率。

自从Copilot释放以来,开发人员已经发布了各种各样的例子,从而从有趣地真正有用。

OthersideAI的联合创始人兼首席执行官马特•舒默表示:“如果你对要求Copilot为你编写代码的内容有所了解,而且你有足够的经验来清理代码并修复其中引入的错误,那么这将非常有用,并节省你的时间。智能

但是,Shumer还警告了盲目信任Copilot生成的代码的威胁。

舒默说:“例如,它为我节省了编写SQL代码的时间,但它将数据库密码直接放在代码中。”“如果我没有经验,我可能会接受这一点,并把它留在代码中,这将产生安全问题。但因为我知道如何修改代码,所以我可以用副驾驶给我的代码作为起点。”

Copilot的商业模式

在我看来,微软开始将编程作为GPT-3的第一个应用程序还有另一个原因。这是一个巨大的削减成本和盈利的机会。

根据Github,“如果技术预览成功,我们的计划是在未来建造GitHub Copilot的商业版本。”

仍然没有有关官方副驾国费用的信息。但是,为编程天赋的每小时工资达到30美元左右,最高可达150美元。即使节省了几个小时的编程时间或给发展速度提供小的提升可能足以支付副驾驶的成本。因此,如果许多开发人员和软件开发公司将在作为商业产品释放后,许多开发人员和软件开发公司会报名参加COPILOT,并不令人惊讶。

“如果它让我回到我的时间的10%,我会说这是值得的。在原因内,当然,“沃尔斯说。

语言模型如GPT-3要求广泛的资源来训练和运行.它们还需要定期更新和微调,这就增加了托管机器学习模型的公司的开支。因此,高成本领域,如软件开发,将是一个很好的开始,以减少时间,以收回在技术上的投资。

“[Copilot]帮助我使用以前从未使用过的库和框架的能力是非常有价值的,”Shumer说。“例如,在我的一个演示中,我让它用Streamlit生成一个仪表盘,它一次就完美地完成了。然后我可以去修改仪表板,而不需要阅读任何文档。光是这一点就足够让我付得起了。”

自动编码可能会成为多亿美元的行业。而微软将自己定位在这方面发挥着主导作用新生部门这要归功于OpenAI的市场影响力(通过Visual Studio、Azure和GitHub)、雄厚的财力以及对OpenAI技术和人才的独家访问。

自动编码的未来

开发人员必须小心,不要将Copilot和其他人工智能驱动的代码生成器误认为是你接受其所有建议的编程伙伴。作为一名多次在紧迫期限下工作的程序员,我知道开发人员在时间紧迫时往往会抄近路(我已经这么做过好几次了)。如果你有一个工具可以一下子提供一大块工作代码,那么在时间紧迫的情况下,你很可能只是浏览一下。

另一方面,对手可能会发现如何在深度学习代码生成器中跟踪易受攻击的编码模式并找到针对AI生成的软件的新攻击向量

新的编码工具会产生新的习惯(其中很多都是消极且不安全的)。我们必须仔细探索这个新领域,并注意让人工智能代理作为我们新的编码伙伴可能带来的权衡。

1条评论

发表评论

这个网站使用Akismet来减少垃圾邮件。了解如何处理评论数据