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

DeepSeek-V2 论文解读:混合专家架构的新突破

在这里插入图片描述

论文链接:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model


目录

    • 一、引言
    • 二、模型架构
      • (一)多头部潜在注意力(MLA):重塑推理效率
      • (二)DeepSeekMoE:经济高效的训练架构
    • 三、预训练(Pre-Training):夯实模型基础
      • (一)实验设置
      • (二)评估
    • 四、对齐(Alignment):优化模型表现
      • (一)监督微调:提升指令响应能力
      • (二)强化学习:契合人类偏好
    • 五、结论、局限与展望


一、引言

在大语言模型(LLMs)蓬勃发展的浪潮中,DeepSeek-V2 脱颖而出,成为一款兼具强大性能、高效训练与推理能力的混合专家(MoE)语言模型。它拥有 236B 总参数,在处理每个令牌时仅激活 21B 参数,且支持长达 128K 令牌的上下文长度,为自然语言处理领域带来了新的突破。本文将深入探讨 DeepSeek-V2 的技术细节,包括其创新架构、预训练过程、对齐方法以及性能评估,旨在为技术人员提供全面且深入的技术解读。
在这里插入图片描述

二、模型架构

(一)多头部潜在注意力(MLA):重塑推理效率

传统 Transformer 模型中的多头注意力(MHA)机制在生成过程中,因庞大的键值(KV)缓存需求,严重制约了推理效率。为攻克这一难题,DeepSeek-V2 引入了 MLA 机制。

MLA 的核心在于低秩键值联合压缩技术。在推理阶段,通过特定的投影矩阵(如 W D K V W^{DKV} WDKV W U K W^{UK} WUK W U V W^{UV} WUV)将键值压缩为低维潜在向量 c t K V c_{t}^{KV} ctKV,大幅削减了 KV 缓存。与 MHA 相比,MLA 仅需缓存 c t K V c_{t}^{KV} ctKV 及携带旋转位置嵌入(RoPE)的 k t R k_{t}^{R} ktR,缓存元素数量从 2 n h d h l 2n_{h}d_{h}l 2nhdhl 锐减至 ( d c + d h R ) l (d_{c}+d_{h}^{R})l (dc+dhR)l(在 DeepSeek-V2 中, d c d_{c} dc 设为 4 d h 4d_{h} 4dh d h R d_{h}^{R} dhR 设为 d h 2 \frac{d_{h}}{2} 2dh,其 KV 缓存仅相当于 2.25 组 GQA,但性能更优)。例如,在实际部署中,这使得 DeepSeek-V2 能够处理更大的批处理规模,显著提升了推理效率。

此外,为解决 RoPE 与低秩 KV 压缩的兼容性问题,MLA 采用了去耦 RoPE 策略。通过引入额外的多头查询 q t , i R q_{t,i}^{R} qt,iR 和共享键 k t R k_{t}^{R} ktR 来承载 RoPE,确保了在不影响性能的前提下,有效避免了因 RoPE 应用导致的推理效率下降。
在这里插入图片描述

(二)DeepSeekMoE:经济高效的训练架构

在 Feed-Forward Networks(FFNs)方面,DeepSeek-V2 采用了 DeepSeekMoE 架构,该架构在专家分割和共享专家设置上进行了创新优化。

在这里插入图片描述

其将专家细粒度分割,并隔离部分共享专家,有效提升了专家专业化程度和知识获取的精准性。在计算 FFN 输出时,依据令牌与专家的亲和力 s i , t s_{i,t} si,t,经 top-K 选择和归一化确定门控值 g i , t g_{i,t} gi,t,从而精准激活路由专家,实现高效计算资源分配。与传统 MoE 架构(如 GShard)相比,DeepSeekMoE 在相同的激活和总专家参数条件下,性能优势显著。

