国内网站空间 linux,电子工程专业大学排名,整站seo包年费用,wordpress wiki 模版从ChatGPT火爆出圈到现在纷纷开源的大语言模型#xff0c;众多出入门的学习者以及跃跃欲试的公司不得不面临的是开源大语言模型的选型问题。 基于开源商业许可的开源大语言模型可以极大的节省成本和加速业务迭代。 当前#xff08;2023年11月17日)开源的大语言模型如下#…从ChatGPT火爆出圈到现在纷纷开源的大语言模型众多出入门的学习者以及跃跃欲试的公司不得不面临的是开源大语言模型的选型问题。 基于开源商业许可的开源大语言模型可以极大的节省成本和加速业务迭代。 当前2023年11月17日)开源的大语言模型如下
模型所属公司发布时间开放模型许可词表大小语料Huggingface下载量模型结构位置编码激活函数隐变量维度dimension自注意力头的个数n heads层数n layers输入序列长度sequence length训练时长LLaMA-2Meta2023年8月7B 13B 70B允许商用月活超7亿需向Meta申请许可320002.0T70B-chat下载量1.69M变种还有若干Casual decoderRoPESwiGLUPre RMS Norm7B 4096, 13B 5120, 70B 81927B 32, 13B 40, 70B 647B 32, 13B 40, 70B 804096A100 7B 184320, 13B 368640, 70B 1720320baichuan-2百川智能2023年9月6日7B 13B base/chat代码Apache 2.0模型非商用1256962.6T1-7B 95.5k2-13B 40.8k, 2-7B 20.5kPrefix decoderRoPEGeGLUPost Deep Norm7B 4096, 13B 51207B 32, 13B 407B 32, 13B 404096ChatGLM3智普2023年10月6B填问卷登记后允许免费商业使用650241.5T左右中英8kCasual decoderRoPESwiGLUPost Deep Norm409632288192千问阿里2023年8月7B 14B允许商用超过1亿用户机构需申请1519367B 2.4T14B 3.0T25kCasual decoderRoPESwiGLUPre Layer Norm409632328192BloomBigScience2022年7月560M 1.1B 1.7B 3B 7.1B允许商用250880366B125MCasual decoderALiBiGeLUPre Layer Norm409632302048
LLaMA-2的词表是32k在中英文上的平均token数最多对中英文分词比较碎比较细粒度。尤其在中文上平均token数高达1.45这意味着大概率会将中文字符切分为2个以上的token。ChatGLM3-6B是平衡中英文分词效果最好的tokenizer。由于词表比较大中文处理时间也有增加。BLOOM虽然是词表最大的但由于是多语种的在中英文上分词效率与ChatGLM-6B基本相当。
还有很多其他的开源中英大语言模型但基本都有Llama的影子有些是直接扩充Lllama的词汇再用新的数据集重新训练这些大语言模型包括Chinese-LLaMA-Alpaca-2、OpenChineseLLaMA、Panda、Robin (罗宾)、Fengshenbang-LM等这里就不一一列出了。
和信息大爆炸一样模型也是呈现大爆炸的态势如何选择一个合适自己/公司业务场景的基座大模型就显得十分重要模型选择的好至于训练方法和一些训练技巧以及超参设置都不那么重要相对而言数据工程确是相对重要的。一个模型的选择需要结合自身的目的和资源决定。
从模型到落地涉及到方方面面的东西相对而言模型公司也注意到了所以开源模型也会附带一些Agent等支持。选择模型第一要考虑的是license问题如果是学习目的那么几乎所有开源的大语言模型都可以选择结合算力和内存资源选择合适参数量的模型即可如果是蹭免费GPU的建议选择7B及以下的模型参数。
如果是商用目的的建议选择70B及以上的模型个别很窄的垂直领域也可以考虑30B左右的甚至是7B的参数如果是端上智能考虑7B参数量。
10B以内的中英模型建议选择chatglm3-6B生态工具支持也挺好性能在10B里中英文很不错上下文长度基座有8k长上下文大32k)以及llama-2的变种LlaMA-2生态很好工具很多模型。算力有限的学生建议选择Bloom 1.1B模型。
chatglm和LlaMA-2在模型有些差异关于mask和norm的差异性区别如下。
transformer中的mask机制
mask机制是用于Transformer模型self-attention机制中的技术用以控制不同token之间的注意力交互。有两种类型的maskpadding mask和sequence mask。
Padding mask填充掩码在自注意力机制中句子中的所有单词都会参与计算。但是在实际的句子中往往会存在填充符用来填充句子长度不够的情况。Padding mask就是将这些填充符对应的位置标记为0以便在计算中将这些位置的单词忽略掉。Sequence mask序列掩码sequence mask用于在Decoder端的self-attention中以保证在生成序列时不会将未来的信息泄露给当前位置的单词。
Norm层 post layer norm。在原始的transformer中layer normalization是放在残差连接之后的称为post LN。使用Post LN的深层transformer模型容易出现训练不稳定的问题。post LN随着transformer层数的加深梯度范数逐渐增大导致了训练的不稳定性。 pre layer norm。将layer norm放在残差连接的过程中self-attention或FFN块之前称为“Pre LN”。Pre layer norm在每个transformer层的梯度范数近似相等有利于提升训练稳定性但缺点是pre LN可能会轻微影响transformer模型的性能为了提升训练稳定性GPT3、PaLM、BLOOM、OPT等大语言模型都采用了pre layer norm。 LayerNormLayerNorm对每一层的所有激活函数进行标准化使用它们的均值和方差来重新定位和调整激活函数。其公式如下 x − μ σ ⋅ γ β , μ 1 d ∑ i 1 d x i , σ 1 d ∑ i 1 d ( x i − μ ) 2 \frac{\mathbf x -\mu}{\sqrt{\sigma}} \cdot \gamma \beta, \mu\frac{1}{d} \sum_{i1}^dx_i, \sigma\sqrt{\frac{1}{d}\sum_{i1}^{d}(x_i-\mu)^2} σ x−μ⋅γβ,μd1i1∑dxi,σd1i1∑d(xi−μ)2 RMSNormRMSNorm通过仅使用激活函数的均方根来重新调整激活从而提高了训练速度。 x R M S ( x ) ⋅ γ , R M S ( x ) 1 d ∑ i 1 d x i 2 \frac{\mathbf x}{RMS(\mathbf x)} \cdot \gamma, RMS(\mathbf x)\sqrt{\frac{1}{d}\sum_{i1}^dx_i^2} RMS(x)x⋅γ,RMS(x)d1i1∑dxi2 DeepNorm为了进一步稳定深度Transformer的训练Microsoft推出了DeepNorm。这是一个创新的方法它不仅用作标准化还作为残差连接。有了DeepNorm的帮助我们现在可以轻松训练高达1000层的Transformer模型同时保持稳定性和高性能。其中GLM-130B和ChatGLM就是采用了这种技术的代表。其公式如下其中SublayerSublayer是FFN或Self-Attention模块。 L a y e r N o r m ( α ⋅ x S u b l a y e r ( x ) ) LayerNorm(\alpha\cdot \mathbf xSublayer(\mathbf x)) LayerNorm(α⋅xSublayer(x))