最强MoE完全开源模型发布啦~

2024-09-05 07:04

本文主要是介绍最强MoE完全开源模型发布啦~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

366c3524ce604dd00c5a2a704090bb4f.png

这篇文章介绍了OLMOE(Open Mixture-of-Experts Language Models)系列模型,这是一款开源的稀疏混合专家模型。OLMOE-1B-7B拥有70亿参数,但每个输入令牌仅使用10亿参数。该模型在5万亿令牌上进行预训练,并进一步适应以创建OLMOE-1B-7B-INSTRUCT。这些模型在相似活跃参数的模型中表现最佳,甚至超越了更大的模型,如Llama2-13B-Chat和DeepSeekMoE-16B。文章还展示了在MoE训练上的各种实验,分析了模型中的路由,显示了高度专业化,并开源了工作的所有方面:模型权重、训练数据、代码和日志。

论文:OLMoE: Open Mixture-of-Experts Language Models

地址:https://arxiv.org/pdf/2409.02060

一、研究背景

  1. 提出OLMoE:一种完全开放且最先进的语言模型,利用稀疏的MoE(Mixture-of-Experts)。OLMOE-1B-7B模型在相似活跃参数数量的情况下,表现优于所有可用的模型,甚至超过了更大的模型如Llama2-13B-Chat和DeepSeekMoE-16B。

  2. 研究难点:MoE模型需要在每层有多个专家,但每次只激活其中的一部分,这使得MoE在训练和推理效率上显著优于密集模型。然而,现有的MoE模型大多是闭源的,缺乏训练数据、代码和训练方法的开放资源,这限制了研究的进展和开源MoE模型的发展。

  3. 相关工作:之前的研究表明,MoE模型在计算效率和参数数量上有显著优势,但大多数MoE模型仍然是闭源的。已有的开源MoE模型如OpenMoE的性能有限,无法与闭源的前沿模型相媲美。

40ee858f3e4a13d83cd871f76073b98c.png

二、研究方法

这篇论文提出了OLMOE模型用于解决MoE模型在开放性和性能上的不足。具体来说:

  1. 模型架构:OLMOE是一个解码器only的LM,由NL transformer层组成。密集模型中的前馈网络(FFN)被MoE模块替代,MoE模块由多个较小的FFN模块(称为专家)组成,每个输入标记只激活其中的一个子集。a37d391940837fa9a31a7001233d067a.png

  2. 关键设计决策

  • 专家粒度:使用64个小专家,每层激活8个。

  • 路由算法:采用无dropout的标记选择路由。

  • 辅助损失:使用负载平衡损失(LLB)和路由器z损失(LRZ)来优化模型的训练。

  • 数据集:使用DCLM和Dolma 1.7的数据集进行预训练,数据集包括Common Crawl、StarCoder、arXiv等。

训练过程:OLMOE-1B-7B从头开始训练,总共训练5.133T标记。在训练的退火阶段,先重新打乱整个数据集,然后线性衰减学习率至0。

三、实验设计

  1. 数据收集:预训练数据来自DCLM和Dolma 1.7,包括Common Crawl、StarCoder、arXiv等高质量数据集。适应训练数据包括Tulu 2 SFT Mix、Various、CodeFeedback-Filtered-Instruction等。

  2. 实验设置:在预训练过程中,使用多种下游任务进行评估,包括MMLU、ARC-C、BoolQ等。适应训练过程中,使用指令调优(SFT)和偏好调优(DPO)来提升模型性能。

  3. 参数配置:使用AdamW优化器,混合精度训练,初始化为截断正态分布,学习率设置为5.0E-4,训练5T标记。适应训练过程中,SFT使用BF16全局批量大小为128,DPO使用RMSProp优化器,批量大小为32。

四、结果与分析

  1. 预训练结果:在预训练过程中,OLMOE-1B-7B在所有任务上的表现均优于现有的OLMo模型,且计算成本更低。d7d26c406e52b0332a50193a1a583998.png

  2. 适应训练结果:适应训练后,OLMOE-1B-7B在指令调优和偏好调优任务上表现优异,平均得分最高。

五、总体结论

本文提出的OLMOE模型在性能和开放性上均达到了新的高度,成为第一个完全开放且最先进的MoE语言模型。通过开源OLMOE-1B-7B及其相关资源,本文旨在推动MoE模型的研究和发展,帮助研究者更好地理解和改进这些模型。未来的工作将包括增加参数数量、训练数据量、探索多模态和跨语言应用。

AI辅助人工完成。


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

2fc32747390d19c675fa18be95907669.png

id:DLNLPer,记得备注呦

这篇关于最强MoE完全开源模型发布啦~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138272

相关文章

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

JavaScript中的Map用法完全指南

《JavaScript中的Map用法完全指南》:本文主要介绍JavaScript中Map用法的相关资料,通过实例讲解了Map的创建、常用方法和迭代方式,还探讨了Map与对象的区别,并通过一个例子展... 目录引言1. 创建 Map2. Map 和对象的对比3. Map 的常用方法3.1 set(key, v

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot