没有等来Qwen2.5,但等来了Qwen2-Math

文摘   2024-08-08 23:01   美国  

Qwen2又出新作Math大模型,你值得拥有。

我没有等来Qwen2.5,但等来了Qwen2-Math,在数学推理能力上大幅度提高,先来一张图阵阵场子,72B模型超过GPT4-o、Claude-3.5-Sonnet和Gemini-1.5-Pro。

Blog: https://qwenlm.github.io/blog/qwen2-math/
HF:https://huggingface.co/collections/Qwen/qwen2-6659360b33528ced941e557f

本次开源共涉及3个尺寸2个版本,分别为Qwen2-Math-1.5B、Qwen2-Math-1.5B-Instruct、Qwen2-Math-7B、Qwen2-Math-7B-Instruct、Qwen2-Math-72B和Qwen2-Math-72B-Instruct。

模型训练初始化采用Qwen2-1.5B、Qwen2-7B和Qwen2-72B,训练语料涉及高质量的数学网络文本、书籍、代码、考试题目以及由Qwen2模型合成的数学预训练数据

指令微调阶段是先用Qwen2-Math-72B训练了一个数学专用的奖励模型,然后利用该奖励模型和指示模型回答问题是否正确这两个指标一起拒绝采用构建SFT数据集,并利用GRPO进一步对齐模型效果。

注意:模型在预训练和指令微调阶段为了防止数据泄露,均进行数据去污染除了,移除测试集中13-gram重复最长公共子序列比例大于0.6的训练样本。

模型在GSM8K、MATH、Aqua、SAT Math、OlympiadBench、College Math、AIME24、AMC23多个等数据集上均取得了很好的效果。

相较于原版Qwen2有很大的提升

HF快速使用:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen2-Math-1.5B-Instruct"
device = "cuda"

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

prompt = "Find the value of $x$ that satisfies the equation $4x+5 = 6x+7$."
messages = [
    {"role""system""content""You are a helpful assistant."},
    {"role""user""content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)

generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=512
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)

最后说一下,官方表示目前的模型仅为英文模型,后续会推出中英双语模型。

PS:给公众号添加【星标⭐️】不迷路!您的点赞在看关注是我坚持的最大动力!

欢迎多多关注公众号「NLP工作站」,加入交流群,交个朋友吧,一起学习,一起进步!

我们的口号是“生命不止,学习不停”!

往期推荐:

NLP工作站
日常分享AIGC前沿知识&落地经验总结,也欢迎关注《ChatGPT原理与实战》、《大型语言模型实战指南》两本大模型相关书籍
 最新文章