首页 > 科技周边 > 人工智能 > 对Gemini进行全面评估:从CMU到GPT 3.5 Turbo,Gemini Pro失利

对Gemini进行全面评估:从CMU到GPT 3.5 Turbo,Gemini Pro失利

WBOY
发布: 2023-12-20 21:21:40
转载
1287 人浏览过

谷歌的 Gemini 到底有多重?和 OpenAI 的 GPT 模型相比如何表现?CMU 这篇论文对此有清楚的测量结果


前段时间,谷歌发布了对标 OpenAI GPT 模型的竞品 ——Gemini。这个大模型共有三个版本 ——Ultra(能力最强)、Pro 和 Nano。研究团队公布的测试结果显示,Ultra 版本在许多任务中优于 GPT4,而 Pro 版本与 GPT-3.5 不相上下。

尽管这些对比结果对大型语言模型研究具有重要意义,但由于确切的评估细节和模型预测尚未公开,这限制了对测试结果的复现、检测,难以进一步分析其隐含的细节。

为了了解 Gemini 的真正实力,来自卡内基梅隆大学、BerriAI 的研究者对该模型的语言理解和生成能力进行了深入探索。
 
他们在十个数据集上测试了 Gemini Pro、GPT 3.5 Turbo、GPT 4 Turbo、Mixtral 的文本理解和生成能力。具体来说,他们在 MMLU 上测试了模型回答基于知识的问题的能力,在 BigBenchHard 上测试了模型的推理能力,在 GSM8K 等数据集中测试了模型解答数学问题的能力,在 FLORES 等数据集中测试了模型的翻译能力;在 HumanEval 等数据集中测试了模型的代码生成能力;在 WebArena 中测试了模型作为遵循指令的智能体的能力。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
下表 1 展示了对比的主要结果。总体而言,截至论文发稿日,在所有任务中,Gemini Pro 在准确性上接近 OpenAI GPT 3.5 Turbo,但仍然稍逊一筹。此外,他们还发现,Gemini 和 GPT 比开源竞品模型 Mixtral 表现要好一些。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
在论文中,作者对每项任务都进行了深入的描述和分析。所有结果和可复现的代码可参阅:https://github.com/neulab/gemini-benchmark
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
论文链接:https://arxiv.org/pdf/2312.11444.pdf

实验设置

作者选择了 Gemini Pro、GPT 3.5 Turbo、GPT 4 Turbo、Mixtral 四个模型作为测试对象。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
由于此前有研究在评估时存在实验设置方面的差异,为确保测试公平,作者采取了完全相同的提示词和评估协议重新运行了实验。在大多数测评中,他们采用了提示词和来自标准资源库的评价标准。这些测试资源来自模型发布时附带的数据集以及测评工具 Eleuther 等。其中,提示词通常包含查询、输入、少量示例和思维链推理等。在某些特殊测评中,作者发现有必要对标准实践进行小幅调整。调整偏差已在对应的代码储存库中执行,请查阅论文原文。

这项研究的目标如下:

1. 通过可复现的代码和完全透明的结果,提供对 OpenAI GPT 和 Google Gemini 模型能力的第三方客观比较。
2. 深入研究测评结果,分析两个模型在哪些领域中的表现更加突出。

基于知识的问答(Knowledge-based QA)

作者从 MMLU 数据集中选择了 57 个基于知识的多项选择问答任务,涵盖了 STEM 以及人文社科等各种主题。MMLU 共有 14,042 个测试样本,已经广泛用于对大型语言模型的知识能力进行整体评估。

作者比较并分析了四个测试对象在 MMLU 上的整体表现(如下图所示)、子任务表现以及输出长度对表现的影响。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 1:使用 5 个样本提示和思维链提示,各个模型在 MMLU 上的总体准确率。

从图中可以看到,Gemini Pro 的准确性低于 GPT 3.5 Turbo,并且远低于 GPT 4 Turbo。在使用思维链提示时,各模型表现差异不大。作者推测这是由于 MMLU 主要收录的是基于知识的问答任务,这些任务可能不会从更强的推理导向提示中显着受益。

值得注意的是,MMLU 中的所有问题都是单选题,有 A 到 D 四个按顺序排列的潜在答案。下图中展示了每个模型选择每个答案选项的比例。从图中可以看到 Gemini 的答案分布非常倾斜,偏向于选择最后的 D 选项。这与各版本的 GPT 给出的更加平衡的结果形成了对比。这可能表明,Gemini 没有接受与多选题相关的大量指令调整,导致模型在答案排序方面存在偏见。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 2:被测模型预测的单选题答案的比例。

