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

DeepSeek是如何通过“蒸馏”技术打造自己的AI模型

1 引言:

最近,外媒对中国公司——DeepSeek进行了猛烈抨击,指控其采用了所谓的“蒸馏”(Distillation)技术,涉嫌抄袭甚至作弊。那么,什么是“蒸馏”技术?

在人工智能领域,大型语言模型(LLM)无疑是近年来最耀眼的技术突破之一。然而,这些拥有数百亿甚至上千亿参数的庞然大物,虽然性能卓越,却也因其高昂的计算成本和资源需求而难以普及。如何让这些“巨无霸”级别的模型走进千家万户?答案就在于一种被称为知识蒸馏的技术。

2 满血的 DeepSeek 现在有多强

目前根据官方的说法,DeepSeek R1 模型的能力在无损的最大参数量模型(671B)下,与 O1 模型齐名,整体能力在开源模型中达到了非常优秀的效果。然而,由于是通过蒸馏的方式进行模型知识转移,且模型本身参数量不大,因此在成本优化上确实能够取得很好的效果。

可以看到我们基本是在第一梯队了,很强 👍🏻。

目前大家可以在官网体验这个优秀的模型,官网默认的对话模型已经升级为 DeepSeek-V3;勾选了深度思考的模型为新模型 DeepSeek-R1

推荐大家在一些复杂的问题上多使用 深度思考 , 可以看到开启深度思考后,DeepSeek在一些问题的思考方式和角度也是有很多学习的过程。

3 什么是蒸馏?

知识蒸馏是一种将复杂的大模型(教师模型)的知识迁移到小型高效模型(学生模型)的方法。通过这种方式,小模型不仅能够继承大模型的强大能力,还能以更低的成本更快的速度运行。这就像是一位经验丰富的老师将自己的智慧传授给学生,使他们能够在有限的时间内掌握核心技能。

3.1 蒸馏 ≠ 抄袭

很多人一听到“蒸馏”就认为这是抄袭,但事实并非如此。蒸馏技术的核心在于知识的迁移,而不是照搬模型的架构或代码。

  • 老师模型:比如 OpenAI 的 GPT。
  • 学生模型:DeepSeek 开发的新模型。

通过蒸馏,学生模型学习的是老师的“知识”,而不是老师的“长相”。这就像是你去上一门课,学到的是知识点,而不是老师的讲课方式。

3.2 蒸馏的过程

蒸馏过程可以分为以下几个步骤:

  1. 训练教师模型:首先需要一个性能强大的大型模型作为“老师”,比如DeepSeek 671B大模型。这个模型通常经过海量数据的训练,具备极高的准确率。
  2. 准备学生模型:接下来设计一个小巧灵活的学生模型,比如DeepSeek 1.5B小模型。这个模型结构简单、参数少,但潜力巨大。
  3. 知识传递:学生模型通过模仿教师模型的输出或中间特征来学习。例如,教师模型可能会生成一个包含多个可能性的概率分布(称为“软标签”),而学生模型则尝试复制这个分布。
  4. 优化调整:最后,通过一系列损失函数和训练策略,确保学生模型尽可能接近教师模型的表现。

这个过程有点像你在学习一门新技能时,不断向高手请教,然后自己练习改进的过程。

4 为什么我们需要知识蒸馏

尽管大模型性能优越,但它们存在明显的局限性:

  • 高计算成本:运行一次推理可能需要数十甚至上百个GPU,普通用户根本无法负担。
  • 内存占用大:许多设备(如手机、嵌入式系统)根本没有足够的存储空间支持这些模型。
  • 实时性差:由于计算量庞大,大模型往往无法满足实时响应的需求。

相比之下,经过蒸馏的小模型则可以轻松部署在各种场景中,无论是智能手机还是自动驾驶汽车,都能流畅运行。更重要的是,这些小模型还保留了大部分原始模型的能力,真正实现了“鱼与熊掌兼得”。

