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

【大模型基础_毛玉仁】2.3 基于 Encoder-only 架构的大语言模型


更多内容:XiaoJ的知识星球


目录

    • 2.3 基于Encoder-only 架构的大语言模型
      • 2.3.1 Encoder-only 架构
      • 2.3.2 BERT 语言模型
        • 1)BERT 模型结构
        • 2)BERT 预训练方式
        • 3)BERT 下游任务
      • 2.3.3 BERT 衍生语言模型
        • 1)RoBERTa 语言模型
        • 2)ALBERT 语言模型
        • 3)ELECTRA 语言模型


2.3 基于Encoder-only 架构的大语言模型

2.3.1 Encoder-only 架构

Encoder-only 架构的核心在于能够覆盖输入所有内容的双向编码模型(Bidirectional Encoder Model)。

在处理输入序列时,双向编码模型融合了从左往右的正向注意力以及从右往左的反向注意力,能够充分捕捉每个 Token 的上下文信息,因此也被称为具有全面的注意力机制

双向编码器为每个词生成动态的上下文嵌入(Contextual Embedding),使得模型能更精准理解词之间的依赖性和语义,有效处理词语的多义性问题。使得双向编码器在句子级别的任务上表现出色,显著超过了静态词嵌入方法的性能。

Encoder-only 架构基于双向编码模型,选用了 Transformer 架构中的编码器部分。虽然 Encoder-only 模型不直接生成文本,但其生成的上下文嵌入对于深入理解输入文本的结构和含义至关重要。

当前, BERT及其变体,如 RoBERTa、ALBERT等,都是基于 Encoder-only 架构的主流大语言模型。


2.3.2 BERT 语言模型

BERT(Bidirectional Encoder Representations from Transformers)

  • 是一种基于 Encoder-only 架构的预训练语言模型。

  • 其核心在于通过双向编码模型深入挖掘文本的上下文信息,而为下游任务提供优秀的上下文嵌入。

1)BERT 模型结构

BERT 模型的结构与 Transformer 中的编码器几乎一致,由多个编码模块堆叠,每个编码模块包含一个多头自注意力模块和一个全连接前馈模块。

根据参数量的不同,BERT 模型共有 BERT-Base 和 BERT-Large 两个版本。

2)BERT 预训练方式

BERT 使用小说数据集 BookCorpus 和英语维基百科数据集进行预训练。

在预训练任务上,BERT 开创性地提出了掩码语言建模(Masked Language Model, MLM)下文预测(Next Sentence Prediction, NSP) 两种任务来学习生成上下文嵌入。其完整的预训练流程如下。

图 2.7: BERT 预训练任务。
在这里插入图片描述

BERT 预训练任务步骤:

(1)构造样本序列:

BERT 先基于给定的原始文本构造多个样本序列,每个样本序列由原始文本中的两个句子组成,这两个句子有 50% 的概率是来自原文的连续句子,另外 50% 的概率是随机挑选的两个句子。随后,对样本序列分词, 在序列开头添加标签 [CLS],在每个句子结尾添加标签 [SEP]。

(2)判断句子连续性:

接着,BERT 利用模型判断样本序列中的两个句子是否为连续的。这一任务训练 BERT 识别和理解句子之间的关系,捕捉句子层面的语义特征。

(3)掩码预测:

最后,BERT 随机选样本序列中约 15% 的 Token 进行遮掩,将其替换为标签 [MASK] 或者随机单词。模型需要预测这些被替换的 Token 的原始内容。要求模型根据周围的上下文信息来推断缺失的 Token。预测过程使用的交叉熵损失函数驱动了 BERT 模型中参数的优化,使其能够学习到 文本的双向上下文表示。

值得注意的是,在 MLM 任务的训练过程中,BERT 仅针 对那些被随机替换的 Token 进行学习,即只计算这些 Token 的预测损失来更新模型参数。

通过这两种预训练任务的结合,使 BERT 在理解语言的深度和广度上都有显著提升。BERT 不仅能够捕捉到 Token 的细粒度特征,还能够把握长距离的依赖关系和句子间的复杂联系,为各种下游任务提供了坚实的语言理解基础。

3)BERT 下游任务