下图展示了被测模型在 MMLU 测试集的子任务上的表现。与 GPT 3.5 相比,Gemini Pro 在大多数任务上的表现不佳。思维链提示降低了子任务之间的方差。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 3:被测模型在每个子任务上的准确率。

作者深入探讨了 Gemini Pro 的强项和弱项。从图 4 中可以观察到,Gemini Pro 在人类性别(社会科学)、形式逻辑(人文科学)、初等数学(STEM) 和专业医学(专业领域)任务中落后于 GPT 3.5。在 Gemini Pro 更擅长的两个任务中,领先优势也很微弱。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 4:Gemini Pro 和 GPT 3.5 在 MMLU 上的优势任务。

Gemini Pro 在特定任务上的表现不佳可以归因于两个原因。首先,在某些情况下,Gemini 无法返回答案。在大多数 MMLU 子任务中,API 响应率超过 95%,但在道德(响应率 85%)、人类性别(响应率 28%)这两个任务的相应率明显较低。这表明 Gemini 在一些任务中性能较低可能是由于输入的内容过滤器。其次,Gemini Pro 在解决形式逻辑和基础数学任务所需的基本数学推理方面的表现稍差。

作者还分析了思维链提示中的输出长度如何影响模型性能,如图 5 所示。一般来说,更强大的模型倾向于进行更复杂的推理,因此会输出更长的回答。与「对手」相比,Gemini Pro 有一个值得注意的优势:它的准确性受输出长度的影响较小。当输出长度超过 900 时,Gemini Pro 甚至优于 GPT 3.5。然而,与 GPT 4 Turbo 相比,Gemini Pro 和 GPT 3.5 Turbo 很少能输出长推理链。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 5:被测模型在 MMLU 上的输出长度分析。

通用推理(General-purpose Reasoning)

在 BIG-Bench Hard 测试集中,作者对被测对象展开了通用推理能力的测评。 BIG-Bench Hard 包含 27 个不同的推理任务,如算术、符号和多语言推理、事实知识理解等任务。大多数任务由 250 个问题 - 答案对组成,少数任务的问题数量稍少一些。

图 6 中展示的是被测模型的整体准确率。可以看出,Gemini Pro 的准确率略低于 GPT 3.5 Turbo,远低于 GPT 4 Turbo。相比之下,Mixtral 模型的准确率还要低得多。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 6:被测模型在 BIG-Bench-Hard 上的整体准确率。

作者更深入地探讨了为什么 Gemini 通用推理整体表现不佳。首先,他们按问题的长度检查了准确率。如图 7 所示,Gemini Pro 在更长、更复杂的问题上表现不佳。而 GPT 模型,特别是 GPT 4 Turbo,即使在非常长的问题中, GPT 4 Turbo 的退步也非常小。这表明它的鲁棒性很强,能够理解更长和更复杂的提问和查询。 GPT 3.5 Turbo 的鲁棒性一般。 Mixtral 在问题长度方面表现稳定,但整体准确率较低。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 7:被测模型在 BIG-Bench-Hard 上按问题长度划分的准确率。

作者分析了被测模型在 BIG-Bench-Hard 具体任务中是否存在准确率的差异。图 8 中展示了 GPT 3.5 Turbo 在哪些任务上比 Gemini Pro 表现更好。

在「追踪变换物体的位置」的任务中,Gemini Pro 的表现特别糟糕。这些任务涉及人们交换物品并追踪谁是某项物品的拥有者,但 Gemini Pro 经常难以保持正确的顺序。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 8:GPT 3.5 Turbo 优于 Gemini Pro 的 BIG-Bench-Hard 子任务 。

在需要多步解的算术题、查找翻译中的错误等任务中,Gemini Pro 逊于 Mixtral。

也有 Gemini Pro 优于 GPT 3.5 Turbo 的任务。图 9 展示了 Gemini Pro 以最大优势领先于 GPT 3.5 Turbo 的六个任务。这些任务是异构的,包括需要世界知识的(sports_understanding)、操作符号堆栈(dyck_languages)、按字母顺序对单词进行排序(word_sorting)以及解析表格(penguins_in_a_table)等。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 9:Gemini Pro 优于 GPT 3.5 的 BIG-Bench-Hard 子任务。

