近日OpenAI发布其最新的NLP模型-GPT-3(论文地址:https://arxiv.org/abs/2005.14165),并成功登顶了Github的趋势榜(https://github.com/openai/gpt-3,这个模型的出现再次证明了,在AI领域大力就是能够出奇迹,GPT3使用的数据集容量达到了45TB,参数个数1750亿,一个训练好的模型要 700G的硬盘空间来存储。

而且近日GPT-3模型再度爆红Github,主要还是有网友根据GPT-3模型,上线了一个能够自动生成代码的网站debuid(https://debuild.co/)

只要在这个网站注册以后,用户只要用英语描述你的需求,相关前端的代码就会被自动生成出来了,笔者这种在IT界摸爬滚打十几年的老程序,在试用了debuild网站之后,也惊得说不出话来。

初识Open AI

说起Open AI这个公司,在业界抱得大名,首先是因为其在去年DOTA2的顶级赛事TI8之后,与世界冠军OG战队举行了一场表演赛当时Open AI的强化学习模型,在英雄阵容限定17个,部分道具和功能禁用的条件下,以2:0完胜了人类冠军尤其是在第二场比赛中AI15分钟就解决战斗,展现的强大实力比较令人信服。这也使人类在对战游戏中的最后一道防线,MOBA的战略游戏也宣告失手。其开源的强化学习模型gym(https://github.com/openai/gym)也是业界比较均比较认可的游戏类模型包。翻开Open AI(https://www.openai.com/)的网址,你会发现他们除了做游戏AI,

还做这种自动玩魔方的机器人

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

自然语言处理发展历程

我们知道机器学习其实本质上是通过找到结果与多维输入之间的关系来进行预测的,而计算机其实是没有办法处理语言的,所以需要将自然语言转换为向量才能进行机器学习,由于在本轮AI行业全面爆发之初,行业还并未找到将单词转为向量的好办法,所以自然语言处理方面的程序一直比较慢,直到Word to Vector出现

word2vec出世:在这项技术发明之前,自然语言处理方面的应用基本还是依靠专家制订语法规则,然后交由计算机实现的方式来推进。而word2vec的核心理念是一个单词是通过其周围的单词来定义的,word2vec算法通过负例采样暨观察一个单词不会和哪些单词一起出现;跳字处理暨观察一个单词周围的单词都有哪些,来完成单词到向量的转化过程。将单词转化为向量也被称为词嵌入(word embeding)的过程,从而让自然语言处理变成一个能让计算机自动执行的过程。一个好的词嵌入模型要满足两个条件一是词义相近的单词在空间上的距离要近,比如七彩虹、铭宣、影驰等显卡品牌对应的向量应该在词空间中的距离比较相近。二是有对应关系相同的单词对应向量的减法结果相等,比如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会先革了程序员的命,把程序员的工作完全替代,也未为可知。

AI终将砸掉程序员的饭碗,动动手就能自动写代码的GPT-3来了相关推荐

  1. 这声音酥了!萌妹程序员鼓励师24小时在线陪你写代码,给我吹爆这个VSCode插件...

    开源最前线(ID:OpenSourceTop) 猿妹综合整理 项目地址:https://github.com/SaekiRaku/vscode-rainbow-fart 最近,Github上有一个名为 ...

  2. 鹅厂程序员最喜欢用什么编程语言?Leader写代码么?

    刚刚,<腾讯研发大数据报告>正式发布. 里面有一些可能你比较感兴趣的内容,比如: 鹅厂有多少程序员? 鹅厂一年输出多少代码? 鹅厂程序员最喜欢用什么编程语言? 鹅厂技术 Leader 写代 ...

  3. vscode卸载background插件_萌妹程序员鼓励师24小时在线陪你写代码,给我吹爆这个VSCode插件...

    开源最前线(ID:OpenSourceTop) 猿妹综合整理 项目地址:https://github.com/SaekiRaku/vscode-rainbow-fart 最近,Github上有一个名为 ...

  4. 虾米音乐App程序员知乎发文致歉:以后老老实实写代码

    11月20日下午消息,昨日晚间,某技术论坛出现了一篇讨论阿里旗下虾米音乐Mac版客户端中关于VIP会员代码的注释,上面的图片中出现了所谓的"穷逼VIP(活动送的那种)". 今日,虾 ...

  5. 程序员疯起来都用牛叫鸡叫写代码!

    不少人对于程序员的印象可能是这样的↓ 但今天给大家分享一门编程语言,它可以让写程序的人变成这样↓   这是一门叫 ArnoldC 的编程语言 没错,ArnoldC 里的 Arnold 指的是阿诺德·施 ...

  6. 程序员需要鼓励师吗?我觉得写代码的时候更需要这个!

    我前几天去按摩,推拿师开始吐槽 "小姑娘年纪轻轻的,怎么脖子这么硬哦,像块铁一样" 唉,相信很多人都和我一样 每天都是埋头工作 作为程序媛的我 每天都要坐在工位上不断写着代码改bu ...

  7. 程序员趣图,据说这是你写代码的样子……

    ⬇️"终于搞定了一个bug,我去!怎么又出来了几个bug" ⬇️"别着急,我正在找bug--" ⬇️计划变更,项目被紧急上线-- ⬇️项目上线发现了bug,紧急 ...

  8. 【全国卷】程序员的自主命题!一本正经聊技术、代码,以及。。。。。。

    IT168最近举办了一个"程序员高考",链接:http://bbs.chinaunix.net/thread-4262987-1-1.html 我给每个话题写了一篇作文,任意两篇字 ...

  9. 程序员饭碗不保了?GPT-3 最强应用发布,动动手指就自动写代码的神器来了!...

    作者 | 马超 责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 前不久OpenAI发布最新的NLP模型GPT-3,这两天霸榜GitHub趋势榜: 这个模型的出现证明在AI领域的&quo ...

最新文章

  1. [unreal4入门系列之五] 熟悉关卡编辑器界面
  2. u盘数据恢复的原理_日臻薄技 | 电脑回收站数据恢复的三个方法
  3. ServiceMix部署自定义开发程序(ActiveMQ和Kafka实现)
  4. 「offer来了」2种递进学习思维,24道计网题目,保姆级巩固你的计网知识体系
  5. cropper初始化_jQuery.cropper中文API详解
  6. java递归统计_Java类递归计数
  7. javaweb实训第四天下午——JDBC深入理解
  8. BZOJ3261: 最大异或和(可持久化trie树)
  9. Java 8 新日期时间 API ( 上 ) – 本地日期时间
  10. 何川L3管理课_模块4_成果管理
  11. 海康威视智能终端获取实时人脸体温识别记录二次开发java
  12. Foxmail中的文件夹丢失解决方法
  13. 我在豆瓣“请假借口研究所”,看见了社畜的人间真实
  14. 微信小程序秀才成语接龙趣味答题小游戏带流量主源码
  15. 一个完整的App应该具备哪些功能
  16. 主频和架构哪个对CPU性能的影响更重要
  17. 4G基带模块使用总结
  18. 齐次Markov链的遍历性判定
  19. RealSense 动态校准
  20. 我确实不知道如何使用计算机的英文,用英语介绍我的电脑

热门文章

  1. LENOVO ERAZER Z51 安装固态指南
  2. Springboot 设置上传文件大小
  3. 如何杜绝发生手游更新失败这种现象?
  4. matlab 三维 作图 坐标轴_Matlab编辑三维图坐标的方法
  5. 电脑中毒所有的exe打不开杀毒软件及win10再带病毒防护无法打开
  6. 【除夕特辑】爱心代码python(程序员的浪漫)
  7. linux c读文件读一行,Linux c 从文件当中读取任意一行的数据
  8. 贪吃的大嘴java_[蓝桥杯][算法提高VIP]贪吃的大嘴-题解(Java代码)
  9. C++单例对象是什么?(单例模式)
  10. 虚拟机容器嵌合体—— Kata Containers正式走出实验室