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

详细介绍Qwen3技术报告中提到的模型架构技术

详细介绍Qwen3技术报告中提到的一些主流模型架构技术,并为核心流程配上相关的LaTeX公式。
这些技术都是当前大型语言模型(LLM)领域为了提升模型性能、训练效率、推理速度或稳定性而采用的关键组件。


1. Grouped Query Attention (GQA) - 分组查询注意力 🎯

  • 目的:GQA 旨在在保持多头注意力(Multi-Head Attention, MHA)大部分优势的同时,显著降低推理时的显存占用和计算开销,从而加快推理速度。它介于标准的多头注意力和多查询注意力(Multi-Query Attention, MQA,所有查询头共享同一份键和值)之间。
  • 工作原理
    • 在标准的多头注意力中,每个“查询头”(Query Head)都有自己独立的“键头”(Key Head)和“值头”(Value Head)。
    • 在GQA中,查询头被分成 N _ g N\_g N_g 组,组内的 N _ q / N _ g N\_q/N\_g N_q/N_g 个查询头共享同一份键头和值头。而不同组之间的键头和值头仍然是独立的。
    • 其中 N _ q N\_q N_q 是总查询头数。如果分组数 N _ g = N _ q N\_g = N\_q N_g=N_q,则GQA等同于MHA;如果 N _ g = 1 N\_g = 1 N_g=1,则GQA退化为MQA。

多头注意力 (Multi-Head Attention - MHA)

多头注意力 Ng_equals_Nq
K_Head_1
Q_Head_1
V_Head_1
K_Head_2
Q_Head_2
V_Head_2
...

分组查询注意力 (Grouped-Query Attention - GQA)

分组查询注意力 One_lt_Ng_lt_Nq
组1
组2
...
共享_KV_Head_G2
Q_Head_3
Q_Head_4
共享_KV_Head_G1
Q_Head_1
Q_Head_2

多查询注意力 (Multi-Query Attention - MQA)

多查询注意力 Ng_equals_1
共享_KV_Head
Q_Head_1
Q_Head_2
...
  • 优势
    • 减少K/V缓存:在自回归生成(解码)过程中,需要缓存之前所有token的键(K)和值(V)状态。GQA通过减少K/V头的数量,显著降低了这部分缓存的大小,从而降低了显存占用,尤其在处理长序列时效果明显。
    • 提高推理效率:更少的K/V头意味着更少的计算量,尤其是在K/V投影和注意力得分计算的某些环节。
    • 性能保持:相比于MQA可能带来的较大性能损失,GQA通过分组共享的方式,能在很大程度上保留MHA的建模能力和性能,是一种较好的折中方案。
  • Qwen3中的应用:Qwen3的稠密模型中明确提到了使用GQA。例如,Qwen3-0.6B有16个查询头,KV头数为8 ,这意味着可能分成了8组,每2个查询头共享一组KV。对于更大的模型如Qwen3-32B,有64个查询头,KV头数为8 ,则每8个查询头共享一组KV。MoE模型也采用了GQA,例如Qwen3-235B-A22B有64个查询头,KV头数为4,意味着每16个查询头共享一组KV。

2. SwiGLU - Sigmoid-Weighted Linear Unit (门控线性单元激活函数) активировать

  • 目的:SwiGLU 是一种改进的激活函数,旨在通过引入门控机制来提升神经网络(尤其是Transformer模型中前馈网络FFN部分)的性能和表达能力 。
  • 工作原理
    • 传统的Transformer FFN层通常包含两个线性变换和一个ReLU(或GeLU)激活函数。
    • GLU(Gated Linear Unit)是一类激活函数,它将输入通过两个线性变换,然后将其中一个变换的结果通过Sigmoid函数(作为门控),再与另一个线性变换的结果进行逐元素相乘。
    • SwiGLU 是GLU的一个变体。在Transformer的FFN中,给定输入 x ∈ m a t h b b R d x \in \\mathbb{R}^d xmathbbRd,它通常通过三个权重矩阵 W , V ∈ R d × d _ m W, V \in \mathbb{R}^{d \times d\_m} W,VRd×d_m W _ 2 ∈ R d _ m × d W\_2 \in \mathbb{R}^{d\_m \times d} W_2Rd_m×d (其中 d _ m d\_m d_m 是中间隐藏层维度)进行计算。Qwen3报告中引用的Dauphin et al. (2017) 的工作,以及后续如PaLM、LLaMA等模型采用的形式,通常是:
      SwiGLU ( x , W , V ) = Swish β ( x W ) ⊙ ( x V ) \text{SwiGLU}(x, W, V) = \text{Swish}_{\beta}(xW) \odot (xV) SwiGLU(x,W,V)=Swishβ(xW)(xV)
      其中 ⊙ \odot 表示逐元素乘积, Swish _ β ( y ) = y ⋅ σ ( β y ) \text{Swish}\_{\beta}(y) = y \cdot \sigma(\beta y) Swish_β(y)=yσ(βy) 是Swish激活函数, σ \sigma σ 是Sigmoid函数 σ ( z ) = ( 1 + e − z ) − 1 \sigma(z) = (1 + e^{-z})^{-1} σ(z)=(1+ez)1 β \beta β 通常设为1。
      然后,这个结果会再通过一个线性层 W _ 2 W\_2 W_2
      FFN SwiGLU ( x ) = ( Swish β ( x W ) ⊙ ( x V ) ) W 2 \text{FFN}_{\text{SwiGLU}}(x) = (\text{Swish}_{\beta}(xW) \odot (xV)) W_2 FFNSwiGLU(x)=(Swishβ(xW)(xV))W2