作者进一步分析了被测模型在不同答案类型中的鲁棒性,如图 10 所示。Gemini Pro 在「Valid/Invalid」答案类型中的表现最差,该答案类型属于任务 formal_fallacies。有趣的是,该任务有 68.4% 的问题没有回答响应。然而,在其它(由 word_sorting 和 dyck_language 任务组成)的答案类型中,Gemini Pro 表现优于所有 GPT 模型与 Mixtral。即 Gemini Pro 特别擅长重新排列单词和按正确顺序生成符号。另外,对于 MCQ 答案,有 4.39% 的问题被 Gemini Pro 阻止回应。GPT 模型在这方面表现出色,Gemini Pro 难以与它们竞争。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 10:被测模型在 BIG-Bench-Hard 上按答案类型划分的准确性。

总之,似乎没有哪个模型在特定任务上一马当先。因此,在执行通用推理任务时,不妨在 Gemini 和 GPT 模型中都尝试一下,然后再决定使用哪个模型。

数学能力

为了评估被测模型的数学推理能力,作者选择了四个数学问题基准测试集:

(1)GSM8K:小学数学基准测试;
(2)SVAMP :通过改变单词顺序生成问题来检查鲁棒推理能力;
(3)ASDIV:具有不同的语言模式和问题类型;
(4)MAWPS:包含算术和代数词问题。

作者比较了 Gemini Pro 、GPT 3.5 Turbo、GPT 4 Turbo 和 Mixtral 在四个数学问题测试集上的准确性,检查了它们的整体性能、不同问题复杂度下的性能以及不同思维链深度下的性能。

图 11 呈现了整体结果,Gemini Pro 在包含不同语言模式的 GSM8K、SVAMP 和 ASDIV 的任务中,准确性略低于 GPT 3.5 Turbo,远低于 GPT 4 Turbo。对于 MAWPS 中的任务,尽管所有被测模型的准确性都超过 90%,但 Gemini Pro 仍然略逊于 GPT 模型。在这个任务中,GPT 3.5 Turbo 以微弱的优势胜过了 GPT 4 Turbo。相比之下,Mixtral 模型的准确性远低于其他模型。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 11:被测模型在四个数学推理测试集任务中的整体准确性。

图 12 中展示了每个模型对问题长度的鲁棒性。与 BIG-Bench Hard 中的推理任务类似,被测模型在回答较长的问题时,准确性有所下降。GPT 3.5 Turbo 在较短的题目上表现优于 Gemini Pro,但退步的速度更快,Gemini Pro 在较长的题目的准确性上与 GPT 3.5 Turbo 类似,但仍稍稍落后。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 12:被测模型在四个数学推理测试集任务中,对于不同问题长度的生成答案的准确性。

此外,作者还观察到当答案需要更长的思维链时,被测模型的准确性也有不同。如图 13 所示,即使使用长推理链时,GPT 4 Turbo 也非常鲁棒,而 GPT 3.5 Turbo、Gemini Pro 和 Mixtral 在 COT 长度不断增加时表现出力不从心。通过分析,作者还发现,在 COT 长度超过 100 的复杂例子中,Gemini Pro 优于 GPT 3.5 Turbo,但在较短的例子中表现不佳。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 13:不同思维链长度下,各模型在 GSM8K 上的准确性。

图 14 显示了被测模型对于不同数字数量在生成答案时的准确性。作者根据答案中的数字数量是 1 个、2 个还是 3 个以上创建了三个「桶」(除了 MAWPS 任务,该任务的答案没有超过两位数的数字)。如图所示,GPT 3.5 Turbo 似乎对多位数的数学问题更加鲁棒,而 Gemini Pro 在更多数字的问题上有所退化。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 14:各个模型在四个数学推理测试集任务中在答案数字数量不同时的准确性。

代码生成

在这一部分,作者使用两个代码生成数据集 ——HumanEval 和 ODEX—— 来检验模型的编码能力。前者测试模型对 Python 标准库中有限的一组函数的基本代码理解能力,后者测试模型使用整个 Python 生态系统中更广泛的库集的能力。这两个问题的输入都是用英语编写的任务说明(通常带有测试用例)。这些问题用来评估模型的语言理解能力、算法理解能力和初等数学能力。总的来说,HumanEval 有 164 个测试样本,ODEX 有 439 个测试样本。

