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

【LLM】13:大模型算法面试题库

一、Transformer篇

1. Transformer的结构是什么

Transformer 由 编码器(Encoder)解码器(Decoder) 两部分组成,两部分都包含目标嵌入层、位置编码、多头注意力层、前馈网络,且有残差连接和层归一化,注意:解码器使用的是掩码多头。

2. Transformer的核心优势是什么

  1. 并行能力强:不同于RNN,transformer的自注意力机制消除了序列数据的时间依赖,允许模型并行训练。
  2. 超长序列建模能力:自注意力机制可以直接捕捉序列中任意位置的依赖关系,而不受距离的限制。
  3. 灵活性和扩展性:transformer在CV、NLP都有很好的表现,自编码、自回归、T5架构涌现很多高级模型。

3. 什么是Transformer绝对位置编码?

  1. 为什么Transformer需要位置编码:Transformer架构完全基于自注意力机制,并不具备像RNN和CNN那样有保存顺序信息。因此,为了让模型能够知道每个输入元素在序列中的位置,必须显式地为每个输入添加额外的位置信息。
  2. 什么是绝对位置编码:是最常见的做法,通过为每个位置(每个token)分配一个独特的向量表示该位置的信息,这些位置编码会被加入到输入的词向量中。这样,模型可以根据每个位置的编码来推断元素的相对或绝对位置。
  3. 绝对位置编码优势:
    ①:固定且确定:最初的 Transformer 使用的是 正弦和余弦函数 来计算每个位置的编码,能确保位置编码不会因训练而变化。
    ②:适用长序列:不同频率的正弦和余弦函数,能够捕捉到非常细致的位置信息。
  4. 绝对位置编码的局限性:
    ①无法直接表达相对位置关系:比如位置5,6,与位置100,101的位置编码是相似的,但它们之间的相对距离对模型是不可见的。
    ②:难以泛化到极长序列:对于超出训练序列长度范围的序列,它们的信息就会丢失。

4.位置编码有哪些?它们各有什么不同

  1. 绝对位置编码:使用 正弦和余弦函数 来为每个位置生成唯一的编码,最早在原始transformer论文中提出。
  2. 相对位置编码:试图解决绝对位置编码的局限性,尤其在长序列处理和相对位置关系非常重要的任务中。它是依赖元素间的相对位置,实现方式一般是在计算注意力得分时,将位置差值作为额外偏置项加入。优点是:更加适用于长序列,缺点是:增加了模型的复杂性。
  3. 旋转位置编码RoPE:是一种创新的相对位置编码。通过旋转嵌入空间的向量,将相对位置关系融入自注意力计算过程中。优点:能显式的捕捉相对位置关系,缺点是:相对复杂,需要进行额外的旋转操作。
  4. 可学习位置编码:位置编码不再是固定函数生成,而是学习得到,在训练过程中优化位置编码的值。优点是:灵活度高,缺点是:训练不稳定,缺乏可解释性。

5.LLaMa为什么用旋转位置编码:

  1. 长序列的高效处理:相比传统的绝对位置编码,旋转位置编码更加灵活、有效的处理长序列。
  2. 相对位置的表达能力:能更好的捕捉元素间的相对位置关系,从而更好的学习长程依赖。
  3. 计算效率和简洁性:相比正弦余弦编码更加高效,计算成本更低。
  4. 迁移学习的优势:具有更强的迁移能力,在不同长度的序列上均能稳定工作。

6.为什么transformer块使用LayerNorm而不是BatchNorm?

BatchNormLayerNorm
面向的数据整个批次样本单一的样本
归一化维度整个批次样本中对每一层、每个特征(通道)进行归一化对每个样本的所有特征(通道)进行归一化
应用方式计算整个批次数据的均值和方差只使用当前样本计算均值和方差
  1. 变长序列问题:对于长度不一致的输入,BatchNorm很难在一个批次中计算一致的信息,而LayerNorm只依赖单个样本,可独立计算均值和方差。
  2. 并行处理:transformer的自注意力机制需要并行处理序列任意位置元素之间的关系,BatchNorm难以并行化。
  3. 训练与推理的不一致性:BatchNorm训练时是使用当前批次的均值和方差,而推理用的是整训练数据的统计信息,会造成统计偏移。

7.如何优化transformer模型的性能

模型架构优化:

  1. 自注意力机制优化:
    ①. 局部注意力:为解决长序列计算代价,可以限制注意力范围只关注临近几个token来减少计算量,如Linformer、Reformer。
    ②. 稀疏注意力:通过限制计算的注意力头,或使用可学习的注意力模式Performer,来减少不必要的计算量。
    ③. 跨层共享:在不同transformer层之间共享注意力权重,减少模型复杂度。
  2. 改进位置编码:
    ①. 相对位置编码替代绝对位置编码,可以更好捕获长距离依赖。
    ②. 混合位置编码:结合绝对和相对位置编码,互补优势 。
  3. 激活函数与优化器:使用更高效的激活函数(Swish、GeLU),比ReLU更加平滑。使用更先进的优化器AdamW。

