AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Qwen2-Math开源,包含1.5B/7B/72B三种参数规模的数学模型
发布日期:2024-08-09 05:31:40 浏览次数: 1991 来源:YeungNLP


01

简介

?好消息,继今年6月份Qwen2系列模型开源后,Qwen团队秉持着优良的开源传统,在8月8日深夜再次开源了Qwen2-Math系列模型。这是一个专注于数学推理能力的模型,该系列模型包括1.5B/7B/72B三种参数规模。


ModelScope:

https://modelscope.cn/organization/qwen?tab=model


HuggingFace:

https://huggingface.co/collections/Qwen/qwen2-math-66b4c9e072eda65b5ec7534d


Qwen2-Math是基于Qwen2大模型所构建的专门用于数学解题的语言模型,其数学能力显著超越了此前的开源模型,甚至超过了闭源模型(如 GPT-4o)。


Qwen2-Math在复杂的多步逻辑推理的高级数学问题上具有优秀的表现,在一系列数学基准评测中,Qwen2-Math-72B-Instruct 超越了最先进的模型,包括 GPT-4o、Claude-3.5-Sonnet、Gemini-1.5-Pro 和 Llama-3.1-405B。

注:此次开源的模型主要支持英语,后续将推出中英双语版本,敬请期待


02

Qwen2-Math基座模型

Qwen2-Math的基座模型使用Qwen2系列基座模型进行初始化,然后在精心设计的数学专用语料库上进行增量预训练,该语料库包含大规模高质量的数学网络文本、书籍、代码、考试题目以及由Qwen2模型合成的数学预训练数据


在三个广泛使用的英语数学基准GSM8K、Math和MMLU-STEM上对Qwen2-Math进行了评估,并且还评估了三个中国数学基准CMATH,GaoKao Math Cloze和GaoKao Math QA。所有评估均采用Few-shot CoT的方式。


在上述6项数学评测中,Qwen2-Math均取得了非常优异的表现,尤其是Qwen2-Math-72B,显著优于Llama-3.1-70B,并且与Llama-3.1-405B的表现在伯仲之间,但显然Qwen2-Math-72B的参数要小得多,部署条件要低得多。


03

Qwen2-Math指令微调模型

在指令微调阶段,首先基于Qwen2-Math-72B训练了一个数学专用的奖励模型。此外,还有一个判别模型,可用于评判模型的回复是否正确。作者将奖励模型与判别模型进行结合,用于拒绝采样构建SFT数据,从而对Base模型进行指令微调。最后进一步使用GRPO对SFT模型进行优化。


作者对Qwen2-Math-Instruct在英语和中文的数学基准评测上进行了评测。除了常用的基准评测,如 GSM8K 和 MATH 之外,还加入了更具挑战性的考试,例如OlympiadBench、CollegeMath、高考(GaoKao)、AIME2024以及AMC2023。对于中文的数学评测集,使用了CMATH、2024年中国高考数学题以及2024年中国中考数学题。Qwen2-Math-72B-Instruct在各个评测集上均显著优于Llama-3.1-70B-Instruct。


为了防止评测集在模型训练时泄露,作者在预训练和微调数据集上都进行了去污染处理。预训练数据移除了与测试集有显著重叠的样本,并且移除了有13-gram重复且最长公共子序列比例大于0.6的训练样本。指令微调数据移除了更多与GSM8K、MATH、Aqua、SAT Math、OlympiadBench、College Math、AIME24、AMC23等数据集有重叠的正例污染样本,也使用了与预训练数据同样的过滤方法。


04

使用方式

建议直接使用Instruct模型进行性能测试,使用方式与此前Qwen2系列模型一直,测试脚本如下:

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2-Math-72B-Instruct"device = "cuda" # the device to load the model onto
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]


期待Qwen后续更多的开源工作~


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询