5. DeepSeek做了什么特别的事

5.1 数据蒸馏与模型蒸馏结合——双管齐下的创新

传统的知识蒸馏主要关注模型层面的迁移,即学生模型模仿教师模型的输出。然而,DeepSeek 另辟蹊径,将数据蒸馏引入其中,形成了独特的“双轨制”蒸馏方法。

数据蒸馏的作用

数据蒸馏是指通过对训练数据进行增强、伪标签生成等操作,提升数据的质量和多样性。例如,教师模型可以对原始图像进行旋转、裁剪等处理,从而生成更多样化的样本。这些高质量的数据为学生模型提供了更好的学习材料,使其能够更快速地成长。

模型蒸馏的优化

与此同时,DeepSeek还在模型蒸馏方面进行了大量创新。例如,他们采用了一种叫做 监督微调(SFT) 的方法,用教师模型生成的80万个推理数据样本对学生模型进行微调。这种方法避免了传统强化学习阶段的冗长训练,显著提高了效率。

DeepSeek开源了基于不同大小的 QwenLlama 架构的几个提炼模型。这些包括:

  • DeepSeek-R1-Distill-Qwen-1.5B
  • DeepSeek-R1-Distill-Qwen-7B
  • DeepSeek-R1-Distill-Qwen-14B
  • DeepSeek-R1-Distill-Qwen-32B
  • DeepSeek-R1-Distill-Llama-8B
  • DeepSeek-R1-Distill-Llama-70B

我本地部署了一个 7B 的模型,感觉参数太少了,整体来说和官网的完整体相比差很多。

5.2 高效知识迁移策略——不只是模仿,还有创造

除了上述两点,DeepSeek 还提出了一系列高效的知识迁移策略,包括基于特征的蒸馏和特定任务蒸馏。前者通过提取教师模型中间层的特征信息,帮助学生模型更好地理解数据的本质;后者则针对不同的应用场景(如文本生成、机器翻译等)进行针对性优化。

这些策略使得 DeepSeek 的蒸馏模型在实际应用中表现出色。例如,DeepSeek-R1-Distill-Qwen-7B 在AIME 2024上实现了55.5%的 Pass@1 ,超越了 QwQ-32B-Preview (最先进的开源模型)。这样的成绩证明了蒸馏技术的巨大潜力。

6 蒸馏技术的社会意义——从教育到产业变革

6.1 “教会学生,饿死师傅”的悖论

有人担心,知识蒸馏会导致技术垄断者失去竞争优势。但实际上,这种情况很难发生。因为即使模型开源,背后的数据、算法和硬件基础设施仍然构成了难以逾越的壁垒。

更重要的是,蒸馏技术实际上促进了整个行业的进步。通过共享知识,更多的企业和个人得以参与到AI的研发中,从而推动了技术创新的加速。

6.2 AI普惠时代的到来

蒸馏技术的最大贡献在于降低了AI的门槛。过去,只有少数科技巨头才能承担起研发和部署大模型的成本。而现在,任何一家初创公司甚至个人开发者都可以借助蒸馏技术构建自己的AI解决方案。

这种变化不仅仅局限于技术领域,还将深刻影响我们的日常生活。从智能家居到医疗诊断,从教育辅导到娱乐推荐,AI正以前所未有的速度渗透到各个角落。

知识蒸馏技术的出现标志着AI进入了一个全新的时代。在这个时代里,我们不再需要依赖昂贵的硬件和复杂的算法,就能享受到AI带来的便利。

7 OpenAI 推出 o3-mini 应战 DeepSeek

OpenAI 首席执行官奥特曼近日公开表示,将重新思考 OpenAI 的开源策略。他提到:“我个人认为我们在历史上可能站在了错误的一边,必须找到不同的开源策略。但并不是 OpenAI 的每个人都同意这种观点,这也不是我们目前的首要任务。”

