大模型中的参数主要指模型中的权重(weight)与偏置(bias)。例如,GPT-3 拥有 1750 亿参数,其中权重数量达到了这一量级,而词汇表 token 数只有 5 万左右。在 LLM 中,由于模型参数非常多,如 GPT-2 有 1.5B 参数,每个参数用 float32 表示,所需内存大小为 4 bytes*1,500,000,000 = 6GB,更先进的模型如 LLAMA 有 65B 参数,所需内存就需要 260G(这还是在不考虑词汇表的情况下)。因此在进行模型实际部署时,会进行模型的压缩。
数字化的好处是便于计算机处理。但为了让计算机理解Token之间的联系,还需要把Token表示成稠密矩阵向量,这个过程称之为embedding([3]),常见的算法有:基于统计Word2Vec,通过上下文统计信息学习词向量GloVe,基于词共现统计信息学习词向量基于深度网络CNN,使用卷积网络获得图像或文本向量RNN/LSTM,利用序列模型获得文本向量基于神经网络BERT,基于Transformer和掩码语言建模(Masked LM)进行词向量预训练Doc2Vec,使用神经网络获得文本序列的向量以Transform为代表的大模型采用自注意力(Self-attention)机制来学习不同token之间的依赖关系,生成高质量embedding。大模型的“大”,指的是用于表达token之间关系的参数多,主要是指模型中的权重(weight)与偏置(bias),例如GPT-3拥有1750亿参数,其中权重数量达到了这一量级,而词汇表token数只有5万左右。参考:[How does an LLM"parameter"relate to a"weight"in a neural network?](https://datascience.stackexchange.com/questions/120764/how-does-an-llm-parameter-relate-to-a-weight-in-a-neural-network"How does an LLM"parameter"relate to a"weight"in a neural network?")
在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|
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只需要像和人类一样对话,就可以完成任务。除了形式上的不同之外,还有一个更加重要的差距,那就是安全性上的差别。