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

Qwen3模型架构、训练方法梳理

qwen3炼丹真是全是技巧,下面来看看,仅供参考。

https://huggingface.co/Qwen

https://modelscope.cn/organization/qwen

https://github.com/QwenLM/Qwen3

模型架构

Dense 模型结构改进:

  • GQA、SwiGLU、RoPE、RMSNorm with pre-normalization与Qwen2.5 相似。
  • 移除了 Qwen2 中的 移除QKV偏置,减少模型复杂性,在注意力机制中引入 QK-Norm 来确保稳定训练。

MoE 模型结构改进:

改进点描述
细粒度专家分割增强模型的表达能力和效率。
全局批次负载均衡损失鼓励专家专业化,提高模型整体性能。
移除共享专家与Qwen2.5-MoE不同,Qwen3-MoE设计中排除了共享专家。
128个总专家,每个token激活8个专家增加专家数量以提高模型的多样性和表现力。

Qwen3 模型使用 Qwen 的 tokenizer,byte-level BPE,词表大小 151669

预训练

预训练数据

预训练数据情况:

  • 36万亿个标记,是Qwen2.5的两倍
  • 包括多种语言和方言,总共支持119种语言,而Qwen2.5仅支持29种
  • 包括高质量的文本,涵盖编程、STEM(科学、技术、工程和数学)、推理任务、书籍、多语言文本和合成数据等领域

数据收集方法:

  • 使用Qwen2.5-VL模型对大量PDF文档进行文本识别,并通过Qwen2.5模型进行质量提升。
  • 利用Qwen2.5、Qwen2.5-Math和Qwen2.5-Coder模型生成合成的文本数据,涵盖教科书、问答、指令和代码片段等格式。

此外,开发了一个多语言数据注释系统,标注超过30万亿个标记,涵盖教育价值、领域、安全和多语言等方面。通过详细的注释支持更有效的数据过滤和组合。

不同于之前在数据源或 domain 层面的优化数据组合的工作,通过带有细粒度标签的小模型上广泛的消融实验,在 instance-level 上对数据组合进行优化。

预训练阶段

qwen3经过 3 个阶段的预训练:
Qwen3的预训练分为三个阶段,每个阶段都有其特定的目标和策略:

  1. 通用阶段(General Stage, S1):建立广泛的语言知识和一般世界知识。使用超过30万亿个标记,覆盖119种语言和方言。序列长度:4096。模型在语言熟练度和一般知识方面得到充分预训练。

  2. 推理阶段(Reasoning Stage, S2):提高在科学、技术、工程、数学(STEM)和编码等领域的推理能力。增加STEM、编码、推理和合成数据的比例。序列长度:4096。加速学习率衰减,优化预训练语料库以提高推理能力。

  3. 长上下文阶段(Long Context Stage):扩展模型的最大上下文长度。收集高质量的上下文数据,将上下文长度从4,096扩展到32,768个标记。序列长度:32768。使用ABF技术增加RoPE的基础频率,引入YARN和Dual Chunk Attention以实现更长的上下文处理能力。

后训练

后训练的两个核心目标:

  • 思考控制(Thinking Control)):整合“非思考”和“思考”两种模式,允许用户选择是否让模型进行推理。用户可以通过指定思考token的预算来控制思考过程的深度。
  • 强到弱蒸馏(Strong-to-Weak Distillation):优化轻量级模型,通过从大型模型中提取知识来减少计算成本和开发工作量。包括离线蒸馏和在线蒸馏两个阶段,赋予轻量级模型基本的推理技能和模式切换能力。

后训练pipline:

1. 长CoT冷启动

Long-CoT Cold Start目的是通过高质量数据集和精简训练流程,让模型初步掌握CoT推理能力。

数据集构建:

