全球最强开源大模型一夜易主!谷歌Gemma 7B碾压Llama 2 13B,今夜重燃开源之战

news2024/11/25 13:00:53

一声炸雷深夜炸响,谷歌居然也开源LLM了?!

这次,重磅开源的Gemma有2B和7B两种规模,并且采用了与Gemini相同的研究和技术构建。

有了Gemini同源技术的加持,Gemma不仅在相同的规模下实现SOTA的性能。

而且更令人印象深刻的是,还能在关键基准上越级碾压更大的模型,比如Llama 2 13B。

与此同时,谷歌还放出了16页的技术报告。

谷歌表示,Gemma这个名字源自拉丁语「gemma」,也就是「宝石」的意思,似乎是在象征着它的珍贵性。

历史上,Transformers、TensorFlow、BERT、T5、JAX、AlphaFold和AlphaCode,都是谷歌为开源社区贡献的创新。

谷歌:今天我就来给你表演一个什么是Open AI

而谷歌今天在全球范围内同步推出的Gemma,必然会再一次掀起构建开源AI的热潮。

同时也坐实了OpenAI「唯一ClosedAI」的名头。

OpenAI最近刚因为Sora火到爆,Llame据称也要有大动作,谷歌这就又抢先一步。硅谷大厂,已经卷翻天了!

谷歌:开源闭源我全都要

Hugging Face CEO也跟帖祝贺。

还贴出了Gemma登上Hugging Face热榜的截图。

Keras作者François Chollet直言:最强开源大模型,今日易主了。

有网友已经亲自试用过,表示Gemma 7B真是速度飞快。

谷歌简直是用Gemini拳打GPT-4,用Gemma脚踢Llama 2!

网友们也是看热闹不嫌事大,召唤Mistral AI和OpenAI今晚赶快来点大动作,别让谷歌真的抢了头条。(手动狗头)

同规模刷新SOTA,越级单挑Llama 2 13B

可以看到,Gemma-7B模型在涵盖一般语言理解、推理、数学和编码的8项基准测试中,性能已经超越了Llama 2 7B和13B!

并且,它也超越了Mistral 7B模型的性能,尤其是在数学、科学和编码相关任务中。

在安全性方面,经过指令微调的Gemma-2B IT和 Gemma-7B IT模型,在人类偏好评估中都超过了Mistal-7B v0.2模型。

特别是Gemma-7B IT模型,它在理解和执行具体指令方面,表现得更加出色。

一整套工具:跨框架、工具和硬件进行优化

这次,除了模型本身,谷歌还提供了一套工具帮助开发者,确保Gemma模型负责任的使用,帮助开发者用Gemma构建更安全的AI应用程序。

- 谷歌为JAX、PyTorch和TensorFlow提供了完整的工具链,支持模型推理和监督式微调(SFT),并且完全兼容最新的Keras 3.0。

- 通过预置的Colab和Kaggle notebooks,以及与Hugging Face、MaxText、NVIDIA NeMo和TensorRT-LLM等流行工具的集成,用户可以轻松开始探索Gemma。

- Gemma模型既可以在个人笔记本电脑和工作站上运行,也可以在Google Cloud上部署,支持在Vertex AI和Google Kubernetes Engine (GKE) 上的简易部署。

- 谷歌还对Gemma进行了跨平台优化,确保了它在NVIDIA GPU和Google Cloud TPU等多种AI硬件上的卓越性能。

并且,使用条款为所有组织提供了负责任的商业使用和分发权限,不受组织规模的限制。

但,没有全胜

不过,Gemma并没有能够在所有的榜单中,都拿下SOTA。

在官方放出的评测中,Gemma 7B在MMLU、HellaSwag、SIQA、CQA、ARC-e、HumanEval、MBPP、GSM8K、MATH和AGIEval中,成功击败了Llama 2 7B和13B模型。

相比之下,Gemma 7B在Boolq测试中,只与Mistral 7B打了个平手。

而在PIQA、ARC-c、Winogrande和BBH中,则不敌Mistral 7B。

在OBQA和trivalent QA中,更是同时被7B和13B规模的Llama 2 7B斩于马下。

技术报告

谷歌这次发布的两个版本的Gemma模型,70 亿参数的模型用于GPU和TPU上的高效部署和开发,20亿参数的模型用于CPU和端侧应用程序。

在18个基于文本的任务中的11个中,Gemma都优于相似参数规模的开源模型,例如问答、常识推理、数学和科学、编码等任务。

模型架构方面,Gemma在Transformer的基础上进行了几项改进,从而在处理复杂任务时能够展现出更加出色的性能和效率。

多查询注意力机制

