以下是关于 AI 大模型常用参数的相关内容:
encoder-only:这些模型通常适用于可以自然语言理解任务,例如分类和情感分析.最知名的代表模型是BERTencoder-decoder:此类模型同时结合了Transformer架构的encoder和decoder来理解和生成内容。该架构的一些用例包括翻译和摘要。encoder-decoder的代表是google的T5decoder-only:此类模型更擅长自然语言生成任务。典型使用包括故事写作和博客生成。这也是我们现在所熟知的众多AI助手的结构我们目前耳熟能详的AI助手基本都来自左侧的灰色分支,当然也包括ChatGPT。这些架构都是根据谷歌2017年发布的论文“attention is all you need”中提出的transformer衍生而来的,在transformer中,包括Encoder,Decoder两个结构目前的大型语言模型就是右侧只使用Decoder的Decoder-only架构的模型大模型又大在哪呢?第一,大模型的预训练数据非常大,这些数据往往来自于互联网上,包括论文,代码,以及可进行爬取的公开网页等等,一般来说,现在最先进的大模型一般都是用TB级别的数据进行预训练。第二,参数非常多,Open在2020年发布的GPT-3就已经达到170B的参数在GPT3中,模型可以根据用户输入的任务描述,或给出详细的例子,完成任务但这与我们熟知的ChatGPT仍然有着很大的差距,使用ChatGPT只需要像和人类一样对话,就可以完成任务。除了形式上的不同之外,还有一个更加重要的差距,那就是安全性上的差别。
了解感知器和单神经元的原理是为了后续更好的了解“基于深度神经网络机器学习”的基础。我们经常所听到的大模型有几百亿几千亿的参数,这里的参数其实就是神经网络的输入权重和输出阈值的总和。我们假定一个神经元有9个输入权重,和1个输出阈值,那么就可以说该神经元有10个参数。当我们有100亿个这样的神经元时,此时就可以说我们的神经网络模型有1000亿个参数,也就是所谓的千亿级参数的大模型。是不是贼啦简单?原来各种官方一直提到的百亿,千亿参数的大模型,原来是这个意思呢。此处我们再做一点小小的延伸~我们上述所提到的感知机(单神经元),通过一定的学习算法,可以将这个单神经元具备一定简单的智能效果,比如识别单个数字。那么你想象一下,我们单个神经元通过一定的学习算法,可以出现简单的智能效果,此时如果有100亿个神经元呢?100亿个神经元合在一起所具备的智能效果,这将是一个多么强智能的效果存在。每个神经元都只需要记住自己的一点点规则,可以具备识别出一个非常小的一个能力,此时将这个神经元的数量扩大到100亿,1000亿,这就会出现我们现在所经常听到的群体智能,即智能涌现!“智能涌现”在自然界非常典型的案例就是蚂蚁,单只蚂蚁是非常简单的智能生物,但是一旦当一群蚂蚁聚集的时候,就会建造出非常复杂的蚁巢结构。(感兴趣的可以自行搜下)而我们人脑呢?根据科学的统计是人脑中约有1000亿个神经元,这些庞大的神经元构成了非常复杂的神经网络,这也是人脑智能的基础。所以知道为什么有时候明明也没运动,但是上班一天还是要吃很多食物了吗?因为你庞大神经元的运转也是需要消耗能量的呀。AI消耗电力补充能量,而我们消耗食物来补充能量(奇奇怪怪的知识又增加了🤔)
在LLM中,Token是输入的基本单元由于在大模型的参数非常多,比如在GPT-2中,有1.5B参数,每个参数用float32表示,那么需要的内存大小为4 bytes*1,500,000,000=6GB,更先进的模型如LLAMA有65B参数,那么需要的内存就需要260G,这还是在不考虑词汇表的情况下。因此在进行模型实际部署时,会进行模型的压缩。而且,在训练LLM中,CPU与内存之间的传输速度往往是系统的瓶颈,核心数反而不是大问题,因此减小内存使用是首要优化点。使用内存占用更小的数据类型是一种直接的方式,比如16位的浮点数就可以直接将内存使用减倍。目前有几种相互竞争的16位标准,但英伟达在其最新一代硬件中引入了对bfloat16的支持,|Format|Significand|Exponent||-|-|-||bfloat16|8 bits|8 bits||float16|11 bits|5 bits||float32|24 bits|8 bits|