BERT 可以应用于各种自然语言处理任务,包括但不限于:

文本分类(如情感分析)、问答系统、文本匹配(如自然语言推断)、语义相似度计算。

(1) [CLS] 标签设计

由于 BERT 的输出是输入中所有 Token 的向量表示,因此总长度不固定,无法直接应用于各类下游任务。

为解决这一问题,BERT 设计了 [CLS] 标签(即Classification Token,分类标记)来提取整个输入序列的聚合表示。[CLS] 标签汇总整个输入序列的信息,生成一个固定长度的向量表示,从而实现对所有 Token 序列信息的概括,便于处理各种下游任务。

(2)任务处理

文本分类任务中:

  • 将输出中 [CLS] 标签对应的向量提取出来,传递给一个全连接层,从而用于分类。

  • 例如判断整个句子的情绪是积极、消极或是中立的。

问答系统任务中:

  • 需要输入问题以及一段相关的文本,即“[CLS] 问题 [SEP] 文 本 [SEP]”。

  • 最终取出 [CLS] 标签的对应向量,并传递给两个全连接层,用于判断答案是否存在于相关文本中。如果存在,这两个全连接层分别用于输出答案的起始和结束位置。

  • 通过这种方式,BERT 能够从提供的段落中准确提取出问题的答案。

语义相似度任务中:

  • 过构造“[CLS] 文本 1[SEP] 文本 2[SEP]”的方式,

  • 结合一个 线性层来直接输出两个文本之间的相似度;

  • 也可以不添加额外的组件,直接提取 [CLS] 标签对应的向量,再利用额外的相似度度量方法(例如余弦相似度)来计算多段文本之间的相似度。


2.3.3 BERT 衍生语言模型

1)RoBERTa 语言模型

RoBERTa(Robustly Optimized BERT Pretraining Approach)

  • 中文解释:鲁棒优化 BERT 预训练方法。

  • 旨在解决BERT在训练程度上不充分问题,以提升预训练语言模型的性能

  • 在BERT的基础上采用:更大数据集、更长的训练时间、更细致的超参数调整

(1) RoBERTa 模型结构

RoBERTa 在结构上与BERT基本一致,基于多层堆叠的编码模块,每个编码 模块包含多头自注意力模块和全连接前馈模块。RoBERTa同样有两个版本,分别 是RoBERTa-Base和RoBERTa-Large。

RoBERTa-Base与BERT-Base对标,RoBERTa-Large 则与BERT-Large 对标。

(2) RoBERTa 预训练方式

RoBERTa 移除了 BERT 中的下文预测任务,并将 BERT 原生的静态掩码语言建模任务更改为动态掩码语言建模

具体而言,

BERT 在数据预处理期间对句子进行掩码,随后在每个训练epoch(一次完整训练过程)中,掩码位置不再变化。

而RoBERTa则将训练数据复制成10个副本,分别进行掩码。

在同样训练40个epoch 的前提下,BERT在其静态掩码后的文本上训练了40次,而RoBERTa将 10 个不同掩码后的副本分别训练了4次。从而增加模型训练的多样性,有助于模型学习到更丰富的上下文信息。

这些改进使得RoBERTa在理解上下文和处理长文本方面表现出色,尤其在捕捉细微的语义差异和上下文依赖性方面。

2)ALBERT 语言模型

ALBERT(A Lite BERT):轻量级 BERT 模型

  • 旨在通过参数共享和嵌入分解技术来减少模型的参数量和内存占用,从而提高训练和推理效率

  • 通过参数因子分解技术跨层参数共享技术显著减少了参数的数量。

(1) ALBERT 模型结构

ALBERT的结构与BERT以及RoBERTa都类似,由多层堆叠的编码模块组成。

但是ALBERT通过参数因子分解以及跨层参数共享,在相同的模型架构下,显著减少了模型的参数量。

参数因子分解:

在BERT 中:

  • Embedding 层的输出向量维度 E 与隐藏层的向量维度H 是一致的,这意味着Embedding 层的输出直接用作后续编码模块的输入。

  • 具体来说, BERT-Base 模型对应的词表大小V 为3,0000左右,并且其隐藏层的向量维度H设置为768。因此,BERT的Embedding层需要的参数数量是V ×H,大约为2,304万。

