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

DeepSeek大模型 —— 全维度技术解析

DeepSeek大模型 —— 全维度技术解析


前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!点我试试!!

在这里插入图片描述

在这里插入图片描述

文章目录

  • DeepSeek大模型 —— 全维度技术解析
    • 一、模型架构全景解析
      • 1.1 分层架构设计
      • 1.2 改进型Transformer层
    • 二、核心技术创新详解
      • 2.1 动态专家选择算法
      • 2.2 高效训练策略
        • 2.2.1 混合精度训练
        • 2.2.2 分布式训练
      • 2.3 记忆压缩技术
    • 三、全流程训练实践
      • 3.1 数据预处理流程
      • 3.2 完整训练循环
    • 四、推理优化技术
      • 4.1 动态批处理实现
      • 4.2 量化部署方案
    • 五、性能评估与分析
      • 5.1 基准测试对比
    • 六、未来演进方向

一、模型架构全景解析

1.1 分层架构设计

DeepSeek大模型采用分层的模块化设计,整体架构分为输入层、动态嵌入层、MoE编码器层、自适应注意力层、专家选择网络、残差压缩模块和任务特定输出头。这种分层设计不仅提升了模型的表达能力,还增强了模块的可复用性和可扩展性。

输入层
动态嵌入层
MoE编码器层
自适应注意力层
专家选择网络
残差压缩模块
任务特定输出头
  • 输入层:支持多模态输入(文本、图像、代码等),通过统一的输入接口进行数据预处理。
  • 动态嵌入层:根据输入数据的特性动态调整嵌入表示,提升模型对多样化数据的适应能力。
  • MoE编码器层:采用混合专家系统(Mixture of Experts, MoE),通过动态路由机制选择最合适的专家网络处理输入。
  • 自适应注意力层:引入稀疏注意力和局部注意力机制,降低计算复杂度。
  • 专家选择网络:基于输入特征动态分配计算资源,提升模型效率。
  • 残差压缩模块:通过压缩和恢复机制减少内存占用。
  • 任务特定输出头:根据不同任务(如文本生成、分类、推理)动态调整输出结构。

1.2 改进型Transformer层

DeepSeek在传统Transformer的基础上进行了多项创新,主要包括:

  • Flash Attention:利用硬件加速实现高效注意力计算。
  • 混合专家系统(MoE):将模型划分为多个专家网络,动态选择激活的专家。
  • 残差连接优化:引入RMSNorm替代LayerNorm,提升训练稳定性。

以下是改进型Transformer层的代码实现:

class DeepSeekTransformerBlock(nn.Module):def __init__(self, config):super().__init__()self.attention = FlashMultiHeadAttention(embed_dim=config.hidden_size,num_heads=config.num_attention_heads,dropout=config.attention_dropout)self.moe = MoELayer(num_experts=config.moe_num_experts,expert_capacity=config.expert_capacity,hidden_size=config.hidden_size,top_k=config.moe_top_k)self.norm1 = RMSNorm(config.hidden_size)self.norm2 = RMSNorm(config.hidden_size)self.dropout = nn.Dropout(config.hidden_dropout)def forward(self, x):# 混合注意力路径attn_out = self.attention(self.norm1(x))x = x + self.dropout(attn_out)# 混合专家路径moe_out = self.moe(self.norm2(x))x = x + self.dropout(moe_out)return x

二、核心技术创新详解

2.1 动态专家选择算法

DeepSeek的MoE层通过动态路由算法选择最合适的专家网络。其核心思想是根据输入特征动态分配计算资源,避免对所有专家进行计算,从而提升效率。

Top-K
未选中
输入特征
门控网络
计算专家权重
权重排序
激活专家网络
跳过计算
输出结果

改进型门控网络