(1) Query 过滤(筛选高质量问题)
• 移除低质量 query:使用 Qwen2.5-72B-Instruct 识别并剔除:不易验证的 query(如含多个子问题、普通文本生成类问题)。 Qwen2.5-72B-Instruct 可直接回答的 query(无需 CoT 推理)。领域平衡:对 query 进行标注,确保数据集覆盖多个领域,避免偏差。

(2) Response 过滤(筛选高质量答案)

  • 初步筛选:保留一个验证 query 集,用 QwQ-32B 生成 N 个候选 response。

  • 人工评估:当 QwQ-32B 无法正确回答时,人工检查 response 的准确性,并过滤掉:

    1. 错误答案(最终结果错误)。
    2. 大量重复内容。
    3. 无充分推理的猜测。
    4. 思考内容与总结内容表现不一致(逻辑矛盾)。
    5. 不适当语言混合/风格变化。
    6. 疑似与验证集相似(防止数据泄露)。
  • 严格筛选 positive Pass@N 的 query:进一步提高数据质量。

(3) 数据精选与训练

  • 从精炼后的数据集中挑选 子集 进行 初始冷启动训练,植入基础推理模式。

  • 控制数据量 & 训练步数,避免过度拟合,为后续 RL 阶段留出优化空间。

核心创新点 :数据集设计时已考虑 /think/no_think 模式,使模型能灵活切换推理方式。在训练时,允许模型基于思考预算动态调整计算资源分配。

冷启动后,模型进入 Reasoning RL 阶段,利用 3995 个高质量 query-verifier 对 进行强化学习,进一步提升推理能力。

2.Reasoning RL

Reasoning RL 阶段,Qwen3 通过 高质量 query-verifier 对 和 RL优化,进一步提升模型的推理能力,使其在数学、代码、STEM 等复杂任务上表现更优。

Query-Verifier 设计标准

标准说明
未在冷启动阶段使用过避免数据重复,确保 RL 训练的数据多样性。
对冷启动模型是可学习的确保模型在 RL 阶段仍有提升空间,避免过难或过易的问题。
尽可能具有挑战性提高模型的推理能力,使其能处理更复杂的逻辑和计算任务。
涵盖广泛的子领域确保模型在不同任务(如数学、代码、逻辑推理)上都能提升。

最终收集了 3995 个高质量的 query-verifier 对,用于 RL 训练。

RL 训练方法

https://mp.weixin.qq.com/s/zBmVGXecSBOSxImJvBy7JA

采用 GRPO 更新模型参数,并采用以下优化策略:

策略说明
大 batchsize提高训练稳定性,减少训练波动。
大 rollout增加样本多样性,提升泛化能力。
off-policy 训练提高样本效率,减少计算资源消耗。

此外,Qwen3 还解决了探索(exploration)与利用(exploitation) 的平衡问题: 控制模型熵的稳定增长或保持稳定,确保训练过程不会过早收敛或陷入局部最优。

效果: 无需手动调整超参数,训练过程中 reward 和验证集表现持续提升。 Qwen3-235B-A22B 在 AIME’24 的得分从 70.1 提升至 85.1,仅用了 170 步 RL 训练。

3.Thinking Mode Fusion(思考模式融合)

核心目标 :将 non-thinking(快速响应)能力整合到 thinking(复杂推理)模型中,使开发者能够动态控制模型的推理行为,从而在不同任务需求下灵活切换模式,并保持高性能。

方法
(1) 继续 SFT(监督微调)

  • 基于 Reasoning RL 模型进行 SFT,进一步优化模型的推理和响应能力。

  • 数据构造方式:

    • Thinking 数据:由第一阶段的 query 拒绝采样得到(确保高质量)。

    • Non-thinking 数据:涵盖多样化任务(代码、数学、指令遵循、多语言、创意写作、问答、角色扮演等),并增加 翻译任务比例(提升低资源语言性能)。

    • 数据质量评估:采用自动化生成的 checklists 确保数据质量。