ALBERT中:

  • 将Embedding层的矩阵先进行分解,将词表对应的独热编码向量通过一个低维的投影层下投影至维度E,再将其上投影回隐藏状态的维度H。

  • 具体来说,ALBERT选择了一个较小的Embedding层维度,例如128,并将 参数数量拆解为V ×E+E×H。按照这个设计,ALBERT的Embedding层大约 需要394万个参数

跨层参数共享:

以经典的 BERT-Base 模型为例,模型中共有 12 层相同架构的编码模块,所有 Transformer 块的参数都是独立训练的。

ALBERT 为了降低模型的参数量,提出了跨层参数共享机制,只学习第一层编码模块的参数,并将其直接共享给其他所有层。

该机制一定程度上牺牲了模型性能,但显著提升了参数存储空间的压缩比, 从而实现更高效的资源利用。

ALBERT 共提出了四个版本的模型:

  • 分别是 ALBERT-Base、ALBERT-Large、ALBERT-XLarge 以及 ALBERT-XXLarge。

  • ALBERT-Base 与 BERT-Base 对标,ALBERT Large 与 BERT-Large 对标,剩余两个更大。

(2) ALBERT 预训练方式

ALBERT 使用与 BERT 一致的数据集来进行预训练,即小说数据集 BookCorpus及英语维基百科数据集。

在预训练任务的选择上:

  • ALBERT 保留了 BERT 中的掩码语言建模任务,

  • 并将下文预测任务替换为句序预测(Sentence Order Prediction, SOP),如图所示。

图 2.8: ALBERT 句序预测任务。
在这里插入图片描述

具体而言,ALBERT 从文本中选择连续的两个句子,将这两个句子直接拼接起来,或是先将这两个句子的顺序翻转后再进行拼接,并将拼接后的内容作为输入样本,而模型需要预测该样本中 的两个句子是正序还是反序。

与 BERT 相比,ALBERT 通过创新的参数共享和参数因子分解技术,在较好 地保持原有性能的同时显著减少了模型的参数数量,这使得它在资源受限的环境 中更加实用,处理大规模数据集和复杂任务时更高效,并降低了模型部署和维护 的成本。

3)ELECTRA 语言模型

ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)

  • 中文解释:高效地学习一个能够准确分类Token替换的编码器。

  • 旨在解决大规模预训练语言模型中的效率和可扩展性问题。

  • 通过使用生成器-判别器架构,ELECTRA 能高效利用预训练数据,提高模型在下游任务中的表现。

(1) ELECTRA 预训练方式

在模型结构上,ELECTRA 在 BERT 原有的掩码语言建模基础上结合了生成对抗网络(Generative Adversarial Network, GAN)的思想,采用了一种生成器-判别器结构

  • 生成器(Generator):能进行掩码预测的模型(如BERT),负责将掩码后的文本恢复原状。

  • 判别器(Discriminator):则使用替换词检测(Replaced Token Detection, RTD)预训练任务,检测生成器输出的内容中的每个 Token 是否是原文中的内容。

其完整的流程如图所示。

图 2.9: ELECTRA 预训练任务。
在这里插入图片描述

(2) ELECTRA 模型结构

根据生成器与判别器的不同规模,ELECTRA 共提出了三个版本的模型,分别 是 ELECTRA-Small、ELECTRA-Base 以及 ELECTRA-Large。

其中,ELECTRA-Small 和 ELECTRA-Base 使用与 BERT 一致的数据集来进行预训练,而 ELECTRA-Large 则使用了更多样化的训练数据,从而帮助模型学习更广泛的语言表示。

另外,在 BERT 中,只有 15% 的固定比例 Token 被掩码,模型训练的内容也仅限于这 15% 的 Token。

但在 ELECTRA 中,判别器会判断生成器输出的所有 Token 是否被替换过,因此能更好地学习文本的上下文嵌入。


Encoder-only 架构的语言模型小结:

上述基于 Encoder-only 架构的大语言模型在文本分类、情感分析等多个自然语言处理任务中取得了良好效果。表2.1从模型参数量及预训练语料等方面对上述模型进行总结。

表 2.1: Encoder-only 架构代表模型参数和语料大小表。

