文章首发于 slightwind.cn
Mistral-7B’s performance on 5-shot MMLU
Mistral-7B 是一个很强的 7B 开源模型,在 Mistral 官网和论文中声称可以在 5-shot MMLU 上达到 60.1% 的准确率,首先下载官方的模型权重文件(Mistral-7B-v0.1)并直接在原精度(BF16)上进行推理,尝试复现出官方的准确率。
llmtask
这里使用 llmtask 来进行下游任务测试,非常方便快捷,只需要
pip install llmtask==0.0.2
即可完成安装,可以直接测试模型在 C-Eval 和 MMLU 数据集上的表现。
示例代码:
import random
from llmtask import TaskGenerator
choices = ("A", "B", "C", "D")
TG = TaskGenerator("mmlu", max_shot=4)
for task in TG:
TG.feedback(random.choice(choices))
print(TG.summary())
测试 Mistral-7B 原精度推理脚本:
import time
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from llmtask import TaskGenerator
def log(msg):
with open("mmlu_5shot_bf16.log", "a") as f:
f.write(f"{
msg}\n")
device = "cuda"
model = AutoModelForCausalLM.from_pretrained("/path/to/Mistral-7B-v0.1", torch_dtype=torch.bfloat16).to(device)
tokenizer = AutoTokenizer.from_pretrained("/path/to/Mistral-7B-v0.1")
cnt = 0
TG = TaskGenerator("mmlu", max_shot=5)
for task in TG:
model_inputs