社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

继GPT-3又一力作,或将取代程序员?OpenAI发布机器学习软件Codex,会使用十余种编程语言,还能将英语翻译成代码

DeepTech深科技 • 3 年前 • 428 次点击  


继 GPT-3 诞生一年半左右,“后辈” Codex 正式面世。


当地时间 8 月 10 日,人工智能研究公司 OpenAI 发布了一款新型机器学习工具 Codex。它建立在 GPT-3 之上,并具有 GPT-3 的大部分自然语言理解能力,但它能把英语翻译成代码,旨在加快程序员的工作,并帮助业余爱好者学习编程。


(来源:OpenAI)


在周二的直播活动中,OpenAI 提供了 Codex 的多次演示。假如想让它生成 “Hello, World!”,只需输入 “Print Hello World ”,它就会生成对应编程语言的代码。


图 | 生成 “Hello, World!”Python 代码(来源:OpenAI)


Codex 也支持更复杂的描述和逻辑。如下图,生成的代码会让小船在被点击时,出现白色提示文本 “推进器点火!”,并在 0.25 秒内加速四倍。这意味着,Codex 在几秒钟内即可完成文本理解、并能生成代码。


来源:OpenAI)


在最理想的情况下,用户只需要输入一个或一些英文短语来告诉 Codex 需要什么,它就会自己编写代码。这意味着我们可用英语向任何调用了该 API 的软件发出命令。


不过它并非总是 “完美的”,在演示中,有时必须多次修改描述,才能让它正确领会人类的意图(这似乎对产品经理提出了更高的要求)。当然,从失败的案例中我们也能看到 AI 的局限性。


根据 OpenAI 的说法, Codex 最擅长 Python,但也 “精通” JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、Shell 等主流编程语言,能注释和重构代码,还会在编程时考虑上下文信息。


此前,经过大量训练的 GPT-3 能生成并解析书面文字,虽然基于其开发的一些工具也具备生成代码的能力,但 Codex 已接受十余种编程语言、以及数十亿行开源代码的训练,并改进了 GPT-3 的能力。


图 | Codex 执行数据处理和绘图任务(来源:OpenAI)


就在几年前,用自然语言写代码仿佛是天方夜谭。然而,Codex 似乎正在改写世界规则。例如,用户用英文输入 “创建一个侧面有菜单、顶部有标题的页面” 时,Codex 就可将其转换成可运行的代码。


Codex 还可使用自然语言构建简单网站和小游戏,并能在不同编程语言间转换。它还具能兼容其他软件,比如在 Microsoft Word 内创建一套语音交互界面。


Word 有自己的 API,因此 Codex 可根据用户口述命令创建相应的代码,然后再向 Word “发号施令”。比如我们可以把一首诗复制到 Word 文档中,然后通过 Codex 指示 Word 进行修改。在演示时,OpenAI 展示了删除缩进,改变字的颜色,对每一个行进行编号,最后计算特定单词的出现频率。


目前这项功能并未在 Word 中上线,OpenAI 只是将其作为一个概念验证展示出来,不过微软已经对它表示出了兴趣。


图 | Codex 在 Word 中的演示(来源:OpenAI)


该公司表示,除了控制 Word 之外,Codex 还能控制 Spotify 和 Google 日历等其他程序。


另据悉,Codex 的训练数据基本上来自于 GitHub 上所有公共代码和开源存储库,所以它了解所有代码编写的标准实践。它还能牢记做过的工作,会自动保留几千字节的编码上下文,这意味着它知道哪些是必须遵守的命名规定,以及用户输入中可能暗示的其他信息。


它还可以理解嵌入在代码语料库中的 “泛指”,例如当你告诉它 “让巨石从天上掉下来” 时,它不会询问什么是 “天上”,因为对于人类而言,这种描述意味着 “从屏幕上沿出现并落下一块石头”。Codex 也可以明白这一点,它不仅能让巨石从屏幕顶部落下,而且落下的速度还会逐渐变快,就像是受重力影响了似的。之所以这么“聪明”,是因为它会从上下文中猜测 “落下” 和 “天空” 的含义。