Mermaid 代码 (SwiGLU FFN层流程示意图):

输入_x
线性变换_W
线性变换_V
Swish激活_Swish_beta_xW
逐元素相乘_odot
线性变换_W2
SwiGLU_FFN_输出
  • 优势
    • 更强的表达能力:门控机制允许网络根据输入动态地调整激活的强度,从而捕获更复杂的模式。
    • 更好的性能:在许多LLM的实验中,使用SwiGLU(或其他GLU变体)替换传统的ReLU或GeLU,能在保持参数量大致相当(通过调整隐藏层大小)的情况下,带来模型性能的提升。
  • Qwen3中的应用:Qwen3的稠密模型和MoE模型均明确采用了SwiGLU作为激活函数。

3. Rotary Positional Embeddings (RoPE) - 旋转位置嵌入 🔄

  • 目的:RoPE 是一种用于在Transformer模型中注入相对位置信息的方法,它旨在克服传统绝对位置编码在处理长序列和泛化性方面的一些局限 。
  • 工作原理
    • RoPE的核心思想是将位置信息编码到查询(Q)和键(K)向量中,通过对Q和K向量应用一个与它们在序列中的绝对位置 m m m 相关的旋转矩阵 R _ m R\_m R_m
    • 具体来说,对于一个 d d d 维的Q或K向量 x = [ x _ 0 , x _ 1 , … , x _ d − 1 ] T x = [x\_0, x\_1, \dots, x\_{d-1}]^T x=[x_0,x_1,,x_d1]T,可以将其视为 d / 2 d/2 d/2 个二维向量的拼接 x _ j = [ x _ 2 j , x _ 2 j + 1 ] T x\_j = [x\_{2j}, x\_{2j+1}]^T x_j=[x_2j,x_2j+1]T。RoPE对每个这样的二维子向量应用一个旋转操作 :
      R m x j = ( cos ⁡ ( m θ j ) − sin ⁡ ( m θ j ) sin ⁡ ( m θ j ) cos ⁡ ( m θ j ) ) ( x 2 j x 2 j + 1 ) R_m x_j = \begin{pmatrix} \cos(m\theta_j) & -\sin(m\theta_j) \\ \sin(m\theta_j) & \cos(m\theta_j) \end{pmatrix} \begin{pmatrix} x_{2j} \\ x_{2j+1} \end{pmatrix} Rmxj=(cos(mθj)sin(mθj)sin(mθj)cos(mθj))(x2jx2j+1)
      其中 m m m 是token的绝对位置, t h e t a _ j = 10000 − 2 j / d \\theta\_j = 10000^{-2j/d} theta_j=100002j/d 是一组预定义的、与维度相关的非负频率。
    • 经过RoPE编码后的查询向量 q _ m q\_m q_m 和键向量 k _ n k\_n k_n(它们原始未编码前分别为 q q q k k k),它们的内积满足:
      ⟨ R m q , R n k ⟩ = ℜ ( ∑ j = 0 d / 2 − 1 ( q 2 j + i q 2 j + 1 ) ( k 2 j − i k 2 j + 1 ) e i ( m − n ) θ j ) \langle R_m q, R_n k \rangle = \Re(\sum_{j=0}^{d/2-1} (q_{2j} + iq_{2j+1})(k_{2j} - ik_{2j+1}) e^{i(m-n)\theta_j}) Rmq,Rnk=(j=0d/21(q2j+iq2j+1)(k2jik2j+1)ei(mn)θj)
      这个内积仅取决于它们的相对位置 ( m − n ) (m-n) (mn) 和它们原始的内容。