class DynamicRouter(nn.Module):def __init__(self, input_dim, num_experts, top_k=2):super().__init__()self.top_k = top_kself.gate = nn.Sequential(nn.Linear(input_dim, 256),nn.GELU(),nn.Linear(256, num_experts),nn.Softmax(dim=-1))self.noise = nn.Parameter(torch.randn(1, num_experts)*0.1)def forward(self, x):logits = self.gate(x) + self.noiseprobs = F.softmax(logits, dim=-1)topk_probs, topk_indices = torch.topk(probs, self.top_k)return topk_probs, topk_indices

动态路由的优势

  • 计算效率:仅激活部分专家网络,减少计算量。
  • 灵活性:根据输入特性动态调整计算资源分配。
  • 可扩展性:支持专家网络的横向扩展。

2.2 高效训练策略

2.2.1 混合精度训练

DeepSeek采用混合精度训练(Mixed Precision Training),结合FP16和FP32的优势,在保证数值稳定性的同时提升训练速度。

# deepseek_train_config.yaml
training:precision: bfloat16optimizer:type: Lionparams:lr: 3e-5weight_decay: 0.01beta1: 0.9beta2: 0.99gradient_clipping: 1.0batch_scheduler:type: linear_warmup_cosine_decaywarmup_steps: 2000total_steps: 100000checkpoint:interval: 1000keep_last: 3
2.2.2 分布式训练

DeepSeek支持3D并行训练(数据并行、张量并行、流水线并行),充分利用大规模计算集群的资源。

数据并行
分片数据
独立计算梯度
梯度聚合
参数更新
张量并行
分片模型参数
局部计算
跨设备通信
流水线并行
分阶段计算
阶段间数据传输
def setup_3d_parallelism():# 张量并行配置tp_config = TensorParallelConfig(tensor_parallel_degree=8,pipeline_parallel_degree=4,data_parallel_degree=16)# 流水线阶段划分pipeline_stages = split_layers_into_stages(model,num_stages=tp_config.pipeline_parallel_degree)# 优化器分片enable_optimizer_sharding(optimizer,data_parallel_group=data_parallel_group)

2.3 记忆压缩技术

DeepSeek通过记忆压缩技术减少内存占用,同时保持模型性能。

class MemoryCompression(nn.Module):def __init__(self, in_dim, ratio=0.4):super().__init__()self.encoder = nn.Linear(in_dim, int(in_dim*ratio))self.decoder = nn.Linear(int(in_dim*ratio), in_dim)self.ln = nn.LayerNorm(in_dim)def forward(self, hidden_states):compressed = F.gelu(self.encoder(hidden_states))restored = self.decoder(compressed)return self.ln(hidden_states + restored)

三、全流程训练实践

3.1 数据预处理流程

DeepSeek的数据预处理流程包括文本清洗、分词、动态填充和多模态数据对齐。

class DeepSeekDataProcessor:def __init__(self, tokenizer, max_length=4096):self.tokenizer = tokenizerself.max_length = max_lengthdef process(self, examples):# 多模态数据拼接texts = [f"{title} [SEP] {content}" for title, content in zip(examples["title"], examples["content"])]# 动态填充策略batch = self.tokenizer(texts,max_length=self.max_length,padding="max_length",truncation=True,return_tensors="pt")# 注意力掩码增强batch["attention_mask"] = create_sparse_mask(batch["input_ids"],block_size=64,num_random_blocks=3)return batch

3.2 完整训练循环

def train_epoch(model, dataloader, optimizer, scheduler, device):model.train()total_loss = 0for batch_idx, batch in enumerate(dataloader):batch = {k:v.to(device) for k,v in batch.items()}# 梯度累积with torch.cuda.amp.autocast(dtype=torch.bfloat16):outputs = model(**batch)loss = outputs.loss / ACCUMULATION_STEPS# 反向传播scaler.scale(loss).backward()if (batch_idx + 1) % ACCUMULATION_STEPS == 0:# 梯度裁剪torch.nn.utils.clip_grad_norm_(model.parameters(), MAX_GRAD_NORM)# 参数更新scaler.step(optimizer)scaler.update()optimizer.zero_grad()scheduler.step()total_loss += loss.item()return total_loss / len(dataloader)

四、推理优化技术

4.1 动态批处理实现