为控制专家并行训练中的通信开销和负载均衡,DeepSeek-V2 设计了一系列有效机制。设备限制路由机制确保每个令牌的目标专家最多分布在 M M M 个设备上(实践中 M ≥ 3 M≥3 M3 时性能良好),有效降低了 MoE 相关通信成本。同时,通过设计专家级、设备级和通信平衡损失,从多个层面保障了负载平衡,防止路由崩溃和计算效率降低。此外,还引入了设备级令牌丢弃策略,在训练过程中动态丢弃低亲和力令牌,进一步优化计算资源利用,且在推理时可灵活调整,确保训练与推理的一致性。

三、预训练(Pre-Training):夯实模型基础

(一)实验设置

在数据构建方面,DeepSeek-V2 基于与 DeepSeek 67B 相同的数据处理流程,进行了数据量扩充和质量提升。通过挖掘互联网数据潜力、优化清洗流程,增加了大量数据,尤其是中文数据,并采用改进的质量过滤算法,去除不良数据,提升数据质量,同时过滤掉有争议内容,减轻数据偏差。其分词器基于 Byte-level Byte-Pair Encoding(BBPE)算法,词汇表大小为 100K,预处理后的语料包含 8.1T 令牌,其中中文令牌占比约 12%。

模型超参数设置上,DeepSeek-V2 包含 60 层 Transformer 层,隐藏维度为 5120,所有可学习参数采用标准差为 0.006 的随机初始化。在 MLA 中,设置 128 个注意力头,头维度为 128,KV 压缩维度 d c d_{c} dc 为 512,查询压缩维度 d c ′ d_{c}' dc 为 1536,去耦查询和键的头维度 d h R d_{h}^{R} dhR 为 64。除第一层外,其余 FFN 均替换为 MoE 层,每个 MoE 层包含 2 个共享专家和 160 个路由专家,专家中间隐藏维度为 1536,每个令牌激活 6 个专家。为确保训练稳定,在压缩潜在向量后添加 RMS Norm 层,并在宽度瓶颈处乘以缩放因子。

训练超参数方面,采用 AdamW 优化器( β 1 = 0.9 \beta_{1}=0.9 β1=0.9 β 2 = 0.95 \beta_{2}=0.95 β2=0.95,权重衰减为 0.1),学习率采用 warmup-and-step-decay 策略,最大学习率为 2.4 × 1 0 − 4 2.4×10^{-4} 2.4×104,梯度裁剪范数为 1.0,批次大小采用动态调度策略。设置最大序列长度为 4K,在 8.1T 令牌上进行训练,利用流水线并行、专家并行和 ZeRO-1 数据并行技术,结合高效的 HAI-LLM 框架,并对 MLA 基于 FlashAttention-2 进行优化,确保训练高效运行。
在这里插入图片描述

在长上下文扩展阶段,运用 YaRN 技术将默认上下文窗口从 4K 扩展至 128K,通过特定设置(如设置尺度 s s s 为 40, α \alpha α 为 1, β \beta β 为 32,调整长度缩放因子等),使模型在长上下文任务中表现出色,在 “Needle In A Haystack”(NIAH)测试中,于 128K 上下文长度下性能稳定。

(二)评估

评估基准涵盖了英语和中文的多学科多选、语言理解与推理、闭卷问答、阅读理解、参考消歧、语言建模、中文理解与文化、数学、代码和标准化考试等广泛领域,确保了对模型性能的全面评估。

与 DeepSeek 67B、Qwen1.5 72B、LLaMA3 70B 和 Mixtral 8x22B 等代表性开源模型对比,DeepSeek-V2 表现卓越。尽管仅激活 21B 参数,但在几乎所有基准测试中均显著优于 DeepSeek 67B,在开源模型中跻身前列。与 Qwen1.5 72B 相比,在多数英语、代码和数学基准测试中优势明显,在中文基准测试中除部分多学科多选任务外也表现不俗;与 Mixtral 8x22B 相比,英语性能相当(除部分常识知识相关任务),在 MMLU 上更优,代码和数学性能相近,中文能力则远超;与 LLaMA3 70B 相比,虽英语基础能力略逊,但代码和数学能力相当,在中文基准测试中优势显著。
在这里插入图片描述

