Qwen2-Math开源!初步探索数学合成数据生成!

简介: 阿里通义团队开源新一代数学模型Qwen2-Math,包含1.5B、7B、72B三个参数的基础模型和指令微调模型。

阿里通义团队开源新一代数学模型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%的准确率处理了代数、几何、计数与概率、数论等多种数学问题,成为最先进的数学专项模型。

image.png

注:在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表现优异,在十大测评中都获得了远超其他开源数学模型的成绩。

image.png

注:研发团队在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
%pip install pandas
%pip install scikit-learn
%pip install matplotlib
from openai import OpenAI
import os
import json
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

生成带有结构提示的 json文件

我们以最简单的方式创建数据。本文通过解决 3 个关键点来快速生成数据:告诉它数据的格式 (json)、架构以及有关列如何关联的有用信息(LLM 将能够从列名称中推断出这一点,但帮助会提高性能)。

datagen_model = "Qwen2-Math-7B-Instruct"
question = """
Create a json file with 3 rows of math data.
Each row should include the following fields:
 - id (incrementing integer starting at 1)
 - elementary school Olympiad math problem
 - detailed solutions for the problem
Make sure that the problem make sense (i.e. suit elementary school students, solution is step by step). Also only respond with the json."""
response = client.chat.completions.create(
  model=datagen_model,
  messages=[
    {"role": "system", "content": "You are a helpful assistant designed to generate synthetic data."},
    {"role": "user", "content": question}
  ]
)
res = response.choices[0].message.content
print(res)
```json
[
  {
    "id": 1,
    "problem": "Find the sum of the first 100 even numbers.",
    "solutions": [
      "To find the sum of the first 100 even numbers, we can use the formula for the sum of an arithmetic series. The first 100 even numbers form an arithmetic series where the first term \(a = 2\) and the common difference \(d = 2\). The sum \(S_n\) of the first \(n\) terms of an arithmetic series is given by \(S_n = \frac{n}{2} (2a + (n-1)d)\). Here, \(n = 100\), \(a = 2\), and \(d = 2\). Substituting these values in, we get",
      "S_100 = \frac{100}{2} (2 \cdot 2 + (100-1) \cdot 2) = 50 (4 + 198) = 50 \cdot 202 = 10100."
]
  },
  {
    "id": 2,
    "problem": "What is the smallest positive integer that is both a multiple of 7 and a multiple of 11?",
    "solutions": [
      "To find the smallest positive integer that is both a multiple of 7 and a multiple of 11, we need to find the least common multiple (LCM) of 7 and 11. Since 7 and 11 are both prime numbers, their LCM is simply their product. Therefore, the LCM of 7 and 11 is \(7 \times 11 = 77\). So, the smallest positive integer that is both a multiple of 7 and a multiple of 11 is 77."
    ]
  },
  {
    "id": 3,
    "problem": "If a square has a side length of 5 units, what is the area of the square?",
    "solutions": [
      "The area \(A\) of a square with side length \(s\) is given by the formula \(A = s^2\). Here, the side length \(s = 5\) units. Substituting this value into the formula, we get",
      "A = 5^2 = 25."
    ]
  }
]
```

“大模型能不能做数学题”,不仅是社交平台的热门话题,也是业界非常关注的研究课题。处理高级数学问题,需要模型具备复杂多步逻辑推理能力。通义团队在技术博客中表示,希望通过开源“为科学界解决高级数学问题做出贡献”,未来将持续增强模型数学能力。

点击链接👇直达原文

https://modelscope.cn/models/qwen/Qwen2-Math-72B-Instruct?from=alizishequ__text

相关文章
|
运维 并行计算 C语言
TensorRT-LLM在CodeFuse-CodeLlama-34B上的int4量化实践
Codefuse是由蚂蚁集团开发的专门用于支持整个软件开发生命周期的大型代码语言模型(Code LLMs),涵盖设计、需求、编码、测试、部署、运维等关键阶段。致力于打造创新的解决方案,让软件开发者们在研发的过程中如丝般顺滑。
451 0
|
3月前
|
JSON 文字识别 数据可视化
Qwen2-VL微调实战:LaTex公式OCR识别任务(完整代码)
《SwanLab机器学习实战教程》推出了一项基于Qwen2-VL大语言模型的LaTeX OCR任务,通过指令微调实现多模态LLM的应用。本教程详述了环境配置、数据集准备、模型加载、SwanLab集成及微调训练等步骤,旨在帮助开发者轻松上手视觉大模型的微调实践。
|
18天前
|
人工智能 Linux 开发工具
Kiln AI:零代码实现微调模型!自动生成合成数据与微调模型的开源平台
Kiln AI 是一款开源的 AI 开发工具,支持零代码微调多种语言模型,生成合成数据,团队协作开发,自动部署。帮助用户快速构建高质量的 AI 模型。
539 8
Kiln AI:零代码实现微调模型!自动生成合成数据与微调模型的开源平台
|
2天前
|
机器学习/深度学习 人工智能 算法
Qwen2.5-Math: 世界领先的数学开源大语言模型
Qwen2.5-Math: 世界领先的数学开源大语言模型
|
24天前
|
人工智能 开发者
媲美OpenAI事实性基准,这个中文评测集让o1-preview刚刚及格
为评估大型语言模型(LLM)在中文语境下的事实性能力,研究团队推出“Chinese SimpleQA”评测集。该评测集具备中文、多样性、高质量、静态和易于评估的特点,涵盖六个主要主题和99个子主题。评估结果显示,尽管部分模型在特定领域表现出色,但整体事实性能力仍有待提升。Chinese SimpleQA为LLM开发者提供了宝贵工具,推动中文LLM的改进与发展。论文链接:https://arxiv.org/abs/2411.07140
44 14
|
2天前
|
自然语言处理 JavaScript 前端开发
Qwen开源多语言基准数据集P-MMEval
Qwen开源多语言基准数据集P-MMEval
|
3月前
|
机器学习/深度学习 人工智能
Qwen2VL-Flux:开源的多模态图像生成模型,支持多种生成模式
Qwen2VL-Flux 是一个开源的多模态图像生成模型,结合了 Qwen2VL 的视觉语言理解和 FLUX 框架,能够基于文本提示和图像参考生成高质量的图像。该模型支持多种生成模式,包括变体生成、图像到图像转换、智能修复及 ControlNet 引导生成,具备深度估计和线条检测功能,提供灵活的注意力机制和高分辨率输出,是一站式的图像生成解决方案。
348 4
Qwen2VL-Flux:开源的多模态图像生成模型,支持多种生成模式
|
3月前
|
人工智能 缓存 自然语言处理
基于 Qwen Max 底座打造的图谱增强文本生成式任务系统
基于Qwen Max打造的图谱增强文本生成系统,结合知识图谱与生成式AI,具备精准高效的文字生成能力。系统支持文档解析、知识图谱构建、社区检测、复杂关系建模、语义检索、Prompt调优、分布式任务管理等核心功能,广泛适用于多轮对话、摘要生成、文档翻译等任务,满足大规模、高并发的生产需求。
148 1
|
7月前
|
机器学习/深度学习 人工智能 数据可视化
技术开源|语音情感基座模型emotion2vec
技术开源|语音情感基座模型emotion2vec
|
7月前
|
网络安全 语音技术
语音情感基座模型emotion4vec 问题之计算emotion2vec模型中的总损失L,如何操作
语音情感基座模型emotion4vec 问题之计算emotion2vec模型中的总损失L,如何操作