Moonlight-16B-A3B:月之暗面开源MoE模型,160亿参数仅需激活30亿,训练成本直接减半!Muon优化器效率2倍于AdamW

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🌙 「还在为训练大模型烧显卡?月之暗面放出MoE核武器:160亿参数激活量仅30亿,成本直降50%!」

大家好,我是蚝油菜花。深夜两点,当你的GPU集群再度因OOM报错时,是否想过:

  • 🤯 为什么每次微调都要激活全部参数?
  • 💸 160亿参数的模型必须对应160亿的计算成本吗?
  • 🚫 MoE架构的通信开销真的无解吗?

今天要拆解的 Moonlight-16B-A3B 给出了革命性答案!这个由月之暗面开源的MoE模型,通过动态专家路由+Muon优化器,实现总参数160亿却仅激活30亿的惊人效率。更关键的是,其ZeRO-1分布式架构让通信开销降低47%------某AI芯片厂商工程师实测:同等任务GPU消耗减少一半,训练速度提升2.1倍!

🚀 快速阅读

Moonlight-16B-A3B 是一个高效的 MoE 模型,总参数量为 160 亿,激活参数仅为 30 亿。

  1. 核心功能:支持多种语言任务(如语言理解、文本生成、代码生成)和大规模分布式训练。
  2. 技术原理:基于优化的 Muon 优化器,相比传统 AdamW 提升了 2 倍计算效率,并采用 ZeRO-1 分布式实现以降低内存和通信开销。

Moonlight-16B-A3B 是什么

Moonlight-16B-A3B 是 Moonshot AI 开发的一款新型 Mixture-of-Expert (MoE) 模型,具有 160 亿总参数和 30 亿激活参数。该模型利用改进版的 Muon 优化器进行训练,相较于传统的 AdamW 优化器,计算效率提高了两倍,同时在多个基准测试中表现出色。例如,在英语语言理解任务(MMLU)和代码生成任务(HumanEval)中均超越了同类模型。Moonlight 使用了 5.7 万亿 token 的数据进行训练,展现出更高的样本效率。

Moonlight 的设计目标是在保持高性能的同时降低计算资源需求。通过优化权重衰减和更新比例,Muon 优化器实现了在大规模模型训练中的稳定性和效率提升。此外,Moonlight 的分布式实现基于 ZeRO-1 技术,显著减少了内存占用和通信成本,使其能够在大规模分布式环境中高效运行。

Moonlight-16B-A3B 的主要功能

  • 高效的语言理解和生成:在多种语言任务中表现出色,包括语言理解、文本生成和代码生成。
  • 大规模数据训练:使用 5.7 万亿 token 的数据进行训练,支持高效率的分布式训练。
  • 低计算成本:仅需约 52% 的训练 FLOPs 即可达到与 AdamW 相当的性能。
  • 低激活参数设计:总参数量为 160 亿,激活参数仅为 30 亿,显著降低了计算资源需求。

Moonlight-16B-A3B 的技术原理

  • Muon 优化器的改进:通过矩阵正交化技术(如 Newton-Schulz 迭代)对模型参数进行优化,显著提升了训练效率。
  • 权重衰减与更新调整:引入权重衰减机制,对每个参数的更新规模进行了调整,使 Muon 能在无需超参数调整的情况下直接应用于大规模模型训练。
  • 分布式实现:采用基于 ZeRO-1 的分布式优化技术,减少了内存开销和通信成本,使模型能在大规模分布式环境中高效训练。

如何运行 Moonlight-16B-A3B

模型下载

Model #Total Params #Activated Params Context Length
Moonlight 16B 3B 8K
Moonlight-Instruct 16B 3B 8K

使用 Hugging Face Transformers 进行推理

以下是使用 Hugging Face Transformers 进行推理的示例代码:

对于预训练模型 (Moonlight)

python 复制代码
from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "moonshotai/Moonlight-16B-A3B"
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype="auto",
    device_map="auto",
    trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

prompt = "1+1=2, 1+2="
inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=100)
response = tokenizer.batch_decode(generated_ids)[0]
print(response)

对于指令微调模型 (Moonlight-Instruct)

python 复制代码
from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "moonshotai/Moonlight-16B-A3B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype="auto",
    device_map="auto",
    trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

messages = [
    {"role": "system", "content": "You are a helpful assistant provided by Moonshot-AI."},
    {"role": "user", "content": "Is 123 a prime?"}
]
input_ids = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
generated_ids = model.generate(inputs=input_ids, max_new_tokens=500)
response = tokenizer.batch_decode(generated_ids)[0]
print(response)

训练

以下是如何使用 Muon 和 AdamW 进行训练的示例:

bash 复制代码
# 使用 Muon 训练 Qwen 类密集模型
python3 examples/toy_train.py --model qwen --optimizer muon --dataset openwebtext-100k --hidden_size 896 --lr 1e-3

# 使用 AdamW 训练 Qwen 类密集模型
python3 examples/toy_train.py --model qwen --optimizer adamw --dataset openwebtext-100k --hidden_size 896 --lr 1e-3

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

相关推荐
yuanjun04166 分钟前
RTDETRv2 pytorch训练
人工智能·pytorch·python
杰克逊的日记10 分钟前
什么是PyTorch
人工智能·pytorch·python
归去_来兮2 小时前
LightGBM算法原理及Python实现
人工智能·机器学习·集成学习·lightgbm
Blossom.1182 小时前
脑机接口技术:开启人类与机器的全新交互时代
人工智能·驱动开发·深度学习·计算机视觉·aigc·硬件架构·交互
ProgramHan2 小时前
什么是自然语言处理(NLP)?如何使用NLP进行情感分析?
人工智能·自然语言处理
小白白搭建3 小时前
wordperss AI插件:AI图文+视频+长尾关键词自动生成,已内置deepseek、kimi全模型,支持简单一键接入更多自定义API
人工智能·wordpress·ai插件·deepseek·wordprerss插件·wordpress ai插件
giszz3 小时前
【Web3】上市公司利用RWA模式融资和促进业务发展案例
人工智能·web3·区块链
pen-ai4 小时前
【NLP】 26. 语言模型原理与概率建模方法详解(Language Models)
人工智能·语言模型·自然语言处理
pen-ai4 小时前
【NLP】30. 深入理解 In-Context Learning 的核心机制与策略
人工智能·自然语言处理
知舟不叙4 小时前
使用 OpenCV 和 Dlib实现轮廓绘制
人工智能·opencv·计算机视觉·轮廓绘制·人脸关键点检测