MindSpeed-LLM 支持大模型在公开基准数据集上进行准确率评估,当前支持的 Benchmark 如下:
| Benchmark | 下载链接 | 验证集 | MindSpeed-LLM | OpenCompass |
|---|---|---|---|---|
| MMLU | GitHub | test | 45.73% | 45.3% |
| CEval | HuggingFace | val | 33.87% | 32.5% |
| BoolQ | Juhe | dev | 75.44% | 74.9% |
| BBH | GitHub | test | 34.4% | 32.5% |
| AGIEval | GitHub | test | 20.6% | 20.6% |
| HumanEval | GitHub | test | 12.8% | 12.2% |
MindSpeed-LLM 已支持的大模型评估数据统计如下:
| 模型 | 任务 | MindSpeed-LLM | 社区 | 模型 | 任务 | MindSpeed-LLM | 社区 |
|---|---|---|---|---|---|---|---|
| Aquila-7B | BoolQ | 77.3% | -- | Aquila2-7B | BoolQ | 77.8% | -- |
| Aquila2-34B | BoolQ | 88.0% | -- | Baichuan-7B | BoolQ | 69.0% | 67.0% |
| Baichuan-13B | BoolQ | 74.7% | 73.6% | Baichuan2-7B | BoolQ | 70.0% | 63.2% |
| Baichuan2-13B | BoolQ | 78.0% | 67.0% | Bloom-7B | MMLU | 25.1% | -- |
| Bloom-176B | BoolQ | 64.5% | -- | ChatGLM3-6B | MMLU | 61.5% | -- |
| GLM4-9B | MMLU | 74.5% | 74.7% | CodeQwen1.5-7B | Human. | 54.8% | 51.8% |
| CodeLLaMA-34B | Human. | 48.8% | 48.8% | Gemma-2B | MMLU | 39.6% | -- |
| Gemma-7B | MMLU | 52.2% | -- | InternLM-7B | MMLU | 48.7% | 51.0% |
| Gemma2-9B | MMLU | 70.7% | 71.3% | Gemma2-27B | MMLU | 75.5% | 75.2% |
| LLaMA-7B | BoolQ | 74.6% | 75.4% | LLaMA-13B | BoolQ | 79.6% | 78.7% |
| LLaMA-33B | BoolQ | 83.2% | 83.1% | LLaMA-65B | BoolQ | 85.7% | 86.6% |
| LLaMA2-7B | MMLU | 45.7% | -- | LLaMA2-13B | BoolQ | 82.2% | 81.7% |
| LLaMA2-34B | BoolQ | 82.0% | -- | LLaMA2-70B | BoolQ | 86.4% | -- |
| LLaMA3-8B | MMLU | 65.2% | -- | LLaMA3-70B | BoolQ | 78.4% | -- |
| LLaMA3.1-8B | MMLU | 65.3% | -- | LLaMA3.1-70B | MMLU | 81.8% | -- |
| LLaMA3.2-1B | MMLU | 31.8% | 32.2% | LLaMA3.2-3B | MMLU | 56.3% | 58.0% |
| Mistral-7B | MMLU | 56.3% | -- | Mixtral-8x7B | MMLU | 70.6% | 70.6% |
| Mistral-8x22B | MMLU | 77% | 77.8% | MiniCPM-MoE-8x2B | BoolQ | 83.9% | -- |
| QWen-7B | MMLU | 58.1% | 58.2% | Qwen-14B | MMLU | 65.3% | 66.3% |
| QWen-72B | MMLU | 74.6% | 77.4% | QWen1.5-0.5B | MMLU | 39.1% | -- |
| QWen1.5-1.8b | MMLU | 46.2% | 46.8% | QWen1.5-4B | MMLU | 59.0% | 56.1% |
| QWen1.5-7B | MMLU | 60.3% | 61.0% | QWen1.5-14B | MMLU | 67.3% | 67.6% |
| QWen1.5-32B | MMLU | 72.5% | 73.4% | QWen1.5-72B | MMLU | 76.4% | 77.5% |
| Qwen1.5-110B | MMLU | 80.4% | 80.4% | Yi-34B | MMLU | 76.3% | 75.8% |
| QWen2-0.5B | MMLU | 44.6% | 45.4% | QWen2-1.5B | MMLU | 54.7% | 56.5% |
| QWen2-7B | MMLU | 70.3% | 70.3% | QWen2-57B-A14B | MMLU | 75.6% | 76.5% |
| QWen2-72B | MMLU | 83.6% | 84.2% | MiniCPM-2B | MMLU | 51.6% | 53.4% |
| DeepSeek-V2-Lite-16B | MMLU | 58.1% | 58.3% | QWen2.5-0.5B | MMLU | 47.67% | 47.5% |
| QWen2.5-1.5B | MMLU | 59.4% | 60.9% | QWen2.5-3B | MMLU | 65.6% | 65.6% |
| QWen2.5-7B | MMLU | 73.8% | 74.2% | QWen2.5-14B | MMLU | 79.4% | 79.7% |
| QWen2.5-32B | MMLU | 83.3% | 83.3% | QWen2.5-72B | MMLU | 85.59% | 86.1% |
| InternLM2.5-1.8b | MMLU | 51.3% | 53.5% | InternLM2.5-7B | MMLU | 71.6% | 71.6% |
| InternLM2.5-20b | MMLU | 73.3% | 74.2% | InternLM3-8b | MMLU | 76.6% | 76.6% |
| Yi1.5-6B | MMLU | 63.2% | 63.5% | Yi1.5-9B | MMLU | 69.2% | 69.5% |
| Yi1.5-34B | MMLU | 76.9% | 77.1% | CodeQWen2.5-7B | Human. | 66.5% | 61.6% |
| Qwen2.5-Math-7B | MMLU-STEM | 67.8% | 67.8% | Qwen2.5-Math-72B | MMLU-STEM | 83.7% | 82.8% |
| MiniCPM3-4B | MMLU | 63.7% | 64.6% | Phi-3.5-mini-instruct | MMLU | 64.39% | 64.34% |
| Phi-3.5-MoE-instruct | MMLU | 78.5% | 78.9% | DeepSeek-Math-7B | MMLU-STEM | 56.5% | 56.5% |
| DeepSeek-V2.5 | MMLU | 79.3% | 80.6% | DeepSeek-V2-236B | MMLU | 78.1% | 78.5% |
| LLaMA3.3-70B-Instruct | MMLU | 82.7% | -- |
以上模型脚本环境变量声明:
ASCEND_LAUNCH_BLOCKING:将Host日志输出到串口,0-关闭/1-开启
ASCEND_SLOG_PRINT_TO_STDOUT:设置默认日志级别,0-debug/1-info/2-warning/3-error
HCCL_WHITELIST_DISABLE:HCCL白名单开关,1-关闭/0-开启
HCCL_CONNECT_TIMEOUT:设置HCCL超时时间,默认值为120
CUDA_DEVICE_MAX_CONNECTIONS:定义了任务流能够利用或映射到的硬件队列的数量
TASK_QUEUE_ENABLE: 用于控制开启task_queue算子下发队列优化的等级,0:关闭,1:开启Level 1优化,2:开启Level 2优化
COMBINED_ENABLE: 设置combined标志。设置为0表示关闭此功能;设置为1表示开启,用于优化非连续两个算子组合类场景
PYTORCH_NPU_ALLOC_CONF:内存碎片优化开关,默认是expandable_segments:False,使能时expandable_segments:True
ASCEND_RT_VISIBLE_DEVICES:指定哪些Device对当前进程可见,支持一次指定一个或多个Device ID。通过该环境变量,可实现不修改应用程序即可调整所用Device的功能。
NPUS_PER_NODE: 配置一个计算节点上使用的NPU数量
TOKENIZERS_PARALLELISM: 用于控制Hugging Face的transformers库中的分词器(tokenizer)在多线程环境下的行为
大模型分布式评估使用介绍
1. 基准评估
MindSpeed-LLM 基准评估脚本命名风格及启动方法为:
# Legacy
# 命名及启动:examples/legacy/model_name/evaluate_xxx.sh
bash examples/legacy/llama2/evaluate_llama2_7b_ptd.sh
# Mcore
# 命名及启动:examples/mcore/model_name/evaluate_xxx.sh
bash examples/mcore/llama2/evaluate_llama2_7b_mmlu_ptd.sh
# 使用lora权重的评估脚本命名风格及启动方法为(以 legacy 为例):
bash examples/legacy/llama2/evaluate_llama2_7B_lora_ptd.sh
# 修改模型参数路径和词表路径
TOKENIZER_PATH="./model_from_hf/llama-2-hf/" #词表路径
CHECKPOINT="./model_weights/llama-2-7b-legacy" #权重路径
# 配置任务和数据集路径
DATA_PATH="./mmlu/data/test/"
TASK="mmlu" # 支持 mmlu、ceval、agieval、bbh、boolq、human_eval
# 启动评估脚本(以 legacy 为例)
bash examples/legacy/llama2/evaluate_llama2_7B_mmlu_ptd.sh
【--max-new-tokens】
表示模型输出的生成长度,多项选择问题的输出长度会比编码任务的输出长度小,该参数很大程度上影响了模型的评估性能
【--evaluation-batch-size】
可以设置多batch推理,提升模型评估性能
【--broadcast】
在开启Expert Parallel时,需启用该参数进行评估
2. 指令微调评估
使用指令微调后权重的评估脚本命名风格及启动方法为(以 legacy 为例):
bash examples/legacy/llama2/evaluate_llama2_7B_full_mmlu_ptd.sh
【--prompt-type】
模型对话模板,选择模型对应的对话模板进行评估
【--hf-chat-template】
如果模型的tokenizer已经具备chat_template属性,则可以选择通过添加--hf-chat-template来使用模型内置的对话模板进行评估
【--eval-language】
根据评估数据集语言来确定,默认为en,如果评估数据集为中文数据集,则应设置为zh
3. LoRA权重评估
使用lora权重的评估脚本命名风格及启动方法为(以 legacy 为例):
bash examples/legacy/llama2/evaluate_llama2_7B_lora_mmlu_ptd.sh