OpenELM本身并不是显卡或硬件技术,而是一个由苹果公司开源的语言模型系列。它包含多个模型(如OpenELM-270M、OpenELM-450M、OpenELM-1.1B和OpenELM-3B)及其训练和推理框架。以下是OpenELM模型所采用的一些关键技术:
模型架构
- Decoder-only架构:仅使用解码器部分,简化了模型结构。
- 逐层缩放策略:在Transformer模型的每一层中高效分配参数,提高了模型的准确性。
- 非均匀参数分配:每个Transformer层具有不同的配置(如注意力头数量和前馈网络维度),使得参数在各层之间分配更高效。
技术细节
- 预归一化:在全连接层中不使用可学习的偏置参数,使用RMSNorm进行预归一化。
- 位置编码:使用旋转位置嵌入(ROPE)来编码位置信息。
- 注意力机制:使用分组查询注意力(GQA)代替多头注意力(MHA)。
- 前馈网络:使用SwiGLU FFN替换FFN。
- Flash Attention:使用Flash Attention来计算缩放点积注意力。
- 分词器:使用与LLama相同的分词器。
预训练数据
- 主要使用公开数据集,如RefinedWeb、PILE、RedPajama和Dolma v1.6,总计约1.8万亿个tokens。
- 采用实时过滤和标记文本数据,支持多种tokenizer。
训练和优化技术
- 使用AdamW优化器,结合cosine学习率调度。
- 预训练过程中使用公开可用的数据集,并在多个评估框架中进行评估和优化。
- 指令调优和参数高效微调技术,以提高模型在不同任务上的表现。
这些技术和方法共同作用,使得OpenELM在多个评估基准中表现出优异的性能,并且在资源有限的情况下(如移动设备)也能高效运行。
希望以上信息可以帮助您更好的了解OpenELM模型。