Mermaid 代码 (RoPE 位置编码示意图):

RoPE编码过程
位置_m_频率_theta_j
按2维切分_x_j
Q或K向量_x
对每对_x_2j_x_2j_plus_1
应用旋转矩阵_R_m
合并旋转后的2维向量
旋转后的向量_x_prime_m
旋转后的Q_prime_m
参与注意力计算
旋转后的K_prime_n
  • 优势
    • 编码相对位置:注意力得分自然地依赖于相对距离,这更符合许多序列任务的本质。
    • 良好的外推性:由于其周期性和相对编码的特性,RoPE在处理比训练时更长的序列时,表现出比某些绝对位置编码更好的泛化能力(尽管也有限度,需要配合YARN等技术进一步扩展)。
    • 实现简单:它直接作用于Q和K向量,不需要额外的位置编码层或参数。
  • Qwen3中的应用:Qwen3的稠密模型和MoE模型均使用了RoPE 。报告还提到,在预训练的第三阶段(长上下文阶段),遵循Qwen2.5的做法,使用ABF技术将RoPE的基础频率从10,000增加到1,000,000 ,并引入YARN 和双块注意力(DCA) 以在推理时实现序列长度容量的四倍增加 。

4. RMSNorm (Root Mean Square Layer Normalization) - 均方根层归一化 ⚖️

  • 目的:RMSNorm 是对传统层归一化(Layer Normalization, LN)的一种简化,旨在减少计算量,提高效率,同时保持与LN相当或稍优的性能。
  • 工作原理
    • 传统的LN首先计算输入 x ∈ R d x \in \mathbb{R}^d xRd 的均值 μ = 1 d ∑ x _ i \mu = \frac{1}{d}\sum x\_i μ=d1x_i 和方差 σ 2 = 1 d ∑ ( x _ i − μ ) 2 \sigma^2 = \frac{1}{d}\sum (x\_i - \mu)^2 σ2=d1(x_iμ)2,然后归一化 x ^ _ i = x _ i − μ σ 2 + ϵ \hat{x}\_i = \frac{x\_i - \mu}{\sqrt{\sigma^2 + \epsilon}} x^_i=σ2+ϵ x_iμ,最后进行仿射变换 y _ i = γ x ^ _ i + β y\_i = \gamma \hat{x}\_i + \beta y_i=γx^_i+β
    • RMSNorm移除了均值的计算和减去均值的操作,它只对输入进行重新缩放,缩放因子是输入的均方根(Root Mean Square)。其公式为:
      RMS ( x ) = 1 d ∑ i = 1 d x i 2 \text{RMS}(x) = \sqrt{\frac{1}{d}\sum_{i=1}^d x_i^2} RMS(x)=d1i=1dxi2 output i = x i RMS ( x ) + ϵ ⋅ γ i \text{output}_i = \frac{x_i}{\text{RMS}(x) + \epsilon} \cdot \gamma_i outputi=RMS(x)+ϵxiγi
      其中 ϵ \epsilon ϵ 是一个很小的常数以防止除零。它通常不使用偏移因子 b e t a \\beta beta(或者说 β \beta β 固定为0)。

Mermaid 代码 (LayerNorm 与 RMSNorm 对比示意图):

输入_x_LayerNorm
计算均值_mu_标准差_sigma
x_minus_mu_div_sigma
mul_gamma_plus_beta
LayerNorm_输出
输入_x_RMSNorm
计算均方根_RMS_x
x_div_RMS_x_plus_epsilon
mul_gamma
RMSNorm_输出
  • 优势
    • 计算效率更高:由于不需要计算均值,RMSNorm比LN的计算量更少,尤其是在GPU上可以更快。
    • 性能相当或略好:在许多Transformer的实验中,RMSNorm被证明能够达到与LN相当甚至有时略好的性能,同时具有更好的效率。
  • Qwen3中的应用:Qwen3的稠密模型和MoE模型均采用了RMSNorm,并且是预归一化(Pre-Normalization)的形式。预归一化是指在进入Transformer的子层(如自注意力层或FFN层)之前进行归一化,这通常有助于稳定训练。

