当前位置: 首页 > news >正文

【AI学习】DeepSeek为什么强?

个人的一些思考,请大家批评指正。

这个问题,首先当然是在恰当的时间出现,模型性能跻身世界一流,又开源,戳破了OpenAI和英伟达潜心构造的叙事逻辑。

DeepSeek为什么强?四个方面:模型的智能水平、训练成本、推理成本和用户体验。

一、DeepSeek的智能水平

DeepSeek V3的智能水平,技术报告展现的性能对比图:

在这里插入图片描述

是什么导致了DeepSeek的模型性能,是模型架构吗?MoE、MLA这些?或许有一点关系,但是应该不是主要因素,决定模型性能的,主要应该是DeepSeek没有开源的内容——数据集以及训练时的数据配比。

去年看到OpenAI的一名员工的博客,内容摘录如下:


数据即模型!来自 OpenAI 模型炼丹师的 insight!人脑也是一样,其思想无限逼近于其接收到的信息;你灌输什么,他就呈现什么!

作者在 OpenAI 工作近一年,观察到生成模型的训练过程显示模型行为主要由数据集决定,而非架构、超参数或优化器选择。
🎯 Key Points

  • 作者训练了大量生成模型;

  • 观察到所有训练运行之间存在相似性;

  • 模型高度逼近其数据集,学习到的不仅是狗或猫的概念,还有不重要的分布间隙;

  • 在相同数据集上训练足够长时间,任何具有足够权重和训练时间的模型都会收敛到相同点;

  • 大型扩散卷积网络和 ViT 生成器会生成相同的图像;

  • 自回归采样和扩散方法也会生成相同的图像;

  • 这表明模型行为不由架构、超参数或优化器选择决定,而是由数据集决定;

  • 其他因素只是有效地将计算交付给逼近数据集的手段;

  • 当提到“Lambda”、“ChatGPT”、“Bard”或“Claude”时,指的是数据集,而不是模型权重。


LLM预训练scaling law的发展,一开始强调模型要大,然后是数据要多,再后来就是强调数据的质量。数据质量方面,一方面是强调数据质量,通过专家撰写高质量数据、以及各种数据筛选方法和工具,保证数据质量是第一位的;第二方面,不断增加数学、逻辑、代码等能够提升大模型理性能力的数据配比比例,尤其在模型训练退火阶段,调整数据混合配比,增加高质量数据等等。

总之,我的猜测,DeepSeek V3的性能好,主要是因为数据集的原因。

DeepSeek R1的性能好,首先来源于DeepSeek V3底座模型的能力够,其次是DeepSeek R1成功摸索了一套RL方法,另外,推理成本低也会导致推理的性能增强。

二、DeepSeek的训练成本和推理成本

DeepSeek V3的训练成本,那个600万美金,从一开始,我的观点就是听听得了,只是成功训练一次的成本,不包括数据集、探索以及人力成本。AI这个事,可能最费劲的是数据集,相比数据,训练应该在其次。当然,不可否认,DeepSeek的训练成本确实低,这个确实是因为模型架构、以及训练方法。DeepSeek的训练成本低,主要是MoE和训练的低精度技术。MLA并不降低训练成本,只是推理成本低。模型的MTP,主要作用是训练更加稳定,当然,训练稳定了训练成本也会更低,细看DeepSeek V3的技术报告,看不出MTP提升模型性能,尤其的最大尺寸的模型性能。LLM的训练是一个细致活,还有其他的因素,包括PTX的使用、通信的优化等等。

DeepSeek V3的推理成本低,模型架构中的MLA、MoE和MTP等技术,应该均有贡献。

三、DeepSeek的用户体验

DeepSeek的用户体验方面嘛。首先说,时尚这个东西,之所以称为时尚,就在于难于预测。体验首先来自民心,DeepSeek撼动了美国AI界,提升了国人信心,就已经获得了最大民心。

