- [2025.09.15] 发布 InnoMegrez2 正式版本,模型结构和预览版本一致,训练数据总量从5T增加到8T,在各个测试集上表现更加均衡。
- [2025.07.24] 发布 InnoMegrez2-Preview 预览版本,专为终端设备设计的大模型,兼顾MoE的精度杠杆与Dense的总参数量友好。
InnoMegrez2 是专为终端设备设计的大模型,兼顾MoE的精度杠杆与Dense的总参数量友好。本次发布的为Megrez 2.0正式版本,训练数据量8T 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 | 1,000,000 |
| Attention Mechanism | GQA |
| Activation Function | SwiGLU |
我们使用开源评测工具 OpenCompass 对 InnoMegrez2 进行了评测,部分评测结果如下表所示。
| Benchmark | Metric | InnoMegrez2 |
InnoMegrez2 -Preview |
SmallThinker-21B -A3B-Instruct |
Qwen3-30B-A3B | Qwen3-8B | Qwen3-4B -Instruct-2507 |
Phi4-14B (nothink) |
Gemma3-12B |
|---|---|---|---|---|---|---|---|---|---|
| Activate Params (B) | 3.0 | 3.0 | 3.0 | 3.3 | 8.2 | 4.0 | 14.7 | 12.2 | |
| Stored Params (B) | 7.5 | 7.5 | 21.5 | 30.5 | 8.2 | 4.0 | 14.7 | 12.2 | |
| MMLU | EM | 85.4 | 87.5 | 84.4 | 85.1 | 81.8 | - | 84.6 | 78.5 |
| GPQA | EM | 58.8 | 28.8 | 55.0 | 44.4 | 38.9 | 62 | 55.5 | 34.9 |
| IFEval | Inst loose |
87.7 | 80.2 | 85.8 | 84.3 | 83.9 | 83.4 | 63.2 | 74.7 |
| MATH-500 | EM | 87.2 | 81.6 | 82.4 | 84.4 | 81.6 | - | 80.2 | 82.4 |
推荐使用最新版本的 transformers 或者 transformers>=4.52.4 的版本。
以下是一个非常简单的代码片段示例,展示如何运行 InnoMegrez2 模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
path = "sii-research/InnoMegrez2"
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年共同宣布的最新测量结果。珠穆朗玛峰不仅是登山爱好者的圣地,也是地理和科学研究的重要对象。需使用 vllm>=0.10.1 版本。在当前版本环境下,需对 vllm 相关文件进行一次补丁替换;后续我们将提交 pull request,尽早将该修改合并至 vllm 的正式版本中。
- 找到你的vllm安装路径
import vllm
print(vllm.__file__)- 替换vllm相关文件
cp ./demo/vllm/patch/layer.py <vllm_install_path>/model_executor/layers/fused_moe/cd demo/vllm
export MODEL_PATH="sii-research/InnoMegrez2"
python3 infer_vllm_offline.py $MODEL_PATH在终端中启动vLLM服务,命令如下
cd demo/vllm
export MODEL_PATH="sii-research/InnoMegrez2"
python3 serve_llm_online.py serve $MODEL_PATH --gpu-memory-utilization 0.9 --served-model-name megrez-moe --trust_remote_code现在,可以通过curl发送请求
curl --location 'http://localhost:8000/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-123456' \
--data '{
"model": "megrez-moe",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "世界上最高的山峰是哪座?"
}
]
}
]
}'推荐 sglang>=0.4.9.post2 的版本
cd demo/sglang
export MODEL_PATH="sii-research/InnoMegrez2"
python3 infer_sglang_offline.py $MODEL_PATH为了获得最佳性能,建议以下设置:
-
采样参数:推荐使用 Temperature=0.7 和 TopP=0.9 。
-
标准化输出格式:在基准测试时,我们建议使用提示来标准化模型输出,比如:
- 数学问题:在提示中包含“请逐步推理,并将最终答案放在\boxed{}中。”
- 选择题:在提示中添加以下 JSON 结构以标准化响应:“请在 answer 字段中仅以选择字母的形式显示您的选择,例如 "answer": "C" 。”
我们所有的开源模型均采用Apache 2.0协议授权。
如果您有任何问题,请随时提交GitHub issue或联系微信群组。