问耕 发自 雁栖湖
量子位 出品 | 公众号 QbitAI

GPT-2,一个逆天的AI。

今年2月,OpenAI首次对外公布了这个模型的存在。GPT-2写起文章来文思泉涌毫无违和感,无需针对性训练就能横扫各种特定领域的语言建模任务,还具备阅读理解、问答、生成文章摘要、翻译等等能力。

但不同寻常的是,这个模型并没有真的开源。OpenAI给的解释是,它太过强大,我们不敢放出完整模型……尽管因此被外界嘲笑,但GPT-2仍然封闭至今。

现在,有人单枪匹马,破解了OpenAI不欲人知的秘密。

而且,是一个大三的学生。

来自慕尼黑工业大学的Connor Leahy同学,在两个月的时间里,付出了200个小时的时间,花费了大约6000人民币,复现了GPT-2项目。

这件事在推特上引发了众多关注。称赞Awesome的有之,深入讨论的有之,甚至连OpenAI的几位资深研究员,都赶来沟通。

另外让人佩服的是,Connor Leahy同学关于机器学习的知识,都是利用空闲时间自学而成。他形容自己是一个充满好奇心的本科生。

“我只是把别人出去撩妹的时间,用来搞AI实验了而已。”

一气之下

GPT-2是OpenAI最棒的研究成果。

这个模型是GPT的“进化版”,最大区别就在于规模大小。GPT-2参数达到了15亿个,使用了包含800万个网页的数据集来训练,共有40GB。

使用语言建模作为训练信号,以无监督的方式在大型数据集上训练一个Transformer,然后在更小的监督数据集上微调这个模型,以帮助它解决特定任务。

GPT模型

OpenAI的研究人员表示,在各种特定领域数据集的语言建模测试中,GPT-2都取得了优异的分数。作为一个没有经过任何领域数据专门训练的模型,它的表现,比那些专为特定领域打造的模型还要好。

除了能用于语言建模,GPT-2在问答、阅读理解、摘要生成、翻译等等任务上,无需微调就能取得非常好的成绩。

GPT-2发布后,深度学习之父Hinton献出了他注册Twitter以来的第三次评论:“这应该能让硅谷的独角兽们生成更好的英语了。”

关于这个模型的强大表现,可以参考量子位之前的报道,这里不再赘述。

总之,就是一个字:强。

就是因为强,OpenAI做了一个艰难的决定:不把完整的模型放出来给大家。他们先是放出了不到十分之一规模、1.17亿个参数的小型版本,被吐槽几个月后又放出了3.45亿参数的中型版本。

毫无疑问,GPT-2激发了Connor Leahy同学的好奇心,同时,OpenAI私藏这个模型的决定,也让他非常生气。“信息应该是自由的。”

于是他决定自己动手复现出来。

他不只是因为一时冲动。对于为什么要复现GPT-2,Connor Leahy同学在自己的博客里有长长的思考,其中包括与其害怕AI编造的假新闻,不如积极行动起来,让大家意识到这个问题,勇敢面对然后想办法解决。

当然还有另一个原因,他觉得这么做:

很酷。

复现版GPT-2

“你怎么知道自己成功复现了15亿参数的GPT-2模型?”

这个问题,恐怕绝大多数人都想知道答案。

Connor Leahy同学给出的回应是:两个模型的大小和参数量相同,基于相似的数据源训练,使用了类似的计算资源,而且输出结果质量相仿。

他也给出了两者的一些明确不同,比方:

1、dropout和learning rate官方没有披露,所以设置可能不一样。

2、模型训练使用了Adafactor而不是Adam。Connor Leahy同学不知道怎么把15亿参数+Adam塞进TPU,即便16bit精度也不行。

哎?等下……

一个普普通通的大三学生,怎么能用到TPU搞这种研究?

感谢Google。

Google有一个Tensorflow Research Cloud(TFRC)计划。这个计划面向研究人员,提供1000个Cloud TPU组成的集群,完全免费。这个计划用于支持多种需要大量计算并且无法通过其他途径实现的研究项目。

当时Connor Leahy同学在研究GPT-2复现的时候,遇到了计算资源的瓶颈,然后随口跟TFRC团队提了一嘴,结果却得到了Google慷慨的支持。

实际上,在推进这个项目之前,Connor Leahy同学从来没有使用过TPU。所以,他在博客中热情的对Google团队表达了感谢。

不过,他还是在云端花费了大约600-800欧元(人民币6000元左右),用于创建数据集、测试代码和运行实验。

他用的笔记本是一台旧的ThinkPad。

Connor Leahy同学还对降噪耳机表达了感谢:让我保持宁静。

目前,复现版的GPT-2已经放在GitHub上开源,代码可以在GPU、TPU以及CPU上跑(不建议)。现在作者放出了两个版本,一个是1.17亿参数的小型版本,一个是称为PrettyBig的版本,比3.45亿参数的官方中型版稍大一点,也是目前公开的最大GPT-2模型。

至于15亿参数的完整版,作者计划7月1日发布。

现阶段,Connor Leahy同学邀请大家下载试用,跟他一起讨论复现版GPT-2到底还有什改进空间。在关于这件的博客文章里,他说:我100%能接受大家指出的任何错误,如果你发现问题请与我联系。

关于作者和传送门

Connor Leahy同学2017年考入德国慕尼黑工业大学,目前是一名大三的计算机本科学生。在LinkedIn上,他说自己对人工智能充满热情。