训练过程优化:

  1. 学习率调度:学习率预热,学习率衰减、动态学习率调整。
  2. 混合精度计算:使用FP16精度训练,加速计算节省内存。
  3. 正则化和dropout:防止过拟合
  4. 梯度累积:减少计算
  5. 混合内存优化:GPU与CPU同时处理训练
  6. 数据并行、模型并行:

模型后处理:

  1. 模型蒸馏:
  2. 模型量化:
  3. 模型剪枝:

硬件性能优化

  1. 多GPU分布式训练
  2. TensorRT、ONNX

9. Transformer有哪些加速收敛的操作

  1. 学习率调度:学习率预热,学习率衰减。
  2. 混合精度训练:使用FP16精度训练,加速计算节省内存。
  3. 激活函数、优化器:
  4. 预训练 + 微调策略:能显著加速模型的收敛。

10. Transformer有哪些防止过拟合的操作

  1. 数据端:数据增强,同义替换。
  2. 正则化:Dropout、L2正则化
  3. 归一化:层归一化layernorm、批次归一化batchnorm
  4. 早停:一定周期内无显著提升,可停止训练

11. 在transformer中,同一个词可以有不同的注意力权重吗

当然是的。因为每个词会根据输入的上下文信息动态计算注意力权重,而不仅仅是对其他位置的词进行统一的计算

二、大模型应用篇

1. 大模型开发的6个核心技术

  1. Prompt提示词工程:交流的指令,越清晰越好;
  2. function call函数调用外部API工具:外部力量,比如抽水我们知道找抽水泵,出门看天气知道查询天气预报;
  3. RAG检索增强:开卷考试;
  4. Agent智能体:谋定而后动,事先规划,再落地行动;
  5. Fine-tuning微调:知识学霸,将书上的知识全部学到大脑中;
  6. LLM大模型:预训练一个无所不知的智者;

越往下越底层,难度越高,成本越大,实施风险越大

2. 大模型性能优化方向

  1. 算法层面:利用模型量化、知识蒸馏、模型剪枝等技术,减小模型的大小和计算的复杂度;
  2. 软件层面
    <1>: 计算图优化:数据并行(切分数据,文章末尾有详细解释);模型并行(切分模型,文章末尾有详细解释);
    <2>:模型编译优化:使用ONNX支持的框架(PyTorch/TF/Keras)训练好模型后,将其导出为ONNX格式,再使用ONNX Runtime或TensorRT进行优化,从而提高模型在GPU上的执行效率;
  3. 硬件层面:英伟达H系列后就支持FP8(float point 8-bit)精度训练,相较于float32和float16,FP8进一步减少了数据存储空间和计算量,而且FP8兼顾FP16的稳定性 + int8的速度;

3. RAG与Agent的区别

在这里插入图片描述

  • RAG的本质:是为了弥补大模型在特定领域知识的不足。整个过程相对稳定,LLM可发挥的空间较少;
  • Agent的本质:是为了解决复杂的任务。不同模型对任务的理解、拆解相差较大,所以Agent对LLM的能力要求较高;

实际项目中会使用Agent + RAG的方式,对Agent中的每一个【任务n】都走一遍RAG流程;

4. RAG与微调的应用场景

微调场景

  • 定制大模型的能力:
  • 对响应时间有要求:
  • 智能设备中的应用:

对开源模型做微调,影响的权重也只占1%~5%左右,微调数据与原本数据是否能相容、新模型的鲁棒性是否有提高都比较难把控,所以在实际项目中,能不使用微调就不微调。有兴趣可以试试LLaMA-Factory大模型微调平台;

RAG场景

  • 数据需要保密:
  • 无反应时间要求:

5. 模型量化、蒸馏、剪枝

大语言模型在训练和使用中都会占据大量计算资源和存储空间,为了能在有限的资源下,保证大模型的性能,一般会使用模型压缩技术,一般的模型压缩的方式有以下三种:

  1. 模型量化(Quantization):主要是牺牲模型精度,用低精度的参数代替高精度参数参与计算,从而降低模型大小和计算复杂度;
  2. 模型蒸馏(Distillation):实施在数据端,用最强模型的输出反馈做数据蒸馏,微调自身小模型具备最强模型的输出能力;
  3. 模型剪枝():落地效果不好,很少用,实施在模型端,移除模型中不重要的权重,减小模型大小和计算复杂度;