(2) Chat Template 设计

  • 引入 /think/no_think 标志,使用户能动态控制模型的推理模式:

    • /think:启用推理模式(适合复杂任务)。

    • /no_think:启用快速响应模式(适合简单任务)。

  • 默认模式:默认使用 thinking 模式,但允许灵活调整。

  • 多轮对话支持:在复杂对话中,可随机插入多个 /think/no_think 标志,模型按 最后遇到的标志 决定当前模式。

(3) Thinking Budget 机制
Thinking Mode Fusion 的一个额外优势是,一旦模型学会了以 non-thinking 和 thinking 两种模式进行回应,就自然发展出处理中间情况的能力——基于不完整的思考生成 response。为实现对模型思考过程的预算控制提供基础。当模型思考长度达到用户定义的阈值时,手动停止思考过程,并插入停止思考指令:“Considering the limited time by the user, I have to give the solution based on the thinking directly now.\n.\n\n“。模型会基于此时积累的推理生成最终 response。这一能力没有经过明确训练,而是应用 thinking mode fusion 后自然出现的。

4.General RL(通用强化学习)阶段

核心目标:全面提升Qwen3模型在不同场景下的能力与稳定性,使其能够适应各种复杂任务需求,提供更优质的用户体验。

复杂的Reward System设计:

构建了一个涵盖超过20个不同任务的复杂奖励系统,每个任务都有定制化的评分标准,主要针对以下核心能力进行提升:

(1) 指令遵循:确保模型能准确解读并遵循用户指令。包括对内容、格式、长度以及结构化输出使用等方面的要求。目标是提供符合用户预期的回应。

(2) 格式遵循:期望模型遵守特定的格式规范。例如,根据/think/no-think标志在思考与非思考模式之间切换。一致使用指定的标记来分离最终输出中的思考和响应部分。

(3) 偏好对齐:关注提高模型的有用性、参与度和风格。最终目标是提供更加自然和令人满意的用户体验。

(4) Agent能力:涉及训练模型通过指定的接口正确调用工具。在RL rollout期间,模型被允许执行完整的多轮互动周期,并获得真实环境执行的反馈。提高其在长期决策任务中的表现和稳定性。

(5) 特定场景能力:在更专业的场景中设计针对具体情境的任务。例如,在RAG(检索增强生成)任务中,结合奖励信号来指导模型生成准确且符合上下文的response。最小化产生幻觉的风险。

3. 多样化的奖励类型
为上述任务提供反馈,使用了三种不同类型的奖励:

(1) Rule-based Reward:基于规则的奖励机制。可以高准确性地评估模型输出的正确性。 防止reward hacking等问题。

(2) Model-based Reward with Reference Answer:给每个query提供一个参考答案。使用Qwen2.5-72B-Instruct基于参考答案给模型的response打分。允许更灵活地处理多样化任务,无需严格的格式命令。避免了rule-based reward的假阴性问题。

(3) Model-based Reward without Reference Answer:利用人类偏好数据,训练一个Reward Model。为每个response提供标量分数。更加灵活地适应不同任务和场景的需求。

5.Strong-to-Weak Distillation(强到弱蒸馏)

核心目标:利用大模型(教师模型)的知识,优化小模型(学生模型)的性能,使其在计算资源有限的情况下,仍能保持较高的推理能力和多任务适应性。

  • 5个Dense模型(0.6B、1.7B、4B、8B、14B)

  • 1个MoE模型(Qwen3-30B-A3B)

蒸馏流程

(1) Off-policy Distillation(离线蒸馏) :利用大模型(教师模型)在 /think/no_think 模式下的输出,初始化小模型的能力。

  • 将教师模型在不同模式下的 response 作为“软标签”(soft labels)。

  • 学生模型通过最小化与教师模型输出的 KL 散度(Kullback-Leibler Divergence),学习大模型的推理模式。