5. QK-Norm (Query-Key Normalization) 🛡️

  • 目的:为了进一步稳定大型Transformer模型的训练过程,特别是在注意力机制内部。不稳定的注意力得分可能导致梯度爆炸或消失。
  • 工作原理
    • QK-Norm通常是指在计算注意力得分之前,对查询(Q)和/或键(K)向量进行某种形式的归一化。
    • 报告中提到引入QK-Norm是为了确保Qwen3的稳定训练,并引用了Dehghani et al. (2023) 的工作 “Scaling vision transformers to 22 billion parameters” 。在该论文中,他们对Q和K分别应用了L2归一化,然后再计算点积 。
      Q norm = Q ∥ Q ∥ 2 Q_{\text{norm}} = \frac{Q}{\|Q\|_2} Qnorm=Q2Q K norm = K ∥ K ∥ 2 K_{\text{norm}} = \frac{K}{\|K\|_2} Knorm=K2K AttentionScore ( Q , K ) = Q norm K norm T d k \text{AttentionScore}(Q, K) = \frac{Q_{\text{norm}} K_{\text{norm}}^T}{\sqrt{d_k}} AttentionScore(Q,K)=dk QnormKnormT
      其中 d _ k d\_k d_k 是键向量的维度。

Mermaid 代码 (QK-Norm 在注意力计算中的应用示意图):

原始Q向量
Q进行L2归一化_Q_norm
原始K向量
K进行L2归一化_K_norm
Q_norm
点积_Q_norm_mul_K_T_norm
除以_sqrt_dk
Softmax
与V加权求和
原始V向量
注意力输出
  • 优势
    • 稳定训练:通过限制Q和K向量的范数,可以防止注意力得分过大或过小,从而使得训练过程更加稳定,尤其是在使用较低精度(如bfloat16)进行训练时。
    • 可能改善性能:在一些情况下,这种归一化也有助于模型学习。
  • Qwen3中的应用:Qwen3明确指出在注意力机制中引入了QK-Norm以确保稳定训练 。

6. 移除 QKV-bias (Query-Key-Value bias) ✂️

  • 背景:在Transformer的早期版本或某些实现中,用于生成Q、K、V向量的线性投影层(即 Q = X W _ Q , K = X W _ K , V = X W _ V Q=XW\_Q, K=XW\_K, V=XW\_V Q=XW_Q,K=XW_K,V=XW_V)可能会包含偏置项(bias terms),例如 Q = X W _ Q + b _ Q Q=XW\_Q + b\_Q Q=XW_Q+b_Q
  • 目的:移除这些偏置项 b _ Q , b _ K , b _ V b\_Q, b\_K, b\_V b_Q,b_K,b_V
  • 原因/优势
    • 简化模型/减少参数:虽然减少的参数量不多,但符合模型设计趋向简洁的趋势。
    • 可能提升稳定性或性能:在一些现代Transformer架构的实践中发现,移除这些偏置项并不会损害性能,有时甚至可能因为减少了模型的自由度或改变了优化的动态而略微有益于训练的稳定性或最终性能。层归一化(如RMSNorm)的存在可能使得这些偏置项变得不那么必要。
    • 与归一化层的关系:当使用如LayerNorm或RMSNorm这类对整个激活向量进行操作的归一化层时,线性变换中的偏置项的效果可能会被归一化过程部分抵消或变得冗余。
  • Qwen3中的应用:Qwen3明确提到了移除了在Qwen2中使用的QKV-bias 。这表明团队在Qwen3的设计中,基于实验或业界趋势,认为移除这些偏置项对于模型的性能和稳定性是中性或有利的。

综上所述,Qwen3采用的这些架构技术都是为了在模型的表达能力、训练稳定性、推理效率和整体性能之间取得更好的平衡,这些是当前大模型研发中非常关键的考量因素。

相关文章:

详细介绍Qwen3技术报告中提到的模型架构技术

详细介绍Qwen3技术报告中提到的一些主流模型架构技术,并为核心流程配上相关的LaTeX公式。 这些技术都是当前大型语言模型(LLM)领域为了提升模型性能、训练效率、推理速度或稳定性而采用的关键组件。 1. Grouped Query Attention (GQA) - 分组…...

docker面试题(3)