模型发布时间参数量(亿)语料规模预训练任务
BERT2018.101.1, 3.4约 15GBMLM+NSP
RoBERTa2019.071.2, 3.5160GBDynamic MLM
ALBERT2019.090.12, 0.18, 0.6, 2.2约 15GBMLM+SOP
ELECTRA2020.030.28, 2.2, 6.6约 20-200GBRTD

可以看出这些经典模型参数大小止步于 6.6 亿,预训练任务也主要服务于自然语言理解。这些模型没有继续寻求参数量上的突破,并且通常只专注于判别任务,难以应对生成式任务,因此在当前愈发热门的生成式人工智能领域中可以发挥的作用相对有限。

.


其他参考:【大模型基础_毛玉仁】系列文章


声明:资源可能存在第三方来源,若有侵权请联系删除!

相关文章:

【大模型基础_毛玉仁】2.3 基于 Encoder-only 架构的大语言模型

更多内容:XiaoJ的知识星球 目录 2.3 基于Encoder-only 架构的大语言模型2.3.1 Encoder-only 架构2.3.2 BERT 语言模型1)BERT 模型结构2)BERT 预训练方式3)BERT 下游任务 2.3.3 BERT 衍生语言模型1)RoBERTa 语言模型2&a…...

C# ManualResetEvent‌的高级用法

一、ManualResetEvent 的核心作用‌ ManualResetEvent 是 C# 中用于 ‌线程同步‌ 的类(位于 System.Threading 命名空间),通过信号机制控制线程的等待与执行。其核心功能包括: 阻塞线程‌:调用 WaitOne() 的线程会等…...

Language Models are Few-Shot Learners,GPT-3详细讲解

GPT的训练范式:预训练Fine-Tuning GPT2的训练范式:预训练Prompt predict (zero-shot learning) GPT3的训练范式:预训练Prompt predict (few-shot learning) GPT2的性能太差,新意高&…...

js 给元素添加点击事件的方法

在 JavaScript 里&#xff0c;为元素添加点击事件有多种方法&#xff0c;下面为你介绍三种常见的方式。 1. 使用内联事件处理程序 你可以在 HTML 标签里直接使用 onclick 属性添加点击事件。示例如下&#xff1a; <!DOCTYPE html> <html lang"en"><…...

Linux环境使用jmeter做性能测试

一、安装JDK&#xff0c;版本jdk1.8 1、下载压缩包到/jdk目录下解压 cd /jdk tar -zxvf jdk-8u241-linux-64.tar.gz 2、配置环境变量 在profile文件中末尾新增信息如下所示 vim /etc/profile export JAVA_HOME/usr/local/java/jdk/jdk1.8.0_221 export PATH$PATH:$JAVA_HOM…...

联想台式电脑启动项没有U盘

开机按F12&#xff0c;进入启动设备菜单&#xff0c;发现这里没有识别到插在主机的U盘&#xff1f; 解决方法 1、选上图的Enter Setup或者开机按F2&#xff0c;进入BIOS设置 选择Startup -> Primary Boot Sequence 2、选中“Excludeed from boot order”中U盘所在的一行 …...

单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析

目录 第一点&#xff1a;为什么叫STM32F103C8T6 从资源手册拿到我们的对STM32F103C8T6的资源描述 第二件事情&#xff0c;关心我们的GPIO引脚输出 第三件事情&#xff1a;去找对应外设的说明部分 前言 本文章隶属于项目&#xff1a; Charliechen114514/BetterATK: This is…...

Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request canceled while

英俊潇洒很有才,美丽端庄又大方的人已经点赞收藏&#xff0b;关注了 文章目录 1.ubuntu解决方案2.Windows的解决办法&#xff08;有威劈恩好搞&#xff09;3.其他报错json格式错误下载的镜像有问题 最后 1.ubuntu解决方案 报错如图&#xff1a;timeout Error response from da…...

yolo模型学习笔记——1——物体检测评估指标

1.置信度 表示模型预测的边界框中存在目标物体的概率以及反应预测框和真实框的定位质量 2.阈值 (1)定义 决定一个预测框是否被视为为正类的关键参数&#xff0c;通过调整不同的阈值&#xff0c;获得不同的精度和召回率。yolo模型会为每个预测框生成一个置信度分数&#xff0c…...