模型量化:
举例:一个6B的模型(60亿参数),参数精度是float16(一个参数占2字节),那么它模型大小就是12G左右。不同参数精度所占的字节数不同,一般有四个等级的参数精度(8bit等于1字节):

  • FP32(单精度32位浮点数):高精度,一个参数占4字节,更大的内存占用和更长的计算时间;
  • FP16(半精度16位浮点数):常用精度,一个参数占2字节,资源占用与精度相对均衡;
  • FP8:英伟达H系列后就支持FP8精度,兼顾FP16的精度和INT8的速度;
  • INT8(将浮点数转换为8位整数):精度较低,一个参数占1字节,但可以显著减少存储和计算的需求
  • INT4(将浮点数转换为4位整数):精度很低,一个参数占0.5字节,很激进的量化方式,很可能导致模型失真;

GPT3.5有1750亿个参数,以float16精度为例,模型就有350G左右,对于模型加载、训练、测试都不是很方便,选择合适的量化方式,在模型精度与资源占用中寻找合适的平衡;

常见的模型量化方法:详情请看链接:GPTQ 、GGUF 、AWQ

模型蒸馏:
模型蒸馏(Knowledge Distillation)是一种通过压缩大型模型(如GPT_dream)的知识来训练小模型的技术,使得小模型能够在推理速度、资源占用等方面有所提升,同时尽量保持大模型的性能;

  1. 数据准备:首先收集一个涵盖广泛问题的数据集,这个数据集可以来自真实场景,也可以通过设计各种问题覆盖不同的任务和领域;
  2. 教师模型输出:使用大模型(GPT_dream)作为教师模型,对这些问题进行推理,生成对应的输出。记录下这些问题-答案对,形成新的QA数据集。这个数据集由问题作为输入,教师模型的输出作为目标标签;
  3. 学生模型训练:将生成的QA数据用作小模型的训练数据。训练过程中,学生模型学习教师模型的行为和输出方式,使得其表现逐渐接近教师模型;
  4. 损失函数:分两类
    <1>. 硬目标损失:学生模型的输出与训练数据的真实标签进行比较(标准分类损失);
    <2>. 软目标损失:学生模型的输出与教师模型的输出概率分布进行比较(Kullback-Leibler散度等),从而让学生模型的输出更接近教师模型;(软目标说明:教师模型输出[0.7, 0.2, 0.1],表示类别A的概率为0.7,类别B的概率为0.2,类别C的概率为0.1,如果是硬目标就直接选择类别A,但如果是软目标,学生模型输出的概率分布为[0.6, 0.3, 0.1],KL散度会计算这两个概率分布之间的差异)
  5. 微调训练:通过反复迭代,学生模型逐渐在性能上逼近教师模型,同时保持轻量化优势;

蒸馏的好处:

  • 提升效率:相比于大模型,小模型在推理速度和内存使用上有显著的提升,适合资源有限的场景(如移动设备、边缘计算等)。
  • 保留性能:尽管模型变小,但通过蒸馏可以保留大部分的模型性能,保证输出的质量和准确性不会显著下降。
  • 应用灵活:模型蒸馏可以应用于不同任务和模型架构,特别适合像GPT类的大模型在性能、响应时间要求高的环境中使用。

2019年10月的DistilBERT模型就是BERT的精炼版,速度提高了 60%,内存减少了 40%,但仍然保留了 BERT 97% 的性能;

6. temperature、top_p、top_k

在生成模型中,temperature、top_p 和 top_k 是控制生成文本随机性和多样性的参数:

  • Temperature:调整输出的分布平滑度。较低的温度(<1)使得模型输出更确定性,倾向于选择高概率的词;较高的温度(>1)增加随机性,使输出更多样化。
  • Top-p (Nucleus Sampling):从累积概率达到 p 的词中采样。例如,设置 top_p=0.9,模型会考虑所有使累积概率达到 90% 的词,只有这些词会被选中,从而保证生成的文本既丰富又合理。
  • Top-k:限制可选词汇的数量,只考虑概率最高的 k 个词进行采样。这样可以减少低概率词对生成结果的影响。

这三者的结合可以实现更灵活的文本生成,适应不同的应用需求

7. 大模型幻觉

大模型幻觉主要有哪些:

  1. 荒谬回复、违背事实:例如人类生活在火星
  2. 上下文自相矛盾:
  3. 答非所问:

大模型为什么会出现幻觉:

  1. 数据质量:训练数据包含错误、偏见、不一致信息,模型可能会学习并放大这些问题;
  2. 训练过程:预训练或者微调时候,过分拟合了训练数据中的异常值;
  3. 生成过程:提示词设计不当,或模型过小、模型有缺陷、输出长度太短;

如何解决、规避大模型幻觉问题:主要就是限定回答的范围

  1. 根据权威信息回复;
  2. 根据企业文档回复;
  3. 连接数据库信息;
  4. 配合知识图谱:向量数据库会弱化对象之间的关系,所以与向量文本互补使用;