(2) On-policy Distillation(在线蒸馏) :进一步优化学生模型,使其更适应特定任务。

  • 学生模型生成 on-policy 数据(即学生模型自己采样生成的数据)。

  • 使用教师模型(Qwen3-32B 或 Qwen3-235B-A22B)的 logits 作为参考,调整学生模型的输出分布。

  • 最小化 KL 散度,使小模型的预测更接近大模型。

结果

  • Qwen3 Dense Base 模型:在类似规模下,性能与 Qwen2.5 更大规模模型相当。

  • Qwen3 MoE Base 模型: 仅用 1/5 的激活参数 就能达到与 Dense 模型相似的性能。 即使只有 Qwen2.5 Dense 模型 1/10 的激活参数,仍能保持可比性能。

实验评测的一些表

表太多,看原文

四阶段评测

相关文章:

Qwen3模型架构、训练方法梳理

qwen3炼丹真是全是技巧,下面来看看,仅供参考。 https://huggingface.co/Qwen https://modelscope.cn/organization/qwen https://github.com/QwenLM/Qwen3 模型架构 Dense 模型结构改进: GQA、SwiGLU、RoPE、RMSNorm with pre-normalization…...

MySQL 学习(九)bin log 与 redo log 的区别有哪些,为什么快速恢复使用 redo log 而不用 bin log?

目录 一、bin log 与 redo log 的区别1)实现方式不同:2)日志内容不同:3)记录方式不同:4)使用场合不同: 二、为什么快速恢复使用 redo log 而不用 bin log? 面试题&#x…...

【消息队列】RabbitMQ基本认识

