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

【AI学习】DeepSeek-V3 技术报告学习:总体架构

翻了一下DeepSeek-V3 技术报告学习,太长,只是大概翻了一下,其中Multi-Token Prediction的技术就很亮眼。

摘要

本文介绍了DeepSeek-V3,这是一个拥有671B总参数的强大混合专家(MoE)语言模型,每个标记激活37B参数。为了实现高效的推理和成本效益的训练,DeepSeek-V3采用了多头潜在注意力(MLA)和DeepSeekMoE架构,这些架构在DeepSeek-V2中已经得到了充分的验证。此外,DeepSeek-V3率先采用了一种无辅助损失的策略来进行负载平衡,并设置了多标记预测训练目标以增强性能。我们在14.8万亿多样化和高质量的标记上预训练DeepSeek-V3,随后进行监督式微调和强化学习阶段,以充分发挥其能力。全面的评估表明,DeepSeek-V3超越了其他开源模型,并达到了与领先的闭源模型相当的性能。尽管性能出色,DeepSeek-V3的完整训练仅需要2.788M H800 GPU小时。此外,其训练过程非常稳定。在整个训练过程中,我们没有遇到任何不可恢复的损失峰值或执行任何回滚操作。模型检查点可在GitHub上找到: https://github.com/deepseek-ai/DeepSeek-V3

在这里插入图片描述

1. Introduction

当然,以下是文章《DeepSeek-V3 Technical Report》中第1部分“Introduction”的忠实翻译:

  1. 引言

近年来,大型语言模型(LLMs)经历了快速的迭代和演化(Anthropic, 2024; Google, 2024; OpenAI, 2024a),逐步缩小了与人工通用智能(AGI)之间的差距。除了闭源模型外,包括DeepSeek系列(DeepSeek-AI, 2024a,b,c; Guo et al., 2024)、LLaMA系列(AI@Meta, 2024a,b; Touvron et al., 2023a,b)、Qwen系列(Qwen, 2023, 2024a,b)和Mistral系列(Jiang et al., 2023; Mistral, 2024)在内的开源模型也在取得重大进展,努力缩小与闭源对手之间的差距。为了进一步推动开源模型能力的发展,我们扩展了我们的模型,并引入了DeepSeek-V3,这是一个拥有671B参数的大型MoE模型,其中每个标记激活了37B参数。

具有前瞻性的视角,我们始终致力于强大的模型性能和经济的成本。因此,在架构方面,DeepSeek-V3继续采用多头潜在注意力(MLA)(DeepSeek-AI, 2024c)以实现高效的推理,以及DeepSeekMoE(Dai et al., 2024)以实现成本效益的训练。这两种架构已在DeepSeek-V2(DeepSeek-AI, 2024c)中得到验证,证明了它们在保持强大模型性能的同时,能够实现高效的训练和推理。除了基本架构之外,我们还实施了两个额外的策略来进一步增强模型能力。首先,DeepSeek-V3率先采用了一种无辅助损失的策略(Wang et al., 2024a)来进行负载平衡,旨在最小化因鼓励负载平衡而对模型性能产生的不利影响。其次,DeepSeek-V3采用了多Token预测(MTP:Multi-Token Prediction)训练目标,我们观察到这增强了评估基准上的总体性能。

为了实现高效的训练,我们支持FP8混合精度训练,并为训练框架实施了全面的优化。低精度训练已成为高效训练的一个有前途的解决方案(Dettmers et al., 2022; Kalamkar et al., 2019; Narang et al., 2017; Peng et al., 2023b),其发展与硬件能力的进步(Luo et al., 2024; Micikevicius et al., 2022; Rouhani et al., 2023a)密切相关。在这项工作中,我们引入了一个FP8混合精度训练框架,并首次验证了其在极大规模模型上的可行性和有效性。通过支持FP8计算和存储,我们实现了加速训练和减少GPU内存使用。至于训练框架,我们为有效的流水线并行设计了DualPipe算法,它具有较少的流水线气泡,并且通过计算通信重叠,隐藏了训练期间的大部分通信。这种重叠确保了,随着模型的进一步扩展,只要我们保持恒定的计算与通信比率,我们仍然可以在节点间使用细粒度专家,同时实现接近零的全对全通信开销。此外,我们还开发了高效的跨节点全对全通信内核,以充分利用InfiniBand(IB)和NVLink带宽。此外,我们精心优化了内存占用,使得训练DeepSeek-V3无需使用昂贵的张量并行。结合这些努力,我们实现了高训练效率。