数据并行(Data Parallelism)

让同一个模型的不同实例在不同设备上并行处理不同的数据子集,而模型的参数在这些设备之间保持同步。
一般有如下几个步骤:

  1. 数据划分:在每个训练迭代中,将训练数据分为多个小批次(mini-batch),并将每个小批次分配给不同的设备(GPU/TPU)。例如,如果有4个GPU,batch_size=64,那么每个GPU将处理 64/4=16 个样本。
  2. 模型复制:每个GPU设备上都有一份完全相同的模型副本,且每个GPU设备只处理分配到的那部分数据,独立计算那部分数据的损失和梯度,进行反向传播。
  3. 梯度同步:各设备计算的梯度会通过梯度同步(通常通过all-reduce操作)进行聚合(如取平均值或求和),再将聚合后的梯度发送至每个GPU设备上。

数据并行常见的实现方法:

  1. PyTorch DistributedDataParallel (DDP):PyTorch提供了DistributedDataParallel接口,自动处理数据切分、梯度同步和参数更新。DDP是数据并行的标准实现。
  2. Horovod:是由Uber开发的分布式训练框架,支持TensorFlow、PyTorch等。Horovod基于all-reduce算法进行梯度同步,能够在多个GPU或多个节点上高效运行。
  3. DeepSpeed:是微软开发的分布式深度学习库,支持大规模模型的训练,并提供了一系列优化手段,提升分布式数据并行的效率。

数据并行存在的挑战

  1. 通信开销:梯度同步时,设备之间的数据通信开销可能较大,为此可以使用压缩通信技术(如梯度裁剪、混合精度训练)或减少通信频率的技术(如梯度积累)。
  2. 负载均衡:设备之间的计算负载需要尽量均衡,避免某些设备过于忙碌,而其他设备处于等待状态。

数据并行的优化策略:

  1. 梯度积累(Gradient Accumulation):在小批量数据训练时可以通过梯度积累减少同步次数,模拟大批量训练。
  2. 混合精度训练:通过使用混合精度(FP16+FP32),可以降低显存占用和通信开销,提高分布式数据并行的效率。
  3. 通信压缩:通过梯度压缩(例如只同步重要梯度,或用低精度表示梯度)减少通信的带宽占用。

模型并行(Model Parallelism)

当模型过大无法在单个设备(如GPU)内存中完整训练时,它将模型的不同部分分布在多个设备上进行训练,相比于数据并行,模型并行的核心思想是将模型的不同部分拆分并分布到不同的设备上进行计算,而不是切分数据。

方式1:层级模型并行(Layer-wise Model Parallelism)

  • 描述:模型的不同层分布在不同的设备上。例如,神经网络的前几层可以在第一个GPU上计算,后几层在另一个GPU上计算。在前向传播过程中,数据流依次通过每个设备,完成层级计算。
  • 使用场景:适合顺序结构的神经网络,如深度卷积神经网络(CNN)或多层感知机(MLP)

方式2:张量切分模型并行(Tensor Model Parallelism)

  • 描述:将模型中的权重矩阵(张量)分成若干部分,并分配到不同设备。每个设备只计算部分张量的结果,最终结果需要通过通信整合。例如,处理大型全连接层时,将权重矩阵拆分到多个设备,分别进行部分计算。
  • 使用场景:适合Transformer类模型中非常大的全连接层、嵌入层等。

方式3:流水线并行(Pipeline Parallelism)

  • 描述:模型的不同部分(通常是不同的层)分配到不同的设备上,每个设备依次接收不同的批次,并进行流水线式处理。通过这种方式,可以同时计算多个批次的数据,使计算资源得到最大化利用。
  • 使用场景:流水线并行非常适合深层神经网络,如大型Transformer模型(如GPT系列模型)。

相关文章:

【LLM】13:大模型算法面试题库

一、Transformer篇 1. Transformer的结构是什么 Transformer 由 编码器&#xff08;Encoder&#xff09; 和 解码器&#xff08;Decoder&#xff09; 两部分组成&#xff0c;两部分都包含目标嵌入层、位置编码、多头注意力层、前馈网络&#xff0c;且有残差连接和层归一化&am…...

redis集群

文章目录 节点启动节点集群数据结构CLUSTER MEET命令的实现 槽指派记录节点的槽指派信息专播节点的槽指派信息17.2.3记录集群所有槽的指派信息CLUSTER ADDSLOTS命令的实现 在集群中执行命令计算键属于哪个槽判断槽是否由当前节点负责处理MOVED错误节点数据库的实现 重新分片ASK…...

Spring Boot整合DeepSeek实现AI对话(API调用和本地部署)