Elasticsearch 滚动索引(Rollover Index)详解

文章目录 1、滚动索引的作用2、滚动索引的用法2.1 核心概念2.2 实现步骤 3、适用场景4、与其他技术的结合使用5、案例&#xff1a;日志数据的滚动索引5.1 场景描述5.2 实现步骤 6、示例&#xff1a;结合索引生命周期管理&#xff08;ILM&#xff09;6.1 场景描述6.2 实现步骤 7…...

保持docker内容器一直运行

首先&#xff1a;确保Docker服务配置为开机自启&#xff0c;这样当虚拟机启动时&#xff0c;Docker也会启动&#xff0c;并按照设定的重启策略自动启动相关容器。 sudo systemctl enable docker 创建容器时&#xff1a; 当你使用docker run命令启动容器时&#xff0c;可以添…...

ChatBI 的技术演进与实践挑战:衡石科技如何通过 DeepSeek 实现商业落地

随着人工智能技术的快速发展&#xff0c;ChatBI&#xff08;基于自然语言交互的商业智能&#xff09;逐渐成为企业数据分析领域的热门话题。作为 BI&#xff08;商业智能&#xff09;领域的新形态&#xff0c;ChatBI 通过自然语言处理&#xff08;NLP&#xff09;技术&#xff…...

python-leetcode 55.子集

题目&#xff1a; 给定一个数组nums,数组中的元素互不相同&#xff0c;返回该数组所有可能子集&#xff08;幂集&#xff09; 解集不能包含重复的子集&#xff0c;可以按任意顺序返回解集 方法一&#xff1a;迭代法实现子集枚举 记原序列中元素的总数为 n&#xff0c;原序列…...

在LORA训练中,LORA模型的矩阵的行列是多少

在LORA训练中,LORA模型的矩阵的行列是多少: W n e w = W + α r B A W_{new}=W + \frac{\alpha}{r}BA...

冒泡排序:古老算法中的智慧启示

在计算机科学浩瀚的星空中&#xff0c;排序算法犹如璀璨的星辰&#xff0c;而冒泡排序恰似其中最朴实无华的一颗。这个诞生于计算机发展初期的经典算法&#xff0c;以其简单直观的逻辑原理&#xff0c;成为每个程序员启蒙阶段必经的试炼场。当我们凝视这个看似笨拙的排序方法时…...

基于ssm的电子病历系统(全套)

一、系统架构 前端&#xff1a;jsp | bootstrap | jquery 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven | tomcat | idea 二、代码及数据库 三、功能介绍 01. 登录 02. 主页 03. 管理员-个人中心-修改密码…...

V2X验证

1. 标准和规范验证 欧洲对 DSRC 和 V2X 系统有一系列的标准和规范,主要由 ETSI (European Telecommunications Standards Institute) 和 IEEE 等组织制定。验证通常包括以下标准和规范: ETSI EN 302 571:这是DSRC在欧洲的主要标准,规定了DSRC系统的技术要求和操作条件。ET…...

SpringBoot美发门店管理系统开发与设计

在幽络源&#xff0c;我们致力于为开发者提供优质的技术资源和项目源码。今天&#xff0c;我们为大家分享一款基于SpringBoot开发的美发门店管理系统。该系统功能全面&#xff0c;操作便捷&#xff0c;适合中小型美发门店的管理需求。以下是系统的详细介绍。 系统功能模块 1.…...

Linux内核实时机制28 - RT调度器11 - RT 组调度

Linux内核实时机制28 - RT调度器11 - RT 组调度 相关数据结构 内核中通过static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)函数来判断实时任务运行时间是否超出带宽限制,判断这个运行队列rt_rq的运行时间是否超过了额定的运行时间。而“运行时间”和“额定时间”都…...

R语言——变量

参考资料&#xff1a;学习R 1、类 R中所有变量都有一个类&#xff0c;表明此变量属于什么类型。例如&#xff0c;大部分的数字是numeric类&#xff0c;逻辑值是logical类。其实&#xff0c;因为R没有标量类型&#xff08;scalar type&#xff09;&#xff0c;所以更严格地我说…...

Appium使用文档