首先,从图 15 所示的总体结果中,可以看到 Gemini Pro 在两项任务上的 Pass@1 分数均低于 GPT 3.5 Turbo,也远低于 GPT 4 Turbo。这些结果表明,Gemini 的代码生成能力还有待提高。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 15:各个模型在代码生成任务中的总体准确性。

其次,作者在图 16 (a) 中分析了 gold solution 长度与模型性能之间的关系。解的长度可以在一定程度上说明相应代码生成任务的难度。作者发现,Gemini Pro 在解的长度低于 100 时(如较容易的情况),实现了与 GPT 3.5 相当的 Pass@1 分数,但当解的长度变长时,它就会大幅落后。这与前几节的结果形成了有趣的对比,在前几节中,作者发现一般情况下,Gemini Pro 在英语任务中对较长的输入和输出都能表现稳健。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
作者还在图 16 (b) 中分析了每个解所需的库对模型性能的影响。在大多数库用例中,如 mock、pandas、numpy 和 datetime,Gemini Pro 的性能比 GPT 3.5 差。不过,在 matplotlib 的用例中,它的性能要优于 GPT 3.5 和 GPT 4,这表明它在通过代码执行绘图可视化时具有更强的能力。

最后,作者展示了几个具体的失败案例,在这些案例中,Gemini Pro 在代码生成方面的表现比 GPT 3.5 差。首先,他们注意到 Gemini 在正确选择 Python API 中的函数和参数方面略逊一筹。例如,给定以下提示:  
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
Gemini Pro 生成了以下代码,结果出现了类型不匹配错误:   
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
相比之下,GPT 3.5 Turbo 使用了以下代码,达到了预期效果:  
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
此外,Gemini Pro 的错误比例较高,在这种情况下,执行的代码在语法上是正确的,但不能正确地与更复杂的意图相匹配。例如,关于以下提示:   
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
Gemini Pro 创建了一种实现方法,只提取唯一的数字,而不删除那些出现多次的数字。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
机器翻译

这组实验使用 FLORES-200 机器翻译基准评估了模型的多语言能力,特别是在各种语言对之间的翻译能力。作者将重点放在 Robinson et al. (2023) 的分析所使用的 20 种语言的不同子集上,这些语言涵盖不同程度的资源可用性和翻译难度。作者对所有选定语言对的测试集中的 1012 个句子进行了评估。

在表 4 和表 5 中,作者对 Gemini Pro、GPT 3.5 Turbo 和 GPT 4 Turbo 与谷歌翻译等成熟系统进行了比较分析。此外,他们还对 NLLB-MoE 进行了基准测试,NLLB-MoE 是领先的开源机器翻译模型,以其广泛的语种覆盖而著称。结果表明,谷歌翻译总体上优于其他模型,在 9 种语言上表现出色;其次是 NLLB,在 0/5-shot 设置下,在 6 种 / 8 种语言上表现出色。通用语言模型显示出具有竞争力的性能,但在翻译成非英语语言方面尚未超越专用机器翻译系统。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
表 4:各模型使用 0-shot 提示对所有语言进行机器翻译的性能(chRF (%) 分数)。最佳分数以粗体显示,次佳分数以下划线显示。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
表 5:各模型使用 5-shot 提示对所有语言进行机器翻译的性能(chRF (%) 分数)。最佳分数以粗体显示,次佳分数以下划线显示。

图 17 显示了通用语言模型在不同语言对中的性能比较。与 GPT 3.5 Turbo 和 Gemini Pro 相比,GPT 4 Turbo 与 NLLB 表现出一致的性能偏差。GPT 4 Turbo 在低资源语言方面也有较大改进,而在高资源语言方面,两种 LLM 的性能相似。相比之下,在 20 种语言中的 8 种语言上,Gemini Pro 的性能优于 GPT 3.5 Turbo 和 GPT 4 Turbo,并在 4 种语言上取得了最高性能。不过,Gemini Pro 在大约 10 种语言对中表现出强烈的屏蔽响应(block response)倾向。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 17:按语言对划分的机器翻译性能(chRF (%) 分数)。

图 18 显示,Gemini Pro 在这些语言中的性能较低,这是因为它倾向于在置信度较低的场景中屏蔽响应。如果 Gemini Pro 在 0-shot 或 5-shot 配置中产生「Blocked Response」错误,则该响应被视为「屏蔽」。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 18:被 Gemini Pro 屏蔽的样本数量。

