【大模型基础_毛玉仁】1.3 基于Transformer 的语言模型
【大模型基础_毛玉仁】1.3 基于Transformer 的语言模型
- 1.3 基于Transformer 的语言模型
- 1.3.1 Transformer
- 1)注意力层(AttentionLayer)
- 2)全连接前馈层(Fully-connected Feedforwad Layer)
- 3)层正则化(LayerNormalization)
- 4)残差连接(Residual Connections)
- 5)Transformer Encoder-Decoder 架构
- 1.3.2 基于 Transformer 的语言模型
- 1)训练语言模型
- 2)训练 Transformer 语言模型:以“下一词预测”为例
- 3)优缺点
1.3 基于Transformer 的语言模型
Transformer 是一类基于注意力机制(Attention)的模块化构建的神经网络结构。
- 注意力机制:通过动态分配权重的方式,让模型能够聚焦于输入数据中最重要的部分。
给定一个序列,Transformer 将一定数量的历史状态和当前状态同时输入,然后进行加权相加。对历史状态和当前状态进行“通盘考虑”,然后对未来状态进行预测。
基于 Transformer 的语言模型,以词序列作为输入,基于一定长度的上文和当前词来预测下一个词出现的概率。
1.3.1 Transformer
Transformer 是由两种模块组合构建的模块化网络结构。分别为:
-
注意力(Attention)模块:由自注意力层(Self-Attention Layer)、残差连接(Residual Connections) 和层正则化(Layer Normalization)组成。
-
全连接前馈(Fully-connected Feedforwad)模块:由全连接前馈层,残差连接和层正则化组成。
图1.5: 注意力模块与全连接前馈模块
1)注意力层(AttentionLayer)
说明:
-
注意力机制:通过动态分配权重的方式,让模型能够聚焦于输入数据中最重要的部分。
-
归一化(Normalization):指将数据的范围或分布调整到一个特定的标准区间或分布,例如,将数据线性地映射到[0, 1]区间内。
注意力层采用加权平均的思想将前文信息叠加到当前状态上。
Transformer的注意力层将输入编码为query,key,value三部分,即将输入 { x 1 , x 2 , . . . , x t } \{x_1,x_2,...,x_t\} {x1,x2,...,xt}编码为 { ( q 1 , k 1 , v 1 ) , ( q 2 , k 2 , v 2 ) , . . . , ( q t , k t , v t ) } \{(q_1, k_1,v_1), (q_2,k_2,v_2),..., (q_t, k_t, v_t)\} {(q1,k1,v1),(q2,k2,v2),...,(qt,kt,vt)}。
其中,query 和 key 用于计算自注意力的权重 α, value 是对输入的编码。具体的,
A t t e n t i o n ( x t ) = ∑ i = 1 t α t , i v i Attention(x_t) = \sum_{i=1}^{t} \alpha_{t,i} v_i Attention(xt)=i=1∑tαt,ivi
其中,
α t , i = s o f t m a x ( s i m ( x t , x i ) ) = s i m ( q t , k i ) ∑ i = 1 t s i m ( q t , k i ) \alpha_{t,i} = softmax(sim(x_t, x_i)) = \frac{sim(q_t, k_i)}{\sum_{i=1}^{t} sim(q_t, k_i)} αt,i=softmax(sim(xt,xi))=∑i=1tsim(qt,ki)sim(qt,ki)
其中,sim(·, ·) 用于度量两个输入之间的相关程度,softmax 函数用于对此相关程度进行归一化。此外,
q i = W q x i , k i = W k x i , v i = W v x i q_i = W_q x_i, \quad k_i = W_k x_i, \quad v_i = W_v x_i qi=Wqxi,ki=Wkxi,vi=Wvxi
其中, W q , W k , W v W_q, W_k, W_v Wq,Wk,Wv 分别为 query,key,value 编码器的参数。以包含三个元素的输 入 { x 1 , x 2 , x 3 } \{x_1, x_2, x_3\} {x1,x2,x3} 为例,Transformer 自注意力的实现图1.6所示。
图 1.6: 注意力机制示意图
2)全连接前馈层(Fully-connected Feedforwad Layer)
说明:
- ReLU的定义:一种常用的激活函数。ReLU(x)=max(0,x)
全连接前馈层,可以看作是一种Key-Value模式的记忆存储管理模块。
全连接前馈层包含两层,两层之间由ReLU作为激活函数。
设全连接前馈层的输入为v,全连接前馈层可由下式表示:
F F N ( v ) = m a x ( 0 , W 1 v + b 1 ) W 2 + b 2 FFN(v) = max(0,W_1v +b_1)W_2 +b_2 FFN(v)=max(0,W1v+b1)W2+b2
其中, W 1 和 W 2 W_1和W_2 W1和W2分别为第一层和第二层的权重参数, b 1 和 b 2 b_1和b_2 b1和b2分别为第一层和第二层的偏置参数。
其中,第一层的可看作神经记忆中的key,而第二层可看作value。
3)层正则化(LayerNormalization)
说明:
层正则化:核心思想是对每一层的输入进行归一化,使其均值为0,方差为1。具体来说,对于输入 x=(x1,x2,…,xd),层正则化的计算步骤如下:
-
(1)计算均值 μ 和方差 δ \delta δ:
μ = 1 d ∑ i = 1 d x i ; δ 2 = 1 d ∑ i = 1 d ( x i − μ ) 2 \mu = \frac{1}{d} \sum_{i=1}^{d} x_i;\delta^2 = \frac{1}{d} \sum_{i=1}^{d} (x_i - \mu)^2 μ=d1i=1∑dxi;δ2=d1i=1∑d(xi−μ)2 -
(2)归一化:使用均值和方差对输入进行归一化:
x ^ i = x i − μ δ 2 + ϵ \hat{x}_i = \frac{x_i - \mu}{\sqrt{\delta^2 + \epsilon}} x^i=δ2+ϵxi−μ
ϵ 是个很小常数(如 1 0 − 5 10^{−5} 10−5),防止分母为零。 -
(3)缩放和平移:为保留模型表达能力,引入可学习参数 γ 和 β ,对归一化后的结果进行缩放和平移: y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β , 其中,γ 和 β 是模型参数,分别表示缩放因子和偏移量。
层正则化用以加速神经网络训练过程并取得更好的泛化性能。
设输入到层正则化层的向量为 v = { v i } i = 1 n v = \{v_i\}_{i=1}^n v={vi}i=1n。层正则化层将在 v 的每一维度 v_i 上都进行层正则化操作。具体地,层正则化操作可以表示为下列公式:
L N ( v i ) = α ( v i − μ ) δ + β LN(v_i) = \frac{\alpha(v_i - \mu)}{\delta} + \beta LN(vi)=δα(vi−μ)+β
其中,α 和 β 为可学习参数。µ 和 δ 分别是隐藏状态的均值和方差,可由下列公式分别计算。
μ = 1 n ∑ i = 1 n v i , δ = 1 n ∑ i = 1 n ( v i − μ ) 2 \mu = \frac{1}{n} \sum_{i=1}^{n} v_i, \quad \delta = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (v_i - \mu)^2} μ=n1∑i=1nvi,δ=n1∑i=1n(vi−μ)2
4)残差连接(Residual Connections)
说明:
残差连接:通过引入“跳跃连接”(skip connection),将输入直接传递到后面的层,使得网络可以学习输入与输出之间的残差(即差异),而不是直接学习输出。
具体来说,给定一个层的输入 x,传统的网络会学习一个映射 F(x),而残差连接则学习 F(x)+x。
在基本的 Transformer 编码模块中,包含两个残差连接。
-
第一个残差连接:将自注意力层的输入由一条旁路叠加到自注意力层的输出上,然后输入给层正则化。
-
第二个残差连接:将全连接前馈层的输入由一条旁路引到全连接前馈层的输出上,然后输入给层正则化。
引入残差连接可以有效解决梯度消失问题。
Pre-LN和Post-LN Transformer:
Post-LN Transformer:层正则化(Layer Normalization, LN)在残差连接之后。即 LayerNorm(F(x) + x)
。
-
优点:抗表征坍塌更强;
-
缺点:梯度消失问题更明显。
Pre-LN Transformer:层正则化(Layer Normalization, LN)在残差连接之前。即 F(LayerNorm(x)) + x
。
-
优点:缓解梯度消失;
-
缺点:抗表征坍塌较弱。
表征坍塌:是指网络深层输出的表征变得过于相似,导致模型性能下降。
梯度消失:指在反向传播过程中,梯度逐渐变小趋近于零,导致网络参数无法有效更新,训练过程停滞不前。
5)Transformer Encoder-Decoder 架构
原始的 Transformer 采用 Encoder-Decoder 架构,其包含 Encoder 和 Decoder 两 部分。这两部分都是由自注意力模块和全连接前馈模块重复连接构建而成。结构如图1.7所示。
图 1.7: Transfomer 结构示意图。
其中,
-
Encoder 部分:由六个级联的 encoder layer 组成,每个 encoder layer 包含一个注意力模块和一个全连接前馈模块。其中的注意力模块为自注意力模块(query,key,value 的输入是相同的)。
-
Decoder 部分:由六个级联的 decoder layer 组成,每个 decoder layer 包含两个注意力模块和一个全连接前馈模块。 其中,第一个注意力模块为自注意力模块,第二个注意力模块为交叉注意力模块 (query,key,value 的输入不同)。Decoder 中第一个 decoder layer 的自注意力模块的 输入为模型的输出。其后的 decoder layer 的自注意力模块的输入为上一个 decoder layer 的输出。Decoder 交叉注意力模块的输入分别是自注意力模块的输出(query) 和最后一个 encoder layer 的输出(key,value)。
Transformer 的 Encoder 和 Decoder 都可以单独用于构造语言模型,分别对应 Encoder-Only 模型和 Decoder-Only 模型。
上述训练过程结束之后,我们可以将Encoder的输出作为特征,然后应用这些 特征解决下游任务。
1.3.2 基于 Transformer 的语言模型
1)训练语言模型
在Transformer 的基础上,可以设计多种预训练任务来训练语言模型。例如,
-
基于Encoder部分,结合“掩词补全”等任务来训练Encoder-Only语言模型,如BERT;
-
应用Endcoder和Decoder部分,结合"截断补全"、"顺序恢复"等多个有监督和自监督任务来训练Encoder-Decoder 语言模型,如T5;
-
应用Decoder部分, 利用“下一词预测”任务来训练Decoder-Only语言模型,如GPT-3。
2)训练 Transformer 语言模型:以“下一词预测”为例
以“下一词预测”为例,简单介绍训练 Transformer 语言模型的流程。
-
对词序列 { w 1 , w 2 , w 3 , . . . , w N } \{w_1, w_2, w_3, ..., w_N\} {w1,w2,w3,...,wN},根据 { w 1 , w 2 , . . . , w i } \{w_1, w_2, ..., w_i\} {w1,w2,...,wi} 预测下一个词 w i + 1 w_{i+1} wi+1 出现的概率。
-
设词典 D为 { w ^ 1 , w ^ 2 , . . . , w ^ ∣ D ∣ } \{\hat{w}_1, \hat{w}_2, ..., \hat{w}_{|D|}\} {w^1,w^2,...,w^∣D∣}。输出可表示为 o i = { o i [ w ^ d ] } d = 1 ∣ D ∣ o_i = \{o_i[\hat{w}_d]\}_{d=1}^{|D|} oi={oi[w^d]}d=1∣D∣, o i [ w ^ d ] o_i[\hat{w}_d] oi[w^d] 表示词 w ^ d \hat{w}_d w^d 出现的概率。
-
因此,词序列 { w 1 , w 2 , w 3 , . . . , w N } \{w_1, w_2, w_3, ..., w_N\} {w1,w2,w3,...,wN} 整体出现的概率的预测为:
P ( w 1 : N ) = ∏ i = 1 N − 1 P ( w i + 1 ∣ w 1 : i ) = ∏ i = 1 N o i [ w i + 1 ] P(w_{1:N}) = \prod_{i=1}^{N-1} P(w_{i+1}|w_{1:i}) = \prod_{i=1}^{N} o_i[w_{i+1}] P(w1:N)=∏i=1N−1P(wi+1∣w1:i)=∏i=1Noi[wi+1]
- 与训练RNN语言模型相同,Transformer语言模型也常用如下交叉熵函数作为损失函数。
l C E ( o i ) = − ∑ d = 1 ∣ D ∣ I ( w ^ d = w i + 1 ) log o i [ w i + 1 ] = − log o i [ w i + 1 ] l_{CE}(o_i) = -\sum_{d=1}^{|D|} I(\hat{w}_d = w_{i+1}) \log o_i[w_{i+1}] = -\log o_i[w_{i+1}] lCE(oi)=−∑d=1∣D∣I(w^d=wi+1)logoi[wi+1]=−logoi[wi+1]
-
其中, I ( ⋅ ) I(\cdot) I(⋅) 为指示函数,当 w ^ d = w i + 1 \hat{w}_d = w_{i+1} w^d=wi+1 时等于 1,当 w ^ d ≠ w i + 1 \hat{w}_d \neq w_{i+1} w^d=wi+1 时等于 0。
-
设训练集为 S,Transformer 语言模型的损失可以构造为:
L ( S , W ) = 1 N ∣ S ∣ ∑ s = 1 ∣ S ∣ ∑ i = 1 N l C E ( o i , s ) L(S, W) = \frac{1}{N|S|} \sum_{s=1}^{|S|} \sum_{i=1}^{N} l_{CE}(o_{i,s}) L(S,W)=N∣S∣1∑s=1∣S∣∑i=1NlCE(oi,s)
- 其中, o i , s o_{i,s} oi,s 为Transformer 语言模型输入样本s的前i个词时的输出。
在此损失的基础上,构建计算图,进行反向传播,便可对Transformer语言模型进行训练。
针对以上说明的示例:
(1)序列概率的链式分解
P ( w 1 : N ) = ∏ i = 1 N − 1 P ( w i + 1 ∣ w 1 : i ) = ∏ i = 1 N o i [ w i + 1 ] P(w_{1:N}) = \prod_{i=1}^{N-1} P(w_{i+1}|w_{1:i}) = \prod_{i=1}^{N} o_i[w_{i+1}] P(w1:N)=∏i=1N−1P(wi+1∣w1:i)=∏i=1Noi[wi+1]
含义:整个句子出现的概率等于逐步预测每个词的概率的乘积。
示例:句子“今天天气好”
-
输入“今天” → 预测“天气”的概率为 o1[天气]=0.6
-
输入“今天天气” → 预测“好”的概率为 o2[好]=0.7
-
输入“今天天气好” → 预测结束符的概率为 o3[结束符]=0.8
-
整体概率:0.6×0.7×0.8=0.336
为什么是乘积:语言模型假设每个词的出现依赖前面所有词,根据概率链式法则,联合概率分解为条件概率的乘积。
(2)交叉熵损失
l C E ( o i ) = − ∑ d = 1 ∣ D ∣ I ( w ^ d = w i + 1 ) log o i [ w i + 1 ] = − log o i [ w i + 1 ] l_{CE}(o_i) = -\sum_{d=1}^{|D|} I(\hat{w}_d = w_{i+1}) \log o_i[w_{i+1}] = -\log o_i[w_{i+1}] lCE(oi)=−∑d=1∣D∣I(w^d=wi+1)logoi[wi+1]=−logoi[wi+1]
含义:衡量模型预测的概率分布与真实标签的差距。
示例:真实下一个词是“天气”,模型预测的概率分布为:
-
o_1={今天:0.1,天气:0.6,好:0.2,结束符:0.1}
-
指示函数 I(v_d=天气):仅在“天气”位置为1,其他为0。
-
交叉熵损失简化为:−log0.6≈0.51
为什么只取真实词的概率**:训练时,模型只需保证真实词的概率尽可能大**,其他词的错误预测会被自动惩罚。
(3)整体损失函数
L ( S , W ) = 1 N ∣ S ∣ ∑ s = 1 ∣ S ∣ ∑ i = 1 N l C E ( o i , s ) L(S, W) = \frac{1}{N|S|} \sum_{s=1}^{|S|} \sum_{i=1}^{N} l_{CE}(o_{i,s}) L(S,W)=N∣S∣1∑s=1∣S∣∑i=1NlCE(oi,s)
含义:所有训练样本的损失平均值。
示例:训练集包含2个句子(∣S∣=2),每个句子长度 N=3:
-
句子1的损失:0.51+0.36+0.10=0.97
-
句子2的损失:0.40+0.20+0.05=0.65
-
总损失:(0.97+0.65)/(3×2)≈0.27
为什么要除以 N∣S∣:平衡不同长度句子和数据集大小的影响,使损失值可比。
(4)直观理解训练过程
-
目标:让模型输出的概率向量 oi 中,真实词的概率尽可能接近1。
-
反向传播:通过损失函数计算梯度,调整模型参数(如注意力权重、词嵌入)。
-
推理:生成文本时,选择概率最高的词(或按概率采样),逐步扩展序列。
3)优缺点
此外,还可在“自回归”的范式下完成文本生成任务。与训练RNN语言模型一样,Transformer模型的预训练过程依然采用“TeacherForcing”的范式。
相较于RNN模型串行的循环迭代模式,Transformer并行输入的特性,使其容易进行并行计算。
但是,Transformer并行输入的范式也导致网络模型的规模随输入序列长度的增长而平方次增长。这为应用Transformer处理长序列带来挑战。
.
其他参考:【大模型基础_毛玉仁】系列文章
声明:资源可能存在第三方来源,若有侵权请联系删除!
相关文章:
【大模型基础_毛玉仁】1.3 基于Transformer 的语言模型
【大模型基础_毛玉仁】1.3 基于Transformer 的语言模型 1.3 基于Transformer 的语言模型1.3.1 Transformer1)注意力层(AttentionLayer)2)全连接前馈层(Fully-connected Feedforwad Layer)3)层正…...
靶场(二)---靶场心得小白分享
开始: 看一下本地IP 21有未授权访问的话,就从21先看起 PORT STATE SERVICE VERSION 20/tcp closed ftp-data 21/tcp open ftp vsftpd 2.0.8 or later | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_Cant get dire…...
大学至今的反思与总结
现在是2025年的3月5日,我大三下学期。 自大学伊始,我便以考研作为自己的目标,有时还会做自己考研上岸头部985,211,offer如潮水般涌来的美梦。 但是我却忽略了一点,即便我早早下定了决心去考研,但并没有早…...
【大模型】Llama 3.2 大语言模型初探:模型权重下载
文章目录 一、简介二、权重下载2.1 方法一:Meta 官网申请下载2.2 方法二:使用 hugging face 下载 一、简介 Llama(Large Language Model Meta AI)是 Meta(原 Facebook)开发的一系列开源大型语言模型。它的目…...
unity学习63,第2个小游戏:用fungus做一个简单对话游戏
目录 1 目标用fungus做一个简单的剧情对话游戏 1.1 先创建一个新的3D项目 1.2 fungus是什么 1.2.1 怎么获得 1.2 在AssetStore里搜索fungus (插件类)--千万别买收费的错的! 1.3 fungus的官网 1.3.1 官网给的3个下载链接,unity的果然已经失效了 …...
笔记:代码随想录算法训练营day36:LeetCode1049. 最后一块石头的重量 II、494. 目标和、474.一和零
学习资料:代码随想录 1049.最后一块石头的重量II 力扣题目链接 思路:如何讲该问题转化为背包问题:还是对半分去碰,对半分去碰碰剩下的就是最小的。然后背包容量就是一半儿,物品重量等于物品价值等于stones[i] 和上…...
Elasticsearch:解锁深度匹配,运用Elasticsearch DSL构建闪电般的高效模糊搜索体验
目录 Elasticsearch查询分类 叶子查询 全文检索查询 match查询 multi_match查询 精确查询 term查询 range查询 复杂查询 bool查询简单应用 bool查询实现排序和分页 bool查询实现高亮 场景分析 问题思考 解决方案 search_after方案(推荐) point in time方案 方案…...
Android实现漂亮的波纹动画
Android实现漂亮的波纹动画 本文章讲述如何使用二维画布canvas和camera、矩阵实现二、三维波纹动画效果(波纹大小变化、画笔透明度变化、画笔粗细变化) 一、UI界面 界面主要分为三部分 第一部分:输入框,根据输入x轴、Y轴、Z轴倾…...
qt实践教学(编写一个代码生成工具)持续更新至完成———
前言: 我的想法是搭建一个和STM32cubemux类似的图形化代码生成工具,可以把我平时用到的代码整合一下全部放入这个软件中,做一个我自己专门的代码生成工具,我初步的想法是在下拉选框中拉取需要配置的功能,然后就弹出对…...
【数据结构】什么是栈||栈的经典应用||分治递归||斐波那契问题和归并算法||递归实现||顺序栈和链栈的区分
文章目录 🥧栈的初步理解:🥧易错:如何判断栈满🥧栈满理解🥧栈的基本运算📚栈操作的伪代码逻辑(顺序和链栈)📕顺序栈运算实现:顺序栈的表示&#x…...
vue3(笔记)4.0 vueRouter.导航守卫.ElementPuls知识点
---vueRouter 创建路由: 完整写法(懒加载): 默认写法与vue2一致: 导入 然后 写成component: LoginPage import { createRouter, createWebHistory } from vue-routerconst router createRouter({history: createWebHistory(import.meta.env.BASE_URL), routes: [{path:/lo…...
[数字图像处理]实验三:直方图增强
目录 一、实验目的 二、实验原理 三、实验内容(附代码) 四、实验结果及分析 五、实验小结 一、实验目的 1.了解图像增强的意义和目的 2.掌握各种图像增强的基本原理和方法 3.使用MATLAB实现图像增强 二、实验原理 图像增强方法从增强的作用域…...
图像分类项目1:基于卷积神经网络的动物图像分类
1、选题背景及动机 在现代社会中,图像分类是计算机视觉领域的一个重要任务。动物图像分类具有广泛的应用,例如生态学研究、动物保护、农业监测等。通过对动物图像进行自动分类,可以帮助人们更好地了解动物种类、数量和分布情况,从…...
并发编程(线程池)面试题及原理
1. 执行原理/核心参数 1.1 核心参数 核心参数 corePoolSize 核心线程数目maximumPooISize 最大线程数目 (核心线程+救急线程的最大数目)keepAliveTime 生存时间- 救急线程的生存时间,生存时间内没有新任务,此线程资…...
初次使用 IDE 搭配 Lombok 注解的配置
前言 在 Java 开发的漫漫征程中,我们总会遇到各种提升效率的工具。Lombok 便是其中一款能让代码编写变得更加简洁高效的神奇库。它通过注解的方式,巧妙地在编译阶段为我们生成那些繁琐的样板代码,比如 getter、setter、构造函数等。然而&…...
云原生时代的技术桥梁
在数字化转型的大潮中,企业面临着数据孤岛、应用间集成复杂、高成本与低效率等问题。这些问题不仅阻碍了企业内部信息的流通和资源的共享,也影响了企业对外部市场变化的响应速度。当前,这一转型过程从IT角度来看,已然迈入云原生时…...
2024四川大学计算机考研复试上机真题
2024四川大学计算机考研复试上机真题 2024四川大学计算机考研复试机试真题 历年四川大学计算机考研复试机试真题 在线评测:https://app2098.acapp.acwing.com.cn/ 分数求和 题目描述 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13… 求出这个数列的前 …...
【GPU使用】如何在物理机和Docker中指定GPU进行推理和训练
我的机器上有4张H100卡,我现在只想用某一张卡跑程序,该如何设置。 代码里面设置 import os # 记住要写在impot torch前 os.environ[CUDA_VISIBLE_DEVICES] "0, 1"命令行设置 export CUDA_VISIBLE_DEVICES0,2 # Linux 环境 python test.py …...
汽车免拆诊断案例 | 2023款丰田雷凌汽油版车行驶中偶尔出现通信故障
故障现象 一辆2023款丰田雷凌汽油版车,搭载1.5 L发动机,累计行驶里程约为4700 km。车主反映,行驶中偶尔组合仪表上的发动机转速信号丢失,转向变重,且有“闯车”感,同时车辆故障警报蜂鸣器鸣响。 故障诊断…...
千里科技亮相吉利AI智能科技发布会,共启“AI+车”新纪元
今天,在三亚举行的吉利AI智能科技发布会上,千里科技董事长印奇发表了主题为《从“车AI”到“AI车”》的演讲。印奇重点分享了对于“AI车”未来趋势的判断,并重点介绍了在吉利AI科技生态体系下,围绕智驾、智舱等领域的创新合作。基…...
汽车零部件厂如何选择最适合的安灯系统解决方案
在现代制造业中,安灯系统作为一种重要的生产管理工具,能够有效提升生产线的异常处理效率,确保生产过程的顺畅进行。对于汽车零部件厂来说,选择一套适合自身生产需求的安灯系统解决方案尤为重要。 一、安灯系统的核心功能 安灯系统…...
spring boot + vue 搭建环境
参考文档:https://blog.csdn.net/weixin_44215249/article/details/117376417?fromshareblogdetail&sharetypeblogdetail&sharerId117376417&sharereferPC&sharesourceqxpapt&sharefromfrom_link. spring boot vue 搭建环境 一、浏览器二、jd…...
spaCy 入门:自然语言处理的高效工具
spaCy 入门:自然语言处理的高效工具 引言 spaCy 是一个功能强大的开源 Python 库,专注于工业级的自然语言处理(NLP)。它以其高效的性能、简洁的 API 和对多种语言的支持而闻名。无论是进行文本分析、信息提取还是构建智能聊天机…...
Stable Diffusion模型高清算法模型类详解
Stable Diffusion模型高清算法模型类详细对比表 模型名称核心原理适用场景参数建议显存消耗细节增强度优缺点4x-UltraSharp残差密集块(RDB)结构优化纹理生成真实人像/建筑摄影重绘幅度0.3-0.4,分块尺寸768px★★★★★☆皮肤纹理细腻,但高对比场景易出现…...
数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解
目录 一.冒泡排序 二.堆排序 三.插入排序 四.选择排序 五.希尔排序 六.快速排序 1.Lomuto版本(前后指针法) 2.Lomuto版本的非递归算法 3.hoare版本(左右指针法) 4.挖坑法找分界值: 七.归并排序 八.计数排序…...
QT-对象树
思维导图 写1个Widget窗口,窗口里面放1个按钮,按钮随便叫什么 创建2个Widget对象 Widget w1,w2 w1.show() w2不管 要求:点击 w1.btn ,w1隐藏,w2显示 点击 w2.btn ,w2隐藏,w1 显示 #include <QApplication> #inc…...
随机播放音乐 伪随机
import java.util.*;/*** https://cloud.tencent.com.cn/developer/news/1045747* 伪随机播放音乐*/ public class MusicPlayer {private List<String> allSongs; // 所有歌曲列表private List<String> playedSongs; // 已经播放过的歌曲列表private Map<String…...
spring boot打包插件的问题
在spring boot项目中声明了 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> 执行mvn clean package&…...
海康摄像头接入流媒体服务器实现https域名代理播放
环境 操作系统:Ubuntu 22.04流媒体服务器:srs 官网安装教程srs开启GB28181协议 官网开启教程进行海康摄像头的配置 官网配置教程srs使用systemctl实现开机自启 官网配置教程 nginx配置说明 server {listen 80;server_name a.com;return 301 https://$…...
Stable Diffusion模型Pony系列模型深度解析
Stable Diffusion模型Pony系列模型深度解析 一、技术架构与核心特性 基于SDXL的深度优化 Pony系列模型以SDXL为基础框架,通过针对二次元/动漫风格的微调,强化了在该领域的生成能力,同时保留了对写实场景的兼容性。其训练数据特别侧重于人…...
性能巅峰对决:Rust vs C++ —— 速度、安全与权衡的艺术
??关注,带你探索Java的奥秘!?? ??超萌技术攻略,轻松晋级编程高手!?? ??技术宝库已备好,就等你来挖掘!?? ??订阅,智趣学习不孤单!?? ??即刻启航,编…...
【Kubernets】K8S内部nginx访问Service资源原理说明
文章目录 原理概述**一、核心概念****二、Nginx 访问 Service 的流程****1. Service 的作用****2. Endpoint 的作用****3. Nginx Pod 发起请求****(1) DNS 解析****(2) 流量到达 kube-proxy****(3) 后端 Pod 处理请求** **三、不同代理模式的工作原理****1. iptables 模式****2…...
Markdown HTML 图像语法
插入图片 Markdown 一般来说,直接复制粘贴过来就行了,部分网页/应用可以拖拽,没人会真敲图片的链接吧…… 示例图片: 就不能再改变。然而,这并不影响对象内部的状态(即对象的属性)是否可以改变。具体来说&a…...
疫情管理系统设计与实现(代码+数据库+LW)
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本疫情管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…...
记Android12上一个原生bug引起的system_server crash
一. 现象描述 近日测试上报一个几乎必现的crash,描述如下: 现象: launcher编辑状态与锁屏解锁交互时系统概率性重启 操作步骤: 进入launcher组件编辑状态按电源键灭屏后亮屏,锁屏界面上滑解锁launcher编辑状态向右或向左滑动重复1,2&#x…...
代码随想录算法训练营第六天|Leetcode454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
15. 三数之和 建议:本题虽然和 两数之和 很像,也能用哈希法,但用哈希法会很麻烦,双指针法才是正解,可以先看视频理解一下 双指针法的思路,文章中讲解的,没问题 哈希法很麻烦。 题目链接/文章讲…...
大数据环境(单机版) Flume传输数据到Kafka
文章目录 前言一、准备二、安装三、配置环境变量四、修改配置4.1、kafka配置4.2、Flume配置 五、启动程序5.1、启动zk5.2、启动kafka5.3、启动flume 六、测试6.1、启动一个kafka终端,用来消费消息6.2、写入日志 其他 前言 flume监控指定目录,传输数据到…...
计算机毕业设计SpringBoot+Vue.js高校教师科研管理系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
C++课程设计【宿舍管理查询软件】
宿舍管理查询软件 一、题目描述二、源码以及说明宿舍管理查询软件设计与实现1. 系统设计思路1.1 功能需求1.2 数据结构2. 系统实现3. 代码说明3.1 数据结构3.2 功能实现3.3 文件存储4. 示例运行输入输出5. 总结其他QT文章推荐一、题目描述 (一)问题描述 为宿舍管理人员编写一…...
数据挖掘校招面经一
写在前面:其实数据挖掘、风控、机器学习算法与搜广推的八股还是有重合的部分,毕竟都是面对结构化数据。特别是我自己是做竞赛的,平时LGBM、CatBoost用的挺多的,所以感觉这些八股还是有必要看看,建议大家也可以看一下。…...
迷你世界脚本对象库接口:ObjectLib
对象库接口:ObjectLib 迷你世界 更新时间: 2023-04-26 20:21:09 具体函数名及描述如下: 序号 函数名 函数描述 1 getAreaData(...) 获取区域数据 2 getPositionData(...) 获取位置数据 3 getLivingData(...) 获取生物数据 4 getItemDat…...
VSCode知名主题带毒 安装量900万次
目前微软已经从 Visual Studio Marketplace 中删除非常流行的主题扩展 Material Theme Free 和 Material Theme Icons,微软称这些主题扩展包含恶意代码。 统计显示这些扩展程序的安装总次数近 900 万次,在微软实施删除后现在已安装这些扩展的开发者也会…...
C#—csv文件格式操作实例【在winform表格中操作csv】
C#—csv文件格式操作实例【在winform表格中操作csv】 实例一 实例效果 当在winform界面中点击读取按钮时 将csv中的所有数据读取出来放置在datagridview控件,可以在datagridview控件中编辑数据,当点击保存按钮时 将datagridview控件中的所有数据存储在…...
Redis设计与实现-数据结构
Redis数据结构 1、RedisObject对象2、简单动态字符串2.1 SDS定义2.2 SDS与C语言的区别2.3 SDS的空间分配策略2.3.1 空间预分配2.3.2 惰性空间释放 2.4 SDS的API 3、链表3.1 链表的定义3.2 链表的API 4、字典4.1 字典的定义4.2 哈希算法4.3 哈希表的扩缩4.3.1 哈希表扩缩的判断依…...
Ubuntu20.04双系统安装及软件安装(四):国内版火狐浏览器
Ubuntu20.04双系统安装及软件安装(四):国内版火狐浏览器 Ubuntu系统会自带火狐浏览器,但该浏览器不是国内版的,如果平常有记录书签、浏览记录、并且经常使用浏览器插件的习惯,建议重装火狐浏览器为国内版的…...
C语言100天练习题【记录本】
C语言经典100题(手把手 编程) 可以在哔哩哔哩找到 已解决的天数:一,二,五,六 下面的都是模模糊糊的 可以学学这些算法,我是算法白痴,但是我不是白痴,可以学ÿ…...
基于CURL命令封装的JAVA通用HTTP工具
文章目录 一、简要概述二、封装过程1. 引入依赖2. 定义脚本执行类 三、单元测试四、其他资源 一、简要概述 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具&…...
SQL刷题:自连接(Self-Join)--通过将 同一张表连接两次,比较不同行之间的数据关系
例题: 表:Employee ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | | salary | int | | managerId | int | ---------------------- id 是该表的主键…...