面对 DeepSeek 的横空出世,OpenAI 相继推出全新推理模型 o3-miniDeep Resarch 应战。

奥特曼在发文中强调,o3-mini 在测试中的结果已经超过了 R1。

简而言之,DeepSeek 最核心的优势在于其效率和优化能力。
抛开数据量和能耗谈性能都是耍流氓?

8 参考文章

  • 揭秘DeepSeek是如何通过“蒸馏”技术打造自己的AI模型?
  • DeepSeek懶人包|MLA架構強在哪?什麼是知識蒸餾?6大QA解密DeepSeek效應
  • 白话科普 | DeepSeek的蒸馏技术到底是什么?90%的人都没搞懂,但西方却抓着不放!
  • DeepSeek 开源图片生成模型 Janus

相关文章:

DeepSeek是如何通过“蒸馏”技术打造自己的AI模型

1 引言: 最近,外媒对中国公司——DeepSeek进行了猛烈抨击,指控其采用了所谓的“蒸馏”(Distillation)技术,涉嫌抄袭甚至作弊。那么,什么是“蒸馏”技术? 在人工智能领域,…...

你如何利用SIMD(如SSE/AVX)优化图像处理的性能?

SIMD优化问题 1. SIMD 在图像处理中的优化方式2. 典型应用场景3. SIMD 的常见优化技巧4. 总结 利用 SIMD(Single Instruction, Multiple Data) 指令集(如 SSE/AVX/AVX2/AVX-512)优化图像处理的性能,可以极大地提升计算…...

支付宝 IoT 设备入门宝典(上)设备管理篇

相信不少朋友最近都被支付宝“碰一下”广告刷屏,“不用打开 APP 支付就碰一下”几个字一出简直自带BGM……其实“碰一下”就是支付宝 IoT 设备的一种,趁着热度还在,我会分为设备管理和设备经营上下两篇,简单介绍一下支付宝 IoT&am…...

Go语言 Web框架Gin

Go语言 Web框架Gin 参考 https://docs.fengfengzhidao.com https://www.liwenzhou.com/posts/Go/gin/#c-0-7-2 返回各种值 返回字符串 package mainimport ("net/http""github.com/gin-gonic/gin")func main() {router : gin.Default()router.GET("…...

蓝桥杯-洛谷刷题-day5(C++)(为未完成)

1.P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 i.题目 ii.代码 #include <iostream> #include <string> using namespace std;int N, Na, Nb; //0-"剪刀", 1-"石头", 2-"布", 3-"蜥", 4-"斯"&#xff1…...

【Unity3D优化】使用ASTC压缩格式优化内存

在Unity3D手游开发中&#xff0c;合理选择纹理压缩格式对于优化内存占用、提高渲染效率至关重要。本文将记录近期在项目内进行的图片压缩格式优化过程&#xff0c;重点介绍从ETC2到ASTC 5x5的优化方案及其带来的收益。 1. 现状分析&#xff1a;从ETC2到ASTC 6x6 block 在项目…...

NO.13十六届蓝桥杯备战|条件操作符|三目操作符|逻辑操作符|!||||(C++)

条件操作符 条件操作符介绍 条件操作符也叫三⽬操作符&#xff0c;需要接受三个操作数的&#xff0c;形式如下&#xff1a; exp1 ? exp2 : exp3条件操作符的计算逻辑是&#xff1a;如果 exp1 为真&#xff0c; exp2 计算&#xff0c; exp2 计算的结果是整个表达式的结果&am…...

【uniapp-小程序】实现方法调用的全局tips弹窗

【uniapp-小程序】实现方法调用的全局tips弹窗 开发背景弹窗组件全局调用封装配置项入参全局注入使用 附带&#xff1a;如何在uniapp-H5项目中实现全局自定义弹窗组件定义定义vue插件引入 笑死&#xff0c;只有在想找工作的时候才会想更新博客。 开发背景 本来是个uniapp开发…...