class DynamicBatcher:def __init__(self, max_batch_size=32, max_seq_len=4096):self.buffer = []self.max_batch_size = max_batch_sizeself.max_seq_len = max_seq_lendef add_request(self, request):self.buffer.append(request)def generate_batch(self):sorted_requests = sorted(self.buffer,key=lambda x: len(x.input_ids),reverse=True)batches = []current_batch = []current_max_len = 0for req in sorted_requests:seq_len = len(req.input_ids)if len(current_batch) >= self.max_batch_size or \current_max_len + seq_len > self.max_seq_len:batches.append(current_batch)current_batch = [req]current_max_len = seq_lenelse:current_batch.append(req)current_max_len = max(current_max_len, seq_len)return batches

4.2 量化部署方案

# 后训练量化
from neural_compressor import quantization
quant_config = {"approach": "post_training_static_quant","op_type_dict": {"Linear": {"weight": {"dtype": ["int8"],"scheme": ["sym"],"granularity": ["per_channel"]},"activation": {"dtype": ["uint8"],"scheme": ["asym"],"granularity": ["per_tensor"]}}}
}quantized_model = quantization.fit(model,quant_config,calib_dataloader=calib_loader
)# 保存量化模型
quantized_model.save("deepseek-7b-int8")

五、性能评估与分析

5.1 基准测试对比

指标DeepSeek-7BLLaMA2-7BGPT-3.5优化幅度
MMLU68.963.570.1+8.5% vs LLaMA2
GSM8K78.356.279.5+39.3% vs LLaMA2
HumanEval45.731.248.1+46.5% vs LLaMA2
推理延迟38ms/tok45ms/tok25ms/tok-15.5% vs LLaMA2

六、未来演进方向

  1. 多模态扩展架构:支持文本、图像、音频等多模态输入。
  2. 持续学习机制:通过弹性权重固化(Elastic Weight Consolidation, EWC)实现持续学习。
  3. 安全对齐技术:增强模型的安全性和可控性。

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

相关文章:

DeepSeek大模型 —— 全维度技术解析

DeepSeek大模型 —— 全维度技术解析 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!点我试试!! 文章目录 DeepSeek大模型 —— 全维度技术解析一、模型架构全景解析1.1…...

嵌入式开发:傅里叶变换(5):基于STM32,实现CMSIS中的DSP库

目录 步骤 1:准备工作 步骤 2:创建 Keil 项目,并配置工程 步骤 3:在MDK工程上添加 CMSIS-DSP 库 步骤 5:编写代码 步骤 6:配置时钟和优化 步骤 7:调试与验证 步骤 8:优化和调…...

Ubuntu 24.04 配置ODBC连接ORACLE 11G数据库

1. 安装必要工具和驱动 1.1 安装unixODBC和依赖库 # apt update # apt install unixodbc unixodbc-dev libaio1 执行失败,报错 libaio1包找不到,先跳过,安装其他两个。 # apt install unixodbc unixodbc-dev 安装成功 1.2 下载Oracle…...

upload-labs靶场 1-21通关

目录 1.Pass-01 前端绕过 分析 解题 2.Pass-02 服务器端检测--修改IMME 分析 解题 3.Pass-03 黑名单绕过 分析 解题 4.Pass-04 .htaccess绕过 分析 解题 5.Pass-05 . .绕过和.user.ini绕过 分析 解题 6.Pass-06 大小写绕过 分析 解题 7.Pass-07 空格绕过 分…...

Docker新手入门(持续更新中)

一、定义 快速构建、运行、管理应用的工具。 Docker可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用。 所谓镜像,就是将应用所需的函数库、依赖、配置等应用一起打包得到的。 所谓容器,为每个镜像的应用进程创建…...

c语言笔记 指针篇(上)

1.指针 在计算的存储器中有很多的存储单元,我们的操作系统把这些存储单元以字节为单位进行编号,也就是每个存储单元(字节),都有编码。这些编码在我们内存中就称为地址。一个字节有八位,位是存储信息的最小单…...