其中,7B模型采用了多头注意力机制,而2B模型则使用了多查询注意力机制。结果显示,这些特定的注意力机制能够在不同的模型规模上提升性能。

RoPE嵌入

与传统的绝对位置嵌入不同,模型在每一层都使用了旋转位置嵌入技术,并且在模型的输入和输出之间共享嵌入,这样做可以有效减少模型的大小。

GeGLU激活函数

将标准的ReLU激活函数替换成GeGLU激活函数,可以提升模型的表现。

归一化化位置(Normalizer Location)

每个Transformer子层的输入和输出都进行了归一化处理。这里采用的是RMSNorm作为归一化层,以确保模型的稳定性和效率。

架构的核心参数如下:

两种规模的参数如下:

预训练

训练数据

Gemma 2B和7B分别针对来自网络文档、数学和代码的主要英语数据的2T和6Ttoken,进行了训练。

与Gemini不同,这些模型不是多模态的,也没有针对多语言任务的SOTA进行训练。

谷歌使用了Gemini的SentencePiece分词器的子集,来实现兼容性。

指令微调

团队对Gemma 2B和7B模型进行了微调,包括有监督的微调(SFT)和基于人类反馈的强化学习(RLHF)。

在有监督的微调阶段,研究者使用了一个由纯文本、英文、由人工和机器生成的问题-答案对组成的数据集。

在强化学习阶段,则是使用了一个基于英文偏好数据训练出的奖励模型,以及一套精心挑选的高质量提示作为策略。

研究者发现,这两个阶段对于提升模型在自动评估和人类偏好评估中的表现,至关重要。

监督微调

研究者根据基于LM的并行评估,选择了数据混合物进行监督微调。

给定一组保留prompt,研究者会从测试模型中生成响应,从基准模型中生成对相同提示的响应,随机洗牌,然后要求一个更大、能力更强的模型在两种响应之间表达偏好。

研究者构建了不同的提示集,以突出特定的能力,如遵循指令、实事求是、创造性和安全性。

我们使用了不同的基于LM的自动评委,采用了一系列技术,如思维链提示、使用评分标准和章程等,以便与人类偏好保持一致。

RLHF

研究者进一步利用来自人类反馈的强化学习(RLHF),对已经进行过有监督微调的模型进行了优化。

他们从人类评估者那里收集他们的偏好选择,并在 Bradley-Terry 模型的基础上,训练了一个奖励函数,这与Gemini项目的做法相似。

研究者采用了一个改进版的REINFORCE算法,加入了 Kullback–Leibler 正则化项,目的是让策略优化这个奖励函数,同时保持与最初调整模型的一致性。

与之前的有监督微调阶段相似,为了调整超参数并进一步防止奖励机制被滥用,研究者使用了一个高性能模型作为自动评估工具,并将其与基准模型进行了直接对比。

性能评估

自动评估

谷歌在多个领域对Gemma进行了性能评估,包括物理和社会推理、问答、编程、数学、常识推理、语言建模、阅读理解等。

Gemma2B和7B模型与一系列学术基准测试中的多个外部开源大语言模型进行了比较。

在MMLU基准测试中,Gemma 7B模型不仅超过了所有规模相同或更小的开源模型,还超过了一些更大的模型,包括Llama 2 13B。

然而,基准测试的制定者评估人类专家的表现为89.8%,而Gemini Ultra是首个超越此标准的模型,这表明Gemma在达到Gemini和人类水平的性能上,还有很大的提升空间。

并且,Gemma模型在数学和编程的基准测试中表现尤为突出。

在通常用于评估模型分析能力的数学任务中,Gemma 模型在GSM8K和更具挑战性的 MATH基准测试上至少领先其他模型10分。

同样,在HumanEval上,它们至少领先其他开源模型6分。

Gemma甚至在MBPP上超过了专门进行代码微调的CodeLLaMA 7B模型的性能(CodeLLaMA得分为41.4%,而 Gemma 7B得分为44.4%)。

记忆评估

近期研究发现,即便是经过精心对齐的人工智能模型,也可能遭受新型对抗攻击,这种攻击能够规避现有的对齐措施。

这类攻击有可能使模型行为异常,有时甚至会导致模型重复输出它在训练过程中记住的数据。

因此,研究者专注于研究模型的「可检测记忆」能力,这被认为是评估模型记忆能力的一个上限,并已在多项研究中作为通用定义。
研究者对Gemma预训练模型进行了记忆测试。

具体来说,他们从每个数据集中随机选择了10,000篇文档,并使用文档开头的50个词元作为模型的prompt。

测试重点是精确记忆,即如果模型能够基于输入,精确地生成接下来的50token,与原文完全一致,便认为模型「记住了」这段文本。

