Python实战社群
Java实战社群
长按识别下方二维码,按需求添加
扫码关注添加客服
进Python社群▲
扫码关注添加客服
进Java社群▲
2020年注定是不平凡的一年。除了新冠疫情之外,今年还可能是“天网元年”。
因为在这一年诞生了“比特币之后人类最重大发明”、显卡毁灭者——史上最全能的AI模型。
现在你只要对它发号施令:
请帮助设计一个和XX网站一样的网页来介绍我的产品。
输入完仅仅几秒,它立刻就能输出一个美观的网页设计。
遥想6月初,这个模型刚刚发布时,外界认为它“不过就是炫富而已”,和前代相比没有太大的技术更新。
然而,内测试用后,风评立马180度大转弯,体验过的程序员们纷纷表示:“真香”。
事实证明,“微软的钞票+英伟达的核弹”的确是可以为所欲为的。
是的,这就是OpenAI的GPT-3,原来只能用来生成文字,一周之内被脑洞大开的程序员们开发出了30多种功能:数据库工程师、会计、运维、智能客服……俨然一副取代人类的架势。
现在,它已经成为一名“真·全栈工程师”。
在后端,AI模型GPT-3成功“套娃”,能自己编写AI模型。只要给GPT-3提出具体的需求:
构建一个图像分类模型,把图片分成5类,训练数据集共有2.5万张图片,输入图片尺寸为500×500。
很快GPT-3就输出了模型的完整代码:
GPT-3甚至连代码的注释都写好了,生怕你看不懂。
作为一个会写AI模型的AI,懂一点数据库总是必不可少的,SQL语言自然不在话下。
现在用SQL实现数据的统计查找,基本就是一句话的事情,提出需求,GPT-3几秒内快速给出SQL查询代码。
既然是全栈工程师,只会后端代码显然是不够的。
前面,我们已经见识过GPT-3设计网页的能力。HTML前端工程师的事,GPT-3也会做。
GPT-3能根据描述生成网页CSS代码,稍加改动就能直接用在网页设计里。
还有运维的活儿,GPT-3也懂一点。
另外,程序员不会的事情,GPT-3也能做。
在没有任何财务知识的情况下,告诉它你的每一笔开销,GPT-3自动生成符合规范的财务报表。有了GPT-3,就能帮老板省下请会计的钱。
工作娱乐两不误。学习了一段棋谱后,GPT-3又掌握了国际象棋技能,不知道何时能与AlphaGo对战。
还有人对GPT-3进行了图灵测试,结果看起来真的很像人在回答。试用者说:“如果在十年前用同样的问题做测试,我一定会认为答题者是人类。”
看到这里,你是不是有一丝丝恐惧?不会天网真的要上线了吧?
深度学习之父、图灵奖得主Hinton看得更远,他认为GPT-3的未来不仅仅是取代人类,而是更遥远的星辰大海,也许用它就能破解宇宙终极秘密。
从GPT-3惊人的性能可以推测:生命、宇宙和万物的答案,只是4.398万亿个参数而已。
这“都怪”OpenAI最近内测了GPT-3的API,让程序员得以脑洞大开,让普通人感到“害怕”。
GPT-3能力超强,一方面是因为在激烈竞争中各家NLP技术突飞猛进,更主要原因还是OpenAI够暴力、够多金。
要知道,去年OpenAI发布的GPT-2(GPT-3的前辈)只有15亿参数,而今年GPT-3参数量已经暴增到1750亿个,是前者的100多倍!
参数的暴增无疑会给模型性能带来明显的改进,但问题是多出来的计算资源从哪来。
成立不到5年的OpenAI能让GPT-3在一年内实现飞跃,其中当然少不了金主爸爸的支持。
去年,微软10亿美元投资OpenAI,让原本拮据的OpenAI终于可以放开手脚开发更为强大的AI模型。
GPT-3采用了两阶段的思路。
首先,用海量语料库对GPT-3进行无监督预训练,数据集大约含有3000亿个token,训练目标是让模型去预测下一个单词。
如果模型预测结果是错误的,那么就计算误差并更新模型,以便在下一次做出更好的预测。这一过程要重复数百万次,直到模型能生成正确的句子。
这一步是最最烧钱的。谷歌开发的BERT,“只有”3亿参数,英伟达用1400多个V100 GPU组成的计算集群算了近1小时才完成训练。
何况数据集规模超过500GB的GPT-3预训练模型,还有1750亿参数,训练难度就可想而知了。
为了训练GPT-3,微软花钱攒了台超级计算机。
今年5月,微软官方公布推出一台全球前五的超级计算机,专门用于OpenAI的模型训练。它总共有28.5万个CPU核心、1万个英伟达V100 GPU。(黄仁勋看到这个配置,应该露出了笑容。)
有了这台超算,OpenAI就能实现“更大胆的想法”。
有专业人士推测过,训练一个GPT-3模型需要“355个GPU年”(一块GPU运行355年的运算量),光是训练费用就高达460万美元。
在微软和OpenAI的努(chao)力(piao)下,GPT-3终于被训练出来。
以上只是第一阶段,预训练模型还不能直接用于具体任务,接下来只要对刚刚的模型进行微调,就能处理各种负责的NLP任务。
而这一部分的运算量要小得多,普通用户也可以承受。于是我们就看到了GPT-3被用来写代码、做设计。
GPT-3成为网红,当然也少不了网友的激烈讨论。
有reddit网友认为,GPT-3的出现证明了通用人工智能不会太遥远。GPT-3已经做了可以做的一切,我们甚至不需要做得更好,只要再等几年,等算力增强,把数据集再扩大10倍。
也有人觉得,我们对GPT-3是否过于了乐观,说它是“天网”太过夸张。GPT-3本质上还是个NLP模型,和GPT-2具有相同的结构,唯一的区别只是规模更大。
和其他神经网络模型一样,GPT-3还是个黑箱子,我们不能知道它为什么做出这样的推理,而且它只有文本预测,没有逻辑推理、没有思想,在训练集之外的概括能力很差。
比如之前提到的写代码,可能更多的原因是技术论坛里有相关内容,被GPT-3拷贝了下来。
面对网友的赞美,OpenAI的CEO倒是非常谨慎,他认为现在关于GPT-3的炒作实在太多了。GPT-3仍然存在严重缺陷,有时候会犯一些低级的错误,还有很多需要改进的地方。
因为已经有人用来自互联网的内容训练出了一些带有偏见的结果,在国外的氛围中,一旦负面影响扩大化,对OpenAI将是个巨大的打击,恐怕这也是OpenAI不敢扩大测试范围的原因之一。
本来,OpenAI因为觉得GPT-3“实在太危险”选择不开源。现在开放API应该也是处于试水状态,出现任何问题都能快速关闭API,防止问题蔓延。
正因如此GPT-3 API现在相当稀缺的资源,申请到的难度不下于北京车牌摇号,只能试试运气了。
如果你也对GPT-3感兴趣,不妨去OpenAI官网申请试用。填写下面这样一份表格,静静等待官方通知吧。
如果申请成功,你将获得一串API的试用密钥,只需要会Python 3,并安装yarn,按照GPT-3沙箱项目的指导,就能在Web端体验它的种种“钞能力”了。
这是一段将自然语言转化为LaTeX格式的代码:
# Construct GPT object and show some examples
gpt = GPT(engine="davinci",
temperature=0.5,
max_tokens=100)
gpt.add_example(Example('Two plus two equals four', '2 + 2 = 4'))
gpt.add_example(Example('The integral from zero to infinity', '\\int_0^{\\infty}'))
gpt.add_example(Example('The gradient of x squared plus two times x with respect to x', '\\nabla_x x^2 + 2x'))
gpt.add_example(Example('The log of two times x', '\\log{2x}'))
gpt.add_example(Example('x squared plus y squared plus equals z squared', 'x^2 + y^2 = z^2'))
# Define UI configuration
config = UIConfig(description="Text to equation",
button_text="Translate",
placeholder="x squared plus 2 times x")
demo_web_app(gpt, config)
现在,你是个成熟个AI,应该能自动写出“牛顿-莱布尼兹公式”了。
怎么样,你想去试试吗?
参考链接:
https://blogs.microsoft.com/ai/openai-azure-supercomputer/
https://jalammar.github.io/how-gpt3-works-visualizations-animations/
https://www.reddit.com/r/MachineLearning/comments/hymqof/d_gpt3_and_a_typology_of_hype_by_delip_rao/
https://www.datanami.com/2020/07/21/openais-gpt-3-language-generator-is-impressive-but-dont-hold-your-breath-for-skynet/
GPT-3应用案例:
https://gpt3examples.com/
GPT-3沙箱:
https://github.com/shreyashankar/gpt3-sandbox
OpenAI API开发者工具包:
https://www.notion.so/API-Developer-Toolkit-49595ed6ffcd413e93ebff10d7e70fe7
— 完 —
本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。
程序员专栏 扫码关注填加客服 长按识别下方二维码进群
近期精彩内容推荐:
你的代码将永久封存于北极地底1000年!
中国程序员VS美国程序员,太形象了...
30个极简Python代码,拿走即用
同事问我MySQL怎么递归查询,我懵逼了...
在看点这里好文分享给更多人↓↓