在预训练期间,我们在14.8T高质量和多样化的标记上训练DeepSeek-V3。预训练过程非常稳定。在整个训练过程中,我们没有遇到任何不可恢复的损失峰值或需要回滚。接下来,我们对DeepSeek-V3进行了两个阶段的上下文长度扩展。在第一阶段,最大上下文长度扩展到32K,在第二阶段,进一步扩展到128K。随后,我们在DeepSeek-V3的基础模型上进行后训练,包括监督式微调和强化学习,以使其与人类偏好保持一致,并进一步释放其潜力。在后训练阶段,我们从DeepSeekR1系列模型中提取推理能力,同时仔细保持DeepSeek-V3的输出风格和长度的平衡。

在这里插入图片描述

DeepSeek-V3的主要贡献,包括:

架构:创新的负载平衡策略和训练目标
在DeepSeek-V2的高效架构基础上,DeepSeek-V3率先采用了无辅助损失的负载平衡策略,旨在最小化因鼓励负载平衡而对模型性能产生的不利影响。
研究并证明了多标记预测(MTP)目标对模型性能有益,并且可以用于推测性解码以加速推理。
预训练:追求终极训练效率
设计了一个FP8混合精度训练框架,并首次验证了FP8训练在极大规模模型上的可行性和有效性。
通过算法、框架和硬件的共同设计,克服了跨节点MoE训练中的通信瓶颈,实现了接近完全的计算-通信重叠,显著提高了训练效率并降低了训练成本,使得模型规模的进一步扩展不再增加额外开销。
以经济的成本完成了DeepSeek-V3在14.8T标记上的预训练,产生了目前最强的开源基础模型。预训练后的训练阶段仅需要额外的0.1M GPU小时。
后训练:从DeepSeek-R1中的知识蒸馏
引入了一种创新的方法,从长链思考(CoT)模型,特别是DeepSeek R1系列模型中,提取推理能力到标准LLMs,特别是DeepSeek-V3中。该流程将R1的验证和反思模式优雅地整合到DeepSeek-V3中,并显著提高了其推理性能。同时,也控制了DeepSeek-V3的输出风格和长度。

2. Architecture

我们首先介绍了DeepSeek-V3的基本架构,其特征是用于高效推理的多头潜在证明(MLA)(DeepSeek AI,2024c)和用于经济训练的DeepSeekMoE(Dai等人,2024)。然后,我们提出了一个多Token预测(MTP:Multi-Token Prediction)训练目标,我们观察到该目标可以提高评估基准的整体性能。对于其他未明确提及的细节,DeepSeek-V3遵循DeepSeek V2(DeepSeek AI,2024c)的设置。

2.1. Basic Architecture

在这里插入图片描述
DeepSeek-V3的基本架构仍然是基于Transformer(Vaswani et al., 2017)框架。为了实现高效的推理和经济的训练,DeepSeek-V3也采用了MLA(Multi-head Latent Attention)和DeepSeekMoE,这些已经在DeepSeek-V2中得到了充分的验证。与DeepSeek-V2相比,一个例外是我们还引入了一个无辅助损失的负载平衡策略(Wang et al., 2024a)用于DeepSeekMoE,以减轻为了确保负载平衡而对性能造成的影响。图2展示了DeepSeek-V3的基本架构,我们将在本节简要回顾MLA和DeepSeekMoE的细节。

2.1.1. Multi-Head Latent Attention

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.2. DeepSeekMoE with Auxiliary-Loss-Free Load Balancing(无辅助损失的DeepSeekMoE负载平衡)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2. Multi-Token Prediction

在这里插入图片描述
受Gloeckle等人(2024年)的启发,我们研究并为DeepSeek-V3设置了一个多Token预测(MTP)目标,该目标将每个位置的预测范围扩展到多个未来令牌。一方面,MTP目标增加了训练信号的密度,可能会提高数据效率。另一方面,MTP可能使模型能够预先规划其表示,以更好地预测未来的令牌。图3说明了我们MTP实现的情况。与Gloeckle等人(2024年)不同,他们使用独立的输出头并行预测D个额外的Token,我们顺序预测额外的Token,并在每个预测深度保持完整的因果链。我们在本节介绍我们的MTP实现的详细信息。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

备注

