元象发布中国最大MoE开源大模型

元象XVERSE发布中国最大MoE开源模型:XVERSE-MoE-A36B,加速AI应用低成本部署,将国产开源提升至国际领先水平。该模型总参数255B,激活参数36B,达到100B模型性能的「跨级」跃升,同时训练时间减少30%,推理性能提升100%,使每token成本大幅下降。

元象「高性能全家桶」系列全部开源,无条件免费商用,让海量中小企业、研究者和开发者能按需选择。

在这里插入图片描述

MoE(Mixture of Experts)是业界最前沿的混合专家模型架构 ,将多个细分领域的专家模型组合成一个超级模型,打破了传统扩展定律(Scaling Law)的局限,可在扩大模型规模时,不显著增加训练和推理的计算成本,保持模型性能最大化。出于这个原因,行业前沿模型包括谷歌Gemini-1.5、OpenAI的GPT-4 、马斯克旗下xAI公司的Grok等大模型都使用了 MoE。

在多个权威评测中,元象MoE效果大幅超越多个同类模型,包括国内千亿MoE模型 Skywork-MoE、传统MoE霸主Mixtral-8x22B 以及3140亿参数的MoE开源模型Grok-1-A86B等。

在这里插入图片描述
免费下载大模型

Hugging Face:https://huggingface.co/xverse/XVERSE-MoE-A36B

魔搭:https://modelscope.cn/models/xverse/XVERSE-MoE-A36B

Github:https://github.com/xverse-ai/XVERSE-MoE-A36B

官网:chat.xverse.cn

MoE技术自研与创新

MoE是目前业界最前沿的模型框架,由于技术较新,国内开源模型或学术研究尚未普及。元象自研MoE的高效训练和推理框架,并持续推动技术创新。

2024年4月推出的XVERSE-MoE-A4.2B中,元象推动MoE专家架构革新。与传统MoE(如Mixtral 8x7B)将每个专家大小等同于标准FFN不同,元象采用更细粒度的专家设计,每个专家大小仅为标准FFN的四分之一,提高了模型灵活性与性能;还将专家分为共享专家(Shared Expert)和非共享专家(Non-shared Expert)两类。共享专家在计算过程中始终保持激活状态,而非共享专家则根据需要选择性激活。这种设计有利于将通用知识压缩至共享专家参数中,减少非共享专家参数间的知识冗余。

此次推出XVERSE-MoE-A36B,继续在MoE效率和效果方面进行技术创新。

(1)效率方面

MoE架构与4D拓扑设计:MoE架构的关键特性是由多个专家组成。由于专家之间需要大量的信息交换,通信负担极重。为了解决这个问题,我们采用了4D拓扑架构,平衡了通信、显存和计算资源的分配。这种设计优化了计算节点之间的通信路径,提高了整体计算效率。

专家路由与预丢弃策略:MoE的另一个特点是“专家路由机制”,即需要对不同的输入进行分配,并丢弃一些超出专家计算容量的冗余数据。为此团队设计一套预丢弃策略,减少不必要的计算和传输。同时在计算流程中实现了高效的算子融合,进一步提升模型的训练性能。

通信与计算重叠:由于MoE架构的专家之间需要大量通信,会影响整体计算效率。为此团队设计了“多维度的通信与计算重叠”机制,即在进行参数通信的同时,最大比例并行地执行计算任务,从而减少通信等待时间。

(2)效果方面

专家权重:MoE 中的专家总数为 N ,每个 token 会选择 topK 个专家参与后续的计算,由于专家容量的限制,每个 token 实际选择到的专家数为 M,M<=K<N。被选择到的专家计算完之后,会通过加权平均的方式汇总得到每个 token 的计算结果。这里专家的权重如何设置是一个问题,我们通过对比实验的方式来进行选择。根据对比实验的效果,我们选择实验2的设置进行正式实验。

实验1:权重在 topM 范围内归一化

实验2:权重在 topK 范围内归一化

实验3:权重在 topN 范围内归一化

实验4:权重都为 1

在这里插入图片描述
举例说明,假设N=8,K=4,M=3(2号专家上token被丢弃),不同专家权重的计算方式所得的权重如下图:

在这里插入图片描述
数据动态切换:元象以往开源的模型,往往在训练前就锁定了训练数据集,并在整个训练过程中保持不变。这种做法虽然简单,但会受制于初始数据的质量和覆盖面。此次MoE模型的训练借鉴了"课程学习"理念,在训练过程中实现了动态数据切换,在不同阶段多次引入新处理的高质量数据,并动态调整数据采样比例。

这让模型不再被初始语料集所限制,而是能够持续学习新引入的高质量数据,提升了语料覆盖面和泛化能力。同时通过调整采样比例,也有助于平衡不同数据源对模型性能的影响。

在这里插入图片描述
学习率调度策略(LR Scheduler):在训练过程中动态切换数据集,虽有助于持续引入新知识,但也给模型带来了新的适应挑战。为了确保模型能快速且充分地学习新进数据,团队对学习率调度器进行了优化调整,在每次数据切换时会根据模型收敛状态,相应调整学习率。实验表明,这一策略有效提升了模型在数据切换后的学习速度和整体训练效果。

下图是整个训练过程中 MMLU、HumanEval 两个评测数据集的效果曲线图。

在这里插入图片描述

使用

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("xverse/XVERSE-MoE-A36B")
model = AutoModelForCausalLM.from_pretrained("xverse/XVERSE-MoE-A36B", trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='auto')
model = model.eval()
inputs = tokenizer('北京的景点:故宫、天坛、万里长城等。\n深圳的景点:', return_tensors='pt').input_ids
inputs = inputs.cuda()
generated_ids = model.generate(inputs, max_new_tokens=70, eos_token_id=tokenizer.eos_token_id, repetition_penalty=1.1)
print(tokenizer.batch_decode(generated_ids, skip_special_tokens=True))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值