本篇文章会分基于DeepSeek开放平台上的API&#xff0c;以及本地私有化部署DeepSeek R1模型两种方式来整合使用。 本地化私有部署可以参考这篇博文 全面认识了解DeepSeek利用ollama在本地部署、使用和体验deepseek-r1大模型 Spring版本选择 根据Spring官网的描述 Spring AI是一…...

git如何把多个commit合成一个

在 Git 中&#xff0c;如果你想把多个提交&#xff08;commit&#xff09;合并成一个&#xff0c;可以使用 git rebase 或 git reset 来完成。下面是两种常用方法&#xff1a; 方法一&#xff1a;使用 git rebase&#xff08;推荐&#xff09; git rebase 是合并多个提交为一…...

flutter启动后不显示文字,中文字体不显示

Flutter 3.29.0-1.0.pre.114运行报错&#xff1a; Failed to load font Roboto at https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Me4GZLCzYlKw.woff2 解决&#xff1a; 下载roboto字体&#xff0c;并将字体&#xff08;Roboto-Regular.ttf&#xff09;放入app代码下…...

跟着李沐老师学习深度学习(十一)

经典的卷积神经网络 在本次笔记中主要介绍一些经典的卷积神经网络模型&#xff0c;主要包含以下&#xff1a; LeNet&#xff1a;最早发布的卷积神经网络之一&#xff0c;目的是识别图像中的手写数字&#xff1b;AlexNet&#xff1a; 是第一个在大规模视觉竞赛中击败传统计算机…...

小结:OSPF的网络类型,LSA

OSPF&#xff08;Open Shortest Path First&#xff09;是一个基于链路状态的内部网关协议&#xff08;IGP&#xff09;。以下是对OSPF网络类型、LSA类型、序列号与Age作用&#xff0c;以及相关配置指令的详细讲解。 一、OSPF的网络类型 OSPF支持多种网络类型&#xff0c;不同…...

用vue3写一个好看的wiki前端页面

以下是一个使用 Vue 3 Element Plus 实现的 Wiki 风格前端页面示例&#xff0c;包含现代设计、响应式布局和常用功能&#xff1a; <template><div class"wiki-container"><!-- 头部导航 --><el-header class"wiki-header"><d…...

Redis常见数据结构

目录 基本介绍 特点&#xff1a; 全局命令 数据类型&#xff1a; String Hash List Set Zset 基本介绍 Redis是一个在内存中存储数据的中间件,可作为数据库&#xff0c;缓存&#xff0c;消息队列等。 特点&#xff1a; 持久化&#xff1a;Redis会把数据存储在内存中…...

JavaScript中Map和Set数据结构详解

目录 一、Map 1. 定义与特点 2. 创建Map对象 3. 常用方法 4. 遍历Map 5. Map与对象的区别 二、Set 1. 定义与特点 2. 创建Set对象 3. 常用方法 4. 遍历Set 5. 应用场景 数据去重 集合运算 遍历集合 一、Map 1. 定义与特点 Map 是 JavaScript ES6 中新增的一种数…...

【devops】 Git仓库如何fork一个私有仓库到自己的私有仓库 | git fork 私有仓库

一、场景说明 场景&#xff1a; 比如我们Codeup的私有仓库下载代码 放入我们的Github私有仓库 且保持2个仓库是可以实现fork的状态&#xff0c;即&#xff1a;Github会可以更新到Codeup的最新代码 二、解决方案 1、先从Codeup下载私有仓库代码 下载代码使用 git clone 命令…...

deepseek:三个月备考高级系统架构师

一、备考总体规划&#xff08;2025年2月11日 - 2025年5月&#xff09; 1. 第一阶段&#xff1a;基础夯实&#xff08;2025年2月11日 - 2025年3月10日&#xff09; 目标&#xff1a;快速掌握系统架构师考试的核心知识点。 重点内容&#xff1a; 计算机组成原理、操作系统、数据…...

设计模式Python版 命令模式(上)

文章目录 前言一、命令模式二、命令模式示例 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&#xff1a;关注类和对象之间的组合&…...

部署 DeepSeek R1各个版本所需硬件配置清单

DeepSeek-R1 通过其卓越的推理性能和灵活的训练机制&#xff0c;在 2025 年的春节期间受到了广泛关注。 DeepSeek-R1 是一款高性能的 AI 推理模型&#xff0c;主要通过强化学习技术来增强模型在复杂任务场景下的推理能力。 在本地部署 DeepSeek-R1 时&#xff0c;尤其是完整的…...

【NLP 21、实践 ③ 全切分函数切分句子】

当无数个自己离去&#xff0c;我便日益坦然 —— 25.2.9 一、jieba分词器 Jieba 是一款优秀的 Python 中文分词库&#xff0c;它支持多种分词模式&#xff0c;其中全切分方式会将句子中所有可能的词语都扫描出来。 1.原理 全切分方式会找出句子中所有可能的词语组合。对于一…...

