新智元报道
编辑:山令 alan
【新智元导读】谷歌发布Gemini以后,一直宣称Gemini Pro要优于GPT-3.5,而CMU的研究人员通过自己实测,给大家来了一个客观中立第三方的对比。结果却是GPT-3.5几乎还是全面优于Gemini Pro,不过双方差距不大。
谷歌最近发布的Gemini掀起了不小的波澜。
毕竟,大语言模型领域几乎是OpenAI的GPT一家独大的局面。不过作为吃瓜群众,当然希望科技公司都卷起来,大模型都打起来!所以,作为科技巨无霸谷歌的亲儿子,Gemini自然承受了很高的期待。虽然Gemini发布之后发生了一些奇奇怪怪的事情吧,什么视频造假啦,认为自己是文心一言啦。不过问题不大,咱们不看广告看疗效。最近在CMU,研究人员进行了一组公正、深入和可重复的实验测试,重点比较了Gemini和GPT在各项任务中的优劣,另外还加入了开源的竞争对手Mixtral。
论文地址:https://arxiv.org/abs/2312.11444
代码地址:https://github.com/neulab/gemini-benchmark
研究人员在论文中对Google Gemini的语言能力进行了深入地探索,
从第三方的角度,对OpenAI GPT和Google Gemini模型的能力进行了客观比较,公开了代码和比较结果。我们可以从中发现两个模型分别擅长的领域。研究人员比较了6种不同任务的准确性:– 基于知识的QA(MMLU)– 推理(BIG-Bench Hard)– 数学(GSM8k、SVAMP、ASDIV、MAWPS)– 代码生成(HumanEval,ODEX)– 翻译 (FLORES)– Web指令跟踪(WebArena)为了公平起见,实验中尝试控制所有变量,对所有模型使用相同的提示、生成参数和评估。评测中使用了LiteLLM以统一的方式查询模型,使用try_zeno做全面深入的分析。测试模型
研究比较了Gemini Pro、GPT-3.5 Turbo、GPT-4 Turbo以及Mixtral,指出了他们在能力上的不同。
特点:Gemini Pro是多模态的,通过视频、文本和图像进行训练。GPT-3.5 Turbo和GPT-4 Turbo则主要基于文本训练,其中GPT-4 Turbo是多模态的。测试复现方法更方便的复现方法:点击下文测试任务的链接即可进入CMU集成好的基于Zeno的AI评估平台进行验证
GitHub链接:
https://github.com/neulab/gemini-benchmark]
具体测试任务基于知识的问答(Knowledge-based QA)基于UC伯克利2020年提出的MMLU(Massive Multitask Language Understanding)大模型评测进行评测该测试涵盖57项任务,包括初等数学、美国历史、计算机科学、法律等。任务涵盖的知识很广泛,语言是英文,用以评测大模型基本的知识覆盖范围和理解能力。用5-shot和思维链提示词的MMLU任务总体准确率如下图,Gemini Pro均略微落后GPT-3.5 Turbo
文章也指出使用思维链提示的性能差异不大,可能是因为 MMLU 主要是基于知识的问答任务,可能不会从更强的面向推理的提示中显着受益。
下图显示Gemini-pro、gpt3.5-turbo、gpt-4-turbo对于多选题答案输出的比例,结果显示Gemini-pro、gpt3.5-turbo都有一些答案偏见,尤其Gemini-pro十分偏向D选项
表明 Gemini 尚未针对解决多选题问题,进行大量指令调整,这可能导致模型在答案排序方面存在偏差MMLU的57个子任务中只有两项Gemini-pro超过GPT3.5-turbo。下图显示gpt3.5最领先Gemini-pro的前四个任务的准确性,和Gemini-pro超过gpt3.5的两个任务
通用推理(General-purpose Reasoning)
基于BBH(BIG-Bench Harch)这一通用推理数据集进行测试,其中包括算术、符号和多语言推理以及事实只是理解任务。
首先,从如下总体精度图中可以看到Gemini Pro实现的精度略低于GPT 3.5 Turbo,并且远低于GPT 4 Turbo。相比之下,Mixtral 模型的精度要低得多。接下来进行一些细节分析,首先根据问题的长度测试一下准确性,结果如下图。
作者发现Gemini Pro在更长、更复杂的问题上表现不佳,而GPT模型对此更稳健。
GPT-4 Turbo的情况尤其如此,即使在较长的问题上,它也几乎没有表现出性能下降,这表明它具有强大能力来理解更长和更复杂的查询。GPT-3.5 Turbo的稳健性处于中间位置。Mixtral在问题长度方面特别稳定,但总体准确率较低。下图再具体列出了GPT-3.5 Turbo表现优于Gemini Pro最多的任务。
Gemini Pro在tracking_shuffled_objects任务上表现很糟糕在某些任务中,即multistep_arithmetic_two、salient_translation_error_detection、snarks、disambiguition_qa和两个tracking_shuffled_objects任务中,Gemini Pro的表现甚至比Mixtral模型还要差。当然,有一些任务Gemini Pro优于GPT3.5。下图显示了 Gemini Pro 比 GPT 3.5 Turbo 表现优秀的六项任务。这些任务需要世界知识(sports_understanding)、操作符号堆栈(dyck_languages)、按字母顺序排序单词(word_sorting)和解析表(penguins_in_a_table)等。文章在此部分最后表示,对于通用推理任务,似乎没有Gemini和GPT都没有绝对优势,所以可以都尝试一下
数学问题
基于四个数学应用题评测进行:
– GSM8K,小学数学基准 – SVAMP 数据集,通过不同的词序生成问题来检查稳健的推理能力, – ASDIV 数据集,具有不同的语言模式和问题类型 – MAWPS 基准,由算术和代数应用题组成。下图显示四项数学推理任务的总体准确性
从图中可以看出,在 GSM8K、SVAMP 和 ASDIV 任务上,Gemini Pro的精度略低于 GPT-3.5 Turbo,并且远低于 GPT-4 Turbo,这些任务都包含多样化的语言模式。对于 MAWPS 任务,所有模型都达到了 90% 以上的准确率,尽管 Gemini Pro 仍然比GPT模型稍差。有趣的是,在此任务中,GPT-3.5 Turbo的表现以微弱优势胜过GPT-4 Turbo。相比之下,Mixtral模型的准确率比其他模型要低得多。和之前在BBH上的推理任务一样,我们可以看到较长任务推理性能会下降。
并且和以前一样,GPT 3.5 Turbo 在较短的问题上优于 Gemini Pro,但下降得更快,Gemini Pro 在较长的问题上实现了类似(但仍稍差)的准确度。不过在思维链(CoT)长度超过100的最复杂例子中,Gemini Pro优于GPT 3.5 Turbo,但在较短示例中表现不佳。最后,文章研究了比较模型在生成不同位数答案时的准确性。
根据答案中的位数创建三个类别,一位数、两位数、三位数答案(MAWPS 任务除外,其答案不超过两位数)。如下图所示,GPT-3.5 Turbo似乎对于多位数数学问题更加稳健,而Gemini Pro在位数较多的问题上性能下降更多。
代码生成
在此类别中,文章使用两个代码生成数据集HumanEval和ODEX检查模型的编码能力。前者测试对Python标准库中一组有限函数的基本代码理解。后者测试使用整个Python生态系统中更广泛的库的能力。它们都将人工编写的英语任务描述(通常带有测试用例)作为输入。这些问题用来评估对语言、算法和初等数学的理解。总体而言,HumanEval有164个测试样本,ODEX有439个测试样本。代码生成的总体情况如下图:Gemini Pro在两项任务上的Pass@1 成绩都低于GPT-3.5 Turbo,远低于GPT-4 Turbo。接下来,分析最佳解决方案长度与模型性能之前的关系,因为解决方案长度可以一定程度上表明相应代码生成的任务的难度。
本文发现,当解决方案长度低于100(即代表处理简单问题)时,Gemini Pro 可以达到与 GPT-3.5 相当的 Pass@1,但当解决方案变得更长(即处理更难的问题时)时,它会大幅落后。
文章还分析了每个解决方案所需的库如何影响模型性能,结果如下图显示:
根据结果分析,在大多数使用库的情况下,例如mock、pandas、numpy和datetime,Gemini Pro的表现比GPT-3.5差。然而,它在 matplotlib 情况下优于 GPT-3.5 和 GPT-4,在通过代码执行绘图可视化时显示出更强的功能。下面展示几个具体的失败案例:首先, Gemini在从Python API中正确选择函数和参数方面稍差一些比如,当你给出如下指令时
def f_3283984():
"""decode a hex string '4a4b4c' to UTF-8."""
Gemini Pro 生成以下代码,导致类型不匹配错误。
bytes(bytearray.fromhex('4a4b4c'), 'utf-8')
相比之下,GPT 3.5 Turbo 使用以下代码,达到了预期的结果:
hex_string = '4a4b4c'
decoded_string = bytes.fromhex(hex_string).decode('utf-8')
return decoded_string
此外,Gemini Pro的错误比例较高,所实现的代码在语法上是正确的,但与复杂的意图不正确匹配。
例如,对于以下指令
from typing import List
def remove_duplicates(numbers: List[int]) -> List[int]:
"""From a list of integers, remove all elements that occur more than once.
Keep order of elements left the same as in the input.
>>> remove_duplicates([1, 2, 3, 2, 4])
[1, 3, 4]
"""
Gemini Pro 给的代码,只提取唯一的数字,而不删除那些出现多次的数字。
seen_numbers = set()
unique_numbers = []
for number in numbers:
if number not in seen_numbers:
unique_numbers.append(number)
seen_numbers.add(number)
return unique_numbers
机器翻译(Machine Translation)
基于FLORES-200 机器翻译基准评估模型的多语言能力,特别是在各种语言对之间翻译的能力。
针对所有选定的语言对,对测试集中的1012个句子进行评估。作为这项研究的第一步,本文将范围限制为仅从英语到其他语言(ENG→X)的翻译。结果显示如下图,Gemini Pro在翻译任务上,总体优于其他模型,在 20 种语言中的 8 种语言上均优于 GPT-3.5 Turbo 和 GPT-4 Turbo,并在4种语言上取得了最高性能。
虽然在非英语语言翻译方面尚未超越专用机器翻译系统,但通用语言模型也显示出了强竞争力的性能零样本提示和5样本提示Gemini Pro在翻译任务上均优于其他模型
网页代理(Web Agents)
最后,本文验证每个模型充当网络导航代理(web navigation agent)的能力,这是一项需要长期规划和复杂数据理解的任务。使用 WebArena ,这是一个基于命令执行的模拟环境,其中成功标准基于执行结果。分配给代理的任务包括信息查找、站点导航以及内容和配置操作。这些任务跨越各种网站,包括电子商务平台、社交论坛、协作软件开发平台(例如 gitlab)、内容管理系统和在线地图。如下图文章从总体结果可以看出,Gemini-Pro 的性能与 GPT-3.5-Turbo 相当,但稍差。
与 GPT-3.5-Turbo 类似,当Prompts提到任务可能无法完成时(UA 提示),Gemini-Pro 的表现会更好。通过 UA 提示,Gemini-Pro 的总体成功率达到 7.09%。之后文章又按照网络进行细分,如下图,可以看到 Gemini-Pro 在 gitlab 和地图上的表现比 GPT-3.5-Turbo 差,而在购物管理、reddit 和 Shopping 上则接近 GPT-3.5-Turbo 。它在多站点任务上的表现比 GPT-3.5-Turbo 更好。
测试结果总览
在本文中,作者对 Google 的 Gemini 模型进行了第一次公正、深入的研究,并将其与 OpenAI 的 GPT 3.5 和 4 模型以及开源 Mixtral 模型进行了比较。
CMU评测的主要结果展示,黑色粗体表示最佳模型,下划线为第二
在最后,作者叠了一些甲:指出他们工作是针对不断变化且不稳定的API,所有结果均为截至 2023 年 12 月 19 日撰写本文时的最新结果,但随着模型和周围系统的升级,未来可能会发生变化。结果可能取决于其选择的特定提示和生成参数 作者测试时没有像谷歌意义使用多个样本和自我一致性(self-consistency),不过作者认为对不同模型使用一致的prompts的多项任务上进行的测试,恰恰可以合理地展示被测模型的稳健性和广义指令的遵循能力作者指出数据泄露对当前大模型评测任务的困扰,虽然他们没有明确测量这种泄露,但他们也尝试过各种方法来缓解这个问题在展望中,作者也提出建议,希望大家在使用Gemini Pro之前,根据这篇论文,自己评估Gemini Pro是否如宣传所说与GPT 3.5 Turbo相媲美。作者也表示Gemini的Ultra版本尚未发布,等其发布后也会验证其是否如报道所说与GPT4相当。参考资料:https://arxiv.org/abs/2312.11444