Appium旨在支持许多不同平台&#xff08;移动端、网页端、桌面端等&#xff09;的UI自动化。不仅如此&#xff0c;它还旨在支持用不同语言&#xff08;JS、Java、Python等&#xff09;编写的自动化代码。 Appium移动端自动化要求如下&#xff1a; 安装Appium安装UiAutomator2…...

Houdini :《哪吒2》神话与科技碰撞的创新之旅

《哪吒2》&#xff08;即《哪吒之魔童闹海》&#xff09;截止至今日&#xff0c;荣登全球票房榜第五。根据猫眼专业版数据&#xff0c;截至2025年3月15日&#xff0c;《哪吒2》全球累计票房&#xff08;含预售及海外&#xff09;超过150.19亿元&#xff0c;超越《星球大战&…...

单台openEuler24.03 LTS下的开源大数据环境搭建

目录 概述 准备 虚拟机基本设置 关闭及禁用防火墙 修改主机名 静态ip 映射主机名 创建普通用户 SSH免密登录 目录准备 安装Java 下载Java 解压 设置环境变量 安装Hadoop 下载hadoop 解压 设置环境变量 查看版本 配置hadoop 配置hadoop_env.sh 配置core-s…...

HarmonyOS开发,深拷贝、浅拷贝的封装和调用

在 HarmonyOS 开发中&#xff0c;实现深拷贝和浅拷贝可以通过封装工具类来完成。下面分别介绍浅拷贝和深拷贝的实现方式&#xff0c;并将它们封装成一个工具类。 浅拷贝和深拷贝的区别 浅拷贝&#xff1a;创建一个新对象&#xff0c;新对象的属性引用原始对象的属性。也就是说…...

C 环境设置指南

C 环境设置指南 引言 C语言作为一种历史悠久且功能强大的编程语言,在软件开发和系统编程领域占有举足轻重的地位。C语言环境设置是进行C语言编程的第一步,也是确保编程顺利进行的关键。本文将详细介绍C语言环境的设置过程,包括系统要求、开发工具的选择、环境变量的配置等…...

2018年全国职业院校技能大赛高职组-计算机网络应用竞赛竞赛样题E卷

目录 总体规划 模块二:设备基础信息配置 模块三:网络搭建与网络冗余备份方案部署 模块四:移动互联网搭建与网优 模块五:出口安全防护与远程接入 总体规划 医院在进行网络部分信息化建设方案设计过程中,需要保证医院、血液中心通过社保网进行互连互通,同时满足献血中心与医…...

大华HTTP协议在智联视频超融合平台中的接入方法

一. 大华HTTP协议介绍 大华HTTP协议是大华股份&#xff08;Dahua Technology&#xff09;为其安防监控设备开发的一套基于HTTP/HTTPS的通信协议&#xff0c;主要用于设备与客户端&#xff08;如PC、手机、服务器&#xff09;之间的数据交互。该协议支持设备管理、视频流获取、…...

Dify Docker 私有化部署遇到的问题

Dify 版本为1.01&#xff0c;本地使用 docker desktop&#xff0c;版本为4.38.0 (181591)&#xff0c;以下是Dify部署及使用过程中遇到的问题&#xff0c;后续持续更新... db无法启动&#xff0c;一直提示&#xff1a;Permissions should be urwx (0700) or urwx,grx (0750).具…...

Python学习第十九天

Django-分页 后端分页 Django提供了Paginator类来实现后端分页。Paginator类可以将一个查询集&#xff08;QuerySet&#xff09;分成多个页面&#xff0c;每个页面包含指定数量的对象。 from django.shortcuts import render, redirect, get_object_or_404 from .models impo…...

大数据技术链路详解

随着大数据技术的不断发展&#xff0c;各种新兴技术层出不穷&#xff0c;今天我们就来详细拆解一条完整的大数据链路&#xff0c;看看每个环节都有哪些最新技术参与&#xff0c;以及它们如何发挥作用。 一、数据采集层 在大数据处理的第一步&#xff0c;数据采集至关重要。现代…...

vue computed 计算属性简述