在训练和推理效率方面,DeepSeek-V2 优势突出。理论上,因其激活参数少、计算量低,训练成本低于 DeepSeek 67B。实际训练中,在 H800 集群上,训练每万亿令牌,DeepSeek 67B 需 300.6K GPU 小时,而 DeepSeek-V2 仅需 172.8K GPU 小时,节省 42.5%成本。在推理阶段,通过参数转换为 FP8 精度及 KV 缓存量化,其 KV 缓存大幅减少,在单节点 8 个 H800 GPU 上,生成吞吐量超 50K 令牌/秒,是 DeepSeek 67B 的 5.76 倍,提示输入吞吐量也超 100K 令牌/秒。

四、对齐(Alignment):优化模型表现

(一)监督微调:提升指令响应能力

基于前期研究,DeepSeek-V2 构建了包含 1.5M 实例(1.2M 有益性实例和 0.3M 安全性实例)的指令调整数据集,通过提升数据质量有效减少幻觉响应并增强写作能力。采用 2 个 epoch 进行微调,学习率设为 5 × 1 0 − 6 5×10^{-6} 5×106,评估涵盖生成式基准测试和部分多选任务,并引入 IFEval 进行指令跟随评估,以及使用 LiveCodeBench 特定时间段问题评估聊天模型,同时在多个开放端对话基准测试中与其他模型对比,展现出良好性能。

(二)强化学习:契合人类偏好

