InnoMegrez2-Preview / README_ZH.md
zyq
fix rope
5aa594b

InnoMegrez2-Preview

🔗 Github  |  📄 Tech Report  |  💬 WeChat Official  

中文 | English

模型简介

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 支持使用 vLLMSGLang 作为推理后端,更详细的信息请查看我们的github仓库

最佳实践

为了获得最佳性能,建议以下设置:

  1. 采样参数:推荐使用 Temperature=0.7 和 TopP=0.9 。

  2. 标准化输出格式:在基准测试时,我们建议使用提示来标准化模型输出,比如:

    • 数学问题:在提示中包含“请逐步推理,并将最终答案放在\boxed{}中。”
    • 选择题:在提示中添加以下 JSON 结构以标准化响应:“请在 answer 字段中仅以选择字母的形式显示您的选择,例如 "answer": "C" 。”

许可声明

我们所有的开源模型均采用Apache 2.0协议授权。

联系我们

如果您有任何问题,请随时提交GitHub issue或联系微信群组