pycharm如何对比两个文档

在 PyCharm 中对比两个文档&#xff0c;并使它们同步滚动&#xff0c;可以按照以下步骤操作&#xff1a; 在 PyCharm 的文件列表中右键点击需要对比的其中一个文件。选择 “Compares With” 选项。选择第二个文件进行对比。...

React 第二十五节 <Fragment></Fragment> 的用途以及使用注意事项详解

文章如果错误偏差&#xff0c;烦请及时批评指正 一、为什么要使用 <Fragment>&#xff1f; 因为在 React 中&#xff0c;组件必须返回单个根元素。当我们尝试直接返回相邻的 JSX 元素时&#xff1a; function BrokenComponent() {return (<h1>标题</h1><…...

探秘Hugging Face与DeepSeek:AI开源世界的闪耀双子星

目录 一、引言&#xff1a;AI 开源浪潮的澎湃二、Hugging Face&#xff1a;AI 开源社区的基石&#xff08;一&#xff09;起源与发展历程&#xff08;二&#xff09;核心技术与特色&#xff08;三&#xff09;在 AI 领域的广泛应用 三、DeepSeek&#xff1a;东方崛起的 AI 新势…...

centos 和 ubuntu 区别

一、发行版与支持 1. CentOS 是基于 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码重新编译而成的社区版&#xff0c;遵循开源协议。一般由社区进行维护&#xff0c;每 7 年左右发布一个主要版本&#xff0c;注重稳定性和长期支持&#xff0c;适合对系统稳定性…...

windows,docker停止所有容器

CMD命令窗口 你可以尝试使用以下命令来停止所有正在运行的Docker容器&#xff1a; FOR /f "tokens*" %i IN (docker ps -q) DO docker stop %i这条命令的工作原理是&#xff1a; docker ps -q 列出所有正在运行的容器的ID。 FOR /f "tokens*" %i IN (c…...

AI赋能前端性能优化:效率与体验的完美平衡

在当今快节奏的互联网世界中&#xff0c;用户体验至关重要。一个加载缓慢、反应迟钝的网站或应用&#xff0c;很容易导致用户流失。而前端性能优化&#xff0c;作为提升用户体验的关键环节&#xff0c;却常常面临着诸多挑战。复杂的代码逻辑、庞大的资源文件、以及难以捉摸的性…...

8、《5分钟构建RESTful API:Spring Boot Web开发入门》

5分钟构建RESTful API&#xff1a;Spring Boot Web开发入门 一、RESTful API核心认知 REST&#xff08;Representational State Transfer&#xff09;通过HTTP协议实现资源操作&#xff0c;其核心特征包括&#xff1a; 资源以URI标识&#xff08;/api/users&#xff09;通过…...

【Java八股文】01-Java基础面试篇

【Java八股文】01-Java基础面试篇 概念Java特点Java为什么跨平台JVM、JDK、JRE关系 面向对象什么是面向对象&#xff0c;什么是封装继承多态&#xff1f;多态体现的方面面向对象设计原则重载重写的区别抽象类和实体类区别Java抽象类和接口的区别抽象类可以被实例化吗 深拷贝浅拷…...

读取本地excel删除第一行,并生成List数组

在 pom.xml 里添加如下依赖&#xff1a; <dependencies><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.3</version></dependency><dependency><groupId>org.ap…...

【核心特性】Go 模块化开发入门(go mod 深度解析)

Go 模块化开发入门&#xff08;go mod 深度解析&#xff09; 一、引言 在 Go 语言的开发过程中&#xff0c;随着项目规模的不断扩大&#xff0c;依赖管理变得愈发重要。Go Modules 作为 Go 语言官方的依赖管理工具&#xff0c;自 Go 1.11 版本引入后&#xff0c;极大地简化了项…...

【新品解读】AI 应用场景全覆盖!解码超高端 VU+ FPGA 开发平台 AXVU13F

「AXVU13F」Virtex UltraScale XCVU13P Jetson Orin NX 继发布 AMD Virtex UltraScale FPGA PCIE3.0 开发平台 AXVU13P 后&#xff0c;ALINX 进一步研究尖端应用市场&#xff0c;面向 AI 场景进行优化设计&#xff0c;推出 AXVU13F。 AXVU13F 和 AXVU13P 采用相同的 AMD Vir…...

Flask和Django相比哪个更适合新手?

Flask 与 Django:哪个更适合新手? 对于新手来说,选择 Flask 还是 Django 主要取决于你的具体需求和项目复杂度。以下是两者的详细对比,帮助你做出选择: 1. Flask 优点 简单易用:Flask 是一个轻量级的微框架,代码简洁,易于理解和上手。适合初学者快速入门。灵活性高:…...

高通android WIFI debug