springboot如何将lib和jar分离

遇到一个问题&#xff0c;就是每次maven package或者maven install后target中的jar很大&#xff0c;少的50几MB&#xff0c;大的100多兆 优化前&#xff1a; 优化后&#xff1a; 优化前 优化后压缩率77.2MB4.65MB93% 具体方案&#xff1a; pom.xml中 <build><…...

深入探索C语言中的字符串处理函数:strstr与strtok

在C语言的字符串处理领域&#xff0c; strstr 和 strtok 是两个非常重要的函数&#xff0c;它们各自承担着独特的功能&#xff0c;为开发者处理字符串提供了强大的支持。 一、strstr函数&#xff1a;字符串查找的利器 strstr 函数用于在一个字符串中查找另一个字符串的首次出现…...

Django学习笔记(第一天:Django基本知识简介与启动)

博主毕业已经工作一年多了&#xff0c;最基本的测试工作已经完全掌握。一方面为了解决当前公司没有自动化测试平台的痛点&#xff0c;另一方面为了向更高级的测试架构师转型&#xff0c;于是重温Django的知识&#xff0c;用于后期搭建测试自动化平台。 为什么不选择Java&#x…...

npm版本号标记

在 npm 中,版本号的标记遵循 语义化版本控制(Semantic Versioning, SemVer) 的规则,版本号通常由 主版本号(major)、次版本号(minor) 和 修订版本号(patch) 组成,格式为: <major>.<minor>.<patch>1. 版本号格式 主版本号(major):当你做了不兼…...

无人机雨季应急救灾技术详解

无人机在雨季应急救灾中发挥着至关重要的作用&#xff0c;其凭借机动灵活、反应迅速、高效安全等特点&#xff0c;为救灾工作提供了强有力的技术支撑。以下是对无人机雨季应急救灾技术的详细解析&#xff1a; 一、无人机在雨季应急救灾中的应用场景 1. 灾情侦查与监测 无人机…...

算法与数据结构(多数元素)

题目 思路 方法一&#xff1a;哈希表 因为要求出现次数最多的元素&#xff0c;所以我们可以使用哈希映射存储每个元素及其出现的次数。每次记录出现的次数若比最大次数大&#xff0c;则替换。 方法二&#xff1a;摩尔算法 摩尔的核心算法就是对抗&#xff0c;因为存在次数多…...

详解如何使用Pytest内置Fixture tmp_path 管理临时文件

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 临时目录在测试中起着至关重要的作用&#xff0c;它为执行和验证代码提供了一个可控…...

量子计算的五大优势

量子计算的优势有哪些&#xff1f; 量子计算是一个快速发展的领域&#xff0c;有望彻底改变我们处理复杂计算问题的方式。那么&#xff0c;量子计算的优势是什么&#xff1f;与经典计算相比&#xff0c;量子计算又有哪些优势呢&#xff1f;当我们探索量子力学的世界以及量子系…...

行内元素和块级元素

行内元素和块级元素 1.行内元素1.1什么是行内元素1.2行内元素的特点1.3常见的行内元素 2.块级元素2.1什么是块级元素2.2块级元素的特点2.3常见的块级元素 3.行内元素和块级元素的区别 1.行内元素 1.1什么是行内元素 行内元素是指在网页中不会独占一行,而是与其他行内元素在同…...

java面试题-集合篇

Collection 1.Collection有哪些类&#xff1f; Java集合框架中的Collection接口是所有集合类的基础接口&#xff0c;定义了一些基本的集合操作&#xff0c;如添加元素、删除元素、判断是否包含某个元素等。常见的集合类包括List、Set和Queue。 List List接口定义了按照索引…...

二十九、vite项目集成webpack+vue2项目

一、开发 基座应用: 1、安装依赖 npm i @micro-zoe/micro-app@0.8.6 --save 2、在入口处引入(main.ts) import microApp from @micro-zoe/micro-appmicroApp.start()...

