Fork me on GitHub

谷歌终于开源大模型啦!!!

以下文章来源于 https://zhuanlan.zhihu.com/p/684117352

一、前言

谷歌面对Open AI和Meta双重夹击下,也是放弃了完全闭源的路线,开始走开源和闭源并行道路。之前的palm;palm2;gemini系列可以在谷歌bard平台上使用,Gemini刚出来的时候宣传的过于逆天,说媲美gpt4的存在,但是我在使用Gemini Pro模型的时候发现他对于指令的遵循稍有问题还有也存在一些幻觉现象。谷歌Gemini的多模态和我理解的多模态不太一样,他是能上传图片理解,而不是通过文本生图,相当于把图片embedding进大模型处理。

Gemma只开放了7b和2b的模型尺寸,并提供预训练和微调的检查点,在 18 个基于文本的任务中,在 11 个的任务上优于类似大小的开源大模型。 这种尺寸的话主要是为了提供给普通的开发者体验下。这种尺寸的大模型效果也没办法来商用。
开源大模型对比


二、Gemma细节

1、模型架构

Gemma使用了和Gemini类似的架构。

  • Multi-Query Attention(注意力优化)
  • RoPE Embeddings(位置编码)
  • GeGLU Activations(激活函数)
  • Normalizer Location(使用RMSNorm)

模型参数细节7b和2b尺寸参数对比

2、训练硬件

谷歌使用TPUv5e训练Gemma模型;TPUv5e部署在256个芯片组(pods)中,配置为16 x 16芯片的二维环面(torus)。对于7B模型,在16个芯片组(pods)上训练模型,总计使用4096个TPUv5e。在2个芯片组(pods)上预训练2B模型,总计使用512个TPUv5e。在一个芯片组(pod)内,使用16路模型分片和16路数据复制进行7B模型的训练。对于2B模型,仅使用256路数据复制。优化器状态进一步使用与ZeRO-3类似的技术进行分片。在芯片组(pod)之外,通过数据中心网络执行数据副本减少,采用(Barham等人,2022年)的Pathways方法。

与Gemini一样,利用Jax(Roerts等人,2023年)和Pathways(Barham等人,2022年)的"单一控制器"编程范式,通过使单个Python进程能够协调整个训练运行,简化了开发过程;还利用GSPMD分区器(Xu等人,2021年)进行训练步骤的计算,以及MegaScale XLA编译器(XLA,2019年)。

3、预训练数据

Gemma 2B和7B分别在主要来自网页文档、数学和代码的英语数据上进行了2T和6T toekn的训练。与Gemini不同,这些模型不是多模态的,也没有针对多语言任务的最先进性能进行训练。

为了保持兼容性,谷歌使用了Gemini的一个SentencePiece分词器(Kudo和Richardson,2018)的子集。它分割数字,不删除额外的空格,并依赖于字节级编码来处理未知标记,这遵循了(Chowdhery等人,2022年)和(Gemini团队,2023年)使用的技术。词汇表的大小为256k个token。

对预训练数据集进行过滤,以减少不希望或不安全的言论的风险,并过滤掉某些个人信息和其他敏感数据。这包括使用基于启发式和基于模型的分类器来删除有害或低质量的内容。此外,从预训练数据混合体中过滤掉所有评估集,运行有针对性的污染分析以检查评估集泄漏,并通过最小化敏感输出的扩散来降低复述的风险。

最终的数据混合体是通过在2B和7B模型上进行一系列消融实验确定的。与(Gemini团队,2023年)所倡导的方法类似,分阶段进行训练,以在整个训练过程中改变语料库混合体,以增加相关、高质量数据在训练结束时的权重。

4、指示学习训练(SFT)

对Gemma 2B和7B进行有监督的微调(SFT),混合使用仅文本、仅英语的合成和人类生成的提示-响应对,并使用从人类反馈中进行强化学习(RLHF)的方法,其中奖励模型是在标记的仅英语偏好数据上训练的,而策略则是基于一组高质量的提示。谷歌发现,这两个阶段对于提高模型输出在下游自动评估和人类偏好评估中的性能都很重要。

根据基于LM的并排评估选择了用于有监督微调的数据混合体。给定一组保留的提示,从测试模型中生成响应,从基线模型中生成相同提示的响应,随机混合它们,然后请一个更大、功能更强大的模型表达两个响应之间的偏好。构建不同的提示集以突出特定的能力,如指令遵循、事实性、创造性和安全性。使用的不同自动LM-based评估员采用了一系列技术,如链式思维提示和评分标准和宪法的使用,以与人类偏好保持一致。

在使用合成数据时,对其进行多阶段过滤,删除显示某些个人信息、不安全或有毒模型输出、错误的自我识别数据或重复示例的示例。继Gemini之后,发现包含鼓励更好上下文归因、谨慎和拒绝以减少幻觉的子集可以提高多个事实性指标的性能,而不会降低模型在其他指标上的性能。最终的数据混合体和有监督的微调配方(包括调整后的超参数)的选择依据是提高有用性,同时最小化与安全性和幻觉相关的模型危害。

指令调整模型是使用特定的格式化程序进行训练的,该程序在训练和推理时都为所有指令调整示例添加了额外的信息。

