有朋友问,BERT等大模型的参数量怎么计算的?这个问题,李沐在BERT那篇论文中讲过,主要包括几部分。1、词嵌入:token数量乘以token表示的向量长度,就是 VH;2、注意力计算没有参数,只计算多头注意力的投影矩阵,三个输入的权重矩阵,每个矩阵参数= H(H/头数)头数= HH,输出的权重矩阵参数= HH,共是4HH;3、MLP部分,隐藏层为4H,输入输出层都为H,就是8HH。其他的一些参数量相对较少,大概的参数量就约等于Transformer块数(12HH)+VH。(下图截取自李沐讲论文之BERT篇)
比如BERT的基础模型,H=768,Transformer块数是12块,V大概是3万,这样参数量就是一亿多。对于著名的GPT3,Transformer块数是96块,H=12288,这样参数量121228812288*96,大概就是1750亿。
这个问题不复杂,但是接着想到,H为什么要取那么大。对于BERT,Token的总数量大概是三万,三万的数量不用20bit就可以表示,为什么Token嵌入表示需要使用768维度的向量,并且,模型越大,Token嵌入表示的向量越长,这是为什么?
想到了这个问题,好像就进一步理解了Transformer架构的内涵。主要是为了使Token嵌入表示能够充分地捕捉到全局的语义信息。注意力机制的本质,我理解,就是信息汇聚,在一个长的文本序列中,通过不断的注意力汇聚,每一个Token除了本身的语义信息,还不断获得整个文本的信息,最后获得了文本序列中与自己相关的全部的语义信息,这样随着模型规模增大,语义信息汇聚的增加,Token嵌入表示就需要使用更高维度的向量表示。换句话说,经过Transformer编码器后的每个Token,已经不是一个单独的Token,而是拥有了过去、现在和未来的全局文本语义信息,能够理解过去,也能够预测未来。
然后继续联想到,大模型的语言,形成了与人类语言不同的范式,有点像蒋特德的科幻小说《你一生的故事》中的外星人的语言。想到这,就觉得,LLM真是太有意思了。
关于《你一生的故事》,摘录百度百科的介绍:
《你一生的故事》是一篇少见的以语言学为核心的科幻小说,荣获1998年的星云奖和斯特金奖。对于那些热衷于描写地球人与外星人交往的科幻作家来说,智慧生物之间交流所必需的语言本是他们必须要解决的首要问题。但是很显然,绝大多数作家都狡猾地回避了这个问题。在他们的故事中,语言障碍总是被一笔带过:故事开始不久,他们就让地球科学家拿着自动翻译器出现在了外星人面前。
从语言学角度切入描写两种智慧生物的交流是对想像力的挑战。科幻有史百余年来,只有特德·蒋在应对这种挑战中,取得了令人瞩目的成就。《你一生的故事》在将语言学的魅力表现到极致的同时,更奠定了特德·蒋科幻名家的地位。《你一生的故事》中的外星人被称为“七肢桶”。七肢桶文字,颇有几分像中国的象形文字,所不同的只是,七肢桶不是靠一个个具有独立意义的字词来表意,而是将所有需要表达的语意都统一在一个字内。语意越是繁复,这个字就越是复杂。
更奇妙的是七肢桶语言背后的感知世界的方式。那种方式与我们完全不同。我们依照前后顺序感知世界,将各个事件之间的关系理解为因与果;而“七肢桶”则同时感知所有事件,既可以先看“因”,也可以先看“果”。这种感知世界的方式深深影响了故事的主人公(她受政府委托掌握七肢桶语言的过程,就是她感知世界的方式发生改变的过程),她因而洞悉了自己,以及她那个暂时还不存在的女儿的一生。虽然我们很明白这意味着什么,但是,当读到“然后,突然间,我已经在太平间。一个勤杂工掀开罩单,露出你的脸。我看见的是二十五岁时的你(她的女儿)”时,那种惊悚,还是让我们猝不及防。小说独具匠心地采用了第一人称视角与第二人称视角交替推进的手法,字里行间充溢着科幻小说特有的奇异感。读者在感受七肢桶语言独特魅力的同时,更感受到一种缘于宿命的忧伤:那忧伤融和着诗一般的意象,最终凝聚成女主人公的感叹——“一瞥之下,过去与未来轰然同时并至,我的意识成为长达半个世纪的灰烬,时间未至已成灰。我的余生尽在其中。”