此外,为了探测模型是否能够以改写的形式记忆信息,研究者还测试了模型的「近似记忆」能力,即允许在生成的文本和原文之间存在最多10%的编辑差距。

在图2中,是Gemma的测试结果与体量相近的PaLM和PaLM 2模型的对比。

可以发现,Gemma的记忆率明显更低(见图2左侧)。

不过,通过对整个预训练数据集的「总记忆量」进行估算,可得一个更为准确的评估结果(见图2右侧):Gemma在记忆训练数据方面的表现与PaLM相当。

个人信息的记忆化问题尤为关键。如图3所示,研究者并未发现有记忆化的敏感信息。

虽然确实发现了一些被归类为「个人信息」的数据被记忆,但这种情况发生的频率相对较低。

而且这些工具往往会产生许多误报(因为它们仅通过匹配模式而不考虑上下文),这意味着研究者发现的个人信息量可能被高估了。

总结讨论

总的来说,Gemma模型在对话、逻辑推理、数学和代码生成等多个领域,都有所提升。

在MMLU(64.3%)和MBPP(44.4%)的测试中,Gemma不仅展现了卓越的性能,还显示了开源大语言模型性能进一步提升的空间。

除了在标准测试任务上取得的先进性能,谷歌也期待与社区共同推动这一领域的发展。

Gemma从Gemini模型计划中学到了很多,包括编码、数据处理、架构设计、指令优化、基于人类反馈的强化学习以及评估方法。

同时,谷歌再次强调使用大语言模型时存在的一系列限制。

尽管在标准测试任务上表现优异,但要创建出既稳定又安全、能够可靠执行预期任务的模型,还需要进一步的研究,包括确保信息的准确性、模型的目标对齐、处理复杂逻辑推理,以及增强模型对恶意输入的抵抗力。

团队表示,正如Gemini所指出的,需要更具挑战性和鲁棒性的测试基准。

团队成员

核心贡献者:

其他贡献者:

产品经理、项目经理、执行赞助、负责人和技术负责人:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1463413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式学习-qt-Day3

嵌入式学习-qt-Day3 一、思维导图 二、作业 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳…

Transformer 架构—Encoder-Decoder

文章目录 前言 一、Encoder 家族 1. BERT 2. DistilBERT 3. RoBERTa 4. XML 5. XML-RoBERTa 6. ALBERT 7. ELECTRA 8. DeBERTa 二、Decoder 家族 1. GPT 2. GPT-2 3. CTRL 4. GPT-3 5. GPT-Neo / GPT-J-6B 三、Encoder-Decoder 家族 1. T5 2. BART 3. M2M-100 4. BigBird 前言 …

SpringBoot---集成MybatisPlus

介绍 使用SpringBoot集成MybatisPlus框架。 第一步&#xff1a;添加MybatisPlus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.4</version> </dependenc…

MIT6.S081学习——一、环境搭建、资料搜集

MIT6.S081学习——一、环境搭建、资料搜集 1、环境准备2、资料搜集2、环境搭建2.1 Linux环境准备2.2 环境搭建2.2.1 根据官网指导代码进行相关工具的安装2.2.2 下载并且编译QEMU 3、VSCode远程连接Ubuntu3.1 安装remote-ssh3.1.1 安装插件3.1.2 配置config文件 3.2 Ubuntu安装S…

springcloud:2.OpenFeign 详细讲解

OpenFeign 是一个基于 Netflix 的 Feign 库进行扩展的工具,它简化了开发人员在微服务架构中进行服务间通信的流程,使得编写和维护 RESTful API 客户端变得更加简单和高效。作为一种声明式的 HTTP 客户端,OpenFeign 提供了直观的注解驱动方式,使得开发人员可以轻松定义和调用…

Redis突现拒绝连接问题处理总结

一、问题回顾 项目突然报异常 [INFO] 2024-02-20 10:09:43.116 i.l.core.protocol.ConnectionWatchdog [171]: Reconnecting, last destination was 192.168.0.231:6379 [WARN] 2024-02-20 10:09:43.120 i.l.core.protocol.ConnectionWatchdog [151]: Cannot reconnect…

win32 汇编读文件

做了2个小程序&#xff0c;没有读成功&#xff1b;文件打开了&#xff1b; .386.model flat, stdcalloption casemap :noneinclude windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib include Comdlg32.inc includelib …

Pormise---如何解决javascript中回调的信任问题?【详解】

如果阅读有疑问的话&#xff0c;欢迎评论或私信&#xff01;&#xff01; 本人会很热心的阐述自己的想法&#xff01;谢谢&#xff01;&#xff01;&#xff01; 文章目录 回调中的信任问题回调给我们带来的烦恼&#xff1f;调用过早调用过晚调用的次数太少或太多调用回调时未能…

