GPT-4拿MIT满分遭质疑!爆火论文数据集漏洞百出,马库斯、LeCun震惊-世界热闻

2023-06-19 21:00:00 来源:新智元

新智元报道

编辑:编辑部

【新智元导读】GPT-4满分拿下MIT数学本科考试的论文突然爆火,然而还没发酵一天,就被MIT同校生反侦查了。


(资料图)

GPT-4攻克MIT数学和EECS本科考试在网上引起轩然大波。

但是,热度还没发酵一天,有人就站出来就表示,

不,GPT-4不能通过MIT考试!

万万没想到,这篇来自MIT等机构的研究者收集整理的数据集受到了污染,其实GPT-4的结果被夸大了。

这件事震惊了AI圈内多位大佬。

马库斯表示,麻省理工学院EECS的那份论文真的很烂,是对GPT-4的错误信仰的又一个例子。

(这让我想起了关于心智理论的同样夸张的说法)。

还有LeCun转发了一位网友的点评:

那篇关于GPT-4如何通过MIT课程的论文在很多方面都存在严重缺陷。这很好地提醒了我们,预印本是不经过同行评审的,另外公共志愿者评审也很出色。

此外,前谷Google Brain研究员「hardmaru」也表示大受震撼:

「当有人声称一种语言模型可以在某项任务上达到100%的准确率,尤其是这项任务的数据还是来自MIT的EECS课程时。这帮知识渊博的机器学习专家们,不仅没有任何怀疑,而且还对结果进行大肆宣传。」

「在LLM评估中,一种越来越流行但不科学的做法是作者不断迭代和挑选最佳的提示,以便在已知的评估任务中得分高。而这实际上是在间接地告诉LLM应该给出什么答案。」

这究竟是怎么回事?

100%?不可能的

论文中,研究人员从MIT的数学、电气工程与计算机科学(EECS)课业问题、期中和期末考,收集了一个包含4550个问题和解决方案的综合数据集。

然后,让其他LLM在一个没有图像和解决方案的288道随机数据集,以及500道选择题的ReClor验证集中进行测试。

结果发现,GPT-4几乎满分通过考试。

然而,这一结果却让其他研究人员大受震撼,于是他们开始详细检查每个数据点。

很快,研究人员就发现,这是不可能的。

无法解决类

首先,数据集中至少有10个问题是无法用提供的信息来解决的。

与此同时,其中还有一些问题压根就不是有效的问题。

这些数据的占比大概是4%。

来看几个例子:

这两道题目分别是计算传播延迟,以及有关并行运行调用的题目。

研究人员表示,数据集中没有提供必要的条件来得出有效的结果。

而下面这道题目是对两个disk的重量进行比较的计算题,并要求给出解释。

这个题目题干倒没什么问题,就是一开头提到的variation on problem 2,指这道题是问题2的变式。

可是问题2的信息根本没有,没法比较,所以也做不了。

下面这道编程题目是要找出在输入给定的prompt后,输出结果有什么不对的地方。

这道题目解不出来有两个原因,一个是本身给的条件有限,另一个是作为一个LLM,GPT不可能获得交互式终端的权限(最起码题里没给)。

而假如GPT真知道IP地址,那就说明信息泄露了,因为这个地址只有MIT有。

像这种例子还有一些(4%),研究人员都在数据集上进行了标注。

当然,也有一些题目都不能称之为问题,比如下面这个。

根本没有设问,只是一句陈述。

重复性问题

研究人员发现,数据集(288个问题)中有14个问题是重复的。要不就是完全相同,要不就是只有微小的字符差别。

正是因为存在着这些绝对不可解,以及问题重复的情况,所以研究人员对100%这个结果大惑不解。

经过进一步调查,研究人员发现,真相只有一个,那就是存在解题信息的泄露,以及对输出结果的评级有方法上的漏洞。

首先,让我们先来了解一下,少样本(few-shot)是什么意思。

简而言之,研究人员对OpenAI嵌入的数据集内的类似问题进行余弦相似度搜索,并将这些问题和解决方案作为额外的背景纳入模型的提示,以帮助模型解决问题。

在这种情况下,只要例子与实际的问题有足够的区别,就还算公平。

然而,研究人员却发现,真实情况下,给到模型的少样本和数据集中的问题一字不差。

于是,研究人员写了个脚本,来简单看一看给到的例子和实际问题之间重叠的部分。

代码如下:

from tqdm.notebook import tqdmimport numpy as npdef longest_common_substring(s1, s2):m = [[0] * (1 + len(s2)) for _ in range(1 + len(s1))]longest, x_longest = 0, 0for x in range(1, 1 + len(s1)):for y in range(1, 1 + len(s2)):if s1[x - 1] == s2[y - 1]:m[x][y] = m[x - 1][y - 1] + 1if m[x][y] > longest:longest = m[x][y]x_longest = xelse:m[x][y] = 0return len(s1[x_longest - longest: x_longest])def calculate_few_shot_overlap(sample):q = (sample["Question"])fs1 = (sample["Few shot question 1"])fs2 = (sample["Few shot question 2"])fs3 = (sample["Few shot question 3"])fs1 = longest_common_substring(q, fs1) / min(len(fs1), len(q))fs2 = longest_common_substring(q, fs2) / min(len(fs2), len(q))fs3 = longest_common_substring(q, fs3) / min(len(fs3), len(q))return np.max([fs1, fs2, fs3])test_dataset["overlap"] = test_dataset.apply(calculate_few_shot_overlap, axis=1)