参考高通文档&#xff1a;80-76240-16_REV_AA_Wi-Fi_Debug_Techniques 大纲 一、 WLAN Debug Logs –logcat ■ Logcat log logcat is a command-line tool that dumps the log of system messages, ■ Including stack traces when the device throws an error. ■ Need t…...

ADC 的音频实验,无线收发模块( nRF24L01)

nRF24L01 采用 QFN20 封装&#xff0c;有 20 个引脚&#xff0c;以下是各引脚的详细介绍&#xff1a; 1. 电源引脚 ◦ VDD&#xff1a;电源输入端&#xff0c;一般接 3V 电源&#xff0c;为芯片提供工作电压&#xff0c;供电电压范围为 1.9V&#xff5e;3.6V。 ◦ VSS&#xf…...

Swagger2 Knife4jConfig 配置,父子项目swagger扫描多个子模块中的Controller生成接口文档:

问题: 需求父子项目swagger扫描多个子模块中的Controller生成接口文档: Swagger2Knife4jConfig 配置放在了 springboot-app 启动项目里&#xff0c;而 tiger-web 和 tiger-web2 这两个子项目有自己的 Controller。这种情况下&#xff0c;Swagger 可能无法正确扫描 tiger-web 和…...

Unity UI 道路线跟随:让图标沿道路轨迹移动

在 Unity UI 开发中&#xff0c;有时需要让图标沿着一条道路轨迹移动&#xff0c;比如地图上的车辆行驶动画、导航路径指示等。本文介绍如何基于 UI 图片中的道路线生成曲线&#xff0c;并使用 Slider 控制图标沿轨迹运动&#xff0c;适用于 UI 导航、路径跟随动画等场景。 1. …...

Springboot核心:拦截器

拦截器是 Spring 框架提供的核心功能之一,属于一种设计模式&#xff0c;它允许在某个方法调用或请求处理前后执行自定义逻辑&#xff0c;是一种AOP&#xff08;面向切面编程&#xff09;机制。它们可以在不修改原有业务逻辑的情况下&#xff0c;对进入系统的请求进行预处理和后…...

【AI学习笔记】基于Unity+DeepSeek开发的一些BUG记录解决方案

【AI学习笔记】基于UnityDeepSeek开发的一些BUG记录&解决方案 背景前摇&#xff1a;&#xff08;省流可不看&#xff09; Unity是大学学的&#xff0c;AI是研究生学的&#xff0c;DeepSeek是第一份实习偷师的&#xff0c;三合一的梦是最近开始做的&#xff0c;BUG是今天遇…...

六西格玛设计培训如何破解风电设备制造质量与成本困局

2023年&#xff0c;中国风电行业装机容量突破4.3亿千瓦&#xff0c;稳居全球第一&#xff0c;但高速扩张背后暗藏隐忧&#xff1a; 质量痛点&#xff1a;叶片开裂、齿轮箱故障等缺陷频发&#xff0c;运维成本占项目全生命周期成本超30%&#xff1b;成本压力&#xff1a;原材料…...

xml 和json互转工具

工具1 有个问题会导致springboot返回捕获的异常编程xml格式 import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.json.JSONObject; import org.json.XML; import org.w3c.dom.Document;import javax.xm…...

【STM32】舵机SG90

1.舵机原理 舵机内部有一个电位器&#xff0c;当转轴随电机旋转&#xff0c;电位器的电压会发生改变&#xff0c;电压会带动转一定的角度&#xff0c;舵机中的控制板就会电位器输出的电压所代表的角度&#xff0c;与输入的PWM所代表的角度进行比较&#xff0c;从而得出一个旋转…...

【RK3588嵌入式图形编程】-SDL2-鼠标输入处理

鼠标输入处理 文章目录 鼠标输入处理1、概述2、鼠标移动事件3、鼠标点击事件4、鼠标点击位置5、鼠标双击6、鼠标进入和离开事件7、总结在本文中,将介绍如何在 SDL2 中检测和处理鼠标输入事件,包括鼠标移动、按钮点击以及窗口进入/退出。 1、概述 在本文中,我们将详细介绍如…...

知识管理成功:关键指标和策略,研究信息的投资回报率

信息过载会影响生产力。没有人工智能的帮助&#xff0c;信息过载会影响生产力。大量的可用信息&#xff0c;知识工作者不仅仅是超负荷工作&#xff1b;他们感到不知所措&#xff0c;他们倾向于浪费时间&#xff08;和脑细胞&#xff09;来应付他们被大量的数据抛向他们&#xf…...

Linux权限提升-内核溢出

一&#xff1a;Web到Linux-内核溢出Dcow 复现环境&#xff1a;https://www.vulnhub.com/entry/lampiao-1,249/ 1.信息收集&#xff1a;探测⽬标ip及开发端⼝ 2.Web漏洞利⽤&#xff1a; 查找drupal相关漏洞 search drupal # 进⾏漏洞利⽤ use exploit/unix/webapp/drupal_dr…...

