Qwen2-Math开源!初步探索数学合成数据生成!
Qwen2-Math开源!初步探索数学合成数据生成!
原创 魔搭开发者 2024年08月09日 16:04 浙江
阿里通义团队开源新一代数学模型Qwen2-Math,包含1.5B、7B、72B三个参数的基础模型和指令微调模型。Qwen2-Math基于开源模型Qwen2研发, Qwen2-Math-72B-Instruct在权威测评集MATH上的得分超越目前主流的闭源和开源模型,如GPT-4o、Claude-3.5-Sonnet、Gemini-1.5-Pro、Llama-3.1-405B等,以84%的准确率处理了代数、几何、计数与概率、数论等多种数学问题,成为最先进的数学专项模型。
注:在MATH基准测评中,通义千问数学模型的旗舰款Qwen2-Math-72B-Instruct取得了84%的准确率,超过GPT-4o、Claude-3.5-Sonnet、Gemini-1.5-Pro 和 Llama-3.1-405B等开闭源模型。
Qwen2-Math 基础模型使用 Qwen2大语言模型进行初始化,并在精心设计的数学专用语料库上进行预训练,训练数据包含大规模高质量的数学网络文本、书籍、代码、考试题目,以及由 Qwen2 模型合成的数学预训练数据。所有预训练和微调数据集都进行了去污染处理。
随后,研发团队训练了指令微调版本模型:首先,基于Qwen2-Math-72B 训练一个数学专用的奖励模型;接着,将密集的奖励信号与指示模型是否正确回答问题的二元信号结合,用作学习标签,再通过拒绝采样构建监督微调(SFT)数据;最后在SFT模型基础上使用 GRPO 方法优化模型。
Qwen2-Math系列模型目前主要支持英文,通义团队很快就将推出中英双语版本,多语言版本也在开发中。
Qwen2-Math-72B-Instruct表现优异,在十大测评中都获得了远超其他开源数学模型的成绩。
注:研发团队在greedy和RM@8 的条件下对模型作了测评,表中为每款Qwen2-Math-72B-Instruct模型列出了三个得分结果,分别是第1次回答得分(无下标数字)、8次回答中出现最多次数的答案的得分,8次回答中reward model所选答案的得分。
合成数据生成初探索
适用场景
数学模型可用在多种场景,比如教育行业的AI教师,解题辅助,智能阅卷等场景,本文更加关注在AI teacher for LLM场景,比如蒸馏,能否使用更强的专业模型为小模型生成高质量的数据,更便宜,更快速微调小模型,以提高性能和降低成本。
用例参考链接:https://cookbook.openai.com/examples/sdg1
合成数据优势
使用专业大语言模型生成合成数据可以为模型训练提供高质量、专业性高且符合隐私要求的数据。可以用在多种场景,比如生成专业数据,并SFT数据中混合,使大语言模型微调取得更好的结果、生成针对模型的数学能力的测试数据等。
合成数据可以解决如下问题:
1 真实数据可能因为隐私限制等,更加难以获取。
2 合成数据比真实数据结构化性更高,降低数据清洗成本。
3 在专业数据比较稀疏的情况下(如数学),合成数据可用作数据增强。
4 当训练数据中,配比不平衡,以及数据多样性不够是,通过合成数据来丰富数据集。
与传统的数据增强或手动数据创建方法不同,使用 LLM 可以生成丰富、细致入微且与上下文相关的数据集,从而显著增强其对企业和开发人员的实用性。
模型下载和推理
模型下载
modelscope download --model=qwen/Qwen2-Math-7B-Instruct --local_dir ./Qwen2-Math-7B-Instruct
使用vLLM模型推理
python -m vllm.entrypoints.openai.api_server --served-model-name Qwen2-Math-7B-Instruct --model ./Qwen2-Math-7B-Instruct/
安装依赖和运行模型
%pip install openai
from openai import OpenAI
生成带有结构提示的 json文件
我们以最简单的方式创建数据。本文通过解决 3 个关键点来快速生成数据:告诉它数据的格式 (json)、架构以及有关列如何关联的有用信息(LLM 将能够从列名称中推断出这一点,但帮助会提高性能)。
datagen_model = "Qwen2-Math-7B-Instruct"
```json
“大模型能不能做数学题”,不仅是社交平台的热门话题,也是业界非常关注的研究课题。处理高级数学问题,需要模型具备复杂多步逻辑推理能力。通义团队在技术博客中表示,希望通过开源“为科学界解决高级数学问题做出贡献”,未来将持续增强模型数学能力。