要查看 SQLite 数据库中的所有表,可以通过查询 SQLite 的系统表 sqlite_master

要查看 SQLite 数据库中的所有表,可以查询 SQLite 的系统表 sqlite_master。 每个 SQLite 数据库都包含一个名为 sqlite_master 的系统表。该表定义了数据库的模式,存储了数据库中所有表、索引、视图和触发器等对象的信息。 通过查询 sqlite_master&am…...

C#释放内存空间的方法

目录 前言释放 C# 对象内存的六种方法1、手动释放内存空间2、使用 Using 语句3、使用 垃圾回收器4、GC.Collect() 方法5、GC.WaitForPendingFinalizers() 方法6、WeakReference 类 注意 前言 当不再需要对象时释放内存空间对于防止内存泄漏和提高应用程序性能至关重要。C# 提供…...

mapbox基础,使用点类型geojson加载symbol符号图层,用于标注文字

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️symbol符号图层样式二、🍀使用点类型…...

Java数组详解/从JVM理解数组/数组反转/随机排名/数组在计算机如何存储

本文详细讲解了数组的定义、数组的访问方法、数组的遍历、静态数组和动态数组、以及数组中的自动类型转换、引用类型指向数组的地址、以及从JVM理解数组、空指针异常、数组反转、随机排名的案例。 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索…...

网络安全wireshark题目

一、填空题: 网络安全的目标是在计算机网络的信息传输、存储与处理的整个过程中,提高 物理逻辑上 的防护、监控、反应恢复和 对抗 的能力。SSL协议是在网络传输过程中,提供通信双方网络信息 保密性 和 可靠性 。TCP/IP网络安全管理…...

TomcatServlet

https://www.bilibili.com/video/BV1UN411x7xe tomcat tomcat 架构图,与 jre,应用程序之前的关系 安装使用 tomcat 10 开始,api 从 javax.* 转为使用 jakarta.*,需要至少使用 jdk 11 cmd 中默认 gbk 编码,解决控制…...

Seurat - Guided Clustering Tutorial官方文档学习及复现

由于本人没有使用过Seurat4.0,而是直接使用的最新版。所以本文都是基于Seurat5.2.0(截止2025/3/6)来进行撰写。 参考的官方教程来进行学习(上图中的 Guided tutorial-2.700 PBMCs),肯定没有官方文档那么全面…...

Python数据分析面试题及参考答案

目录 处理 DataFrame 中多列缺失值的 5 种方法 批量替换指定列中的异常值为中位数 使用正则表达式清洗电话号码格式 合并两个存在部分重叠列的 DataFrame 将非结构化 JSON 日志转换为结构化表格 处理日期列中的多种非标准格式(如 "2023 年 12 月 / 05 日") 识…...

极狐GitLab 正式发布安全版本17.9.1、17.8.4、17.7.6

本分分享极狐GitLab 补丁版本 17.9.1、17.8.4、17.7.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…...

【JavaSE-7】方法的使用

1、方法的概念和使用 1.1、什么是方法 方法(method)是程序中最小的执行单元,类似于 C语言中的函数,方法存在的意义: 是能够模块化的组织代码(当代码规模比较复杂的时候).做到代码被重复使用, 一份代码可以在多个位置…...

阿里推出全新推理模型(因果语言模型),仅1/20参数媲美DeepSeek R1

阿里Qwen 团队正式发布了他们最新的研究成果——QwQ-32B大语言模型!这款模型不仅名字萌萌哒(QwQ),实力更是不容小觑!😎 QwQ-32B 已在 Hugging Face 和 ModelScope 开源,采用了 Apache 2.0 开源协议。大家可通过 Qwen C…...

C语言笔记(通讯录)

目录 1.通讯录的架构 2.通讯录的功能 3.实现静态通讯录的功能步骤 3.1.创建通讯录数组 3.2.显示功能菜单 3.3.初始化通讯录 3.4.添加联系人的信息 3.5.显示联系人的信息 3.6.查找某个人的信息 3.7.删除某一个联系人信息 3.8.修改某一联系人的信息 3.9.按名字对联系…...