大概看下来,感觉梁文锋这个人真是厉害。作为扩展(八卦),可以继续阅读两篇文章
1、《揭秘DeepSeek:一个更极致的中国技术理想主义故事》
2、《连续30年不亏钱的传奇基金经理西蒙斯:人生还有两个目标》,作为量化基金的传奇人物,西蒙斯是梁文锋非常推崇的人物,可以一并阅读

相关文章:

【AI学习】DeepSeek-V3 技术报告学习:总体架构

翻了一下DeepSeek-V3 技术报告学习,太长,只是大概翻了一下,其中Multi-Token Prediction的技术就很亮眼。 摘要 本文介绍了DeepSeek-V3,这是一个拥有671B总参数的强大混合专家(MoE)语言模型,每…...

PyTorch快速入门

文章目录 前言简介软件包导入创建张量类型操作索引直接索引切片索引 维度变换增加维度删除维度维度重复维度交换broadcast合并张量拆分张量运算最后 前言 你好,我是醉墨居士,今天分享一下PyTorch的基本使用的快速入门教程,希望能够帮助各位快…...

GCP Cloud Observability 是什么,有什么使用场景

GCP Cloud Observability 是 Google Cloud Platform (GCP) 提供的一组工具和服务,用于监控、日志记录、追踪和调试应用程序和基础设施的健康和性能。通过收集和分析遥测数据(如指标、日志和追踪信息),Cloud Observability 有助于理…...

