## 模型简介
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](https://github.com/open-compass/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 模型:
```python
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仓库](https://github.com/sii-research/InnoMegrez2)。
## 最佳实践
为了获得最佳性能,建议以下设置:
1. 采样参数:推荐使用 Temperature=0.7 和 TopP=0.9 。
2. 标准化输出格式:在基准测试时,我们建议使用提示来标准化模型输出,比如:
* 数学问题:在提示中包含“请逐步推理,并将最终答案放在\boxed{}中。”
* 选择题:在提示中添加以下 JSON 结构以标准化响应:“请在 answer 字段中仅以选择字母的形式显示您的选择,例如 "answer": "C" 。”
## 许可声明
我们所有的开源模型均采用Apache 2.0协议授权。
## 联系我们
如果您有任何问题,请随时提交GitHub issue或联系[微信群组](https://github.com/sii-research/InnoMegrez2/blob/main/assets/wechat-group.jpg)。