DeepSeek又在节前放大招!
写在前面
事情是这样的,就在五一假期开始前夕,DeepSeek放出了模型DeepSeek-Prover-V2-671B:

这是延续了节假日狂飙的传统?

言归正传,我们看看这次放出了哪些核心技术。
最直接的方法是参见技术报告,也在半夜放出来了(真是一群勤奋的家伙啊)。

链接:https://github.com/deepseek-ai/DeepSeek-Prover-V2/blob/main/DeepSeek_Prover_V2.pdf,网络不方便的小伙伴可以关注公众号xiaoxi666后回复“DeepSeek_Prover_V2”获取。
这篇论文到底说了啥呢,先画个大纲总结下:

通篇读下来,印象最深刻的就是”形式化数学推理“和”形式化证明“这两个概念,他们两者的结合也是这个模型最大的创新点。
“非形式数学推理”与“形式化证明”
非形式数学推理的英文名为 informal mathematical reasoning,指使用自然语言和直观的逻辑来理解和解释数学概念或证明定理。它依赖于人类的直觉和经验,通常不涉及严格的符号和规则。
形式化证明的英文名为 formally verified 或者 formal theorem proving,指使用严格的数学符号和逻辑规则来构建和验证数学证明,要求每一步都必须有明确的依据,并且整个证明过程必须是可验证的。现在模型推理引入该方法,称为“形式化数学推理”,英文名为 formal mathematical reasoning。
两者的区别主要在于表达方式的精确性:
| 特点 | 非形式化推理 | 形式化推理 |
|---|---|---|
| 表达方式 | 自然语言 | 严格的数学符号和逻辑规则 |
| 精确性 | 较低,可能包含模糊表述 | 高,每一步都有明确依据 |
| 适用范围 | 日常交流、初步探索 | 严格证明、软件验证 |
| 工具和技术 | 直觉、经验、自然语言处理 | 形式化语言、自动定理证明器 |
| 示例 | 因为三角形内角和为180度,所以这个三角形是直角三角形。 | 根据欧几里得几何公理,若∠A + ∠B + ∠C = 180°,且∠A = 90°,则该三角形为直角三角形。 |
在深度学习和人工智能领域,非形式化推理和形式化证明的结合变得越来越重要(尤其数学定理证明时):
- 非形式化推理可以帮助模型理解问题的背景和上下文,生成初步的证明思路。
- 形式化推理则用于将这些思路转化为严格的数学证明,确保每一步都是正确的。
通过结合这两种方法,可以更有效地解决复杂的数学问题,提高模型的推理能力和证明的准确性。这也是 DeepSeek-Prover-V2 主要发力点。
其实,早在2024年12月20日,就有一篇论文“Formal Mathematical Reasoning: A New Frontier in AI”讨论了形式化数学推理在人工智能领域中的重要性,这篇论文主要围绕4个点进行了研究:
1、形式化数学推理的定义:形式化数学推理基于形式系统,如一阶逻辑、依赖类型理论和带有形式规范的计算机程序。这些系统提供了一个环境,可以验证模型的推理并提供自动反馈。
2、证明工具的使用:同样是引入了Lean这种用于编写形式证明的函数式编程语言。它适用于编写数学定义、定理和证明,其核心特性是能够自动检查证明的 correctness。

3、自动形式化:自动形式化是将非正式数学文本自动转换为形式数学表达式的过程。这可以通过机器学习和深度学习技术实现,如神经机器翻译和自回归语言模型。
4、神经定理证明:神经定理证明是利用深度学习方法在形式系统中寻找定理证明的启发式方法。常用的方法包括专家迭代、从错误中学习和非正式证明草图的利用。