Vue 的 ‌计算属性&#xff08;Computed Properties&#xff09;‌ 是 Vue 实例中一种特殊的属性&#xff0c;用于‌声明式地定义依赖其他数据动态计算得出的值‌。它的核心优势在于能够自动追踪依赖关系&#xff0c;并缓存计算结果&#xff0c;避免重复计算&#xff0c;提升性…...

365天之第P10周:Pytorch实现车牌识别

365天之第P10周&#xff1a;Pytorch实现车牌识别 Pytorch实现车牌识别 365天之第P10周&#xff1a;Pytorch实现车牌识别一、导入数据1.获取类别名2. 数据可视化3. 标签数字化4. 加载数据文件5. 划分数据 二、自建模型三、 训练模型1. 优化器与损失函数2. 模型训练 四、 结果分析…...

【Docker】-Docker Compose+Dockerfile最佳实践

最佳实践 在实际生产环境中&#xff0c;Docker Compose Dockerfile 的最佳实践通常包括以下几部分&#xff1a; 使用 Dockerfile 构建微服务镜像使用 docker-compose.yml 管理多个微服务使用 volumes 进行数据持久化使用 networks 进行服务间通信使用 depends_on 确保依赖服…...

TSB - AD 解读 — 迈向可靠、透明的 TSAD 任务

目录 一 文章动机 二 TSAD 领域内的两类缺陷 三 数据集的构建 四 实验结果及结论 项目宣传链接&#xff1a;TSB-AD 代码链接&#xff1a; TheDatumOrg/TSB-AD: TSB-AD: Towards A Reliable Time-Series Anomaly Detection Benchmark 原作者解读&#xff1a;NeurIPS 2…...

Linux 入门:权限的认识和学习

目录 一.shell命令以及运行原理 二.Linux权限的概念 1.Linux下两种用户 cannot open directory .: Permission denied 问题 2.Linux权限管理 1).是什么 2).为什么&#xff08;权限角色目标权限属性&#xff09; 3).文件访问者的分类&#xff08;角色&#xff09; 4).文…...

多任务学习与持续学习微调:深入探索大型语言模型的性能与适应性

引言 大型语言模型&#xff08;LLMs&#xff09;的出现极大地推动了自然语言处理领域的发展。为了使其在各种特定任务和动态环境中表现出色&#xff0c;微调技术至关重要。本节将深入探讨多任务学习&#xff08;Multi-task Learning, MTL&#xff09;和持续学习&#xff08;Co…...

Cocos Creator Shader入门实战(四):预处理宏定义和Chunk

引擎&#xff1a; 3.8.5 您好&#xff0c;我是鹤九日&#xff01; 回顾 学习Shader&#xff0c;前期是让人烦躁无味的&#xff0c;后期可能就是各种的逻辑让人抓耳挠腮。 一成不变的内容&#xff1a;遵循引擎设定的规则&#xff0c;理解引擎要求的规范。 这里&#xff0c;简单…...

[蓝桥杯 2023 省 B] 飞机降落

[蓝桥杯 2023 省 B] 飞机降落 题目描述 N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti​ 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 D i D_{i} Di​ 个单位时间&#xff0c;即它最早可以于 T i T_{i} Ti​ 时刻…...

STAR Decomposition 一种针对极端事件的信号分解方法 论文精读加复现

STAR 分解&#x1f680; 在时序预测任务中&#xff0c;为了情绪化信号的各种成分&#xff0c;例如趋势信息季节信息等往往都需要对信号进行分解。目前熟知的分解方式有很多种&#xff0c;经验模态分解 EMD 变分模态分解 VMD &#xff0c;还有 集合经验模态分解 EEMD&#xff0c…...

matlab中如何集成使用python

在 MATLAB 中集成使用 Python 可以通过调用 Python 脚本或函数来实现。MATLAB 提供了 py 模块来直接调用 Python 代码。以下是一个简单的示例&#xff0c;展示如何在 MATLAB 中调用 Python 函数。 示例&#xff1a;在 MATLAB 中调用 Python 函数 1. 编写 Python 函数 首先&a…...

使用matlab求伴随矩阵

已知三阶方阵&#xff1a; 计算行列式det 计算逆矩阵inv 如何det不等于0&#xff0c;伴随矩阵 行列式det*逆矩阵inv >> A[1 0 0;1 1 -1;-2 0 3]A 1 0 01 1 -1-2 0 3>> det(A)ans 3>> >> A_invinv(A)A_inv 1.0000 …...

