模型简介
InnoMegrez2-Preview 是专为终端设备设计的大模型,兼顾MoE的精度杠杆与Dense的总参数量友好。本次发布的为Megrez 2.0预览版本,训练数据量5T Tokens,未来我们计划完成更大规模的数据训练,并提高模型的推理和Agent能力,正式版本预计今年年内发布。
基础信息
| Architecture | Mixture-of-Experts (MoE) |
| Total Parameters | 3x7B |
| Activated Parameters | 3B |
| Experts Shared Frequency | 3 |
| Number of Layers (Dense layer included) | 31 |
| Number of Dense Layers | 1 |
| Attention Hidden Dimension | 2048 |
| MoE Hidden Dimension (per Expert) | 1408 |
| Number of Attention Heads | 16 |
| Number of Experts | 64 |
| Selected Experts per Token | 6 |
| Number of Shared Experts | 4 |
| Vocabulary Size | 128,880 |
| Context Length | 32K |
| Base Frequency of RoPE | 5,000,000 |
| Attention Mechanism | GQA |
| Activation Function | SwiGLU |
性能测试
我们使用开源评测工具 OpenCompass 对 InnoMegrez2-Preview 进行了评测,部分评测结果如下表所示。
| Benchmark | Metric | InnoMegrez2-Preview | Qwen2.5-3B | Qwen2.5-7B | Qwen3-4B | Qwen3-8B | Phi-4-mini | Gemma-3-4B | GPT-4o-mini 2024-07-18 |
|---|---|---|---|---|---|---|---|---|---|
| Activate Params (B) | 3.0 | 3.1 | 7.6 | 4.0 | 8.2 | 3.8 | 4.3 | - | |
| Stored Params (B) | 7.5 | 3.1 | 7.6 | 4.0 | 8.2 | 3.8 | 4.3 | - | |
| General Tasks | |||||||||
| C-EVAL | EM | 91.7 | 68.2 | 76.2 | 72.2 | 77.9 | 40.0 | - | 66.3 |
| MMLU-Pro | EM | 67.6 | 43.7 | 56.3 | - | - | 52.8 | 43.6 | - |
| Instruction Tasks | |||||||||
| IF-Eval | Prompt Strict | 80.2 | 58.2 | 71.2 | 81.2 | 83.0 | 68.6 | 90.2 | 80.4 |
| Math & STEM Tasks | |||||||||
| MATH-500 | EM | 81.6 | 65.9 | 75.5 | 84.8 | 87.4 | 64.0 | 75.6 | 78.2 |
| GSM8K | EM | 83.6 | 86.7 | 91.6 | - | 93.2 | 88.6 | 89.2 | - |
| Coding Tasks | |||||||||
| HumanEval | Pass@1 | 74.4 | 74.4 | 84.8 | - | 85.9 | 74.4 | 71.3 | 87.2 |
| MBPP | Pass@1 | 88.0 | 72.7 | 79.2 | - | 77.0 | 65.3 | 63.2 | - |
如何运行
Transformers
推荐使用最新版本的 transformers 或者 transformers>=4.52.4 的版本。
以下是一个非常简单的代码片段示例,展示如何运行 InnoMegrez2-Preview 模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
path = "sii-research/InnoMegrez2-Preview"
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map=device, trust_remote_code=True)
messages = [
{"role": "user", "content": "世界上最高的山峰是哪座?"},
]
model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(device)
model_outputs = model.generate(
model_inputs,
do_sample=True,
max_new_tokens=1024
)
output_token_ids = [
model_outputs[i][len(model_inputs[i]):] for i in range(len(model_inputs))
]
responses = tokenizer.batch_decode(output_token_ids, skip_special_tokens=True)[0]
print(responses)
# 世界上最高的山峰是珠穆朗玛峰(Mount Everest),位于喜马拉雅山脉的中尼边境。珠穆朗玛峰的海拔高度为8,848.86米(29,031.7英尺),这一数据是由中国和尼泊尔在2020年共同宣布的最新测量结果。珠穆朗玛峰不仅是登山爱好者的圣地,也是地理和科学研究的重要对象。
如何部署
InnoMegrez2-Preview 支持使用 vLLM 和 SGLang 作为推理后端,更详细的信息请查看我们的github仓库。
最佳实践
为了获得最佳性能,建议以下设置:
采样参数:推荐使用 Temperature=0.7 和 TopP=0.9 。
标准化输出格式:在基准测试时,我们建议使用提示来标准化模型输出,比如:
- 数学问题:在提示中包含“请逐步推理,并将最终答案放在\boxed{}中。”
- 选择题:在提示中添加以下 JSON 结构以标准化响应:“请在 answer 字段中仅以选择字母的形式显示您的选择,例如 "answer": "C" 。”
许可声明
我们所有的开源模型均采用Apache 2.0协议授权。
联系我们
如果您有任何问题,请随时提交GitHub issue或联系微信群组。