谷歌开源Gemma Scope,更好解释大模型工作原理
随着多模态大模型的出现,内部神经网络参数少则几百亿,多则上千亿甚至过万亿,使得开发人员很难控制其输出内容经常会出现各种“幻觉”,就是一本正经的胡说八道。
虽然稀疏自编码器(简称“SAE”)是解决这些难题的主流方法,可以学习神经网络潜在表示的稀疏分解,将其分解为可解释的词、短语等特征,能有效解释大模型的工作原理与机制。但普通的SAE质量难以保证,并且训练成本非常高。
所以,谷歌DeepMind针对其开源的Gemma 2模型训练了特定的SAE——Gemma Scope。
Gemma Scope开源地址:https://huggingface.co/google/gemma-scope
Gemma 2 2B开源地址:https://huggingface.co/collections/google/gemma-2-2b-release-66a20f3796a2ff2a7c76f98f
Gemma-2-9b开源地址:https://huggingface.co/google/gemma-2-9b/tree/main
SAE是一种无监督学习方法,能帮助我们理解大模型内部的表示,并且这些特征往往与人类可理解的概念相关联。例如,在处理文本数据时,SAE能学会识别“狗”这个词背后的抽象概念,而不仅仅是字面上的字符组合。
这就好比在一堆混乱的线条中,SAE能帮我们找到那些构成“狗”的特征线条,能让我们更直观地理解模型是如何认识和生成“狗”这个字的。
与其他SAE相比,Gemma Scope通过强制学习过程中的稀疏性,使得模型的内部表示中只有少数几个关键特征被激活,而其余特征则保持为零。这种稀疏性不仅减少了模型的复杂度,还提高了其可解释性,让我们能够更容易地识别和理解模型决策背后的关键因素。
Gemma Scope另外一大技术特点是其规模和全面性,研究人员在训练的过程涉使用了海量的文本数据,每个SAE都是在4—160亿个文本标记上进行训练覆盖了Gemma 2模型的所有层和子层。学习了超过3000万个特征,一共训练了超过400个SAE。
此外,Gemma Scope在训练SAE时采用了一种特殊的激活函数JumpReLU。这种激活函数专为SAE设计,通过引入一个可学习的阈值来促进稀疏性,同时保持特征学习的效率和质量。
传统ReLU函数的特点是在输入小于零时输出零,而在输入大于零时保持线性。而JumpReLU在此基础上引入了一个非线性的跳跃阈值,允许神经元在达到一定阈值后产生较大的跳跃响应,而不是简单的线性响应。
这种跳跃响应机制增强了自编码器对于关键稀疏特征的敏感度,使得模型能够更加精准地捕捉那些在数据集中出现频率低但信息含量高的特征。
此外,研究人员在训练Gemma Scope的过程中,使用了大量优质数据来确保SAE的有效性。例如,在数据方面使用了与Gemma预训练文本数据相同分布的文本,来训练Gemma 2模型的激活。
在参数设置上,精心调整了学习率、带宽、稀疏性系数等参数,以提升训练效果。在基础设施方面,使用了TPUv3、TPUv5p等加速器,并优化了数据管道,以提高训练效率。
谷歌DeepMind表示,希望通过开源的Gemma Scope可以帮助开发人员更好地利用和了解SAE技术,有助于扩展到更多、更大的模型上,从而用在解释思维链等更复杂的功能上,帮助更大参数的大模型解决幻觉、越狱攻击等难题。
本文转自 AIGC开放社区 ,作者:AIGC开放社区