它有两个目的:

1)指示对话中的角色,如用户角色;

2)在对话中划分回合,尤其是在多回合对话中。为此,分词器中保留了特殊的控制令牌。虽然可以在没有格式化程序的情况下获得连贯的生成,但对于模型来说,这将是超出分布的,并且很可能会产生更差的生成。
用于Gemma模型的SFT和RLHF的相关格式化控制token。带有用户和模型控制令牌的示例对话


5、人工反馈强化学习(RLHF)

进一步使用RLHF对经过有监督微调的模型进行了微调。从人类评分者那里收集了偏好对,并在Bradley-Terry模型下训练了一个奖励函数,类似于Gemini。策略是使用REINFORCE的一个变体来优化这个奖励函数,同时向初始调整后的模型添加一个Kullback-Leibler正则化项。与SFT阶段类似,为了调整超参数并额外减轻奖励黑客攻击,依赖于一个高容量模型作为自动评分器,并与基线模型进行了并排比较。

6、评估

人类便好评估

除了对微调后的模型运行标准的学术基准测试外,还将最终的发布候选模型发送给人类评估研究,以与Mistral v0.2 7B Instruct模型进行比较。

在一组大约1000个提示的保留集合中,这些提示旨在要求模型遵循创意写作任务、编码和遵循指令等方面的指令,Gemma 7B IT的胜率为51.7%,Gemma 2B IT的胜率为41.6%,超过了Mistral v0.2 7B Instruct。

在一组大约400个提示的保留集合中,这些提示旨在测试基本的安全协议,Gemma 7B IT的胜率为58%,而Gemma 2B IT的胜率为56.5%。
gemma指令遵循和安全性指标报告

自动化基准测试

测量了Gemma模型在多个领域上的性能,包括物理推理、社会推理、问答、编码、数学、常识推、语言建、阅读理解 等。对于大多数自动化基准测试,使用了与Gemini相同的评估方法。特别是对于那些与Mistral进行比较的性能尽可能地复制了Mistral技术报告中的方法。这些特定的基准测试包括:ARC、CommonsenseQ、Big Bench Hard和AGI Eval(仅限英语)。由于许可限制,无法在任何评估上运行LLaMA-2,并且仅引用之前报告过的指标。

将Gemma 2B和7B模型与一系列学术基准上的几个外部开源(OSS)LLM进行了比较,在MMLU上,Gemma 7B在相同或更小规模的开源替代方案中表现最佳;它还优于几个更大的模型,包括LLaMA2 13B。然而,基准作者认为人类专家的表现为89.8%;由于Gemini Ultra是第一个超过这一阈值的模型,因此还有很大的改进空间,以实现Gemini和人类水平的性能。

Gemma模型在数学和编码基准上表现出特别强大的性能。在数学任务上,这些任务通常用于评估模型的通用分析能力,Gemma模型在GSM8K和更难的MATH基准上至少比其他模型高出10个点。同样,它们在HumanEval上至少比其他开源模型高出6个点。
学术基准测试结果,与规模相似、在通用英文文本数据上训练的公开可用模型进行比较。HuggingFace H6 benchmark

记忆能力评估

最近的研究表明,对齐模型可能容易受到新的对抗性攻击,这些攻击可以绕过。这些攻击可能导致模型发散,并在过程中吐出记忆的训练数据。专注于可发现的记忆,它作为模型记忆的合理上限,并在几项研究中作为通用定义使用。使用与Anil等人相同的方法论来测试Gemma预训练模型的记忆。从每个语料库中抽取10000份文档,并使用前50个标记作为模型的提示。主要关注精确记忆,如果模型生成的后续50个标记与文本中的实际延续部分完全匹配,就将文本分类为已记忆。然而,为了更好地捕捉潜在的改写记忆,使用10%的编辑距离阈值来包括近似记忆。
比较平均记忆率


逐字记忆

在评估PaLM 2与PaLM的逐字记忆时,是在它们训练语料库的共享子集上进行的。然而,Gemma预训练数据与PaLM模型之间的重叠更少,因此使用相同的方法论,我们观察到更低的记忆率。相反,发现估计整个预训练数据集上的"总记忆"提供了更可靠的估计,其中发现Gemma以与PaLM相当的比率记忆训练数据。

安全性评估


在测量个人和敏感数据的记忆率时,没有发现任何敏感数据被记忆

个人数据可能更加重要的是,模型可能会记忆个人数据。为了确保Gemma预训练模型的安全性和可靠性,我们使用了自动化技术来过滤训练集中的某些个人信息和其他敏感数据。

为了识别可能的个人数据出现情况,使用了Google Cloud Data Loss Prevention(DLP)工具。该工具根据多个个人数据类别(例如,姓名、电子邮件等)输出三个严重级别。将最高严重级别分类为"敏感",其余两个级别则简单地分类为"个人"。然后,测量记忆输出中包含的敏感数据或个人数据的数量。
精确记忆和近似记忆对比在安全性的学术基准测试结果


三、参考文献

1、https://storage.googleapis.com/deepmind-media/gemma/gemma-report.pdf


本文地址:https://www.6aiq.com/article/1709174420780
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出