目录 一、基本概念 1. 生产者(Producer) 2. 消费者(Consumer) 3. 队列(Queue) 4. 交换器(Exchange) 5. 绑定(Binding) 6. 路由键(Routing …...

RabbitMQ 快速上手:安装配置与 HelloWorld 实践(二)

四、RabbitMQ 配置 4.1 用户及权限管理 在 RabbitMQ 中,用户管理是保障系统安全和正常运行的重要环节。通过合理的用户及权限设置,可以确保不同的应用或服务在使用 RabbitMQ 时,只能访问其被授权的资源,避免非法操作和数据泄露。…...

蓝桥杯 17. 修改数组

修改数组 原题目链接 题目描述 给定一个长度为 N 的数组 A [A1, A2, …, AN],数组中可能包含重复的整数。 现在小明要按以下方法将其修改为没有重复整数的数组: 小明会依次修改 A2, A3, …, AN。 当修改 Ai 时,小明会检查 Ai 是否在 A…...

Redis内存淘汰策略和过期键删除策略有哪些?

Redis 提供 8 种内存淘汰策略,以下是详细解析及场景建议: 一、核心策略解析 noeviction (默认策略) 机制:内存满时拒绝新写入操作,返回错误优势:绝对数据安全场景:金融交易系统、医疗数据存储 allkeys-lr…...

基于 NanoDet 的工厂巡检机器人目标识别系统研究与实现​

摘要​ 本论文旨在设计并实现一个基于 NanoDet 模型的工厂巡检机器人目标识别系统。通过详细阐述数据集准备、模型训练、UI 界面构建以及系统部署的全过程,展示如何利用 NanoDet 模型的高效性和轻量化特点,结合合理的 UI 设计与数据集优化,使…...

深入解析Spring Security:JWT认证与授权实践

深入解析Spring Security:JWT认证与授权实践 引言 在现代Web应用中,安全性是至关重要的。Spring Security作为Spring生态中的安全框架,提供了强大的认证和授权功能。本文将重点介绍如何使用Spring Security结合JWT(JSON Web Tok…...

《隐私计算:数据安全与隐私保护的新希望》

一、引言 在数字化时代,数据已成为企业和组织的核心资产。然而,数据的收集、存储和使用过程中面临着诸多隐私和安全挑战。隐私计算作为一种新兴技术,旨在解决数据隐私保护和数据共享之间的矛盾。本文将深入探讨隐私计算的基本概念、技术原理、…...

Elasticsearch索引设计与调优

一、分片策略设计 1.‌分片容量规划 单分片容量建议30GB(日志场景可放宽至100GB),避免超大分片引发查询延迟。分片总数计算公式:总数据量 / 30GB 1.2(20%余量应对未来增长)。主分片数创建后不可修改,副本分片数支持动态调整。2.‌分片分布优化 PUT logs-2025 { &qu…...

什么是im即时通讯?私有化im即时通讯软件优势是什么?

在当前企业高度关注数据主权的背景下,私有化IM即时通讯软件(如BeeWorks)的部署模式成为企业实现数据自主控制、规避外部风险的核心解决方案。以下是针对企业数据主权诉求的私有化IM软件优势深度解析: 一、数据主权诉求下的私有化I…...

【unity游戏开发——编辑器扩展】EditorWindow自定义unity窗口拓展

注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、自定义窗口1、创建窗口类2、创建窗口对象3、显示窗…...

深入理解Java HotSpot中的即时编译

即时编译(Just-In-Time Compilation,简称JIT)是Java虚拟机(JVM)的核心技术之一,通过在运行时将字节码转换为本地机器码,显著提升了Java应用程序的性能。本文基于HotSpot JVM,详细探讨了JIT编译的工作原理、优化技术、日志分析以及最新的编译器发展,旨在帮助开发者更好…...

【教程】Docker方式本地部署Overleaf

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 背景说明 下载仓库 初始化配置 修改监听IP和端口 自定义网站名称 修改数据存放位置 更换Docker源 更换Docker存储位置 启动Overleaf 创…...

解决docker alpine缺少字体的问题 Could not initialize class sun.awt.X11FontManager

制作的springboot项目镜像,缺少字体报错Could not initialize class sun.awt.X11FontManager 原因镜像中缺少字体 解决: 制作镜像时,添加字体库,Dockerfile文件 中添加如下内容 注意: jdk版本一定要使用&#xff0…...

深度解析智能体:从概念到应用的全方位洞察

在科技日新月异的当下,智能体已从人工智能的前沿概念逐渐走进大众视野,成为备受瞩目的焦点。那么,究竟何为智能体呢? 一、智能体的概念 智能体,简单来讲,可看作是“大模型 超级工具人”的有机融合。它能够…...

python 异步执行多个 python 命令

前提说明: 1. 有N套用 python 爬取客户不同网站上的评论的程序 2. 有一套用 python 将评论出成 Excel 报表的程序 新需求: 做一个总入口,异步同时爬不同网站评论,或同时出不同月份报表,或爬虫做报表同时做的 # -…...

Keil5 MDK 安装教程

## 简介 Keil MDK(Microcontroller Development Kit)是ARM开发的一款集成开发环境(IDE),主要用于ARM Cortex-M系列微控制器的开发。MDK包含了μVision IDE和调试器、ARM C/C编译器、中间件组件等工具。本教程将指导您完…...

Doris与ClickHouse深度比较

一、核心架构差异 分布式管理 Doris 采用 FE(前端)与 BE(后端)分离的 MPP 架构,FE 负责元数据管理和查询规划,BE 处理存储与计算,支持自动扩缩容和故障恢复。这种设计简化了集群管理&#xff0c…...

插入排序希尔排序

插入排序&希尔排序 插入排序:将数据整体当做一组,从头开始遍历,确保遍历完的子序列都是有序的; 希尔排序:基于插入排序,增加新的分组思想,对数据进行分组的插入排序。 平均时间复杂度、最快…...

windows文件共享另一台电脑资源管理器网络文件夹无法找到机器

找不到共享出来的文件夹 1 网络问题,明确两台机器是否同一局域网 2 明确两台机器在本地所选的网络类型是专用网络,还是公共网络,对应的防火墙是否关闭 3 smb协议没有启用 4 以上都设置完毕还是无法找到机器,使用ip访问 在资源管理器地址栏输入 \\<对方IP>&#xff08;…...

K8S Ingress 实现金丝雀(灰度)发布

假设有如下三个节点的 K8S 集群&#xff1a; ​ k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、场景分析 阅读本文&#xff0c;默认您已经安装了 Ingress Nginx。 1&#xff09;A/B 测试 A/B 测试基于用户请求的元信息将流量路由…...

Python笔记:在环境变量中增加了dll加载路径,python提示DLL加载失败

在环境变量中增加了dll加载路径&#xff0c;python提示DLL加载失败 1.问题描述 from PySide2 import QtCore 提示如下错误 ImportError: DLL load failed while importing QtCore: 找不到指定的模块。 2.问题原因 在Python3.8文档中的What’s New In Python 3.8找到如下说明…...

WinFrom 使用 LiveCharts 实现动态折线图

上方是Winfrom使用LiveCharts 插件实现的动态折线图&#xff0c;下面是实现步骤。 一、创建新项目 我这里使用的是.Net Framework4.6.1版本 二、添加引用包 这样就代表安装完成了 三、引用控件 四、逻辑代码 using LiveCharts.Defaults; using LiveCharts.Wpf; using Syst…...

Deep Learning(手写字识别 - CNN)

Deep Learning&#xff08;手写字识别&#xff09; 数据集&#xff08;MNIST&#xff09;基于 PyTorch 深度学习框架使用 CNN 算法进行手写字识别案例参考教程 数据集&#xff08;MNIST&#xff09; 数据集 Github 官网&#xff08;注&#xff1a;不知为何官网无法直接下载数据…...

HDD 安全擦除:何时以及如何在 Windows PC 上安全擦除硬盘

HDD 安全擦除是一种从硬盘驱动器 (HDD) 中永久删除所有数据的方法&#xff0c;其方式几乎无法恢复。那么&#xff0c;什么时候需要在 Windows 11/10/8/7 上安全擦除硬盘驱动器&#xff1f;如何安全地擦除硬盘驱动器&#xff1f;幸运的是&#xff0c;所有的答案都在本指南中。继…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-B. 错误代码与解决方案

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 附录B. PostgreSQL错误代码与解决方案速查表一、错误代码分类速查表二、常见错误代码详解三、错误排查方法论四、错误预防最佳实践五、典型错误场景解决方案六、官方资源与工…...

3DMAX脚本病毒Spy CA查杀方法

什么是Spy CA病毒&#xff1f; Spy CA是一种新型病毒&#xff0c;可以与从在线资源或3D商店下载的第三方3D模型一起下载该病毒。 该病毒是一种Maxscript代码&#xff0c;写入对象的自定义属性&#xff0c;并在打开场景、合并模型或操纵对象时执行。 通过对带有该病毒的场景做…...

联排半孔PCB如何进行SMT贴片?

在印刷电路板业务中&#xff0c;有两种将元件安装到电路板上的主要方法:联排半孔安装和表面安装。联排半孔安装是较老的技术&#xff0c;要求电路板制造商在PCB上钻孔并将引线插入孔中。最近&#xff0c;表面安装技术已经接管了该领域。 联排半孔元件 联排半孔元件有两种引线&a…...

CSS Grid布局:从入门到实战

CSS Grid布局&#xff1a;从入门到实战 一、初识Grid布局 还在为网页布局发愁吗&#xff1f;Flexbox虽然好用&#xff0c;但当遇到复杂布局时&#xff0c;CSS Grid才是真正的王者。Grid布局是CSS中最强大的二维布局系统&#xff0c;它就像一张无形的网格纸&#xff0c;让我们…...

小说所有设定(v3.0 preview)

设定以json格式提供&#xff1a; {"2y": {"2y_jsl": {"精神力的具体能力": {"学习能力组": {"瞬间掌握知识": "可以瞬间掌握所有知识&#xff0c;无需传统学习过程。","直接读取信息": "能直接…...

主题切换方案

方案一 CSS :root 选择器匹配文档的根元素。在 HTML 文档中&#xff0c;根元素就是 <html> 标签 1、定义颜色变量 可在公共样式文件里面定义 :root {--primary-color: #007bff; //定义颜色变量 } 2、使用 JavaScript 修改 CSS 变量 document.documentElement.styl…...

一个日志量突增的问题分析处理经历

问题描述 周一早上&#xff0c;还是和往常一样的巡检。通过告警日志&#xff0c;发现了生产区集群上的一个实例周末出现了异常。 图片 1 Alert_With_Checkpoint_log 如图&#xff0c;周六下午15时开始&#xff0c;数据库在线联机日志组疯狂切换&#xff0c;检查点发生的频率也…...

C#中的dynamic与var:看似相似却迥然不同

在C#编程的世界里&#xff0c;var和dynamic这两个关键字常常让初学者感到困惑。它们看起来都在定义变量时省略了显式类型声明&#xff0c;但实际上它们的工作方式和应用场景有着天壤之别。今天&#xff0c;让我们一起揭开这两个关键字的神秘面纱。 var&#xff1a;编译时的类型…...

VS Code 新旧版本 Remote-SSH 内网离线连接服务器方法(版本 ≤ 1.78.x 及 ≥ 1.79.0)

文章目录 前言版本概览目录结构模型迭代 旧版&#xff08;版本 ≤ 1.78.x&#xff09;离线部署流程1. 问题描述2. 原理说明3. 离线部署步骤 新版&#xff08;版本 ≥ 1.79.0&#xff09;离线部署流程1. 目录结构变化2. 全局设置调整3. 离线部署步骤 常见问题 & 排查总结与建…...

【unity游戏开发——编辑器扩展】使用EditorGUI的EditorGUILayout绘制工具类在自定义编辑器窗口绘制各种UI控件

注意&#xff1a;考虑到编辑器扩展的内容比较多&#xff0c;我将编辑器扩展的内容分开&#xff0c;并全部整合放在【unity游戏开发——编辑器扩展】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言常用的EditorGUILayout控件专栏推荐完结 前言 EditorG…...

310. 最小高度树

题目 树是一个无向图&#xff0c;其中任何两个顶点只通过一条路径连接。 换句话说&#xff0c;任何一个没有简单环路的连通图都是一棵树。 给你一棵包含 n 个节点的树&#xff0c;标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表&#xff08;每一个边都…...

SpringBoot中配置绑定到bean中

一、回顾value注解 SpringBoot中我们该如何将applicaton.properties中的数据绑定到bean中呢&#xff1f;在之间我们是可以通过value注解&#xff0c;在SpringBoot自动启动后&#xff0c;会自动的去相应的路径中去寻找applicaton.properties配置文件&#xff0c;然后将相应的值…...

Linux下的c/c++开发之操作Redis数据库

C/C 操作 Redis 的常用库 在 C/C 开发中操作 Redis 有多种方式&#xff0c;最主流的选择是使用第三方客户端库。由于 Redis 官方本身是使用 C 编写的&#xff0c;提供的 API 非常适合 C/C 调用。常见的 Redis C/C 客户端库包括&#xff1a; hiredis&#xff1a;官方推荐的轻量…...

通过SMTP协议实现Linux邮件发送配置指南

一、环境准备与基础配置 1. SMTP服务开通&#xff08;以qq邮箱为例&#xff09; 登录qq邮箱网页端&#xff0c;进入「设置」-「POP3/SMTP/IMAP」 开启「SMTP服务」并获取16位授权码&#xff08;替代邮箱密码使用&#xff09; 记录关键参数&#xff1a; SMTP服务器地址&#…...

数学复习笔记 8

前言 成为一个没有感情的刷题机器就可以变得很强了。 逆矩阵的运算 随便算一下就算出来了&#xff0c;没啥难的。主要是用天然可交换的矩阵来算。有三个天然可交换的矩阵&#xff0c;某矩阵和单位阵&#xff0c;该矩阵和它的伴随矩阵&#xff0c;该矩阵和它的逆矩阵。一定要…...

【证书与信任机制​】自签名证书的风险与适用场景​​

关于 自签名证书的风险与适用场景 的详细解析&#xff0c;以及在内网测试中安全使用自签名证书的实践指南&#xff1a; 一、自签名证书的核心风险 1. 信任缺失与安全警告 • 浏览器/操作系统不信任&#xff1a;自签名证书未被权威CA签发&#xff0c;客户端默认视为“不安全”&a…...

[python] Python单例模式:__new__与线程安全解析

一 实例的创建过程 我们之前了解过在构造一个类的实例化对象时,会默认调用__init__方法&#xff0c;也就是类的初始化也叫构造函数&#xff0c;但其实在调用__init__方法前会首先调用__new__方法&#xff08;只有在py3新式类才有&#xff09;。即下面 __new__(): 创建实例 作…...

【SSL证书系列】操作系统如何保障根证书的有效性和安全

操作系统通过多层次的安全机制和技术手段保障根证书的有效性和安全性&#xff0c;防止篡改、伪造或滥用。以下是核心保障措施&#xff1a; 1. 根证书的存储与隔离 • 受保护的存储区域 根证书存储在操作系统的受信任根证书存储区&#xff08;如Windows的“受信任的根证书颁发机…...

毕业论文,如何区分研究内容和研究方法?

这个问题问得太好了&#xff01;&#x1f60e; “研究内容”和“研究方法”经常被初学者&#xff08;甚至一些老油条&#xff09;混淆&#xff0c;尤其写论文开题报告时&#xff0c;一不小心就“内容”和“方法”全混在一块儿&#xff0c;连导师都看懵。 今天就来给大家一文讲…...

《Effective Python》第2章 字符串和切片操作——深入理解 Python 中 __repr__ 与 __str__

引言 本文基于学习《Effective Python》第三版 Chapter 2: Strings and Slicing 中的 Item 12: Understand the Difference Between repr and str When Printing Objects 后的总结与延伸。在 Python 中&#xff0c;__repr__ 和 __str__ 是两个与对象打印密切相关的魔术方法&am…...

C及C++的SOAP协议库

一.gSOAP gSOAP 是一个功能强大的开源工具包&#xff0c;专为 C 和 C 设计&#xff0c;用于快速开发基于 SOAP 协议的 Web 服务和客户端。 1.协议支持 SOAP 版本&#xff1a;完整支持 SOAP 1.1/1.2 规范&#xff0c;包括消息格式、编码规则和错误处理。 传输协议&#xff1a…...

推荐一个Winform开源的UI工具包

从零学习构建一个完整的系统 推荐一个开源、免费的适合.NET WinForms 控件的套件。 项目简介 Krypton是一套开源的.Net组件&#xff0c;用于快速构建具有丰富UI交互的WinForms应用程序。 丰富的UI控件&#xff0c;提供了48个基础控件&#xff0c;如按钮、文本框、标签、下拉…...

【Linux内核】内存管理之虚拟内存详解

目录 一、Linux 虚拟内存概述 二、虚拟内存的基本概念 1. 地址空间 2. 页表 3. 页面 三、虚拟内存的管理机制 1. 页面分配与回收 2. 页面置换 3. 内存映射 四、虚拟内存的保护机制 1. 访问权限 2. 写时复制 五、虚拟内存的优化技术 1. 大页 2. 透明大页 3. 内存…...

upload-labs通关笔记-第5关 文件上传之.ini绕过

目录 一、ini文件绕过原理 二、源码审计 三、渗透实战 1、查看提示 2、制作.user.ini文件 &#xff08;1&#xff09;首先创建一个文本文件 &#xff08;2&#xff09;保存文件名为.user.ini 2、制作jpg后缀脚本 &#xff08;1&#xff09;创建一个文本文件 &#xf…...