从2018年9月迄今,他还在马克思普朗克研究所实习,也在用来自Google的TPU,研究正经的AI课题。

最后,放一下传送门。

Connor Leahy同学充满思考的博客:

https://medium.com/@NPCollapse/gpt2-counting-consciousness-and-the-curious-hacker-323c6639a3a8

与他在GitHub相见吧:

https://github.com/ConnorJL/GPT2

AI内参|关注行业发展

AI社群|与优秀的人交流

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !

大三学生独自破解逆天AI模型:我只是把撩妹的时间,都用来研究机器学习了...相关推荐

  1. 大三学生简历_不要再问那些没有的高级开发人员了。 开始指导大三学生。

    大三学生简历 by Ryan Bigg 通过瑞安·比格(Ryan Bigg) 不要再问那些没有的高级开发人员了. 开始指导大三学生. (Stop asking senior developers wh ...

  2. “偷懒”上热搜!南京大三学生自制宿舍关灯神器火了,网友:希望量产

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 宿舍关灯这件事情,最近比较火. 起因是一位南京信息工程大学大三学生,花了7.8天时间,自制了一款宿舍关灯神器. 效果是这样的. 点击一下手机 ...

  3. ONNX系列三 --- 使用ONNX使PyTorch AI模型可移植

    目录 PyTorch简介 导入转换器 快速浏览模型 将PyTorch模型转换为ONNX 摘要和后续步骤 参考文献 下载源547.1 KB 系列文章列表如下: ONNX系列一 --- 带有ONNX的便携 ...

  4. 大三学生的2018年总结

    一位大三学生的2018年总结  https://blog.csdn.net/sakurakider/article/details/85487361 大三寒假安卓实习面经总结篇https://blog ...

  5. 准大三学生暑期社会实践真实感悟

    准大三学生暑期社会实践真实感悟 一.公司及人员介绍 我是在杭州始途科技有限公司实践的,这是一个刚起步不久的创业研发型小公司,是由原来在吉利公司工作的老员工自主创业的公司,主要研发智能停车单元,就是PS ...

  6. 记录一下一个大专学历大三学生出来找u3d实习工作,这几天的面试经历

    记录一下一个大专学历大三学生出来找u3d实习工作,这几天的面试经历 第一家 第二家 第三家 第四家 第五家 目前是大三出来找实习工作的,分享一下自己最近一星期找工作的经历 我是一名专科生,大学学的是软 ...

  7. 电子学生计算机怎么玩游戏,大三学生自曝电脑耗时:2年半340402分钟

    浙江工商大学大三学生小陈给记者发来电子邮件,说:"发一篇我同学的文章给你们看看,这是他寒假里写的第一篇日志,发在网上,反应很热烈.看得我汗都要冒 出来了!"记者报道:小陈说的这个同 ...

  8. 【特写】后生可畏,大三学生自主研发毫米级五自由度机械手臂

    记者:王艺 CSDN人工智能 记者/编辑 投稿或寻求合作请联系wangyi@csdn.net 3月25日,在京东X机器人大赛决赛现场,记者见到了一组熟悉的身影.当时,入围决赛的12支队伍正紧张角逐. ...

  9. 门户通专访“超级大富翁”作者大三学生郑君毅

         本次采访的嘉宾是"超级大富翁"作者大三学生郑君毅.         采访人:一滴水 被采访人: 郑君毅 "超级大富翁"作者郑君毅 一滴水: 不知道各位 ...

最新文章

  1. Linux 系统挂载数据盘
  2. 基于YOLOV5的数据集标注&训练,Windows/Linux/Jetson Nano多平台部署全流程
  3. Python 字典初始化dict()和{}
  4. flink1.12在ubuntu下面的编译记录(转载+自己整理)
  5. yum配置中driver-class-name: com.mysql.jdbc.Driver报错
  6. 前端学习(1396):项目包含的知识点cookie和session
  7. 软件项目管理第二课—项目投标准备工作及投标函
  8. 手把手教你用Matplotlib进行数据可视化
  9. Mac开发环境搭建_zsh替换bash_2
  10. !!统计字符(处理字符串)(getline函数使用)
  11. 使用 URLDecoder 和 URLEncoder 对中文字符进行编码和解码
  12. Android开发中验证码的生成
  13. LintCode 最长公共子串
  14. SAP VK11 报错“条件不能创建在分销渠道 10 中”
  15. 个人sublime定制
  16. 读书笔记:我们为什么上班
  17. 从云到「链」,京东云成为中国第四朵云背后
  18. 自制适合城市家庭的鱼菜共生系统
  19. (与运算)、|(或运算)、^(异或运算)等运算符的解释与运用
  20. GBase 8s 导入导出工具 unload/load

热门文章

  1. 写了 300000 行基础设施代码,我学到了这五条经验
  2. Google AI 的焦虑:拆分搜索和人工智能部门
  3. 机器学习正面临着可重现性危机!
  4. 6 月 4 日!苹果 WWDC 2018 或重点推出 iOS 12 系统
  5. PHP 霸主地位被动摇,JIT 是穷途末路后的绝地反击?
  6. 分布式事务之TCC服务设计和实现注意事项!
  7. mysql常用加密方法_MYSQL 加密的 3 类方法
  8. python面向对象类的成员_Python面向对象中类的成员
  9. matlab动力学仿真_机械系统动力学MATLAB仿真(上)
  10. 你不可不知道的React生命周期