号称让程序员「失业」的GPT-3又要来刷面试题了?这种题小编也会!

新智元报道
新智元报道
来源:neowin
编辑:好困
【新智元导读】没想到吧,在席卷了无数头条之后,GPT-3又来了。这次为我们带来的表演竟然是做程序员的面试题,看来又有一波程序员要被「失业」了。
小编这两天看到一篇报道:「AI暂时还不会抢走程序员的工作,但是正在了」。
显然,这篇论文十分有吸引力,志同道合的朋友很快便做了十分有趣的评议。
对于这种看起来就很「标题党」的文章,还是很有必要点进来批判性地学习一下。
看了几百字的众所周知的背景介绍之后,发现原来是关于一篇论文的介绍:「用APPS衡量编码挑战能力」。
这满屏的UC Berkeley作为学渣看着还是挺震撼的。
报道中提到,论文将这些语言模型放在一个正在接受编程面试的人的立场上,从而测试模型在编写代码方面的能力。
难道这是要让AI刷题?AI会不会不知道,反正小编会import numpy as npy 🙈
言归正传,其实回答上面这个问题很简单,论文在开篇便给出了一个示例:
https://leetcode.com/problems/h-index/
不出所料,果然是LeetCode里一个典型的例题。
简单复述一下:给定一位研究者论文被引用次数的数组(被引用次数是非负整数),算出研究者的h指数。h指数代表总共有h篇论文分别被引用了至少 h 次。
显然,从题目中可以看出,这和现在常见的让GPT-3生成代码所用到的描述不同,既不是伪代码,也不「生成一个按钮」这种直接的命令。
对于这种描述类问题,除了要考察模型生成正确代码的能力,还考验了模型对自然语言的理解。
啥?还要考阅读理解?
还好这个问题很简单,班门弄斧一下。
def h_index(nums):
nums = sorted(nums, reverse=True)
for i, item in enumerate(nums):
if item < i + 1:
return i
else:
continue
return len(nums)
既能训练又能测试的APPS数据集
为了测试模型对于给定问题的理解,以及写出相应代码的能力,论文引入了一个「自动化编程进度标准」(APPS)数据集。
APPS由10000个Python编程问题组成,分为三个类别(入门,面试,竞赛),并用面试中常见的简单的英语进行描述。其中5000个用作训练,剩下的5000个作为测试。
APPS数据集与现有数据集的比较
为了验证模型给出的答案,数据集包含131836个测试用例和232444个人类编写的解决方案。
题目的难度分为:
入门级。具有1-2年经验就可以解决这些问题,且无需复杂的算法。例如计算子字符串的出现次数,或查找字符串是否是回文。
面试级。这类问题通常出现在有一定难度的技术面试中,其中涉及数据结构等。
竞赛级。这类问题通常出现在编程竞赛中,例如USACO,IOI和ACM。
GPT-2完胜GPT-3




def two_arrays(n, m):
list = [1] * (n+1)
list[0] = 0
for i in range(2, m*2+1):
for j in range(1, n+1):
list[j] = (list[j] + list[j-1]) % 1000000007
result = 0
for i in list:
result = (result + i) % 1000000007
return result


虽然没有任何代码示例,但是GPT-Neo表现最好


网友表示:就这?
参考资料:
https://arxiv.org/pdf/2105.09938.pdf
https://github.com/hendrycks/apps
https://www.neowin.net/news/ai-wont-be-taking-up-software-engineering-jobs-any-time-soon-but-its-getting-there/
推荐阅读:
训练一个模型就能拿到30万?给微信视频号写个推荐算法,搞定!
一个听不见的人,也想要看懂每一个新闻 | 搜狗发布全球首个手语AI合成主播
三年51亿!30岁的TA携「三瑞」打通场景级智慧,走入极「智」医疗