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天惨无人道的摧残,终于小有成就. 因为第一次搞 ...
随机推荐
- Luogu P10842 Piggy and Trees 题解 [ 绿 ] [ 拆边 ] [ 贡献思维 ] [ 组合数学 ]
Piggy and Trees:把路径拆成边的思维题. 思路 一看到这题的路径,就想到了 Luogu P3177 树上染色 这题化路径为边的贡献,分别计算的思维. 那么对于此题,先来观察题目里式子的意 ...
- mysql之我的第一个jdbc程序
package com.yeyue.lesson01; import java.sql.*; public class jdbcFirstDemo { public static void main( ...
- 如何正确配置 .gitignore 以忽略特定文件夹下的文件(除指定子文件夹外)
在使用 Git 进行版本控制时,.gitignore 文件是一个非常有用的工具,可以帮助我们忽略不需要跟踪的文件或文件夹.然而,有时我们需要忽略某个文件夹下的所有内容,但保留其中的某个子文件夹.本文将 ...
- 基于 Flink+Iceberg 构建企业级实时数据湖
Apache Flink 是大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构.那么当 Apache Flink 遇见数据湖时,会碰撞出什么样的火花呢?本次分享主要包括以 ...
- 什么是nginx的强缓存和协商缓存
一.强缓存(Strong Cache) 1. 定义 • 强缓存直接告诉浏览器:在缓存过期前,无需与服务器通信,直接使用本地缓存. • 由服务器通过响应头 Cache-Control 和 Expires ...
- Windows和Ubuntu间TCP连接测试
起因是想在Ubuntu上用Synergy,但是发现爱你怎么都连不上.鼓捣了半天发现似乎Ubuntu监听,Windows测试TCP连接总是不成功,反之却能成功,大概问题就在这,尚未解决先记录一下. 基本 ...
- rust学习笔记(5)
函数 定义为 fn is_divisible_by(lhs: u32, rhs: u32) -> bool { 使用 -> 指向返回的类型 函数定义的位置没有限制 method 针对结构体 ...
- 微信小程序分包体积优化建议
代码包体积优化 启动性能优化最直接的手段是降低代码包大小,代码包大小直接影响了下载耗时,影响用户启动小程序时的体验. 开发者可以采取以下手段优化代码包体积: 1. 合理使用分包加载 推荐所有小程序使用 ...
- New Bing 全面开放?我看未必
前段时间大家应该都被ChatGPT刷屏了,其实就回答来说New Bing 才是最厉害的,因为它底层使用了ChatGPT 并且可以支持联网查询数据,回答中还能支持看到出处,方便确认其真实性. New B ...
- Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区 ...