【Manus资料合集】激活码内测渠道+《Manus Al:Agent应用的ChatGPT时刻》(附资源)

DeepSeek 之后,又一个AI沸腾,冲击的不仅仅是通用大模型。 ——全球首款通用AI Agent的破圈启示录 2025年3月6日凌晨,全球AI圈被一款名为Manus的产品彻底点燃。由Monica团队(隶属中国夜莺科技)推出的“全球首款通用AI…...

Python 面向对象高级编程-定制类

目录 __str__ __iter__ __getitem__ __getattr__ __call__ 小结 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。 __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()…...

安装remixd,在VScode创建hardhat

在终端,以管理员身份,cmd 需要科学上网 npm install -g remix-project/remixd 在vscode插件中,安装solidity插件,是暗灰色那款 1.将nodeJs的版本升级至18以上 2.在vscode打开一个新的文件,在终端输入 npx hardhat 3.…...

开发环境搭建-02.后端环境搭建-熟悉项目结构

一.后端环境搭建...

Linux(Centos 7.6)命令详解:vi

1.命令作用 vi/vim 是Linux 系统内置不可或缺的文本编辑命令,vim 是vi 的加强版本,兼容vi 的所有指令,不仅能编辑文本,而且还具有shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性。 2.命令语法 usage: …...

Ubuntu 20.04下配置VSCode以支持Eigen库开发

这里写目录标题 1. 安装Eigen库2. 配置VSCode的C开发环境3. 配置c_cpp_properties.json4. 编写代码并测试5. 配置tasks.json(可选)6. 运行程序总结 在VSCode中配置Eigen库(用于线性代数、矩阵和向量运算的C库)的步骤如下&#xff…...

正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-2.1 uboot简介

前言: 本文是根据哔哩哔哩网站上“Arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用: …...

Android14 OTA差分包升级报kPayloadTimestampError (51)

由于VF 架构, 所以镜像的打包时间可能存在偏差, 如 boot.img 和 客制化的一些镜像打包 可能会在 vendor 侧进行打包。 而 与system 侧进行merge 时,时间戳比较乱,为了解决这个问题,让时间戳进行统一。 使用adb方式验证…...

PPT 技能:巧用 “节” 功能,让演示文稿更有序

在制作PPT时,你是否遇到过这样的情况:幻灯片越来越多,内容越来越杂,找某一页内容时翻得眼花缭乱?尤其是在处理大型PPT文件时,如果没有合理的结构,编辑和调整都会变得非常麻烦。这时候&#xff0…...

Mysql创建库、表练习

创建库 #创建 create database gc_novels default charsetutf8mb4;#default charsetutf8mb4 指定编码为utf-8#使用 use gc_novels#查看当前所在位置 select database(); 结果: 创建表 #创建 create table heros(-> id int,-> name varchar(50),-&…...

【原创】Ollama Test API For Linux/MacOS/Unix

安装Json解析工具 Linux/Unix sudo apt-get install jq -yMacOS brew install jq -y设置环境变量 export IP"192.168.250.229" export PORT"8080" export MODEL"deepseek-r1:7b"检查Ollama版本 curl http://"$IP":"$PORT&qu…...

盛铂科技 SLMF315频率综合器200MHz至15GHz 国产频综模块

在当今科技飞速发展的时代,射频技术在众多领域发挥着关键作用,从通信、雷达系统到科研实验,对频率综合器的性能要求日益严苛。以下是关于盛铂科技的 SLMF315 超低相位噪声频率综合器的介绍: SLMF315超低相位噪声0.2至15GHz频率综合…...

AI-前端开发webcrumbs.ai/frontend-ai,Fitten Code提高开发效率

1.webcrumbs.ai/frontend-ai Frontend AI by Webcrumbshttps://app.webcrumbs.ai/frontend-ai 可选择某一模版进行生成对应版本代码,减少开发量。 2.Fitten Code Vue AI 编程助手 Vue AI 编程助手 | 菜鸟教程https://www.runoob.com/vue2/fitten-code-vue2.htm…...