OpenCV相机标定与3D重建(35)计算两幅图像之间本质矩阵(Essential Matrix)的函数findEssentialMat()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 从两幅图像中的对应点计算本质矩阵。 cv::findEssentialMat 是 OpenCV 库中用于计算两幅图像之间本质矩阵(Essential Matrix&#xf…...

计算机毕业设计Hadoop+Spark美团美食推荐系统 美团餐厅推荐系统 美团推荐系统 美食价格预测 美团爬虫 美食数据分析 美食可视化大屏

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

【探花交友】SpringCache

目录 通用缓存SpringCache 重要概念 导入依赖 开启缓存支持 编写UserInfoService 缓存Cacheable 发布视频清空缓存 通用缓存SpringCache 实现缓存逻辑有2种方式: 每个接口单独控制缓存逻辑 统一控制缓存逻辑Spring从3.1开始定义了org.springframework.cac…...

链表 之 无头结点【哨兵位】单向非循环链表【单链表】增删改查 等方法

系列文章目录 🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼 🎉🎉我的C语言初阶合集:C语言初阶合集,希望能…...

2001年对墨西哥湾流进行的主动荧光测量数据

目录 简介 摘要 代码 引用 网址推荐 知识星球 机器学习 干旱监测平台 Active fluorescence measurements in the Gulf Stream in 2001 简介 "Active fluorescence measurements in the Gulf Stream in 2001"是指在2001年对墨西哥湾流进行的主动荧光测量。这…...

AtCoder Beginner Contest 386

1.D - Diagonal Separation 赛时一直卡在这道题,知道思路但不知道怎么解决,就是说若存在给定的白色方块出现在某个B方块与源点构成的区域内就无法实现,如果数据是1000则可以通过离散化 二维差分来解决,赛时一直在试图通过树状数组,线段树来解决&#x…...

Ajax总结

引言 这是属于前端的部分了,先是学习了三件套(HTML,JS,CSS没怎么学,但是大概能理解)之后就开始学习这个了,学习之前应该要知道她是做什么的,但是我没有做这一步,之后会先了解为什么要学习这门技…...

Springboot使用外置的Servlet容器

嵌入式Servlet容器:应用打成可执行的jar 优点:简单、便携 缺点:默认不支持JSP、优化定制比较复杂 外置的Servlet容器:外面安装Tomcat---应用war包的方式打包 一.嵌入式tomcat启动项目步骤: 1.创建一个普通maven项目…...

金仓数据库物理备份和还原

差异备份:是复制上次全备份以来所有变更数据的一种备份。 增量备份:没有重复的备份数据,备份的数据量不大,备份所需的时间很短,备份速度快 考点 sys_rman工具(必考) 配置 sys_backup.conf 初…...

Python提取字符串中的json,时间,特定字符

1.整个字符串为json s{"time":"2014-10-14 12:00", "tid":12, "info_message":"我爱python"} _jsonjson.loads(s) print(_json) 执行结果: {time: 2014-10-14 12:00, tid: 12, info_message: 我爱python} 2…...

Android `android.graphics.drawable` 包深度解析:架构与设计模式

Android android.graphics.drawable 包深度解析:架构与设计模式 目录 引言Drawable 概述Drawable 的架构 Drawable 类层次结构Drawable 的核心方法Drawable 的设计模式 装饰者模式工厂模式状态模式常用 Drawable 子类解析 BitmapDrawableShapeDrawableLayerDrawableStateList…...

从提示词到共振:李继刚的AI沟通法则

摘要:在极客公园的演讲中,李继刚分享了他对提示词的深入研究,提出了通过场域和共振达到与AI深层次交流的策略。他分析了AI的存在属性,指出未来提示词将因AI进化而变得更为简洁和高效。 一、Prompt思考与总结 本文内容大多是源于…...

Redis字符串底层结构对数值型的支持常用数据结构和使用场景

字符串底层结构 SDS (Simple Dynamic Strings) 是 Redis 中用于实现字符串类型的一种数据结构。SDS 的设计目标是提供高效、灵活的字符串操作,同时避免传统 C 字符串的一些缺点。 struct sdshdr {int len; // 已使用的长度int free; // 未使用的长度char bu…...

Windows下Python+PyCharm的安装步骤及PyCharm的使用

Windows下PythonPyCharm的安装步骤及PyCharm的使用 文章目录 Windows下PythonPyCharm的安装步骤及PyCharm的使用一、Python的安装(1)环境准备(2)Python安装(3)pip组件的安装 二、PyCharm的安装(…...

oracle基础:中文字段排序详解

在数据库操作中,中文字段排序是一个常见但又容易被忽视的问题。默认情况下,Oracle 数据库的排序规则是基于 Unicode 编码的,这可能导致排序结果并不符合预期,比如按拼音、部首或笔画排序。本文将详细解析如何在 Oracle 中实现中文…...

网络安全专有名词详解_3

80.WAF 即为Web Application Firewall,即Web应用防火墙,通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 81.SOC Security Operations Center,翻译为安全运行中心,通过建立一套实时的资产风险模型&a…...

【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[2]--calloc

C语言中的calloc函数是一个用于分配多个具有相同大小的内存块的函数,它在动态内存管理中扮演着重要角色。然而,在使用calloc时也存在一些陷阱与缺陷。 一、功能与常见用法 calloc(contiguous allocation)函数用于动态分配内存,相较于 malloc 函数,不仅能够在堆上为程序…...

CKA认证 | Day7 K8s存储

第七章 Kubernetes存储 1、数据卷与数据持久卷 为什么需要数据卷? 容器中的文件在磁盘上是临时存放的,这给容器中运行比较重要的应用程序带来一些问题。 问题1:当容器升级或者崩溃时,kubelet会重建容器,容器内文件会…...

.net core 的数据库编程

Python基础 Python是一种高级编程语言,由Guido van Rossum于1980年代后期发明,并于1991年首次发布。它以简洁的语法和易于阅读的代码风格著称,因而成为程序员和数据科学家等领域的热门选择。在这篇文章中,我们将深入探讨Python的…...

再生核希尔伯特空间(RKHS)上的分位回归

1. 基本定义和理论基础 1.1 再生核希尔伯特空间(RKHS) 给定一个非空集合 X \mathcal{X} X,一个希尔伯特空间 H \mathcal{H} H 称为再生核希尔伯特空间,如果存在一个函数 K : X X → R K: \mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R} K…...

结构方程模型【SEM】:非线性、非正态、交互作用及分类变量分析

利用结构方程模型建模往往遇到很多‘特殊’情况:1)变量间为非直线关系;2)变量间存在交互作用;3)数据不满足正态分布;4)变量为非正态类型的数值变量,如0,1数据…...

不安全物联网的轻量级加密:综述

Abstract 本文综述了针对物联网(IoT)的轻量级加密解决方案。这项综述全面覆盖了从轻量级加密方案到不同类型分组密码的比较等多个方面。同时,还对硬件与软件解决方案之间的比较进行了讨论,并分析了当前最受信赖且研究最深入的分组…...

DeepSpeed 使用 LoRA 训练后文件结构详解

DeepSpeed 使用 LoRA 训练后文件结构详解 在大语言模型(LLM)的训练过程中,DeepSpeed 提供了强大的分布式训练能力,而 LoRA(Low-Rank Adaptation)通过参数高效微调技术显著减少了资源占用。完成训练后&…...