仔细观察图 19 可以发现,Gemini Pro 在置信度较高的无屏蔽样本中略微优于 GPT 3.5 Turbo 和 GPT 4 Turbo。具体来说,它在 5-shot 和 0-shot 设置下分别比 GPT 4 Turbo 多出 1.6 chrf 和 2.6 chrf,比 GPT 3.5 Turbo 多出 2.7 chrf 和 2 chrf。不过,作者对 GPT 4 Turbo 和 GPT 3.5 Turbo 在这些样本上的性能进行的初步分析表明,这些样本的翻译通常更具挑战性。Gemini Pro 在这些特定样本上表现不佳,尤其明显的是,Gemini Pro 0-shot 会屏蔽响应,而 5-shot 则不会,反之亦然。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 19:屏蔽和非屏蔽样本的 chrf 性能(%)。

在对模型的整个分析过程中,作者观察到,few-shot 提示一般都能适度提高平均性能,其 variance pattern 依次递增:GPT 4 Turbo

图 20 显示了按语系或 script 分类的明显趋势。一个重要的观察结果是,Gemini Pro 在西里尔文字上的表现与其他机型相比具有竞争力,但在其他文字上的表现却不尽如人意。GPT-4 在各种 script 上的表现突出,优于其他模型,其中 few-shot 提示尤为有效。这种效果在使用梵文的语言中尤为明显。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 20:各个模型在不同 script 上的表现 (chrf (%))。

Web 智能体

最后,作者考察了每个模型作为网络导航智能体的能力,这是一项需要长期规划和复杂数据理解的任务。他们使用了模拟环境 WebArena,该环境成功的标准是执行结果。赋予智能体的任务包括信息搜索、网站导航以及内容和配置操作。任务涉及各种网站,包括电子商务平台、社交论坛、协同软件开发平台(如 gitlab)、内容管理系统和在线地图。

作者测试了 Gemini-Pro 的总体成功率、不同任务的成功率、响应长度、轨迹步数以及预测任务无法完成的倾向。表 6 列出了总体性能。Gemini-Pro 的表现与 GPT-3.5-Turbo 接近,但略逊一筹。与 GPT-3.5-Turbo 类似,当提示提到任务可能无法完成时(UA hint),Gemini-Pro 的表现更好。在有 UA hint 的情况下,Gemini-Pro 的总体成功率为 7.09%。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
表 6:各个模型在 WebArena 上的表现。

如果按网站类型进行细分,如图 21 所示,可以看到 Gemini-Pro 在 gitlab 和地图上的表现不如 GPT-3.5-Turbo,而在购物管理、reddit 和购物网站上的表现则接近 GPT-3.5-Turbo。在多站点任务上,Gemini-Pro 的表现优于 GPT-3.5-Turbo,这与之前的结果一致,即 Gemini 在各种基准的更复杂子任务上表现更好一些。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 21:模型在不同类型网站上的 Web 智能体成功率。

如图 22 所示,一般来说,Gemini-Pro 把更多的任务预测为无法完成,尤其是在给出一个 UA hint 的情况下。Gemini-Pro 在给出 UA hint 的情况下,预测 80.6% 以上的任务无法完成,而 GPT-3.5-Turbo 只预测了 47.7%。需要注意的是,数据集中仅有 4.4% 的任务实际上是无法完成的,因此两者都远远高估了无法完成的任务的实际数量。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 22:UA 预测数量。

同时,作者观察到,Gemini Pro 更倾向于用较短的短语做出回应,在得出结论前采取较少的步骤。如图 23 (a) 所示,Gemini Pro 有一半以上的轨迹少于 10 步,而 GPT 3.5 Turbo 和 GPT 4 Turbo 的大多数轨迹在 10 到 30 步之间。同样,Gemini 的大部分回复长度不到 100 个字符,而 GPT 3.5 Turbo、GPT 4 Turbo 和 Mixtral 的大部分回复长度超过 300 个字符(图 23 (b))。Gemini 倾向于直接预测行动,而其他模型则会先进行推理,然后给出行动预测。
摸底谷歌Gemini:CMU全面测评,Gemini Pro不敌GPT 3.5 Turbo
图 23:模型在 WebArena 上的行为。

更多细节请参考原论文。

以上是对Gemini进行全面评估:从CMU到GPT 3.5 Turbo,Gemini Pro失利的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:jiqizhixin.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板