音视频处理的“瑞士军刀”与“积木”:FFmpeg 与 GStreamer 的深度揭秘

一、发展历史与生态演进对比 FFmpeg的成长轨迹 诞生背景&#xff1a;2000年由Fabrice Bellard创建&#xff0c;最初为解决视频编码标准化问题而生。早期版本仅支持MPEG-1编码&#xff0c;但凭借开源社区协作&#xff0c;迅速扩展为全格式编解码工具。技术扩张&#xff1a;2004年…...

Debezium日常分享系列之:Debezium 3.1.0.Beta1发布

Debezium日常分享系列之&#xff1a;Debezium 3.1.0.Beta1发布 新特性和改进Debezium 平台的首次发布Percona 的最小锁定新的 Oracle 源信息 SCN 和时间戳字段Vitess Epoch/零日期列解析的变化Vitess 二进制排序的 tiny、medium 和 long 文本列的变化CloudEvent traceparent 支…...

智能汽车图像及视频处理方案,支持视频智能剪辑能力

在智能科技日新月异的今天&#xff0c;汽车已不仅仅是代步工具&#xff0c;它们正逐步进化为集出行、娱乐、生活于一体的智能移动空间。在这场汽车行业的智能化变革中&#xff0c;美摄科技以其卓越的智能汽车图像及视频处理方案&#xff0c;引领了一场前所未有的视觉盛宴&#…...

《从零手写Linux Shell:详解进程控制、环境变量与内建命令实现 --- 持续更新》

承接上文Linux 进程的创建、终止、等待与程序替换保姆级讲解-CSDN博客&#xff0c;涉及所用到的代码&#xff0c;本文所绑定的资源就是上篇文章的主要代码。 完整代码在文章末尾 目录 1.实现编写代码输出一个命令行 a.如何获取自己的用户名&#xff0c;主机名&#xff0c;路径…...

postgresql 高版本pgsql备份在低版本pgsql中恢复失败,报错:“unsupported version”

关键字 PostgreSQL、pg_restore、版本兼容性、数据库迁移、pg_dump、备份恢复、unsupported version in file header 背景环境 系统配置 环境类型操作系统PostgreSQL版本内存工具链测试环境Windows 111616GBNavicat/PgAdmin生产环境Windows Server 2012 R2128GBPgAdmin/命令…...

裸机开发-GPIO外设

重新开始学ZYNQ开发&#xff0c;学完上linux系统 基础知识&#xff1a;ZYNQ 的三种GPIO &#xff1a;MIO、EMIO、AXI - FPGA/ASIC技术 - 电子发烧友网 GPIO是ZYNQ PS端的一个IO外设&#xff0c;用于观测&#xff08;input&#xff09;和控制&#xff08;output&#xff09;器…...

STM32——独立看门狗(IWDG)

IWDG 简介 独立看门狗本质上是一个 定时器 &#xff0c;这个定时器有一个输出端&#xff0c;可以输出复位信号。该定时器是一个 12 位的递减计数器 &#xff0c;当计数器的值减到 0 的时候&#xff0c;就会产生一个复位信号。如果 在计 数没减到 0 之前&#xff0c;重置计…...

使用STM32CubeMX+DMA+空闲中断实现串口接收和发送数据(STM32G070CBT6)

1.STM32CubeMX配置 &#xff08;1&#xff09;配置SYS &#xff08;2&#xff09;配置RCC &#xff08;3&#xff09;配置串口&#xff0c;此处我用的是串口4&#xff0c;其他串口也是一样的 &#xff08;4&#xff09;配置DMA&#xff0c;将串口4的TX和RX添加到DMA中 &#…...

连续出现的字符(信息学奥赛一本通-1148)

【题目描述】 给定一个字符串&#xff0c;在字符串中找到第一个连续出现至少k次的字符。 【输入】 第一行包含一个正整数k&#xff0c;表示至少需要连续出现的次数。1 ≤ k ≤ 1000。 第二行包含需要查找的字符串。字符串长度在1到2500之间&#xff0c;且不包含任何空白符。 【…...