如何临时退出一个正在交互的容器的终端,而不终止它 按ctrlp,后按ctrlq ,如果按ctrlc会使容器内的应用进程终止,进而会使容器终止 很多应用容器都默认是后台运行的,怎么查看它们输出的日志信息 使用docker logs &#…...

2025年二级等保实施全攻略:传统架构与云等保方案深度解析

2025年,随着《网络安全法》的深化落实和等保2.0标准的全面推行,二级等保已成为中小企业及非核心业务系统的合规基线。如何在高效满足监管要求的同时,兼顾成本与安全效能?本文将结合最新政策与实战经验,从传统架构到云等…...

技术点对比

数据库 数据库程序在线访问与ORM访问的对比 数据库程序在线ORM访问优点性能好性能差可以处理复杂sql缺点 性能: 复杂sql支持: 开发成本: 架构风格 管道-过滤器风格与数据仓库风格对比 管道-过滤器风格数据仓储风格备注交互方式顺序结构…...

自监督学习与监督学习

🔍 一、监督学习 vs 自监督学习:核心区别 维度监督学习(Supervised Learning)自监督学习(Self-Supervised Learning)是否需要人工标注的标签✅ 需要,如分类标签、边界框等❌ 不需要&#xff0c…...

Java操作数据库,JDBC