将这些重叠绘制成直方图如下所示:

可以发现,例子中的问题和实际的问题很多情况下相似度极高。

研究人员认为,为了正确评估GPT的解题能力,相同的问题应该被排除在外。

def repeat_grading(input_path, output_path, num_experts = 3, num_fs = 3, most_recent_q = 0):df = pd.read_csv(input_path)df = df.iloc[most_recent_q:]for index, row in df.iterrows():print("Completing question", index)question_output = row.values.tolist()course_name = row["Course Name"]question = row["Question"]solution = row["Solution"]fs_qs = [[row["Few shot question 1"], row["Few shot solution 1"]], [row["Few shot question 2"], row["Few shot solution 2"]], [row["Few shot question 3"], row["Few shot solution 3"]]]experts = get_experts(course_name, question, num_experts).split(", ")prompts = [lambda expert: zero_shot_response(question, expert),lambda expert: few_shot_response(expert, question, fs_qs),lambda expert: few_shot_response(expert, question, fs_qs, True)critiques = [["Review your previous answer and find problems with your answer.", "Based on the problems you found, improve your answer."], ["Please provide feedback on the following incorrect answer.","Given this feedback, answer again."]]for expert in experts:print("Using expert", expert)question_output.append(expert)crit = Truefor prompt in prompts:prompt_response = prompt(expert) # calls fresh ChatCompletion.createprompt_grade = grade(course_name, question, solution, prompt_response) # GPT-4 auto-grading comparing answer to solutionquestion_output+=[prompt_response, prompt_grade]if correct(prompt_grade):crit = Falsebreakif crit:for critique in critiques:crit_response = self_critique_response(expert, course_name, question, question_output[-2], critique) # calls fresh ChatCompletion.createcrit_grade = grade(course_name, question, solution, crit_response) # GPT-4 auto-grading comparing answer to solutionquestion_output+=[crit_response,crit_grade]if correct(crit_grade):breakrepeat_grading("MIT_test_set.csv", "MIT_test_set_graded.csv")

同时,研究人员还在代码里发现了一些错别字/错误,导致了与论文中描述的或作者预期不同的提示。

以下是零样本函数的函数参数:

def zero_shot_response(system, question, max_tokens=8192):try:messages = [{"role": "system", "content": f"You are {system}\n"f"Your task is to answer the following question."},{"role": "user", "content": f"Please answer the following question.\n" +f"Question: {question}\n"

而如下则是它在代码中的调用方式:

prompts = [lambda expert: zero_shot_response(question, expert) ...

因此,所有的零样本的结果的prompt都是错误的。

此外,打分机制也存在问题。

def repeat_grading(input_path, output_path, num_experts = 3, num_fs = 3, most_recent_q = 0):df = pd.read_csv(input_path)df = df.iloc[most_recent_q:]for index, row in df.iterrows():print("Completing question", index)question_output = row.values.tolist()course_name = row["Course Name"]question = row["Question"]solution = row["Solution"]fs_qs = [[row["Few shot question 1"], row["Few shot solution 1"]], [row["Few shot question 2"], row["Few shot solution 2"]], [row["Few shot question 3"], row["Few shot solution 3"]]]experts = get_experts(course_name, question, num_experts).split(", ")prompts = [lambda expert: zero_shot_response(question, expert),lambda expert: few_shot_response(expert, question, fs_qs),lambda expert: few_shot_response(expert, question, fs_qs, True)critiques = [["Review your previous answer and find problems with your answer.", "Based on the problems you found, improve your answer."], ["Please provide feedback on the following incorrect answer.","Given this feedback, answer again."]]for expert in experts:print("Using expert", expert)question_output.append(expert)crit = Truefor prompt in prompts:prompt_response = prompt(expert) # calls fresh ChatCompletion.createprompt_grade = grade(course_name, question, solution, prompt_response) # GPT-4 auto-grading comparing answer to solutionquestion_output+=[prompt_response, prompt_grade]if correct(prompt_grade):crit = Falsebreakif crit:for critique in critiques:crit_response = self_critique_response(expert, course_name, question, question_output[-2], critique) # calls fresh ChatCompletion.createcrit_grade = grade(course_name, question, solution, crit_response) # GPT-4 auto-grading comparing answer to solutionquestion_output+=[crit_response,crit_grade]if correct(crit_grade):breakrepeat_grading("MIT_test_set.csv", "MIT_test_set_graded.csv")

我们可以看到,在流程处理分级也存在问题。

评分本身是由GPT-4进行的,以原始问题,解决方案和GPT自己的答案,作为依据的参数。

而在很多技术领域,GPT更有可能出现隐性误解,这种自动评分有可能出现自我安慰的结果。

此外,虽然提示级联是最近许多GPT论文中常见的技术,但这里有大量数据泄漏的可能性。

虽然这些创建的prompt没有答案本身,但重新prompt直到得到正确答案的二进制反馈是足够的,尤其是在占测试集16%的多选题中,无限的尝试几乎保证了正确答案一定会出现。

这就好比有人拿着答题纸告诉学生他们是否得到了正确的答案,错了就再来,直到他们得到答案。

这显然不够严谨。

GPT-4不能作为「基准真值」

最后,Raunak Chowdhuri表示以上的观察结果也仅是自己发现最明显的问题。

随着人们继续审查这篇论文的数据分析方法,更多的问题还会爆出。

而这篇论文反映了最近人工智能研究的一个更大趋势,AI发展越来越快,每天论文不断涌现,往往还有些是通过捷径「滥竽充数」。

其中,一个特别令人担忧的趋势是使用GPT-4等预言模型,来评估模型准确性的技术。虽然这是一个有用的工具,但它的结论绝不能被夸大或视为基准真值。

最近的研究表明,如果没有准确的基准真值,GPT-4评估器用于验证不可靠。至少,应该选择数据集的一个随机子集来比较GPT-4与人类对应物的性能。

因此,语言模型还不能被视为基准真值的生成预言机。

此外,在使用数据之前,重新评估每个数据点,并执行基本的健全性检查是极其重要的,无论是用于训练、推理、基准测试还是其他用途。

对此,Chowdhuri批评主要是关于这项研究的方法论和严谨性,而不是其内容。

也不是说,大型语言模型没有能力真正通过MIT的课程考试,只是这篇论文没有以科学严谨的方式证明这一点。

参考资料:

https://twitter.com/togelius/status/1670290844740378625

https://twitter.com/hardmaru/status/1670248677603151880

https://twitter.com/sauhaarda/status/1670053720233750530

https://flower-nutria-41d.notion.site/No-GPT4-can-t-ace-MIT-b27e6796ab5a48368127a98216c76864

标签:

神奇动物跟哪个电影属于同一系列?神奇动物在哪里一共有几部电影?

神奇动物跟哪个电影属于同一系列?神奇动物跟电影哈利·波特属于同一系列,编剧都是J K 罗琳。2017年初...

2023-01-06 16:58:03

西陇科学: 第五届监事会第十四次会议决议公告

证券代码:002584       证券简称:西陇科学      公告编号:2022-080         ...

2022-12-07 19:01:59

汉嘉设计:近期公司作为联合体成员之一中标了钱潮嘉苑共有产权房项目EPC工程总承包工程_每日观点

(原标题:汉嘉设计:近期公司作为联合体成员之一中标了钱潮嘉苑共有产权房项目EPC工程总承包工程)同花...

2022-12-06 17:38:42

山东推出文化体验主题旅游产品 推出多种旅游惠民措施

据山东省文化和旅游厅消息,为迎接第12个中国旅游日,山东将整合全省文旅资源,策划推出2022文化体验主...

2022-05-22 19:23:40

唐山加快验收时间 为建筑工地开复工保驾护航

唐山市住建局坚持两手抓、两手硬,统筹疫情防控和经济发展,想尽一切办法,简化一切手续,实现一路绿灯...

2022-03-19 15:15:42

消费者“身材焦虑” 减肥市场疯狂吸金

三月不减肥,四月徒伤悲。冬去春来之际,为了能穿上各种漂亮轻薄的服装,变得更瘦成为了许多人的追求,...

2022-03-19 15:14:49

2月份秦皇岛新建商品住宅销售价格环比下降0.2% 同比下降4%

3月16日,国家统计局公布2月份70个大中城市商品住宅销售价格变动情况,河北省入统的石家庄、唐山、秦皇...

2022-03-19 15:13:01

深圳技术进出口全年合同数量共1347项 同比增长2.51%

科技部火炬中心近日公布了2021年度全国技术合同交易数据。截至2021年12月31日,全国共登记技术合同67050...

2022-03-19 15:10:37

邢台柏乡:打造羊肚菌产业示范带 引领村级集体经济发展

我们通过打造食用菌产业高标准试验示范园,不仅盘活了闲置土地,还进一步增加了群众和村集体经济收入。...

2022-03-19 15:09:40

胡金秋32分17板 浙江广厦男篮“双杀”稠州金租

CBA浙江德比二番战昨晚开打,再度狭路相逢的浙江广厦男篮与浙江稠州金租男篮表现难分伯仲,比赛直到最后...

2022-03-19 15:07:37
x 广告
x 广告

Copyright ©  2015-2023 港澳经营网版权所有  备案号:京ICP备2023022245号-31   联系邮箱:435 226 40 @qq.com