Bootstrap5 折叠功能详解

Bootstrap5 折叠功能详解 引言 Bootstrap 是一个流行的前端框架&#xff0c;它提供了许多组件和工具&#xff0c;使得开发者可以轻松构建响应式网站。在 Bootstrap5 中&#xff0c;折叠&#xff08;Collapse&#xff09;组件得到了增强&#xff0c;使其更加灵活和易于使用。本…...

JAVA:Spring Boot 项目中自定义 Banner 的技术指南

1、简述 在 Spring Boot 项目中&#xff0c;当应用启动时会显示默认的 Spring 标志和版本信息。定制化的启动 Banner 不仅可以美化应用&#xff0c;还能在项目中增加个性化的品牌印记&#xff0c;甚至可以提供一些关键信息。本文将介绍如何在 Spring Boot 项目中自定义启动 Ba…...

【虚幻引擎UE】UE4.23到UE5.5的核心功能变化

简单总结从UE4.23到UE5.5&#xff0c;虚幻引擎的重大变化&#xff1a; 1. WebGL/HTML5 平台支持和像素流 UE4.23-UE4.25&#xff1a;移除官方HTML5支持&#xff0c;改为社区插件维护。 但通过第三方插件&#xff08;如WebAssemblyWebGPU&#xff09;可在浏览器运行部分项目。U…...

信号检测和信道均衡的联系

1. 系统模型 假设一个通信系统的数学模型如下&#xff1a; 发送信号&#xff1a; s [ s 1 , s 2 , … , s N ] T \mathbf{s} [s_1, s_2, \dots, s_N]^T s[s1​,s2​,…,sN​]T&#xff0c;其中 s i s_i si​ 是发送符号。信道矩阵&#xff1a; H \mathbf{H} H&#xff08;…...

在WPS中通过JavaScript宏(JSA)调用本地DeepSeek API优化文档教程

既然我们已经在本地部署了DeepSeek,肯定希望能够利用本地的模型对自己软件开发、办公文档进行优化使用,接下来就先在WPS中通过JavaScript宏(JSA)调用本地DeepSeek API优化文档的教程奉上。 前提: (1)已经部署好了DeepSeek,可以看我的文章:个人windows电脑上安装DeepSe…...

26、深度学习-自学之路-NLP自然语言处理-理解加程序,怎么把现实的词翻译给机器识别。

一、怎么能让机器能够理解我们的语言呢&#xff0c;我们可以利用神经网络干很多的事情&#xff0c;那么我们是不是也可以用神经元做自然语言处理呢&#xff0c;现在很多的实际应用已经说明了这个问题&#xff0c;可以这么做。 那我们考虑一下该怎么做&#xff0c;首先我们应该…...

微信服务号推送消息

这里如果 没有 就需要点新的功能去申请一下 申请成功之后就可以设置模版消息 推送到用户接受的页面是 需要后端调用接口 传递token 发送给客户...

Excel常用操作

Excel常用操作 学习资源 37_电子表格处理考点精讲_设置数据格式_哔哩哔哩_bilibili 快速输入数据与编辑数据 一个工作簿可以包含多个工作表 特殊数据的添加格式 输入负数, 例如-3、-5 常规输入, 直接输入-3、-5;使用(), 例如在单元格中输入(3)回车即可变为-3;上述括号不区分中…...

得物端智能视频封面推荐

一、背景 什么要做智能封面&#xff1f; 用户可以在得物购物&#xff0c;也可以在得物社区分享自己的生活。 得物社区中的视频使用双列流&#xff0c;每条内容包含封面、标题等。 对得物社区的创作者而言&#xff0c;选择视频封面是创作链路的重要环节。对得物社区的消费者…...

【Stable Diffusion部署至GNU/Linux】安装流程

以下是安装Stable Diffusion的步骤,以Ubuntu 22.04 LTS为例子。 显卡与计算架构介绍 CUDA是NVIDIA GPU的专用并行计算架构 技术层级说明CUDA Toolkit提供GPU编译器(nvcc)、数学库(cuBLAS)等开发工具cuDNN深度神经网络加速库(需单独下载)GPU驱动包含CUDA Driver(需与CUDA …...

介绍 Liquibase、Flyway、Talend 和 Apache NiFi:选择适合的工具

在现代软件开发中&#xff0c;尤其是在数据库管理和数据集成方面&#xff0c;选择合适的工具至关重要。本文将介绍四个流行的工具&#xff1a;Liquibase、Flyway、Talend 和 Apache NiFi&#xff0c;分析它们的应用、依赖以及如何选择适合的工具。 1. Liquibase 简介&#xff…...