Mysql数据 新增、修改和删除操作时,这些变化如何被转换为Kafka消息?

Mysql数据 新增、修改和删除操作时,这些变化如何被转换为Kafka消息? 为了在FlinkCDC中配置MySQL同步到Kafka,并采用debezium-json数据格式,我们需要了解当执行新增、修改和删除操作时,这些变化如何被转换为Kafka消息。下面我们将详细介绍这些变化情况,并提供具体的数据样…...

高等数学 8.1向量及其线性运算

8.1 向量及其线性运算 文章目录 8.1 向量及其线性运算一、向量的概念向量的线性运算1.向量的加减法2.向量与数的乘法 三、空间直角坐标系四、利用坐标作向量的线性运算五、向量的模、方向角、投影1.向量的模与两点间的距离公式2.方向角与方向余弦3.向量在轴上的投影 一、向量的…...

向bash shell脚本传参

例子: ~ script % touch parameter.sh ~ script % chmod 755 parameter.sh ~ % vim parameter.shparameter.sh: #!/usr/bin/env bashecho the name of current script is $0echo the first parameter is $1echo the second parameter is $2echo all parameters: $…...

高精度算法:加减乘除 (学习笔记)

加法&#xff1a; 现有vector<int>a,b;并且已经输入了内容且倒置 vector<int> plus(vector<int>a,vector<int> b){ int as a.size(); int bs b.size(); vector<int>total; int carry 0; int ar 0, br 0; //读取位数 while (ar < as &am…...

JVM 主要组成部分与内存区域

一、JVM 主要组成部分&#xff1a; JVM的主要包含两个组件和两个子系统&#xff0c;分别为&#xff1a; &#xff08;1&#xff09;本地库接口(Native Interface)&#xff1a;与native lib(本地方法库)交互&#xff0c;融合其他编程语言为Java所用&#xff0c;是与其它编程语言…...

10分钟掌握项目管理核心工具:WBS、甘特图、关键路径法全解析

一、引言 在项目管理的广阔天地里&#xff0c;犹如一场精心编排的交响乐演奏&#xff0c;每个乐器、每个音符都需精准配合才能奏响美妙乐章。而 WBS&#xff08;工作分解结构&#xff09;、甘特图、关键路径法无疑是这场交响乐中的关键乐章&#xff0c;它们从不同维度为项目管…...

python语音机器人(青云客免费api)

强调&#xff1a;不用登录注册&#xff0c;直接使用就好 青云客智能聊天机器人API python代码&#xff0c;直接可以运行&#xff1a; 1、安装库&#xff1a; pip install requests pyttsx3 SpeechRecognition sounddevice numpy scipy2、完整代码&#xff1a; import request…...

策略模式以及优化

使用场景 在一个条件语句中又包含了多个条件语句 具体策略类会过多 把抽象策略和具体策略放在一个枚举类里。 方法 exe() 相当于抽象策略&#xff0c;而A和B就相当于实现了抽象策略的具体策略 这样就只需要一个枚举类就可以解决具体策略类过多的问题 public enum Strategy {A{O…...

解决tomcat双击startup.bat乱码的几种方法

新环境&#xff0c;win10&#xff0c;今天下载了tomcat9.0.98&#xff0c;是压缩绿色版的&#xff0c;解压缩安装到了&#xff1a; D:\java\apache-tomcat-9.0.98 可以通过‪D:\java\apache-tomcat-9.0.98\bin\startup.bat双击来启动tomcat。 但是日志显示乱码。 后来找到了几种…...

计算机网络 (12)物理层下面的传输媒体

前言 计算机网络物理层下面的传输媒体是计算机网络设备之间的物理通路&#xff0c;也称为传输介质或传输媒介&#xff0c;并不包含在计算机网络体系结构中&#xff0c;而是处于物理层之下。 一、传输媒体的分类 导向型媒体&#xff1a;电磁波被导引沿着固体媒体传播。常见的导向…...

Spark生态圈

Spark 主要用于替代Hadoop中的 MapReduce 计算模型。存储依然可以使用 HDFS&#xff0c;但是中间结果可以存放在内存中&#xff1b;调度可以使用 Spark 内置的&#xff0c;也可以使用更成熟的调度系统 YARN 等。 Spark有完善的生态圈&#xff1a; Spark Core&#xff1a;实现了…...