采用 Group Relative Policy Optimization(GRPO)算法进行强化学习,该算法摒弃传统等大的评论家模型,基于组分数估计基线,有效降低训练成本。具体而言,对于每个问题 q q q,GRPO 从旧策略 π θ o l d \pi_{\theta_{old}} πθold中采样一组输出 { o 1 , o 2 , ⋯ , o G } \{o_{1}, o_{2}, \cdots, o_{G}\} {o1,o2,,oG},然后通过最大化以下目标来优化策略模型 π θ \pi_{\theta} πθ
J G R P O ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ o l d ( O ∣ q ) ] 1 G ∑ i = 1 G ( min ⁡ ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) A i , clip ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) , 1 − ε , 1 + ε ) A i ) − β D K L ( π θ ∥ π r e f ) ) \begin{aligned} \mathcal{J}_{GRPO}(\theta) &=\mathbb{E}\left[q \sim P(Q),\left\{o_{i}\right\}_{i = 1}^{G} \sim \pi_{\theta_{old}}(O|q)\right] \\ &\frac{1}{G}\sum_{i = 1}^{G}\left(\min\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)}A_{i}, \text{clip}\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)}, 1-\varepsilon, 1+\varepsilon\right)A_{i}\right)-\beta\mathbb{D}_{KL}(\pi_{\theta}\|\pi_{ref})\right) \end{aligned} JGRPO(θ)=E[qP(Q),{oi}i=1Gπθold(Oq)]G1i=1G(min(πθold(oiq)πθ(oiq)Ai,clip(πθold(oiq)πθ(oiq),1ε,1+ε)Ai)βDKL(πθπref))
D K L ( π θ ∥ π r e f ) = π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − log ⁡ π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − 1 \mathbb{D}_{KL}(\pi_{\theta}\|\pi_{ref})=\frac{\pi_{ref}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-\log\frac{\pi_{ref}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-1 DKL(πθπref)=πθ(oiq)πref(oiq)logπθ(oiq)πref(oiq)1
其中 ε \varepsilon ε β \beta β是超参数; A i A_{i} Ai是优势,通过与每组内输出相对应的一组奖励 { r 1 , r 2 , ⋯ , r G } \{r_{1}, r_{2}, \cdots, r_{G}\} {r1,r2,,rG}计算得出:
A i = r i − mean ( { r 1 , r 2 , ⋯ , r G } ) std ( { r 1 , r 2 , ⋯ , r G } ) A_{i}=\frac{r_{i}-\text{mean}(\{r_{1}, r_{2}, \cdots, r_{G}\})}{\text{std}(\{r_{1}, r_{2}, \cdots, r_{G}\})} Ai=std({r1,r2,,rG})rimean({r1,r2,,rG})

训练过程采用两阶段策略,先进行推理对齐(针对代码和数学推理任务训练奖励模型并优化策略模型),再进行人类偏好对齐(采用多奖励框架融合不同奖励模型反馈)。为获取可靠奖励模型,精心收集偏好数据并严格过滤和调整比例,同时通过多种工程优化(如设计混合引擎、利用 vLLM 加速推理、优化模型卸载和加载策略)提升训练效率,使模型在数学和代码任务性能上进一步提升,在开放端对话生成中表现更优,在不同语言和领域的基准测试中展现出较强竞争力。

五、结论、局限与展望

DeepSeek-V2 凭借 MLA 和 DeepSeekMoE 等创新架构,在性能、训练和推理效率上取得显著成果,成为开源 MoE 语言模型的佼佼者。然而,它也面临着与其他 LLM 类似的局限,如预训练后知识更新困难、可能生成不实信息和幻觉,且因数据主要集中于中英文,在其他语言上表现受限。

未来,DeepSeek 将持续投入开源大模型研发,致力于在保持经济成本的同时进一步扩大 MoE 模型规模,提升性能以追赶 GPT-4;不断优化对齐技术,打造更安全、可靠且契合人类价值观的模型;探索多模态支持,拓展模型应用场景,为人工智能发展注入新动力。

相关文章:

DeepSeek-V2 论文解读:混合专家架构的新突破

论文链接:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 目录 一、引言二、模型架构(一)多头部潜在注意力(MLA):重塑推理效率(二)DeepSeekM…...

基于布谷鸟算法实现率定系数的starter

布谷鸟算法(Cuckoo Search, CS)是一种基于群体智能的优化算法,灵感来源于布谷鸟的繁殖行为以及宿主鸟发现外来蛋的概率。该算法由 Xin-She Yang 和 Suash Deb 在2009年提出。它结合了莱维飞行(Lvy flight)这一随机漫步…...

Java之自定义注解

介绍:在Java中,自定义注解是通过 interface 关键字定义的。注解是一种元数据,可以附加到类、方法、字段等代码元素上,用于提供额外的信息或配置。 1. 自定义注解的基本语法 使用 interface 关键字定义注解,注解中可以…...

SpringCloud面试题----Nacos和Eureka的区别

功能特性 服务发现 Nacos:支持基于 DNS 和 RPC 的服务发现,提供了更为灵活的服务发现机制,能满足不同场景下的服务发现需求。Eureka:主要基于 HTTP 的 RESTful 接口进行服务发现,客户端通过向 Eureka Server 发送 HT…...

prometheus配置大盘与告警

1、prometheus配置大盘 kube-prometheus-stack 定义 dashboard https://stackoverflow.com/questions/77271449/persist-grafana-dashboard-on-kube-prometheus-and-expose-itAlso to persist dashboards to outlive pod deletion follow the below steps: Create your cust…...

记录 | WPF创建和基本的页面布局

目录 前言一、创建新项目注意注意点1注意点2 解决方案名称和项目名称 二、布局2.1 Grid2.1.1 RowDefinitions 行分割2.1.2 Row & Column 行列定位区分 2.1.3 ColumnDefinitions 列分割 2.2 StackPanel2.2.1 Orientation 修改方向 三、模板水平布局【Grid中套StackPanel】中…...

git代理设置

在 Git 中,可以通过以下命令查看当前设置的代理配置: 查看 HTTP 代理 git config --get http.proxy查看 HTTPS 代理 git config --get https.proxy查看全局代理设置 如果你设置了全局代理,可以通过以下命令查看: git config …...

使用 Axios ——个人信息修改与提示框实现

目录 详细介绍:个人信息设置与修改页面实现 1. HTML 结构 2. CSS 样式 3. JavaScript 核心逻辑 a. 信息渲染与表单提交 b. 头像上传与预览 4. 功能详解 5. 总结 提示: 这段代码展示了如何创建一个简单的个人信息设置页面,包含用户个…...

(done) openMP学习 (Day11: 可怕的东西:内存模型,Atomics,Flush(Pairwise同步))

url: https://dazuozcy.github.io/posts/introdution-to-openmp-intel/#19-%E6%8A%80%E8%83%BD%E8%AE%AD%E7%BB%83%E9%93%BE%E8%A1%A8%E5%92%8Copenmp 这一节介绍了一些概念,包括 OpenMP 内存模型,串行一致性的概念,以及 Flush 操作&#xff…...

docker数据持久化的意义

Docker 数据持久化是指在 Docker 容器中保存的数据不会因为容器的停止、删除或重启而丢失。Docker 容器本身是临时性的,默认情况下,容器内的文件系统是临时的,容器停止或删除后,其中的数据也会随之丢失。为了确保重要数据&#xf…...

【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)

偏差和方差的权衡(Bias-Variance Tradeoff) 1. 引言 在机器学习模型的训练过程中,我们常常面临一个重要的挑战:如何平衡 偏差(Bias) 和 方差(Variance),以提升模型的泛…...

android的Compose 简介

Jetpack Compose 简介 Jetpack Compose 是 Android 官方推出的声明式 UI 工具包,用于替代传统 XML 布局,简化界面开发流程。它基于 Kotlin 语言,通过函数式编程实现高效、灵活的 UI 构建,支持实时预览和更直观的状态管理。 优势…...

git学习

报错504:代理有问题 查看代理: 法1 export | grep proxy 法2 env | grep xxx设置代理HTTPS_PROXY为空: export HTTPS_PROXY重进入git bash,HTTPS_PROXYxxx,又出现了 有效的办法 无效的办法: #取消htt…...

Spring Boot 对接深度求索接口实现知识问答功能

Spring Boot 对接深度求索接口实现知识问答功能 一、概述 本文将详细介绍如何使用 Spring Boot 对接深度求索(DeepSeek)接口,实现知识问答功能。深度求索是一个强大的自然语言处理平台,提供多种 API 接口,包括知识问…...

探索Scikit-learn:Python中的机器学习宝库

探索Scikit-learn:Python中的机器学习宝库 引言 在数据科学和机器学习的世界中,Python无疑是最受欢迎的编程语言之一。而在Python的众多机器学习库中,Scikit-learn无疑是最闪耀的明星之一。Scikit-learn是一个开源的Python库,它…...

活动预告 | Power Hour: Copilot 引领商业应用的未来

课程介绍 智能化时代,商业应用如何实现突破?微软全球副总裁 Charles Lamanna 将为您深度解析,剖析其中关键因素。 在本次线上研讨会中,Charles Lamanna 将分享他在增强商业运营方面的独到见解与实战策略,深度解读商业…...

MIT6.824 Lecture 2-RPC and Threads Lecture 3-GFS

Lecture 2-RPC and Threads Go语言在多线程、同步,还有很好用的RPC包 《Effective Go》 线程是实现并发的重要工具 在分布式系统里关注多线程的原因: I/O concurrencyParallelismConvenience Thread challenges 用锁解决race问题 Coordination channel…...

MariaDB *MaxScale*实现mysql8读写分离

1.MaxScale 是干什么的? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 2.MaxScale 实验环境 中间件192.168.12…...

Linux之Http协议分析以及cookie和session

Linux之Http协议分析以及cookie和session 一.分析请求行与响应行1.1请求行1.1.1资源的URL路径1.1.2常见的方法1.2响应行 二.cookie和session2.1cookie2.2session 一.分析请求行与响应行 在我们简单了解了请求和响应的格式以及模拟实现了请求和响应后我们已经可以通过网页来访问…...

Python Pandas(5):Pandas Excel 文件操作

Pandas 提供了丰富的 Excel 文件操作功能,帮助我们方便地读取和写入 .xls 和 .xlsx 文件,支持多表单、索引、列选择等复杂操作,是数据分析中必备的工具。 操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件,返回 DataF…...

iOS主要知识点梳理回顾-3-运行时

运行时(runtime) 运行时是OC的重要特性,也是OC动态性的根本支撑。动态,如果利用好了,扩展性就很强。当然了,OC的动态性只能算是一个一般水平。与swift、java这种强类型校验的语言相比,OC动态性很…...

[渗透测试]热门搜索引擎推荐— — shodan篇

[渗透测试]热门搜索引擎推荐— — shodan篇 免责声明:本文仅用于分享渗透测试工具,大家使用时,一定需要遵守相关法律法规。 除了shodan,还有很多其他热门的,比如:fofa、奇安信的鹰图、钟馗之眼等&#xff0…...

java-初识List

List: List 是一个接口,属于 java.util 包,用于表示有序的元素集合。List 允许存储重复元素,并且可以通过索引访问元素。它是 Java 集合框架(Java Collections Framework)的一部分 特点: 有序…...

ElasticSearch集群因索引关闭重打开导致飘红问题排查

背景 某组件向 ElasticSearch 写入数据,从最近某一天开始写入速度变慢,数据一直有积压。推测是 ElasticSearch 集群压力导致的,查看 ElasticSearch 集群状态,发现集群确实处于 red 状态。 本文记录 ElasticSearch 集群因索引关闭…...

idea 如何使用deepseek 保姆级教程

1.安装idea插件codegpt 2.注册deepseek并生成apikey deepseek 开发平台: DeepSeek​​​​​​​ 3.在idea进行codegpt配置 打开idea的File->Settings->Tools->CodeGPT->Providers->Custom OpenAI Chat Completions的URL填写 https://api.deepseek…...

【大模型】硅基流动对接DeepSeek使用详解

目录 一、前言 二、硅基流动介绍 2.1 硅基流动平台介绍 2.1.1 平台是做什么的 2.2 主要特点与功能 2.2.1 适用场景 三、硅基流动快速使用 3.1 账户注册 3.2 token获取 3.2.1 获取token技巧 四、Cherry-Studio对接DeepSeek 4.1 获取 Cherry-Studio 4.2 Cherry-Stud…...

机器学习数学基础:14.矩阵的公式

1. 操作顺序可交换 对于矩阵 A A A,若存在两种运算 ? ? ?和 ? ? ?,使得 ( A ? ) ? ( A ? ) ? (A^{?})^{?}\ (A^{?})^{?} (A?)? (A?)?,这意味着这两种运算的顺序可以交换。由此我们得到以下三个重要等式: ( A …...

t113-qt

修改QT配置: # # qmake configuration for building with arm-linux-gnueabi-g ## MAKEFILE_GENERATOR UNIX # CONFIG incremental # QMAKE_INCREMENTAL_STYLE sublib# include(../common/linux.conf) # include(../common/gcc-base-unix.conf) # inc…...

SQL自学,mysql从入门到精通 --- 第 14天,主键、外键的使用

1.主键 PRIMARY KEY 主键的使用 字段值不允许重复,且不允许赋NULL值 创建主键 root@mysqldb 10:11: [d1]> CREATE TABLE t3(-> name varchar(10) PRIMARY KEY,-> age int,-> class varchar(8)-> ); Query OK, 0 rows affected (0.01 sec)root@mysqldb 10:…...

整合 Redis 分布式锁:从数据结构到缓存问题解决方案

引言 在现代分布式系统中,Redis 作为高性能的键值存储系统,广泛应用于缓存、消息队列、实时计数器等多种场景。然而,在高并发和分布式环境下,如何有效地管理和控制资源访问成为一个关键问题。Redis 分布式锁正是为了解决这一问题…...

ASP.NET Core WebSocket、SignalR

目录 WebSocket SignalR SignalR的基本使用 WebSocket WebSocket基于TCP协议,支持二进制通信,双工通信。性能和并发能力更强。WebSocket独立于HTTP协议,不过我们一般仍然把WebSocket服务器端部署到Web服务器上,因为可以借助HT…...

array_walk. array_map. array_filter

1. array_walk 函数 array_walk 用于遍历数组并对每个元素执行回调函数。它不会受到数组内部指针位置的影响,会遍历整个数组。回调函数接收的前两个参数分别是元素的值和键名,如果有第三个参数,则数组所有的值都共用这个参数。 示例代码&am…...

解锁国内主流前端与后端框架

前端框架大揭秘 在当今的 Web 开发领域,前端框架的地位愈发举足轻重。随着用户对 Web 应用交互性和体验性要求的不断攀升,前端开发不再仅仅是简单的页面布局与样式设计,更需要构建复杂且高效的用户界面。前端框架就像是一位得力助手&#xf…...

Nginx进阶篇 - nginx多进程架构详解

文章目录 1. nginx的应用特点2. nginx多进程架构2.1 nginx多进程模型2.2 master进程的作用2.3 进程控制2.4 worker进程的作用2.5 worker进程处理请求的过程2.6 nginx处理网络事件 1. nginx的应用特点 Nginx是互联网企业使用最为广泛的轻量级高性能Web服务器,其特点是…...

【PDF提取内容】如何批量提取PDF里面的文字内容,把内容到处表格或者批量给PDF文件改名,基于C++的实现方案和步骤

以下分别介绍基于 C 批量提取 PDF 里文字内容并导出到表格,以及批量给 PDF 文件改名的实现方案、步骤和应用场景。 批量提取 PDF 文字内容并导出到表格 应用场景 文档数据整理:在处理大量学术论文、报告等 PDF 文档时,需要提取其中的关键信…...

HTML之CSS定位、浮动、盒子模型

HTML之CSS定位、浮动、盒子模型 定位 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...

【Java基础】为什么不支持多重继承?方法重载和方法重写之间区别、Exception 和 Error 区别?

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;Java基础面经 &#x1f4da;本系列文章为个…...

使用scoop 下载速度慢怎么办

在国内使用 Scoop 下载速度慢是一个常见问题&#xff0c;主要是因为 Scoop 默认的软件源&#xff08;bucket&#xff09;和下载服务器通常位于国外。以下是一些提高下载速度的方法&#xff1a; 1. 更换 Scoop 镜像源&#xff08;Bucket 镜像&#xff09;&#xff1a; 原理&…...

使用Redis解决使用Session登录带来的共享问题

在学习项目的过程中遇到了使用Session实现登录功能所带来的共享问题&#xff0c;此问题可以使用Redis来解决&#xff0c;也即是加上一层来解决问题。 接下来介绍一些Session的相关内容并且采用Session实现登录功能&#xff08;并附上代码&#xff09;&#xff0c;进行分析其存在…...

OnlyOffice docker 运行(详细)

下载镜像 推荐使用 GitHub Action 方式下载&#xff1a; Action 地址&#xff1a;https://github.com/Shixuebin/DockerTarBuilder 教程地址&#xff1a;https://www.bilibili.com/video/BV1EZ421M7mL/ docker 镜像安装 docker load -i xxx.tar镜像运行 docker run -i -t -…...

CNN 卷积神经网络处理图片任务 | PyTorch 深度学习实战

前一篇文章&#xff0c;学习率调整策略 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started CNN 卷积神经网络 CNN什么是卷积工作原理深度学习的卷积运算提取特征不同特征核的效果比较卷积核感受野共享权重池化 示例源码 …...

自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同

目录 1、引言 2、主要内容 2.1、定位对比&#xff1a;感知与规划的全维覆盖 2.2、数据与技术特性对比 2.3、技术协同&#xff1a;构建全栈研发生态 2.4、应用场景与评估体系 2.5、总结与展望 3、参考文献 1、引言 随着自动驾驶技术向全栈化迈进&#xff0c;Motional 团…...

02.07 TCP服务器与客户端的搭建

一.思维导图 二.使用动态协议包实现服务器与客户端 1. 协议包的结构定义 首先&#xff0c;是协议包的结构定义。在两段代码中&#xff0c;pack_t结构体都被用来表示协议包&#xff1a; typedef struct Pack {int size; // 记录整个协议包的实际大小enum Type type; …...

基于机器学习时序库pmdarima实现时序预测

目录 一、Pmdarima实现单变量序列预测1.1 核心功能与特性1.2 技术优势对比1.3 python案例1.3.1 时间序列交叉验证1.3.1.1 滚动交叉验证1.3.1.2 滑窗交叉验证 时间序列相关参考文章&#xff1a; 时间序列预测算法—ARIMA 基于VARMAX模型的多变量时序数据预测 基于机器学习时序库…...

计算机视觉的研究方向、发展历程、发展前景介绍

以下将分别从图像分类、目标检测、语义分割、图像分割&#xff08;此处应主要指实例分割&#xff09;四个方面&#xff0c;为你介绍研究生人工智能计算机视觉领域的应用方向、发展历程以及发展前景。 文章目录 1.图像分类应用方向发展历程发展前景 2.目标检测应用方向发展历程…...

NLP_[2]-认识文本预处理

文章目录 1 认识文本预处理1 文本预处理及其作用2. 文本预处理中包含的主要环节2.1 文本处理的基本方法2.2 文本张量表示方法2.3 文本语料的数据分析2.4 文本特征处理2.5数据增强方法2.6 重要说明 2 文本处理的基本方法1. 什么是分词2 什么是命名实体识别3 什么是词性标注 1 认…...

单硬盘槽笔记本更换硬盘

背景 本人的笔记本电脑只有一个硬盘槽&#xff0c;而且没有M.2的硬盘盒&#xff0c;只有一个移动硬盘 旧硬盘&#xff1a;512G 新硬盘&#xff1a;1T 移动硬盘&#xff1a;512G 参考链接&#xff1a;https://www.bilibili.com/video/BV1iP41187SW/?spm_id_from333.1007.t…...

在stm32mp257的yocto中设置用户名和密码

在STM32MP257的Yocto环境中设置用户名和密码,通常需要修改根文件系统的用户配置。以下是详细步骤: 1. 设置root密码 默认情况下,root账户可能无密码或使用默认密码。通过以下方法修改: 方法1:在local.conf中直接设置 # 打开Yocto工程的配置文件 vi conf/local.conf# 添…...

力扣--链表

相交链表 法一&#xff1a; 把A链表的节点都存HashSet里&#xff0c;遍历B链表找相同的节点 法二&#xff1a; 把A、B指针都移到末尾&#xff0c;再同时往回走&#xff0c;每次往回走都比较 当前节点的下一节点&#xff08;a.next b.next ?)是否相同&#xff0c;当不相同…...

【redis】数据类型之hash

Redis中的Hash数据类型是一种用于存储键值对集合的数据结构。与Redis的String类型不同&#xff0c;Hash类型允许你将多个字段&#xff08;field&#xff09;和值&#xff08;value&#xff09;存储在一个单独的key下&#xff0c;从而避免了将多个相关数据存储为多个独立的key。…...