DeepSeek开源Day4:DualPipeEPLB技术详解

2 月 24 日,DeepSeek 启动 “开源周”,第四个开源的代码库为 DualPipe 与 EPLB(一下发布了两个)。DualPipe 与 EPLB 依然使用了大量与 Hopper 架构绑定的技术。 DualPipe 是由 DeepSeek-AI 团队开发的一种双向流水线并行通信算法&…...

代码随想录算法训练营第22天 | 组合 组合总和 电话号码的字母组合

77. 组合 77. 组合 - 力扣&#xff08;LeetCode&#xff09; class Solution {List<Integer> path new ArrayList<>();List<List<Integer>> result new ArrayList<>();public void backTracking(int n,int k,int startIndex){if(path.size() …...

Oracle19c进入EM Express(Oracle企业管理器)详细步骤

以下是使用Oracle 19c进入Oracle Enterprise Manager Database Express&#xff08;EM Express&#xff09;的详细步骤&#xff1a; ### **步骤 1&#xff1a;确认EM Express配置状态** 1. **登录数据库服务器** 使用Oracle用户或管理员权限账户登录操作系统。 2. **查看EM…...

Oracle 数据库基础入门(六):视图与索引的深入解析

在 Oracle 数据库的知识体系中&#xff0c;视图与索引是提升数据库操作效率和优化数据管理的重要工具。对于 Java 全栈开发者而言&#xff0c;熟练掌握视图与索引的运用&#xff0c;不仅能够增强数据库查询的性能&#xff0c;还能为构建高效稳定的后端应用提供有力支持。接下来…...

机器学习-随机森林解析

目录 一、.随机森林的思想 二、随机森林构建步骤 1.自助采样 2.特征随机选择 3构建决策树 4.集成预测 三. 随机森林的关键优势 ​**(1) 减少过拟合** ​**(2) 高效并行化** ​**(3) 特征重要性评估** ​**(4) 耐抗噪声** 四. 随机森林的优缺点 ​优点 ​缺点 五.…...

Qt添加MySql数据库驱动

文章目录 一. 安装MySql二.编译mysql动态链接库 Qt版本&#xff1a;5.14.2 MySql版本&#xff1a;8.0.41 一. 安装MySql 参考这里进行安装&#xff1a;https://blog.csdn.net/qq_30150579/article/details/146042922 将mysql安装目录里的bin&#xff0c;include和lib拷贝出来…...

MR的环形缓冲区(底层)

MapReduce的大致流程&#xff1a; 1、HDFS读取数据&#xff1b; 2、按照规则进行分片&#xff0c;形成若干个spilt&#xff1b; 3、进行Map 4、打上分区标签&#xff08;patition&#xff09; 5、数据入环形缓冲区&#xff08;KVbuffer&#xff09; 6、原地排序&#xff…...

RMAN备份bug-审计日志暴涨(select action from gv$session)

问题概述 /oracle 文件系统使用率过大&#xff0c;经过检查是审计日志过大,/oracle 目录 197G 审计日志占用70G&#xff0c;每6个小时产生大量审计日志&#xff0c;日志内容全是select action from gv$session &#xff0c;猜测可能跟备份有关&#xff0c; $>df -h /oracle…...

30秒从零搭建机器人管理系统(Trae)