数据结构之链表经典算法QJ题目

目录 单链表经典算法题目1. 单链表相关经典算法OJ题&#xff1a;移除链表元素思路一&#xff1a;思路二&#xff1a; 2. 单链表相关经典算法QI题&#xff1a;链表的中间节点思路一思路二 3. 单链表相关经典算法QJ题&#xff1a;反转链表思路一思路二 4. 单链表相关经典算法QJ题…

pytest 框架自动化测试

随笔记录 目录 1. 安装 2. 安装pytest 相关插件 2.1 准备阶段 2.2 安装 2.3 验证安装成功 3. pytest测试用例的运行方式 3.1 主函数模式 3.1.1 主函数执行指定文件 3.1.2 主函数执行指定模块 3.1.3 主函数执行某个文件中的某个类、方法、函数 3.1.4 主函数执行生…

学习鸿蒙背后的价值?星河版开放如何学习?

现在是2024年&#xff0c;华为在1月18开展了鸿蒙千帆起仪式发布会。宣布了鸿蒙星河版&#xff0c;并对开发者开放申请&#xff0c;此次发布会主要是说明了&#xff0c;鸿蒙已经是全栈自研底座&#xff0c;鸿蒙星河版本的编程语言改为ArkTS/仓颉&#xff0c;内核改为鸿蒙原生内核…

操作系统虚拟内存(上)

一、虚拟内存简要 1.为什么需要虚拟内存? 如果第一个程序在 2000 的位置写入一个新的值&#xff0c;将会擦掉第二个程序存放在相同位置上的所有内容&#xff0c;所以同时运行两个程序是根本行不通的&#xff0c;这两个程序会立刻崩溃&#xff0c;所以想要在这种情况下&#…

SQL 练习题目(入门级)

今天发现了一个练习SQL的网站--牛客网。里面题目挺多的&#xff0c;按照入门、简单、中等、困难进行了分类&#xff0c;可以直接在线输入SQL语句验证是否正确&#xff0c;并且提供了测试表的创建语句&#xff0c;也可以方便自己拓展练习&#xff0c;感觉还是很不错的一个网站&a…

OpenAI 的 GPTs 提示词泄露攻击与防护实战:防御卷(一)

前面的OpenAI DevDay活动上&#xff0c;GPTs技术的亮相引起了广泛关注。随着GPTs的创建权限开放给Plus用户&#xff0c;社区里迅速涌现了各种有趣的GPT应用&#xff0c;这些都是利用了Prompt提示词的灵活性。这不仅展示了技术的创新潜力&#xff0c;也让人们开始思考如何获取他…

Java 面向对象进阶 15 接口(黑马)

案例&#xff1a; 代码&#xff1a; Animal类代码&#xff1a; public abstract class Animal {private String name;private int age;public Animal() {}public Animal(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public…

揭秘H5与小程序的测试奥秘!

最近接触了较多关于H5页面的测试&#xff0c;H5页面的测试除了业务逻辑功能测试外&#xff0c;其他部分的测试方法基本是可以通用的&#xff0c;在此对H5页面和小程序的一些通用测试方法进行总结分享给大家。 H5优势 H5可以跨平台&#xff0c;开发成本相对较低&#xff1b; H…

洛谷p1002过河卒

[NOIP2002 普及组] 过河卒 题目描述 棋盘上 A A A 点有一个过河卒&#xff0c;需要走到目标 B B B 点。卒行走的规则&#xff1a;可以向下、或者向右。同时在棋盘上 C C C 点有一个对方的马&#xff0c;该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为…

having子句

目录 having子句 having和where的区别 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 现在要求查询出每个职位的名称&#xff0c;职位的平均工资&#xff0c;但是要求显示平均工资高于 200 的职位 按照职位先进行分组&#xff0c;同…

2000-2022年各省城乡收入差距泰尔指数数据(原始数据+计算过程+结果)

2000-2022年各省城乡收入差距泰尔指数数据&#xff08;原始数据计算过程结果&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;地区、居民可支配收入&#xff08;元&#xff09;、农村家庭可支配&#xff08;元&#xff09;、城市家庭可支配&#xff08;元&a…

Java线程基础知识和使用

目录 什么是线程 Java中线程的使用 线程的实现 并运行一个线程 如何为线程命名 查看当前jvm中运行的所有线程 线程池的基本使用 线程休眠 设置线程的优先级&#xff08;都仅供参考&#xff09; 线程的插队 线程的中断 线程的分类 线程的状态 什么是线程 线程是操…