对于用户体验,具体来说,看到有说DeepSeek说话犀利、有情绪价值,不像机器人,更像人。网上关于周鸿祎、以及为什么DeepSeek来自初创公司而不是互联网大厂这些问题,我也试了,确实可以复刻,确实犀利,敢说!但是呢,这里的原因,恐怕不是因为模型的智能水平,而是模型的最后的对齐方面,在模型的后训练方面,模型的输出对齐到了这种风格。也说明DeepSeek团队确实有性格。但是,这种风格,对于其他的LLM团队,应该不难,只是敢不敢愿不愿的问题。

相关文章:

【AI学习】DeepSeek为什么强?

个人的一些思考,请大家批评指正。 这个问题,首先当然是在恰当的时间出现,模型性能跻身世界一流,又开源,戳破了OpenAI和英伟达潜心构造的叙事逻辑。 DeepSeek为什么强?四个方面:模型的智能水平…...

【快应用】原生广告下载状态监听案例

问题背景: 快应用中下载类原生广告监听下载状态变化接口调用没生效,在上报点击接口里触发下载监听后仅第一次返回状态,之后就不返回了,该如何处理? 问题分析: 快应用在1100版本新增了一个ad-button组件&a…...

C++语言的软件工程

C语言的软件工程 引言 在当今快速发展的技术领域,软件工程作为一门综合性的学科,越来越受到重视。而C语言,作为一种功能强大且具有广泛应用的编程语言,在软件工程中占据着重要的地位。本文将探讨C语言在软件工程中的应用与特点&…...

计算机网络结课设计:通过思科Cisco进行中小型校园网搭建

上学期计算机网络课程的结课设计是使用思科模拟器搭建一个中小型校园网,当时花了几天时间查阅相关博客总算是做出来了,在验收后一直没管,在寒假想起来了简单分享一下,希望可以给有需求的小伙伴一些帮助 目录 一、设计要求 二、…...

无人机避障——基于ESDF地图的JPS算法前端路径规划

原来是用栅格地图的方式,0表示可通行区域,1表示不可通行区域,然后采用JPS算法做路径规划,从起点到终点规划出一条路径。但是目前我需要做的是将栅格地图更换为ESDF地图,那么JPS算法计算代价的部分是否需要进行变化。 …...

【MQ】RabbitMQ 高可用延时功能的探究

延迟消息如果使用延时交换机来实现,如果数据量过大,就会很占 CPU 资源,轻则时间误差大,重则 RabbitMQ 宕机 一、针对一个 RabbitMQ 节点 (1)利用队列 ttl,将延迟消息根据 delay 的时间进行分级…...

Maven入门核心知识点总结