package myjdbc; import com.mysql.jdbc.Driver; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /*** 练习JDBC,完成一些简单的操作。*/ public class jdbc01 {public static void main(Str…...

UML 活动图 (Activity Diagram) 使用案例

UML 活动图使用案例 UML 活动图 (Activity Diagram) 使用案例活动图的主要元素典型使用案例1. 用户登录流程2. 在线购物流程3. 订单处理系统4. 文件审批流程 活动图的优势何时使用活动图 UML 活动图 (Activity Diagram) 使用案例 活动图是UML中用于描述业务流程或系统工作流程…...

回溯法求解N皇后问题

目录 前言 一、回溯法是什么? 二、N皇后问题描述 分析解题思路 三、算法设计 1、递归法 2、非递归法 总结 前言 本文将从递归形式和非递归形式两种方法来介绍求解N皇后问题的回溯法,后续也会更新更多有关算法分析这方面的问题欢迎大家关注~&#x1f929…...

网络流量分析工具ntopng的安装与基本使用

网络流量分析工具ntopng的安装与基本使用 一、ntopng基本介绍1.1 ntopng简介1.2 主要特点1.3 使用场景 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、安装ntopng工具3.1 官网地址3.2 配置软件源3.3 添加软件源3.4 安装ntopng 四、ntopng的基本配置4.1 修改配置文件4.…...

新导游入行规范与职业发展指导

随着旅游行业的蓬勃发展,导游作为旅游服务的重要环节,其职业素养和专业能力备受关注。对于新入行的导游而言,了解行业规范,明确职业发展方向,是开启职业生涯的重要一步。​ 一、严格遵守行业规范​ 持证上岗&#xf…...

数据结构与算法——堆

堆 树树的概念与结构树的相关术语树的表示树形结构实际运用场景 二叉树概念与结构特殊的二叉树满二叉树完全二叉树 二叉树存储结构顺序结构链式结构 实现顺序结构二叉树堆的概念与结构堆的实现向上调整算法(插入数据)向下调整算法 堆的应用堆排序(建堆)向…...

【写在创作纪念日】基于SpringBoot和PostGIS的各省东西南北四至极点区县可视化

目录 前言 一、空间检索简介 1、空间表结构 2、四至空间检索 二、前后端实现 1、后端实现 2、前端集成 三、成果展示 1、东部省份 2、西部省份 3、南部省份 4、北部省份 5、中部省份 四、总结 前言 在当今数字化时代,地理信息数据的分析与可视化对于众…...

AI驱动新增长:亚马逊Rufus广告点击率提升300%的奥秘

在生成式人工智能迅速融入商业应用的背景下,全球跨境电商巨头亚马逊(Amazon)正以前所未有的速度重构其广告生态。2024年第一季度,据亚马逊官方披露,通过部署内部开发的AI购物助手“Rufus”,其平台部分广告点…...

osgEarth中视角由跟随模式切换到漫游模式后没有鼠标拖拽功能问题分析及解决方法

遇到了一个棘手的问题,就是在由跟随模式切换到漫游模式的时候,鼠标无法实现拖拽功能。后来发现是前面给自己挖的坑。 因为要实现鼠标点选某个模型后,模型需要变红色显示,所以添加了一个事件处理程序。 // 创建 场景中模型的点选功能 事件处理程序 ModelSelectionHandler* …...

网页 HTML布局(详解)

本篇讲的是:构成网页的三要素中的HTML HTML的基本结构标签: html标签:网页的整体 head标签:网页的头部 body标签:网页的身体 title标签:网页的标题 一般我们新建一个HTML就会带有这些基本的标签&#xff1a…...

为什么可以不重写m1方法

在 Java 中,当一个类继承另一个类并同时实现接口时,如果接口中的方法签名与父类中的方法签名完全相同(包括方法名、参数列表和返回类型),那么父类的方法会自动满足接口的实现要求,子类无需显式重写该方法。…...

深入解析应用程序分层及 BaseDao 的封装策略

目录 1. 应用程序分层 1.1. 应用程序分层简介 1.1.1. 三层结构 1.1.2. 分层的优点 1.1.3. 分层命名 1.2. 应用程序分层实现 1.3. 在分层项目中实现查询业务 2. 封装通用的BaseDao 2.1. 封装通用的DML操作 2.2. 封装通用的查询操作 3. 总结 前言 本文讲解JDBC中的应用…...

物理机做完bond后network服务重启失败

问题描述: 物理机通过systemctl status network.service查看网络服务情况,服务状态为failed,报错:Failed to start LSB: Bring up/down netw 问题分析: 1、network服务于NetworkManager服务冲突 2、未使用的网卡没…...

AGI大模型(30):LangChain链的基本使用

为开发更复杂的应用程序,需要使用Chain来链接LangChain中的各个组件和功能,包括模型之间的链接以及模型与其他组件之间的链接。 链在内部把一系列的功能进行封装,而链的外部则又可以组合串联。 链其实可以被视为LangChain中的一种基本功能单元。 API地址:https://python.…...

什么导致ERP系统中BOM表频繁出错?关键因素与解决路径

企业引入 ERP 系统后,常因 BOM(物料清单)维护不规范导致计划混乱、成本失控等问题。部分工厂依赖手工录入 BOM 数据,存在版本管理缺失、替代物料未标注等现象,使得 MRP 计划出错率高,生产效率与质量双降。解…...

(vue)前端实现下载后端提供的URL文件

(vue)前端实现下载后端提供的URL文件 动态创建: function downloadFile(url, filename) {const a document.createElement(a)a.href urla.download filename || download // 设置下载文件名document.body.appendChild(a)a.click()document.body.removeChild(a) …...

Axure通过下拉框选项改变,控制字段显隐藏

要求:要求选择钢铁行业时,字段1显示,字段2、字段3隐藏,选择水泥行业时,字段2显示,字段1、字段3隐藏,选择发电行业时,字段3显示,字段1、字段2隐藏。 1、首先Axure拖入一个…...

Axure应用交互设计:动态面板嵌套实现超强体验感菜单表头

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:动态面板嵌套 主要内容:利用动态面板多层嵌套实现菜单表头 应用场景:广泛应用于表单表…...

CICD遇到npm error code EINTEGRITY的问题

场景 CICD编译时抛出npm error code EINTEGRITY的错误 npm error code EINTEGRITY npm error sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA integrity checksum failed when using sha512: wanted sha512-PlhdFcillOINfeV…...

C# AI(Trae工具+claude3.5-sonnet) 写前后端

这是一个AI 写的前后端分离项目,通过AI编程,开发电商管理系统(登陆、注册) 使用的AI工具为 Trae工具(字节国际版)claude3.5-sonnet(目前代码最强模型) 前端为 vue3Bootstrap 后端为 C# net5.0(因为我电脑里面已经安装了这个新版更好) do…...

leetcode 25. Reverse Nodes in k-Group

25. Reverse Nodes in k-Group 递归法: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, L…...

PHP伪随机数

在我们现实生活中由于一些物理原因产生的随机数才是真正的随机数,比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。而对于计算机来说,真正的随机数是不存在的,因为无法通过电信号来实现上面提到的物理过程,对于计算机来…...

vue3 threejs 物体发光描边

threejs官网案例&#xff1a; three.js examples 我的代码&#xff08;标注了重点代码&#xff0c;加上即可&#xff09; <template><div class"greenhouse" ref"canvasContainerRef"></div></template><script setup> im…...

java的synchronized 原理及功能

简介&#xff1a; Java中的synchronized关键字是一种同步机制&#xff0c;用于控制多个线程对共享资源的访问。 原理&#xff1a; 在Java锁有一个内部锁 Intrinsic Lock&#xff0c;也称为监视器锁或管程锁&#xff0c;每个Java对象都有一个关联的监视器锁&#xff0c;隐式锁…...

【Leetcode 每日一题】3356. 零数组变换 II

问题背景 给你一个长度为 n n n 的整数数组 n u m s nums nums 和一个二维数组 q u e r i e s queries queries&#xff0c;其中 q u e r i e s [ i ] [ l i , r i , v a l i ] queries[i] [l_i, r_i, val_i] queries[i][li​,ri​,vali​]。 每个 q u e r i e s [ i ]…...

LangChain入门和应用#1

LangChain 是一个全方位的、基于大语言模型这种预测能力的应用开发工具&#xff0c;它的灵活性和模块化特性使得处理语言模型变得极其简便。不论你在何时何地&#xff0c;都能利用它流畅地调用语言模型&#xff0c;并基于语言模型的“预测”或者说“推理”能力开发新的应用 La…...

[每日一题] 3356. 零数组变换ii

文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 3356. 零数组变换 II - 力扣&#xff08;LeetCode&#xff09; 2. 题目描述 给你一个长度为 n 的整数数组 nums 和一个二维数组 queries&#xff0c;其中 queries[i] [li, ri, va…...

Docker网关冲突导致容器启动网络异常解决方案

一、故障现象 执行docker-compose up命令时服务器网络中断控制台显示"Creating network xxxxxxx with the default driver"通过ifconfig可见docker0网卡docker network ls显示新创建的网络接口 二、根本原因 Docker服务默认创建docker0虚拟网卡&#xff08;默认地…...

基于stm32的空气质量监测系统

目录 摘 要 Abstract 目 录 第 1 章 绪论 第 2 章 空气质量监测系统总体方案设计 第3章 硬件的部分介绍 3.1 硬件系统的的原理方框图 3.2 硬件系统的的原理图 3.3 温湿度传感器 3.4 甲醛传感器 3.5 报警提醒模块及其他 3.6 系统工作原理 3.7 本章小结 第四章 方案…...

Leetcode-3 判断根结点是否等于子结点之和

Leetcode-3 判断根结点是否等于子结点之和&#xff08;简单&#xff09; 题目描述思路分析通过代码&#xff08;python&#xff09; 题目描述 **给你一个 二叉树 的根结点 root&#xff0c;该二叉树由恰好 3 个结点组成&#xff1a;根结点、左子结点和右子结点。 如果根结点值…...

《算法笔记》12.1小节——字符串专题->字符串hash进阶 问题 A: 求最长公共子串(串)

题目描述 求采用顺序结构存储的串s和串t的一个最长公共子串&#xff0c;若没有则输出false&#xff0c;若最长的有多个则输出最先出现的那一串。 输入 输入两个字符串 输出 输出公共子串 样例输入 abcdef adbcef 样例输出 bc 分析&#xff1a;用字符串哈希解决。检查…...

为何天线的长度设计为频率波长的四分之一?

目录 1. 电磁波的波长与频率关系 2. 四分之一波长天线的工作原理 3. 为什么选择 λ/4 而不是其他长度&#xff1f; 4. 实际应用中的例子 5. 总结 为何天线的长度设计为频率波长的四分之一&#xff1f; 天线的长度设置为频率波长的四分之一主要是基于电磁波的传播特性以及天线的…...

端口号详解(技术向)

端口号详解&#xff08;技术向&#xff09; 一、核心定义 **端口号&#xff08;Port Number&#xff09;**是 传输层协议&#xff08;TCP/UDP&#xff09; 的逻辑标识&#xff0c;用于在同一设备上区分不同应用程序的网络通信入口。端口号是用两个字节&#xff08;无符号&…...

git合并多次commit提交

首先查看历史记录 git log 查看你想要合并的commit是哪些&#xff08;注意&#xff1a;这里是逆序&#xff0c;最上的是最新提交&#xff09; 找到当前想要合并的最后一个记录&#xff0c;复制该记录的下一个记录的 id&#xff08;黄色部分commit id&#xff09;&#xff0c…...

深入浅出Java-Lambda表达式

深入浅出Java-Lambda表达式 一、Lambda 表达式特征二、Lambda 表达式的基础语法与结构2.1 基本语法格式2.2 语法简化规则2.3 与匿名内部类的对比 三、函数式接口&#xff1a;Lambda 表达式的载体3.1 函数式接口的定义3.2 常用函数式接口分类3.2.1 消费型接口&#xff08;Consum…...

FreeCAD傻瓜教程-外螺纹的绘制,利用两个实体进行布尔运算来实现

起因&#xff1a;因为要设计一个波珠螺丝固定器&#xff0c;为了不跑偏&#xff0c;需要在螺柱上加工一个直径6mm&#xff0c;深度1.2mm的圆弧凹槽所以想用泉州制造的6.8车铣加工。 但是该加工目前不支持轴向的钻孔&#xff0c;所以想着干脆在两端加上M8的螺栓&#xff0c;也起…...

java并发-线程池

文章目录 线程池定义组成工作参数设置种类关闭 线程池 定义 线程池就是提前创建好一批线程&#xff0c;反复复用处理任务&#xff0c;避免频繁创建销毁线程&#xff0c;同时控制线程数量&#xff0c;让系统更高效、稳定。 举个例子&#xff1a; 场景假设&#xff1a; 你开了…...

openlayer:06点击按钮实现地图动画移动

如何实现点击去辽宁按钮实现用动画效果将地图顺滑的切换到辽宁区域&#xff0c;点击回北京按钮后同样将地图使用动画效果移动回到辽宁。 本文介绍了如何通过OpenLayers库实现地图在北京市和辽宁省之间的平滑切换动画。首先&#xff0c;使用View类设置地图的初始中心点为北京市…...

使用 Matter.js 创建封闭箱体与里面的小球

下面是一个使用 Matter.js 创建的示例,包含一个地面、由4个长方形组成的封闭箱体,箱体内有10个不同颜色的小球。箱体可以被拖动,而小球被限制在箱体内部。 <!DOCTYPE html> <html> <head><title>Matter.js 可拖动箱体与小球</title><styl…...

自动化软件如何确保高可用性和容错性?

在数字化转型的浪潮中&#xff0c;RPA&#xff08;机器人流程自动化&#xff09;技术成为众多企业和机构实现业务流程优化的得力助手。以金智维为例&#xff0c;作为 RPA 领域的佼佼者&#xff0c;其技术在金融、政务等行业广泛应用&#xff0c;承担着大量关键业务流程的自动化…...

变电站综合自动化系统

系统介绍 a安科瑞 18702112163 变电站综合自动化系统为企业变电站提供了完整的SCADA功能&#xff0c;包括主接线图、设备工况、实时数据显示、定值管理、SOE报警/记录/查询/打印、棒图、实时/历史曲线、语音报警、历史信息查询、用户权限管理、各种运行数据统计分析报表等。系…...

【2025.05】Anaconda新手安装+配置+环境创建教程

本文目录 一、安装前述二、下载与安装1、下载2、选择安装类型3、选择安装路径&#xff1a; 三、设置环境1、添加conda目录到path2、修改envs\pgks默认目录第一种&#xff1a;修改.condarc文件第二种&#xff1a;使用conda config命令 四、修改镜像源五、常用命令&#xff08;27…...

React-改变当前页class默认的样式

比如antd for mobile&#xff0c;已经定义了默认的ui的class样式&#xff0c;如果想在当前页面的控件显示特殊的样式&#xff0c;除了指定style外&#xff0c;还可以强制改变默认class的样式&#xff0c;比如我想改变list.item的字体。 在返回渲染布局里面加上 return (<&…...

腾讯游戏安全与高通合作构建PC端游安全新格局

导语&#xff1a;5月16日&#xff0c;2025游戏安全行业峰会在深圳举行&#xff0c;腾讯游戏安全ACE与高通&#xff08;中国&#xff09;在峰会上就腾讯游戏安全方案正式宣布达成行业生态合作。双方将依托高通技术公司专门面向AI PC打造的骁龙X系列平台&#xff0c;共同为《无畏…...

Token类型与用途详解:数字身份的安全载体图谱

在现代数字身份体系中&#xff0c;Token如同"数字DNA"&#xff0c;以不同形态流转于各类应用场景。根据Okta的最新研究报告&#xff0c;平均每个企业应用使用2.7种不同类型的Token实现身份验证和授权。本文将系统梳理主流Token类型及其应用场景&#xff0c;通过行业典…...