小程序之间实现互相跳转的逻辑

1:小程序之间可以实现互相跳转吗 可以实现互相跳转! 2:小程序跳转是否有限制 有限制!限制如下 2.1:需要用户触发跳转 从 2.3.0 版本开始,若用户未点击小程序页面任意位置,则开发者将无法调用此接口自动跳转至其他小程序。 2.2:需要用户确认跳转 从 2.3.0 版本开始…...

算法——数学建模的十大常用算法

数学建模的十大常用算法在数学建模竞赛和实际问题解决中起着至关重要的作用。以下是这些算法的具体信息、应用场景以及部分算法的C语言代码示例&#xff08;由于篇幅限制&#xff0c;这里只给出部分算法的简要代码或思路&#xff0c;实际应用中可能需要根据具体问题进行调整和扩…...

cookie、session、jwt、Oauth2.0、sso 分别有什么用

cookie、session、jwt都是 web 应用中的认证方式&#xff0c;最早只有 cookie&#xff0c;后面觉得所有数据存储在客户端不安全&#xff0c;就出现了 cookie-session&#xff0c;再后面有了 jwt。 cookie工作原理 cookie 数据存储在用户的本地。服务器完全根据 cookie 确定访…...

maven使用默认settings.xml配置时,Idea基于pom.xml更新依赖时报错,有些组件下载时连接超时

1、问题背景&#xff1a;maven使用默认settings.xml配置时&#xff0c;Idea基于pom.xml更新依赖时报错&#xff0c;有些组件下载时连接超时&#xff0c; 通过日志发下&#xff0c;去连接maven.org网站下载依赖&#xff0c;有时候肯定会超时。 2、解决办法&#xff1a;使用国外…...

信息收集-Web应用搭建架构指纹识别WAF判断蜜罐排除开发框架组件应用

知识点&#xff1a; 1、信息收集-Web应用-架构分析&指纹识别 2、信息收集-Web应用-架构分析&WAF&蜜罐 3、信息收集-Web应用-架构分析&框架组件识别 指纹识别 EHole_magic https://github.com/lemonlove7/EHole_magic 指纹识别 Wappalyzer https://github.com…...

蓝桥杯之图

图&#xff1a; 对于图来说&#xff0c;重点在于之后的最短路径算法&#xff0c;这边简单做一下了解即可...

ProxySQL构建PolarDB-X标准版高可用路由服务三节点集群

ProxySQL构建PolarDB-X标准版高可用路由服务三节点集群 一、PolarDB-X标准版主备集群搭建 三台机器上传 polardbx 包&#xff0c;包可以从官网https://openpolardb.com/download获取&#xff0c;这里提供离线rpm。 1、上传 polardbx 安装包 到 /opt目录下 rpm -ivh t-pol…...

【leetcode】双指针:移动零 and 复写零

