热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GPT-3发布,动动手指就能自动生成代码的神器来了!

近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。

作者 | 马超

责编 | 伍杏玲

出品 | CSDN(ID:CSDNnews) 

前不久OpenAI发布最新的NLP模型GPT-3,这两天霸榜GitHub趋势榜:

这个模型的出现证明在AI领域的“大力出奇迹”,GPT3使用的数据集容量达到45TB,参数个数1750亿,一个训练好的模型就要 700G的硬盘空间来存储。

近日有开发者根据GPT-3模型上线了一个能够自动生成代码的网站debuid(https://debuild.co/)。在这网站注册后,用户只要用英语描述需求,前端代码会自动生成。

就连笔者这种在IT界摸爬滚打十几年的老程序员,在试用debuild网站后,吃惊得说不出话来。不过可能是突然压力增大,目前该网站已关闭新增注册的功能。

初识Open AI

大名鼎鼎的Open AI在去年DOTA2的顶级赛事TI8后,与世界冠军OG战队举行了一场表演赛,当时Open AI的强化学习模型,在英雄阵容限定17个,部分道具和功能禁用的条件下,以2:0完胜了人类冠军,尤其是在第二场比赛中AI在15分钟就解决了战斗,展现的强大实力令人信服。

这使人类在对战游戏中的最后一道防线,MOBA的战略游戏也宣告失手。其开源的强化学习模型gym(https://github.com/openai/gym)是业界较认可的游戏类模型包。翻开Open AI(https://www.openai.com/)的网址,你会发现他们除了做游戏AI,还做这种自动玩魔方的机器人:

虽然NLP好像不是Open AI最为关注的领域,不过他们在自然语言处理方面成果一直引人关注。在去年底《权利的游戏》全面烂尾后,有人使用模型GPT-2 来重写剧本的结局。网友普遍反应AI改写的新结局比电视剧的版本要好。

自然语言处理发展历程

机器学习的本质是通过找到结果与多维输入之间的关系来进行预测,计算机是没有办法处理语言的,所以需要将自然语言转换为向量才能进行机器学习。

在本轮AI行业全面爆发之初,行业还并未找到将单词转为向量的好办法,所以自然语言处理方面的程序一直比较慢,直到Word to Vector出现。

word2vec出世:在这项技术发明之前,自然语言处理方面的应用基本是依靠专家制订语法规则,交由计算机实现的方式来推进。

word2vec的核心理念是一个单词是通过其周围的单词来定义,word2vec算法通过负例采样暨观察一个单词不会和哪些单词一起出现;跳字处理暨观察一个单词周围的单词都有哪些,来完成单词到向量的转化过程。将单词转化为向量也被称为词嵌入的过程,从而让自然语言处理变成一个能让计算机自动执行的过程。

一个好的词嵌入模型要满足两个条件一是词义相近的单词在空间上的距离要近,比如七彩虹、铭宣、影驰等显卡品牌对应的向量应该在词空间中的距离比较相近。二是有对应关系相同的单词对应向量的减法结果相等,比如v(中国)-v(北京)=v(英国)-v(伦敦)。

word2vec加速自然语言处理的发展速度,GPT、BERT、XLNET等模型相继被提出,虽然他们的流派有自编码和自回归的不同,但是对传承词嵌入思想的继承还是比较一致的,这些模型都是在不借助语法专家的知识库的情况下,直接利用词与词之间的关系来进行模型训练。

自回归模型:GPT系列都是典型的自回归架构的自然语言处理模型。通俗地讲,自回归使用自身做回归变量的过程,一般说来记为以下形式:

自回归模型假定t时刻的序列(Xt)可以利用前期若干时刻的随机变量的线性组合来描述。   

什么是自然语言处理中的因式分解?先复习一下贝叶斯公式,它描述随机事件 A 和 B 的条件概率,其中P(A|B)是在 B 发生的情况下 A 发生的可能性:

将I、love、you三个单词分别对应向量:X_1、X_2、X_3,如果要建模“I love you”这句话,就要通过贝叶斯公式解出,在自然数据这个序列出现的联合概率分布 P(X_1,X_2,X_3)。

由于词语之间的相互联系,除了统计P(X_1)、P(X_2)、P(X_3)三个概率是不够的。因为X_1还依赖其它变量存在条件分布 P(X_2|X_1) 和 P(X_3|X_1)。对于X_2和X_3也是一样,我们可以将这三个模型组合起来获得期望联合分布 P(X_1,X_2,X_3)=P(X_1)P(X_2|X_1)P(X_3|X_1,X_2)

一般来说,变量的每个可能的排序都存在自回归因式分解。在有N个变量的问题中,就存在 N! 个因式分解。在上面提到的三个变量的例子中,我们可以列举出六个自回归因式分解,当然在AR模型中都考虑了顺序信息,不会计算所有的因式分解:

自回归的局限:自回归模型其实就是通过贝叶斯因式分解的方式来计算输入序列的概率密度。那么其劣势也就比较明显了,由于输入序列有方向性,所以自回归只能处理正向或者反向单向信息。

GPT-3的应对之道

GPT-3的作者在论文开头就指出,通过对大量文本进行预训练,针对特定任务进行微调,模型的性能可以在许多 NLP 任务以及基准测试中获得显著提升。

如图所示,X轴代码模型的参数数量级而纵轴代表准确率,模型规模越大,准确率也会随之升高,尤其是在参数规模达到13亿以后,准确率提升的速度还会更快。简单讲,GPT-3的决胜之道在于其模型的训练集特别大,参数茫茫多。

GPT-3与 GPT-2使用了相同的模型和架构,包括改进的初始设置、预归一化和 reversible tokenization。

GPT-3最主要提升点在于其在transformer的各层上都使用了交替密集和局部带状稀疏的注意力模式。

我们知道理解自然语言需要注意最相关的信息。例如在阅读过程中,人们倾向于把注意力集中在最相关的部分来寻找问题的答案。然而如果不相关的片段对阅读理解产生负面影响,就会阻碍理解的过程,理解过程需要有效的注意力。

这一原理同样适用于自然语言的计算系统。注意力一直是自然语言理解和自然语言生成模型的重要组成部分。因此交替密集和局部带状稀疏的注意力模式只关注k个贡献最大的状态。通过显式选择,只关注少数几个元素,与传统的注意方法相比,对于与查询不高度相关的值将被归0。

代码自动生成网站Debuild可能并不在Open AI的计划当中,如果继续向前推进使得产品经理的需求描述,直接变成可执行的全套代码,其颠覆性是我们根本无法想象的

目前已经有消息称Open AI已经开始关注GPT-3有可能引发的道德风险了,不过笔者认为大的趋势不可阻挡,也许AI会先“革了”程序员的饭碗,把程序员的工作完全替代?或许。

对这个代码自动生成网站,你有什么看法?欢迎来留言讨论哦。

更多精彩推荐
☞太 6 了!区块链包包、疫情防控大脑……程序员这样玩转区块链!
☞台积电断供华为背后,中国“芯”的坎坷之路
☞从病毒到“基础软件污染”,Linux 真的安全吗?
☞认知智能,AI的下一个十年 | AI Procon 2020
☞区块链加持《赛车经理》:ForceForFast 搭建由用户掌控的赛车新世界
☞“自由主义教皇” 、Linux 之父的封神之路
点分享点点赞点在看


推荐阅读
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 字节跳动夏季招聘面试经验分享
    本文详细记录了字节跳动夏季招聘的面试经历,涵盖了一、二、三轮面试的技术问题及项目讨论,旨在为准备类似面试的求职者提供参考。 ... [详细]
  • C语言入门精选教程与书籍推荐
    本文精选了几本适合不同水平学习者的C语言书籍,从基础入门到进阶提高,帮助读者全面掌握C语言的核心知识和技术。 ... [详细]
  • 智能全栈云风暴:AI引领的企业转型之路
    当提及AI,人们脑海中常浮现的是天才少年独自编写算法,瞬间点亮机器人的双眼。然而,真正的AI革命正由大型企业和机构推动,它们利用全栈全场景AI技术,实现数字化与智能化的深度转型。 ... [详细]
  • 随着 ChatGPT 在全球范围内的火热,众多开发者希望利用这一先进技术。然而,由于 OpenAI 官方网站注册流程复杂及支付条件限制,使得国内开发者难以便捷地接入这项技术。为了解决这个问题,APISpace 提供了一种简便的方式,让国内开发者可以轻松体验并使用 ChatGPT。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 在使用高德地图内置导航功能时遇到AMapNavi组件出现空指针异常,经过多次排查发现问题是由于so库的兼容性引起的。本文将详细介绍如何通过调整项目配置来解决这一问题。 ... [详细]
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • EasyMock实战指南
    本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • 多智能体深度强化学习中的分布式奖励估计
    本文探讨了在多智能体系统中应用分布式奖励估计技术,以解决由于环境和代理互动引起的奖励不确定性问题。通过设计多动作分支奖励估计和策略加权奖励聚合方法,本研究旨在提高多智能体强化学习(MARL)的有效性和稳定性。 ... [详细]
  • 本文由蕤内撰写,明亮公司出品,探讨了日本零售业在数字化转型中的现状与挑战。文章基于与两位在日本的投资人的深入对话,分析了日本零售业为何仍然依赖传统的POS机系统,以及中日两国在品牌建设和数字化营销上的差异。 ... [详细]
  • 探索Windows 10平台上一系列免费且对硬件要求不高的单机游戏。尽管Windows 10以其先进的DX12技术著称,但游戏的兼容性和稳定性同样重要。本文将详细介绍几款适合低配置电脑的优秀游戏。 ... [详细]
author-avatar
空谷幽兰关小羽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有