1. 安装 [Trae官网】(https://www.trae.com.cn/) 2. 提示词 创建一个BS架构的机器人远程操控系统&#xff0c;具备机器人状态及位置实时更新&#xff0c;可以实现机器人远程遥控&#xff0c;可以对机器人工作日志进行统计分析&#xff0c;以及其它管理系统的常用功能3. 模型…...

OpenFeign 学习笔记

OpenFeign 学习笔记 一、基础入门 1.1 简介 OpenFeign 是基于声明式的 REST 客户端&#xff0c;用于简化服务间远程调用。&#xff08;编程式 REST 客户端&#xff08;RestTemplate&#xff09;&#xff09; 通过接口注解方式定义 HTTP 请求&#xff0c;自动实现服务调用。 …...

单例模式(线程案例)

单例模式可以分为两种&#xff1a;1.饿汉模式 2.懒汉模式 一.饿汉模式 //饿汉模式&#x1f447; class MySingleTon{//因为这是一个静态成员变量&#xff0c;在类加载的时候&#xff0c;就创建了private static MySingleTon mySingleTon new MySingleTon();//创建一个静…...

HttpServletRequest 和 HttpServletResponse 不同JDK版本的引入

java中&#xff0c;可能会用到JWT令牌校验&#xff0c; 这时&#xff0c;大概率会用到 HttpServletRequest&#xff0c;和 HttpServletResponse。 若为 JDK8&#xff0c;SpringBoot 2.7.3 的版本则引入&#xff1a; import javax.servlet.http.HttpServletRequest; import ja…...

数据安全VS创作自由:ChatGPT与国产AI工具隐私管理对比——论文党程序员必看的避坑指南

文章目录 数据安全VS创作自由&#xff1a;ChatGPT与国产AI工具隐私管理对比——论文党程序员必看的避坑指南ChatGPTKimi腾讯元宝DeepSeek 数据安全VS创作自由&#xff1a;ChatGPT与国产AI工具隐私管理对比——论文党程序员必看的避坑指南 产品隐私设置操作路径隐私协议ChatGPT…...

【JavaEE】SpringMVC简单练习

目录 一、计算器1.1 接口定义1.2 前端代码1.3 后端代码1.4 运行结果 二、⽤⼾登录2.1 需求2.2 接口定义2.3 前端页面2.4 后端代码2.5 结果 三、留⾔板3.1 需求:3.2 接口3.3 前端代码3.4 后端代码3.5 运行结果 四、图书管理系统4.1 需求4.2 接口定义4.3 后端代码 一、计算器 1.…...

文件上传漏洞:upload-labs靶场11-20

目录 pass-11 pass-12 pass-13 pass-14 pass-15 pass-16 pass-17 pass-18 pass-19 pass-20 pass-11 分析源代码 &#xff0c;发现上传文件的存放路径可控 if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_ext substr($_FILES[upload_file][name],st…...

苹果Siri升级遇阻,国行iPhone或将引入阿里、百度AI自救

AI整合进展缓慢 苹果正加速将生成式AI技术整合至Siri&#xff0c;但内部消息称其底层技术研发落后于竞争对手&#xff0c;进展未达预期。 国行iPhone将引入双AI模型 苹果计划在2025年中期为国行iPhone引入AI功能&#xff0c;目前已敲定与 阿里巴巴、百度 合作&#xff0c;用户…...

立即释放 Mac 空间!Duplicate File Finder 8 重复文件高速清理工具

Duplicate File Finder 专业的 Mac 重复文件清理工具。查找并删除重复的文件、文件夹&#xff0c;甚至相似的照片。 不要让无用的文件占用磁盘上的宝贵空间。 整理你的 Mac。用最好的重复文件查找器来管理你的文件集合。 扫描任何磁盘或文件夹 主文件夹、照片/音乐库、外部磁…...

ES时序数据库的性能优化

本文主要是讲解了Elasticsearch数据库的优化&#xff0c;大家可以看一下。因为当时实操中涉及了6版本和7版本的一起优化&#xff0c;所以内容上大家自行区分一下。 一、基础设置 1. jvm.options参数详解 不同版本java配置会不一样 -Xms12g -Xmx12g 说明&#xff1a; 将 Xms…...

第3章:启动界面与主界面设计

第3章:启动界面与主界面设计 学习目标 掌握SwiftUI中的启动界面(Splash Screen)设计与实现学习主界面的布局与导航结构设计实现灵感笔记的列表与网格视图掌握SwiftUI中的动画与过渡效果学习如何使用环境对象共享数据理论知识讲解 启动界面设计原则 启动界面(Splash Scre…...