文章目录 1.移动零2.复写零 1.移动零 class Solution { public:void moveZeroes(vector<int>& nums) {for (int cur 0, dest -1; cur < nums.size(); cur)if (nums[cur] ! 0)swap(nums[dest], nums[cur]);} };class Solution { public:void moveZeroes(vector&l…...

正则化(Regularization)和正则表达式(Regular Expression)区别

文章目录 1. **正则化&#xff08;Regularization&#xff09;**2. **正则表达式&#xff08;Regular Expression&#xff09;**关键区别为什么名字相近&#xff1f; 正则化&#xff08;Regularization&#xff09;和正则表达式&#xff08;Regular Expression&#xff09;不是…...

【C++】C++-教师信息管理系统(含源码+数据文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【C】C教师信息管理系统&#xff08;含源码&#x…...

MySql从入门到精通

第一部分 基础篇 1.概述 1.1 启动与停止MySql 启动 net start mysql80 停止 net stop mysql80 注意&#xff1a; mysql开机默认启动 1.2 客户端连接 方法一&#xff1a;使用MySQL提供的命令行客户端方法二&#xff1a;系统自带的命令行工具执行指令 mysql [-h 127.0.0.1] …...

27、深度学习-自学之路-NLP自然语言处理-做一个简单的项目识别一组电影评论,来判断电影评论是积极的,还是消极的。

一、如果我们要做这个项目&#xff0c;第一步我们要做的就是需要有对应的训练数据集。 这里提供两个数据集&#xff0c;一个是原始评论数据集《reviews.txt》&#xff0c;以及对应的评论是消极还是积极的数据集《labels.txt》&#xff0c;下面的程序就是找到这两个数据集&…...

微信小程序 - 组件和样式

组件和样式介绍 在开 Web 网站的时候&#xff1a; 页面的结构由 HTML 进行编写&#xff0c;例如&#xff1a;经常会用到 div、p、 span、img、a 等标签 页面的样式由 CSS 进行编写&#xff0c;例如&#xff1a;经常会采用 .class 、#id 、element 等选择器 但在小程序中不能…...

滤波总结 波形处理原理 如何对一个规律的波形进行滤波 显现出真正的波形 如何设计滤波

需要用到的软件:waveserialport vofa++ 1.波形想用MCU进行采集首先你要考虑到你的采集频率因为如果你的对象波形即你要采集的波形,他过于快速的话有一些MCU它是不能的比如说有一些它的主频才36兆72兆呢你如果遇到一个特别快的波形毫秒级别那他就检测不了 2.…...

【代码随想录】刷题记录(115)-岛屿数量(广搜)

题目描述&#xff1a; 题目描述 给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的矩阵&#xff0c;你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成&#xff0c;并且四周都是水域。你可以假设矩阵外均被水包围。 输入描…...

Git指南-从入门到精通

代码提交和同步命令 流程图如下&#xff1a; 第零步: 工作区与仓库保持一致第一步: 文件增删改&#xff0c;变为已修改状态第二步: git add &#xff0c;变为已暂存状态 bash $ git status $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ g…...

uvm错误记录4

如下所示&#xff0c;奇怪的是penable莫名其妙的出X。可问题&#xff0c;我发送激励了。 仔细定位发现&#xff0c;39行用的是vif中的penable, 问题是都是赋值&#xff0c;却出现同时赋值多次&#xff0c;这是因为nonblocking和blocking同时触发导致的&#xff0c;因此&#xf…...

用大模型学大模型03-数学基础 概率论

https://metaso.cn/s/Jp0OU9w 提示词:我正在学习深度学习相关的数学知识&#xff0c;学到了概率论与统计学部分&#xff0c;给我一个入门级的完整教程和实例。 好的&#xff0c;我现在需要回答用户关于深度学习所需的概率论与统计学入门教程和实例的问题。用户希望得到一个完整…...

数字电路-基础逻辑门实验

基础逻辑门是数字电路设计的核心元件&#xff0c;它们执行的是基本的逻辑运算。通过这些基本运算&#xff0c;可以构建出更为复杂的逻辑功能。常见的基础逻辑门包括与门&#xff08;AND&#xff09;、或门&#xff08;OR&#xff09;、非门&#xff08;NOT&#xff09;、异或门…...

基于springboot轨道交通安全评估系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;轨道交通安全评估管理当然不能排除在外。轨道交通安全评估系统是在实际应用和软件工程的开发原理之上&#xff0c;运用Java语言以及Spring…...

多能互补综合能源系统,改变能源结构---安科瑞 吴雅芳

多能互补综合能源系统是一种通过整合多种能源的形势&#xff08;如电力、天然气、热能、冷能等&#xff09;和多种能源技术&#xff08;如可再生能源、储能技术、智能电网等&#xff09;&#xff0c;实现能源利用和配置调整的系统。其目标是通过多能互补和协同优化&#xff0c;…...

Python 量化

Python 量化是指利用 Python 编程语言以及相关的库和工具来进行金融市场数据分析、策略开发和交易执行的过程。 Python 由于其简洁、易学、强大的生态系统和丰富的金融库而成为量化交易的首选编程语言之一。 量化交易在金融领域得到广泛应用&#xff0c;它允许交易者通过系统…...

图数据库Neo4j面试内容整理-属性(Property)

在图数据库中,属性(Property)是用来描述节点(Node)和关系(Relationship)详细信息的键值对。属性可以附加到节点或关系上,用来存储具体的数据,如名字、年龄、时间戳、标签等。属性使得节点和关系不仅能够表示实体或交互,还能包含丰富的、与实体或交互相关的信息。 1. …...

uniapp - iconfont下载本地并且运用至项目上

1、项目中创建一个文件夹放置iconfont相关文件&#xff0c;例如src/assets/iconfont&#xff08;名称自己定义&#xff09; 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址&#xff0c;修…...

leetcode 1594. 矩阵的最大非负积

题目如下 数据范围 示例 本题难就难在矩阵存在负数&#xff0c;我们可以先思考如果矩阵每个数都大于等于0那么很简单我们只需要维护左边和上面的最大值即可。那么如果遇到负数显然要得到最大值就要和左边和右边的最小值相乘。所以这里我们维护两个二维数组用于存从(0,0)开…...

Vue3 从入门到精通:全面掌握前端框架的进阶之路

一、Vue3 简介 Vue.js 是一款流行的 JavaScript 前端框架&#xff0c;用于构建用户界面。Vue3 作为 Vue.js 的重大升级版本&#xff0c;带来了诸多性能提升和新特性。它采用了 Proxy 实现数据响应式系统&#xff0c;优化了虚拟 DOM 算法&#xff0c;使得应用在运行时更加高效。…...

lightning.pytorch.callbacks内置的Callbacks介绍

PyTorch Lightning 提供了一些 内置回调 (Callback),可以在训练过程中自动执行 检查点保存、学习率调度、早停 等功能。通过使用 Trainer(callbacks=[...]) 来传入这些回调。 PyTorch Lightning 的 Callback 是一种强大的工具,允许用户在训练过程中插入自定义逻辑,而无需修…...

网络运维与网络安全技术分享

网络运维与网络安全介绍之二 在上阶段给大家基本介绍了网络运维与网络安全专业第一阶段的内容之后&#xff0c;接下来&#xff0c;我们就开始进入正式内容分享了&#xff01; 第一阶段&#xff1a;运维基础与网络系统管理之Windows系统的安装部署以及常见Windows应用技巧。 在这…...

基于巨控GRM242Q-4D4I4QHE模块的农村供水自动化监控技术方案

一、系统架构设计 拓扑结构&#xff1a; 传感器层&#xff08;液位/压力/流量&#xff09;→ 巨控GRM242Q模块 → 4G网络 → 云平台 → 手机/PC监控端硬件配置&#xff1a; 核心设备&#xff1a;GRM242Q-4D4I4QHE模块&#xff08;4DI/4DO/4AI/1485&#xff09;传感器&#xff1…...

Java 单元测试框架之 Mockito 详细介绍

本文是博主在学习如何高效创建单元测试时的知识记录&#xff0c;文中项目代码是基于 SpringBoot 项目&#xff0c;测试组件使用的 JUnit 5&#xff0c;单元测试组件使用的 Mockito 。虽然现在都是在使用 AI 助手帮助生成单元测试和代码辅助修改&#xff0c;但我们不能被工具挡住…...

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 , 基于 openEuler 构建 LVS-DR 群集。

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式&#xff0c;比较其各自的优势 NAT模式的优势&#xff1a; 可以隐藏后端服务器的IP地址&#xff0c;提高了系统的安全性。 支持多个后端服务器共享同一个IP地址&#xff0c;提高了系统的可扩展性。 可以在负载均衡器和后端服务…...