Maven 1. POM(Project Object Model)2. 坐标(Coordinates)3. 依赖管理(Dependency Management)4. 常用五个生命周期(Life Circle)5. Maven 仓库(Maven Repository&#x…...

【力扣】138.随机链表的复制

AC截图 题目 代码 使用哈希存储<旧节点&#xff0c;新结点> /* // Definition for a Node. class Node { public:int val;Node* next;Node* random;Node(int _val) {val _val;next NULL;random NULL;} }; */class Solution { public:Node* copyRandomList(Node* hea…...

编程语言的深度剖析:从语法到性能优化

引言 随着软件开发的不断进化&#xff0c;编程语言的选择对项目的成功与否具有关键影响。今天的开发者面临着丰富多样的编程语言选择&#xff1a;每一种语言都有独特的优势、特性和适用场景。然而&#xff0c;语言的设计理念、运行机制和优化技巧背后的技术细节却常常被忽视。本…...

台湾精锐APEX减速机在半导体制造设备中的应用案例

半导体制造设备对传动系统的精度、可靠性和稳定性要求极高&#xff0c;台湾精锐APEX减速机凭借其低背隙、高精度和高刚性等优势&#xff0c;在半导体制造设备中得到了广泛应用。 案例一&#xff1a;晶圆切割设备 1.应用场景 在晶圆切割过程中&#xff0c;设备需要高精度的运…...

Rocketmq 和 Rabbitmq ,在多消费者的情况下,可以实现顺序消费吗

在多消费者的情况下&#xff0c;RocketMQ 和 RabbitMQ 都可以实现顺序消费&#xff0c;但它们的实现机制和适用场景有所不同。以下是对两者的详细分析和对比&#xff1a; 1. RocketMQ 的顺序消费 1.1 实现机制 顺序消息&#xff1a;RocketMQ 支持顺序消息&#xff08;Orderly …...

Springboot原理(面试高频)

目录 一、 配置优先级 ​编辑 二、Bean管理 ​​​​​​​2.1&#xff1a;获取Bean ​编辑 ​​​​​​​2.2&#xff1a;Bean作用域 ​​​​​​​​​​​​​​2.3&#xff1a;第三方Bean 三、Springboot底层原理 3.1&#xff1a;起步依赖 3.1.1&#xff1a;ma…...

2024 Rust现代实用教程:1.1Rust简介与安装更新

文章目录 一、Rust安装二、更新Rust三、Rust的Stable与Nightly版本四、卸载ubuntu安装的cargo和rustup五、rust源设置六、rust交叉编译工具链说明 rustup稳定版交叉编译步骤 步骤 1&#xff1a;安装目标组件步骤 2&#xff1a;安装交叉编译工具链步骤 3&#xff1a;配置环境变…...

yolov11模型在Android设备上运行【踩坑记录】

0) 参考资料: https://github.com/Tencent/ncnn?tabreadme-ov-file https://github.com/pnnx/pnnx https://github.com/nihui/ncnn-android-yolov5 https://github.com/Tencent/ncnn?tabreadme-ov-file 1) &#xff1a;将xxx.pt模型转化成 xxx.onnx ONNX&#xff08;Ope…...

提示工程:少样本提示(Few-shot Prompting)

少样本提示&#xff08;Few-shot Prompting&#xff09;是一种利用大语言模型从少量示例样本中学习并处理任务的方法。它的核心思想是利用大语言模型的上下文学习能力&#xff0c;通过在提示中增加“示例样本”来启发大语言模型达到举一反三的效果。这种方法避免了重新训练或者…...

方舟字节码原理剖析:架构、特性与实践应用

方舟字节码原理剖析&#xff1a;架构、特性与实践应用 一、引言 在当今软件行业高速发展的大背景下&#xff0c;应用程序的性能、开发效率以及跨平台兼容性成为了开发者们关注的核心要素。编译器作为软件开发流程中的关键工具&#xff0c;其性能和特性直接影响着软件的质量和…...

深入Linux系列之环境变量

深入Linux系列之环境变量 那么在之前的内容中&#xff0c;我们已经介绍了我们Linux进程的一些关键属性&#xff0c;例如进程编号以及进程状态和进程优先级&#xff0c;那么本篇文章接介绍Linux的环境变量这一知识点&#xff0c;那么废话不多说&#xff0c;我们进入环境变量的讲…...

国产编辑器EverEdit - Web预览功能

1 Web预览 1.1 应用场景 在编辑HTML文件时&#xff0c;可以通过EverEdit的Web预览功能&#xff0c;方便用户随时观察和调整HTML代码。 1.2 使用方法 1.2.1 使用EverEdit内部浏览器预览 选择主菜单查看 -> Web预览&#xff0c;或使用快捷键Ctrl B&#xff0c;即可打开Ev…...

C#中的Frm_Welcome.Instance.Show(),是什么意思

Frm_Welcome.Instance.Show() 是一种常见的单例模式&#xff08;Singleton Pattern&#xff09;实现方式&#xff0c;通常用于在应用程序中确保某个窗体&#xff08;Form&#xff09;只有一个实例&#xff0c;并通过该实例显示窗体。以下是对这段代码的详细解释&#xff1a; 代…...

07苍穹外卖之redis缓存商品、购物车(redis案例缓存实现)

课程内容 缓存菜品 缓存套餐 添加购物车 查看购物车 清空购物车 功能实现&#xff1a;缓存商品、购物车 效果图&#xff1a; 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...