OpenAI 在官网表示,“Codex 是为 Copilot 提供动力的模型,后者是我们一个月前与 GitHub 合作构建并推出的协助编程工具。”


Copilot 是该公司在今年夏初推出的一款 GitHub 工具,它可为 Microsoft Visual Studio 等开发环境中的代码提供建议,而 Codex 可与 Copilot 相辅相成。


有望帮助解决程序员短缺问题


如果推进顺利,Codex 不仅能帮到程序员,还可成为普通用户和计算机之间的 “新界面”。OpenAI 联合创始人兼 CTO 格雷格・布罗克曼(Greg Brockman)表示,这是一种能 “消除阻碍,让更多人进入计算机编程领域的” 工具。它可帮助解决美国的程序员短缺问题,还能让用户和计算机对话,并以一种可靠方式执行用户要求的操作。


Codex 负责人沃伊切赫・扎伦巴(Wojciech Zaremba)则认为,这是编程历史演变的下一步。其告诉媒体,早期编程必须通过插入机器的物理穿孔卡来完成,然后人们发明了编程语言并开始改进它们。这些编程语言类似于英语,使用诸如 “打印” 或 “退出” 之类的词汇,因此越来越多人能够学会编程。而下一个方向是完全取消专门的编码语言,并用英语命令取而代之。


每一步都代表着编程语言变得越来越高级,扎伦巴认为 Codex 正在让计算机更接近人类,即让计算机用英语来代替机器代码。 


不过这并非是要让 AI 来接手编程,Codex 不会在一夜之间将非程序员变成专家程序员,但它肯定比任何编程语言都更直观。相反,Codex 本质上就像程序员的助手或副手,给其输入概念性想法,它就能敲出代码并能尝试创建软件。


未来,程序员可以将他们的一些工作交给人工智能,普通人也可以在未掌握如何编程的情况下进行简单的编程。


(来源:OpenAI)


该公司表示 ,Codex 将在初始阶段免费提供。该公司在博文中写道:“Codex 使计算机能够更好地理解人们的意图,这可以使每个人都能用计算机做更多事情。我们现在邀请企业和开发人员通过我们的 API 在 OpenAI Codex 之上进行构建。”


图 | Codex 性能(来源:OpenAI)


尽管 Codex 最初作为免费 API 发布,但由于该公司已从非盈利转为盈利,该项目未来将推出收费模式。不过此举可能会与现有的开源编程社区发生冲突,因为 Codex 建立在从开源代码存储库中抓取的数据之上,而这些数据本身就是开发者无偿分享的。


开源是为了给个人和公益组织带来利益,而不是给企业带来利益。该公司 CTO 布罗克曼也意识到了这一点,他表示一个新的编程趋势即将到来,这场辩论是必要的,也是绝对正确的。OpenAI 承诺倾听开源环境的争论,并尽可能适应其要求。同时,他强调程序员们使用 Codex 的收益肯定会超过这一群体的损失。


(来源:OpenAI)


也许是预料到可能的批评,OpenAI 在论文中表示,可通过 “谨慎的” 文档和用户界面设计、代码审查和内容控制,来减轻 Codex 模型带来的侵权或其他风险。


论文还表示,Codex 可能存在重大局限性,包括偏差和样本效率低下。该公司的研究人员指出,该工具可能会造成代码语法错误,或者调用了未定义或代码库范围之外的变量和属性。


更令人担忧的是,Codex 有时会建议表面上正确、但实际上并未执行预期任务的解决方案。例如,当要求创建加密密钥时,Codex 在 “很大一部分情况” 中选择 “明显不安全” 的配置参数,并建议使用已弃用的代码。


在之前的一份声明中,OpenAI 发言人表示,它正在 “采取多管齐下的方法” 来降低滥用 Codex 的风险,包括限制请求的频率、以防止可能是恶意的自动使用。


-End-


专业审核:Ren


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/118350
 
428 次点击