其实,在AIGC时代以前,形式化验证的手段常用于安全关键的系统(例如航空航天、高铁动车、核电等),其系统的行为必须是可以预测的,形式化方法能够确保这些系统的行为符合预期,避免死锁、数据竞争等问题。更为具体的描述可参见往期文章:
可以预见的是,未来的强人工智能,会朝着越来越严谨的推理方向演进(虽然AGENT、RAG等外挂技术还是当下主流)。引入形式化验证的方法,对于迈向强人工智能之路具有极为重要的意义。
Lean4 与 ADT
提到 Lean4,就不得不提一下 ADT,它们有很深的渊源。ADT的全称是 Algebraic Data Types,一般译为“代数数据类型”。ADT 是 Lean4 的核心组成部分,用于定义数据结构、逻辑命题和数学对象,并通过模式匹配和递归机制支持函数定义和证明。
比如,在Lean4中,可以使用inductive关键字来定义 ADT。例如,定义布尔类型 Bool 和自然数类型 Nat:
inductive Bool where
| false : Bool
| true : Bool
inductive Nat where
| zero : Nat
| succ (x : Nat) : Nat
上述定义分别创建了布尔类型和自然数类型,其中布尔类型有两个构造函数 false 和 true,自然数类型有两个构造函数 zero 和 succ。
更为复杂的数学结构和数据模型也可以定义,比如定义一个简单的二叉树结构:
inductive Tree (α : Type) where
| leaf : Tree α
| node : Tree α → α → Tree α → Tree α
上述定义创建了一个参数化的二叉树类型,其中 leaf 表示空树,node 表示一个包含左子树、值和右子树的节点。
模式匹配功能也不在话下,比如定义一个函数来计算二叉树的大小:
def treeSize {α : Type} : Tree α → Nat
| leaf => 0
| node left _ right => 1 + treeSize left + treeSize right
总的来说,Lean4 通过支持 ADT 提供了强大的数据定义和操作能力,这使得它在形式化数学和自动化定理证明中非常有用。另外,Lean4 的强大类型系统和元编程能力进一步巩固了它在这些领域的应用潜力。
最后,可以参考往期文章,其中有一篇推荐文章,结合ADT和代数解空间进行了详细阐述:
DeepSeek又在节前放大招!的更多相关文章
- 2013年国庆节前51Aspx源码发布详情
Sky软件公司网站修正版源码 2013-9-30 [VS2010]源码描述:针对Sky软件公司网站源码进行修正.修改ckeditor引用问题,发布样式错误问题.vs2010直接编译.发布成功. 网站 ...
- 50个新的汉化Demo!纯前端 Wijmo 放大招
Wijmo 是为企业应用程序开发而推出的一系列包含 HTML5 和 JavaScript 的开发控件,包含 Wijmo 5 . Wijmo 3 及面向企业级应用的控件金融图表.FlexSheet 和 ...
- 法国总统放大招,用“分身术”竞选总统 全息3d 网
编辑:大熊 [摘要]法国总统采用全息技术实现"分身"演讲,可谓是一次演讲,全面覆盖! 全息3d网讯:众所周知,欧美国家的总统是通过公开竞选得到的,所以能更直接.更广泛的近距离接触民 ...
- 新年放大招:Github 私库免费了!
据<Github 嫁入豪门>这篇文章刚好半年了,那时候栈长还表示对 Github 的期待,仅仅半年,现在就已经有了巨大改变. 微软果然是豪门,嫁入半年就已经开花结果了,免费私库已全面无限制 ...
- 劳动节前得空半天-总结一下最近使用的LINUX命令
一.搜索文件 1.locate xxx.log 全盘搜索xxx.log文件 2.which java 查找命令 3.ll xxx.log 在目录下查找文件 二.搜索内 ...
- 易观OLAP算法大赛结果揭晓,开源组黑马放大招!
100+天激烈赛程,40+国内顶级技术豪门对决,历经研发内部测试.正式环境测试和易观数据正式环境跑benchmark三大阶段.10月28日,易观OLAP算法大赛优胜名单出炉! 40+技术门派比武 易观 ...
- 春节前“摸鱼”指南——SCA命令行工具助你快速构建FaaS服务
春节将至,身在公司的你是不是已经完全丧失了工作的斗志? 但俗话说得好:"只要心中有沙,办公室也能是马尔代夫." 职场人如何才能做到最大效能地带薪"摸鱼",成为了 ...
- Java字符串到数组的转换--最后放大招
本文是关于如何在Java中以不同方式将String转换为String Array的几种方法,按照惯例,文末会分享Groovy语言中的实现. split()方法 字符串api是通过split()方法添加 ...
- RecyclerView使用大全
RecylerView介绍 RecylerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字recyler ...
- 首个threejs项目-前端填坑指南
第一次使用threejs到实际项目中,开始的时候心情有点小激动,毕竟是第一次嘛,然而做着做着就感受到这玩意水好深,满满的都是坑,填都填不过来.经过老板20天惨无人道的摧残,终于小有成就. 因为第一次搞 ...
随机推荐
- 开源接流:一个方法搞定3D地图双屏联动
老大提需求:一份数据,在2D地图上可编辑,在3D地图上显示高度信息,关键是两个地图得支持视图同步,末了还来句"两天时间够了吧?"我饶了饶头,内心各种问候...,代码如何下手,特X的 ...
- iceberg调研-查询Iceberg表流程
1.查询表结构 show create table data_lake_ods.dws_service_subclazz_lesson_user_learn_stat_rt_v2 CREATE TAB ...
- Idea无法下载插件或下载插件报错
Plugin Python was not installed: Cannot download 'https://plugins.jetbrains. file -> settings -& ...
- Linux环境下安装phantomjs
一.创建文件夹,用来存放软件 cd /opt/softWare mkdir phantomJS cd phantomJS 二.下载并解压 wget https://bitbucket.org/ari ...
- Luogu P3975 TJOI2015 弦论 题解 [ 紫 ] [ 后缀自动机 ] [ 动态规划 ] [ 拓扑排序 ]
弦论:本来不想写板子题题解的,但奈何这道题的题解都太垃圾了,导致我理解了一个晚上都没想明白 dp 转移啥意思/fn/fn/fn,所以记录一下. 思路 \(t=0\) 时 考虑 SAM 思路,建出后缀自 ...
- Atcoder ABC216G 01Sequence 题解 [ 蓝 ] [ 差分约束 ]
01Sequence:比较板的差分约束,但有一个很妙的转化. 朴素差分约束 设 \(x_i\) 表示第 \(i\) 位的前缀和. 我们要最小化 \(1\) 的个数,就要求最小解,就要求最长路.因为约束 ...
- 用 DeepSeek 给对象做个网站,她一定感动坏了
大家好,我是程序员鱼皮.又是一年特殊的日子,作为一名程序员,总是幻想着自己有对象, 总是想着用自己贼拉牛 X 的编程技术给对象做个网站. 本文对应视频,观看体验更好哦:https://bilibili ...
- 用python做时间序列预测八:Granger causality test(格兰杰因果检验)
如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...
- Dotfuscator混淆时的配置信息
这个是64位的Framework
- Kubernetes - [01] 概述
容器编排工具 一.什么是Kubernetes K8s,即Kubernetes,是一个开源的容器管理和自动化部署平台,设计用于简化容器化应用程序的部署.扩展和管理过程.它是Google在2014年基 ...