模型 - DeepSeek-Prover-V2


一、关于 DeepSeek-Prover-V2

简介

DeepSeek-Prover-V2 是一个专为Lean 4形式化定理证明设计的开源大语言模型。

其初始化数据通过由 DeepSeek-V3 驱动的 递归定理证明流程 收集。

冷启动训练过程首先提示DeepSeek-V3将复杂问题分解为一系列子目标,已解决的子目标 证明会被合成为思维链流程,结合DeepSeek-V3的逐步推理能力,为强化学习创建初始冷启动。

这一过程使我们能够将非形式化与形式化的数学推理统一整合到单一模型中。


基础信息


模型概述

通过递归证明搜索合成冷启动推理数据

  • 为构建冷启动数据集,我们开发了一个简单高效的递归定理证明流程,将DeepSeek-V3作为子目标分解与形式化的统一工具。通过提示DeepSeek-V3将定理分解为高层级证明框架,同时在Lean 4中形式化这些证明步骤,最终生成一系列子目标。
  • 我们使用较小的7B模型处理每个子目标的证明搜索,从而降低计算负担。当难题的分解步骤被解决后,我们将完整的逐步形式化证明与DeepSeek-V3的思维链配对,创建冷启动推理数据。

基于合成冷启动数据的强化学习

  • 我们筛选出7B证明模型在端到端模式下未能解决、但所有分解子目标均已成功解决的难题子集。通过组合所有子目标的证明,为原始问题构建完整的形式化证明。该证明随后被附加到DeepSeek-V3描述对应引理分解的思维链上,从而生成非形式推理与后续形式化的有机结合。
  • 在合成冷启动数据上微调证明模型后,我们执行强化学习阶段以进一步增强其连接非形式推理与形式化证明构建的能力。遵循推理模型的标准训练目标,采用二元正确/错误反馈作为主要的奖励监督形式。
  • 最终模型DeepSeek-Prover-V2-671B在神经定理证明领域达到最先进性能:MiniF2F测试集通过率88.9%,解决PutnamBench中658道问题的49道。其针对miniF2F数据集生成的证明可通过ZIP压缩包下载。

二、ProverBench 基准数据集 :AIME与教材问题的形式化基准

我们推出ProverBench基准数据集,包含325道数学问题。

其中15道来自近期AIME竞赛(AIME 24和25)的数论与代数题目,这些题目经过形式化处理,呈现了真实的高中竞赛级挑战。

其余310道问题精选自教材例题和教学教程,构成了多样化且具有教学意义的数学问题形式化集合。该基准旨在实现对高中竞赛题和本科数学题的全面评估。

领域数量
AIME 24&2515
数论40
初等代数30
线性代数50
抽象代数40
微积分90
实分析30
复分析10
泛函分析10
概率论10
总计325

三、模型与数据集下载

我们发布了两种参数规模的 DeepSeek-Prover-V2 模型:7B和671B参数版本。其中:

  • DeepSeek-Prover-V2-671B 基于 DeepSeek-V3-Base 训练
  • DeepSeek-Prover-V2-7B 基于DeepSeek-Prover-V1.5-Base 构建,并扩展了上下文长度至32K tokens
模型下载地址
DeepSeek-Prover-V2-7B🤗 HuggingFace
DeepSeek-Prover-V2-671B🤗 HuggingFace
数据集下载地址
DeepSeek-ProverBench🤗 HuggingFace

四、快速开始

你可以直接使用Huggingface的 Transformers进行模型推理。

DeepSeek-Prover-V2-671B与DeepSeek-V3采用相同的架构,详细信息和功能支持请参考Hugging Face上的DeepSeek-V3文档

以下是为miniF2F数据集中的问题生成证明的基础示例:


from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(30)

model_id = "DeepSeek-Prover-V2-7B"  # or DeepSeek-Prover-V2-671B
tokenizer = AutoTokenizer.from_pretrained(model_id)

formal_statement = """
import Mathlib
import Aesop

set_option maxHeartbeats 0

open BigOperators Real Nat Topology Rat

/-- What is the positive difference between $120\%$ of 30 and $130\%$ of 20? Show that it is 10.-/
theorem mathd_algebra_10 : abs ((120 : ℝ) / 100 * 30 - 130 / 100 * 20) = 10 := by
  sorry
""".strip()

prompt = """
Complete the following Lean 4 code:

\```lean4
{}
\```

***
Before producing the Lean 4 code to formally prove the given theorem, provide a detailed proof plan outlining the main proof steps and strategies.
The plan should highlight key ideas, intermediate lemmas, and proof structures that will guide the construction of the final formal proof.
""".strip()

chat = [
  {"role": "user", "content": prompt.format(formal_statement)},
]

model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True)
inputs = tokenizer.apply_chat_template(chat, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)

import time
start = time.time()
outputs = model.generate(inputs, max_new_tokens=8192)
print(tokenizer.batch_decode(outputs))
print(time.time() - start)


伊织 xAI 2025-05-05(周一)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值