如何计算相位差

如何计算相位差 假设我们有两个同频率的正弦信号&#xff1a; 这里两个信号的角频率w2πf是相同的&#xff0c;根据同频正弦信号相位差的计算方法&#xff0c;直接用两个信号的相位相减。 再来看利用波形图计算相位差的例子&#xff1a; 另一种计算方式&#xff1a;...

Bash Shell知识合集

1. chmod命令 创建一个bash shell脚本 hello.sh ~script $ touch hello.sh脚本创建完成后并不能直接执行&#xff0c;我们要用chmod命令授予它可执行的权限&#xff1a; ~script $ chmod 755 hello.sh授权后的脚本可以直接执行&#xff1a; ~script $ ./hello.sh2.指定运行…...

《信管通低代码信息管理系统开发平台》Windows环境安装说明

1 简介 《信管通低代码信息管理系统应用平台》提供多环境软件产品开发服务&#xff0c;包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发&#xff0c;满足其独特需求。无论是简单的应用还是复杂的系统&…...

如何查看服务器内存占用情况?

如何查看服务器的内存占用情况&#xff1f;你知道内存使用情况对服务器性能的重要性吗&#xff1f;内存是服务器运行的核心资源之一&#xff0c;了解内存的占用情况可以帮助你优化系统性能。 要查看服务器的内存占用情况&#xff0c;首先需要确定你使用的是哪种操作系统。不同…...

【源码】Sharding-JDBC源码分析之SQL中影子库ShadowSQLRouter路由的原理

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...

OCR实践-Table-Transformer

前言 书接上文 OCR实践—PaddleOCR Table-Transformer 与 PubTables-1M table-transformer&#xff0c;来自微软&#xff0c;基于Detr&#xff0c;在PubTables1M 数据集上进行训练&#xff0c;模型是在提出数据集同时的工作&#xff0c; paper PubTables-1M: Towards comp…...

代码随想录五刷day6

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣144. 二叉树的前序遍历(递归)二、力扣144. 二叉树的前序遍历(迭代)三、力扣145. 二叉树的后序遍历(递归)四、力扣145. 二叉树的后序遍历(迭代)五、力扣…...

【自信息、信息熵、联合熵、条件熵、互信息】

文章目录 一、自信息 I(X)二、信息熵&#xff1a;衡量系统的混乱程度信息熵 H(X)联合熵 H(X,Y) 三、条件熵H(Y|X) 联合熵H(X,Y) - 信息熵H(X)四、互信息 I(X,Y)五、总结References 一、自信息 I(X) 自信息(Self-information) 是由香农提出的&#xff0c;用来衡量单一事件发生…...

我的秋招总结

我的秋招总结 个人背景 双非本&#xff0c;985硕&#xff0c;科班 准备情况 以求职为目的学习Java的时间大概一年。 八股&#xff0c;一开始主要是看B站黑马的八股文课程&#xff0c;背JavaGuide和小林coding还有面试鸭。 算法&#xff0c;250&#xff0c;刷了3遍左右 项目&…...

page_ref_freeze浅析

最近在研究struct page的引用计数refcount&#xff0c;看到有个page_ref_freeze()特性很有意思。用这篇博客记录一下。 本文分析基于linux4.19.195 static inline int page_ref_freeze(struct page *page, int count) {int ret likely(atomic_cmpxchg(&page->_refcoun…...

Python毕业设计选题:基于python的酒店推荐系统_django+hadoop

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 酒店客房管理 客房类型管理 客房预定管理 用户…...

选择 SquashFS 作为启动分区的文件系统格式:详细教程

SquashFS 是一种高压缩率的只读文件系统,广泛用于嵌入式系统、Linux 发行版以及其他需要节省存储空间的场景。它特别适合用于启动分区、只读根文件系统(rootfs)等应用,因为它通过压缩技术极大地节省了存储空间。在本博客中,我们将详细介绍如何在 RK3568 等嵌入式设备上使用…...

Unity 读Excel,读取xlsx文件解决方案

Unity读取表格数据 效果&#xff1a; 思路&#xff1a; Unity可以解析Json&#xff0c;但是读取Excel需要插件的帮助&#xff0c;那就把这个功能分离开&#xff0c;读表插件就只管读表转Json&#xff0c;Unity就只管Json解析&#xff0c;中间需要一个存储空间&#xff0c;使用…...