OpenELM是Apple最新發布的一系列高效開源語言模型,涵蓋了不同參數規模的版本,包括OpenELM-270M、OpenELM-450M、OpenELM-1_1B和OpenELM-3B。該系列模型采用創新的層間縮放策略,實現了參數的非均勻分配,從而提升了模型的準確性與效率。OpenELM在多個自然語言處理任務中表現出色,并且其代碼和預訓練模型權重均已開放,旨在推動開放研究和社區的發展。
OpenELM是什么
OpenELM是Apple公司最新推出的高效開源語言模型系列,包含OpenELM-270M、OpenELM-450M、OpenELM-1_1B和OpenELM-3B等多個版本,提供預訓練和指令微調兩種選擇。該模型運用層間縮放策略,在Transformer架構的每一層中實現參數的非均勻分配,以增強模型的準確度和效率。OpenELM在公共數據集上進行了預訓練,并在多個自然語言處理任務中展現出卓越的性能。其代碼、預訓練模型權重及訓練和評估流程均已開放,旨在促進開放研究與社區的進一步發展。
OpenELM的基本信息
- 參數規模:OpenELM系列共包含八個模型,其中四個為預訓練版本,四個為指令微調版本,參數規模從2.7億到30億不等(270M、450M、1.1B和3B)。
- 技術架構:OpenELM基于Transformer架構,采用層間縮放策略,通過調整注意力頭數和前饋網絡的乘數,實現參數的非均勻分配。該模型使用分組查詢注意力(Grouped Query Attention,GQA)替代傳統的多頭注意力(Multi-Head Attention,MHA),并選用SwiGLU激活函數代替傳統的ReLU,同時采用RMSNorm作為歸一化層。
- 預訓練數據:OpenELM使用多個公共數據集進行預訓練,包括RefinedWeb、去重的PILE、RedPajama的子集以及Dolma v1.6的子集,總計約1.8萬億個token。
- 開源許可:OpenELM的代碼、預訓練模型權重和訓練指南均在開放源代碼許可證下發布,Apple還提供了將模型轉換為MLX庫的代碼,以支持在Apple設備上的推理和微調。
OpenELM的官網入口
- arXiv研究論文:https://arxiv.org/abs/2404.14619
- GitHub模型權重和訓練配置:https://github.com/apple/corenet
- 指令微調版模型Hugging Face地址:https://huggingface.co/collections/apple/openelm-instruct-models-6619ad295d7ae9f868b759ca
- 預訓練版模型Hugging Face地址:https://huggingface.co/collections/apple/openelm-pretrained-models-6619ac6ca12a10bd0d0df89e
OpenELM的技術架構
- Transformer架構:OpenELM采用僅解碼器的Transformer模型架構,廣泛應用于自然語言處理,特別適合序列數據的處理。
- 層間縮放(Layer-wise Scaling):通過層間縮放技術,OpenELM有效分配每一層的參數,早期層使用較小的注意力和前饋網絡維度,而后期層則逐漸增大這些維度。
- 分組查詢注意力(Grouped Query Attention,GQA):GQA是一種改進的注意力機制,取代了傳統的多頭注意力,旨在提升模型處理長距離依賴的能力。
- RMSNorm歸一化:OpenELM采用RMSNorm作為歸一化層,幫助穩定訓練過程。
- SwiGLU激活函數:在前饋網絡中,OpenELM使用SwiGLU激活函數,一種門控激活函數,有助于捕捉復雜模式。
- RoPE位置編碼:OpenELM使用旋轉位置編碼(Rotary Positional Embedding,RoPE),有效處理序列中元素的順序信息。
- Flash注意力:在計算縮放點積注意力時,OpenELM采用Flash注意力,提供快速且內存高效的注意力計算。
OpenELM的性能表現
研究人員將OpenELM與PyThia、Cerebras-GPT、TinyLlama、OpenLM、MobiLlama和OLMo等模型進行了比較。在相似的模型規模下,OpenELM在ARC、BoolQ、HellaSwag、PIQA、SciQ和WinoGrande等主流任務測試中展現出更高的準確性。特別是,相較于OLMo模型,OpenELM在參數數量和預訓練數據更少的情況下,依然保持較高的準確率。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
相關文章
暫無評論...