【论文解读系列】Blip-2:引导语言图像预训练具有冻结图像编码器和大型语言模型

news2024/11/17 13:48:30

Blip-2

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

BLIP-2:引导语言图像预训练具有冻结图像编码器和大型语言模型

(0) 总结&实测

总结:blip-2 最大的贡献在于,提出了一种新的视觉语言预训练范式,使得视觉语言预训练模型可以无须端到端地训练即可得到SOTA性能,极大节约了训练成本。但是正如limitation中所述,他们的模型还不支持上下文的视觉引导对话(比如前文讲了 一只猫在汽车上的图片+“猫准备做什么” -> 后文又想接着上文问如果这只猫跑下车来,车子会发生什么状态?),未来需要专门针对这种模型构建视觉序列匹配的数据集Flamingo论文中的(但是未开源)

总体看下来,这个模型关键点就是引入的Q-Transformer,采用了三个损失函数:图文对比损失 (image-text contrastive loss);图文匹配损失 (image-text matching loss);图文生成损失 (image-Grounded Text Generation)。其中图文匹配损失图文生成损失之间的 自注意力层 信息是交互的,使得LLM模型和视觉编码模型可以很好地融合。此外,额外引入的图文对比损失则可以提升特征表示的判别性(图文对比损失通过鼓励相似样本的特征表示彼此靠近,帮助模型学习到区分不同类别的鉴别性特征。这有助于提高模型在相似性度量任务中的性能。)消融实验(4-1)中也提到了,表征学习很重要,极大减轻图文生成的负担。

对于三种损失的总结,这里直接引用原文的总结,即:ITC和ITM损失(图像文本对比学习(ITC);图像文本匹配(ITM))对于图像-文本检索至关重要,因为它们直接学习图像-文本相似度。在表6中,我们展示了ITG(基于图像的文本生成)损失也有利于图像文本检索。这个结果支持我们在设计表示学习目标时的直觉:ITG损失强制查询提取与文本最相关的视觉特征,从而提高视觉语言一致性
b8b431503ff498246b38199a2b366e7

泛化性很强;模型针对中文数据库还可以再优化;文字生成的长度不长(虽然文章中说限制长度更符合人类直接,但是模型很多信息也无法输出更完美)

image-20230616224339139

(1) 摘要

由于大规模模型的端到端训练成本不断增加,视觉和语言预训练的成本已经越来越高。本文提出了BLIP-2,一种通用且高效的预训练策略,它可以从现成的冻结预训练图像编码器和冻结大型语言模型中引导视觉-语言预训练。BLIP-2通过一个轻量级的Querying Transformer来弥合模态差距,并在两个阶段进行预训练。第一个阶段从冻结图像编码器引导视觉-语言表示学习。第二个阶段从冻结语言模型中引导视觉-语言生成学习。尽管比现有方法具有显著较少的可训练参数,但BLIP-2在各种视觉-语言任务上实现了最先进的性能。例如,在零样本VQAv2上,我们的模型比Flamingo80B使用54倍的可训练参数表现提高了8.7%。我们还展示了该模型通过零样本图像到文本生成具有跟随自然语言指令的新兴能力。

image-20230615221151977

**图1所示:**BLIP-2框架概述。我们按照两阶段策略对轻量级查询转换器进行预训练,以弥合模态差距。第一阶段从固定图像编码器中引导视觉语言表示学习。第二阶段从冻结的LLM中引导视觉到语言的生成学习,它支持零样本指示图像-文本生成(参见图4以获得更多示例)。

(2) 相关工作

(2-1) 端到端视觉语言预训练

视觉语言预训练旨在学习多模态基础模型,提高其在各种视觉语言任务中的表现。根据下游任务的不同,提出了不同的模型架构,包括双编码器架构(Radford等人,2021;Jia等人,2021),融合编码器架构(Tan & Bansal, 2019;Li et al, 2021),编码器-解码器架构(Cho et al, 2021;Wang等,2021b;Chen等人,2022b),以及最近的统一变压器架构(Li等人,2022;Wang et al ., 2022b)。多年来,各种预训练目标也被提出,并逐渐收敛为几个经过时间考验的目标:图像-文本对比学习(Radford等人,2021;Yao等,2022;Li et al ., 2021;2022),图像-文本匹配(Li et al ., 2021;2022;Wang et al ., 2021a)和(掩码)语言建模(Li et al ., 2021;2022;Yu et al ., 2022;Wang et al ., 2022b)。

大多数VLP方法使用大规模图像-文本对数据集执行端到端预训练。随着模型规模的不断增大,预训练的计算成本会非常高。此外,对于端到端预训练模型来说,利用llm等现成的单模预训练模型是不灵活的(Brown等人,2020;Zhang等,2022;Chung et al ., 2022)。

(2-2) 模块化视觉语言预训练

与我们更相似的是利用现成的预训练模型并在VLP期间保持冻结的方法。一些方法冻结了图像编码器,包括早期的工作采用冻结对象检测器提取视觉特征(Chen et al ., 2020;Li et al ., 2020;Zhang等人,2021),以及最近使用冻结预训练图像编码器进行CLIP预训练的LiT (Zhai等人,2022)(Radford等人,2021)。一些方法冻结语言模型,将LLMs的知识用于视觉到语言的生成任务(Tsimpoukelli等人,2021;Alayrac等,2022;Chen et al ., 2022a;Manas等人,2023;Tiong et al, 2022;郭等人,2022)。使用冻结LLM的关键挑战是将视觉特征与文本空间对齐。为了实现这一点,Frozen (Tsimpoukelli等人,2021)微调了一个图像编码器,其输出直接用作LLM的软提示。Flamingo (Alayrac et al, 2022)在LLM中插入新的交叉注意层以注入视觉特征,并在数十亿对图像-文本对上对新层进行预训练。这两种方法都采用了语言建模损失,语言模型根据图像条件生成文本

与现有方法不同,BLIP-2可以有效地利用冻结图像编码器和冻结llm来完成各种视觉语言任务,以更低的计算成本获得更强的性能。

(3) 模型细读

image-20230615232958434

图2 (左)Q-Former和BLIP-2第一阶段视觉语言表征学习目标的模型架构。我们共同优化了三个目标,这些目标强制执行查询(一组可学习的嵌入)以提取与文本最相关的视觉表示。(右)每个目标的自注意掩蔽策略来控制查询-文本交互。

(3-1) 总结

为了实现与冻结单峰模型的有效视觉语言对齐,我们提出了一个使用新的两阶段预训练策略进行预训练的查询转换器(QFormer)。如图1所示,Q-Former是一个轻量级的转换器,它使用一组可学习的查询向量从冻结的图像编码器中提取视觉特征。它充当冻结图像编码器和冻结LLM之间的信息瓶颈,为LLM输出所需文本提供最有用的视觉特征

在第一个预训练阶段,我们执行视觉语言表征学习,强制Q-Former学习与文本最相关的视觉表征。在第二个预训练阶段,我们通过将Q-Former的输出连接到一个冻结的LLM来执行视觉到语言的生成学习,并训练Q-Former,使其输出的视觉表示可以被LLM解释

(3-2) 贡献点

(1)BLIP-2有效地利用了冻结的预训练图像模型和语言模型。我们使用在两个阶段预训练的Q-Former来弥合模态差距: 表征学习阶段生成学习阶段。BLIP-2在各种视觉语言任务上实现了最先进的性能,包括视觉问答、图像字幕和图像文本检索。

(2)在llm(例如OPT (Zhang等人,2022),FlanT5 (Chung等人,2022))的支持下,可以提示BLIP-2执行遵循自然语言指令的零样本图像到文本生成,从而实现诸如视觉知识推理,视觉对话等新兴功能(参见图4示例)。

(3)由于使用了冷冻单峰模型和轻型Q-Former, BLIP-2比现有的最先进的计算效率更高。例如,在零射击VQAv2上,BLIP-2比Flamingo (Alayrac et al, 2022)的性能高出8.7%,同时使用的可训练参数减少了54%。此外,我们的研究结果表明,BLIP-2是一种通用方法,可以获得更先进的单峰模型,以获得更好的VLP性能。

(3-3) 模型结构

我们提出了一种新的视觉语言预训练方法BLIP-2,它从冻结的预训练单峰模型中启动。为了弥合模态差距,我们提出了一个分两个阶段预训练的查询转换器(Q-Former):(1)使用冻结图像编码器的视觉语言表示学习阶段和 (2)使用冻结LLM的视觉到语言生成学习阶段。本节首先介绍Q-Former的模型架构,然后描述两阶段的预训练过程。

我们提出Q-Former作为可训练模块,以弥合冻结图像编码器和冻结LLM之间的差距。它从图像编码器中提取固定数量的输出特征,与输入图像分辨率无关。如图2所示,Q-Former由两个转换器子模块组成,它们共享相同的自关注层:(1)与冻结图像编码器交互以提取视觉特征的图像转换器,(2)既可以作为文本编码器又可以作为文本解码器的文本转换器

我们创建了一组可学习的查询嵌入作为图像转换器的输入。查询通过自关注层相互交互,并通过交叉关注层 (每隔一个转换块插入)与冻结的图像特征交互。查询还可以通过相同的自关注层与文本交互。根据预训练任务的不同,我们应用不同的自注意掩码来控制查询-文本交互。我们使用BERTbase的预训练权重初始化QFormer (Devlin et al ., 2019),而交叉注意层是随机初始化的。Q-Former共包含188M个参数。

查询通过自关注层相互交互,并通过交叉关注层(每隔一个转换块插入)与冻结的图像特征交互。查询还可以通过相同的自关注层与文本交互。根据预训练任务的不同,我们应用不同的自注意掩码来控制查询-文本交互。我们使用BERTbase的预训练权重初始化QFormer (Devlin et al ., 2019),而交叉注意层是随机初始化的。Q-Former共包含188M个参数。注意,查询被视为模型参数。

在我们的实验中,我们使用32个查询,其中每个查询的维度为768(与Q-Former的隐藏维度相同)。我们使用Z表示输出查询表示。Z的大小(32 × 768)远远小于冻结图像特征的大小(例如viti - l /14的257 × 1024)。这个瓶颈架构与我们的预训练目标一起工作,迫使查询提取与文本最相关的视觉信息。

(3-4) 基于冻结LLM的Bootstrap视觉到语言生成学习

在生成预训练阶段,我们将QFormer(附带冻结图像编码器)连接到冻结的LLM,以获取LLM的生成语言能力。如图3所示,我们使用一个全连接(FC)层将输出查询嵌入Z线性投影到与LLM的文本嵌入相同的维度中。然后将投影的查询嵌入添加到输入文本嵌入中。它们作为软视觉提示,对由Q-Former提取的视觉表示进行条件约束。由于Q-Former已被预先训练以提取语言信息的视觉表示,因此它有效地充当信息瓶颈,为LLM提供最有用的信息,同时删除无关的视觉信息。这减少了LLM学习视觉语言一致性的负担,从而减轻了灾难性遗忘问题。 Bootstrapping: 引导

我们实验了两种类型的llm:基于解码器的llm基于编码器-解码器的llm。对于基于解码器的LLM,我们使用语言建模损失进行预训练,其中冻结的LLM的任务是根据Q-Former的视觉表示生成文本。对于基于编码器-解码器的llm,我们使用前缀语言建模损失进行预训练,其中我们将文本分成两部分。前缀文本与可视化表示相连接,作为LLM编码器的输入。后缀文本用作LLM解码器的生成目标

1686889810950

图3 BLIP-2的第二阶段视觉到语言生成预训练,它从冻结的大型语言模型(llm)中启动。(上) 引导基于解码器的LLM(如OPT)。(下) 引导基于编码器-解码器的LLM(例如FlanT5)。全连接层从Q-Former的输出维度适应所选LLM的输入维度。

(1)模型预训练

我们使用与BLIP相同的预训练数据集,总共有1.29亿张图像,包括COCO (Lin等人,2014)、Visual Genome (Krishna等人,2017)、CC3M (Sharma等人,2018)、CC12M (Changpinyo等人,2021)、SBU (Ordonez等人,2011)和来自LAION400M数据集的1.15亿张图像(Schuhmann等人,2021)。我们采用CapFilt方法(Li et al, 2022)为web图像创建合成字幕。具体来说,我们使用blipllarge字幕模型生成了10个字幕,并根据CLIP vitl /14模型产生的图像-文本相似性将合成字幕与原始网页字幕进行排序。我们将每张图像的前两个标题作为训练数据,并在每个预训练步骤随机抽取一个

(2)预训练图像编码器和LLM

对于冻结图像编码器,我们探索了两种最先进的预训练视觉转换器模型: (1)来自CLIP的viti - l /14 (Radford等人,2021)和(2)来自EVA-CLIP的viti -g/14 (Fang等人,2022)。我们删除了ViT的最后一层,并使用最后一层的输出特征,这导致性能稍微好一些。对于冻结语言模型,我们探索了基于解码器的非监督训练OPT模型族(Zhang et al ., 2022)和基于编码器-解码器的FlanT5模型族(Chung et al ., 2022)。

(3)预训练图像编码器和LLM

我们在第一阶段预训练250k步,在第二阶段预训练80k步。我们在第一阶段使用2320/1680批量生产viti - l / viti -g,在第二阶段使用1920/1520批量生产OPT/FlanT5。在预训练期间,我们将冻结的ViTs和llm参数转换为FP16,除了FlanT5,我们使用BFloat16。与使用32位模型相比,我们没有发现性能下降。由于使用了冻结模型,我们的预训练比现有的大规模VLP方法更具计算友好性。例如,使用一台16-A100(40G)的机器,我们最大的型号使用viti -g和FlanT5-XXL,第一阶段需要不到6天,第二阶段需要不到3天。

所有模型都使用相同的预训练超参数集。我们使用AdamW (Loshchilov & Hutter, 2017)优化器,其中β1 = 0:9, β1 = 0:98,权重衰减为0.05。我们使用余弦学习率衰减,峰值学习率为1e-4,线性热身为2k步。第二阶段的最低学习率为5e-5。我们使用大小为224×224的图像,增强了随机调整大小的裁剪和水平翻转。

image-20230616213609274

图4 使用BLIP-2模型w/ vitg和FlanT5XXL进行指导的零镜头图像到文本生成的示例,其中它显示了广泛的功能,包括视觉对话,视觉知识推理,视觉常识推理,讲故事,个性化图像到文本生成等。

(4) 实验评价

表1 概述了BLIP-2在各种零射击视觉语言任务中的表现。与之前最先进的模型相比,BLIP-2在视觉语言预训练过程中需要的可训练参数数量大大减少,从而提高了性能。

表1 各种零样本视觉语言任务的BLIP-2结果综述。与以前最先进的模型相比。在视觉语言预训练中,BLIP-2在需要最少可训练参数的情况下实现了最高的零样本学习性能。

image-20230616214248469

表2 零样本学习视觉答题方法与最新方法的比较。

image-20230616214432471

(4-1) Instructed Zero-shot Image-to-Text Generation

BLIP-2有效地使LLM能够理解图像,同时保留其在以下文本提示中的能力,这使我们能够用指令控制图像到文本的生成。我们只需将文本提示附加在可视提示之后,作为LLM的输入。图4展示了一些示例,这些示例展示了广泛的零图像到文本功能,包括视觉知识推理、视觉常识推理、视觉对话、个性化图像到文本生成等。

(A)Zero-shot VQA

我们对零样本视觉问答任务进行定量评价。对于OPT模型,我们使用“Question: fg Answer:”提示符。对于FlanT5模型,我们使用提示符“Question: fg Short answer:”。在生成过程中,我们使用波束搜索,波束宽度为5。我们还将长度惩罚设置为-1,以鼓励更短的答案,更符合人类注释。

如表2所示。BLIP-2在VQAv2 (Goyal等人,2017)和GQA (Hudson & Manning, 2019)数据集上取得了最先进的结果。它在VQAv2上的性能比Flamingo80B高出8.7%,尽管可训练参数减少了54倍。在OK-VQA (Marino et al, 2019)数据集上,BLIP-2次于Flamingo80B。我们假设这是因为k - vqa更关注开放世界知识而不是视觉理解,并且来自Flamingo80B的70B Chinchilla (Hoffmann et al, 2022)语言模型比11B FlanT5XXL拥有更多的知识。

我们从表2中得出了一个有希望的观察结果:更强的图像编码器或更强的LLM都能带来更好的性能。这一观察结果得到了几个事实的支持:(1)viti -g在OPT和FlanT5上都优于viti - l。(2)在同一LLM家族中,较大的模型优于较小的模型。(3)指令调优LLM FlanT5在VQA上优于无监督训练的OPT。这一观察结果验证了BLIP-2作为一种通用的视觉语言预训练方法,可以有效地收获视觉和自然语言社区的快速进展。

(B)Effect of Vision-Language Representation Learning

第一阶段表征学习预训练QFormer学习与文本相关的视觉特征,减少了LLM学习视觉语言对齐的负担。QFormer没有表征学习阶段,仅依靠视觉到语言的生成学习来弥合模态差距,类似于Flamingo中的percepver Resampler。图5展示了表征学习对生成学习的影响。没有表示学习,这两种llm在零射击VQA上的性能都明显较低。特别是,OPT患有灾难性遗忘,随着训练的进行,表现会急剧下降。

image-20230616222517338

图5 视觉语言表征学习对视觉语言生成学习的影响。如果没有表示学习,Q-Former无法跨越模态差距,导致零样本VQA的性能显著降低。

(4-2) Image Captioning

我们为图像字幕任务调整了BLIP-2模型,该任务要求模型为图像的视觉内容生成文本描述。我们使用提示“a photo of”作为LLM的初始输入,并训练模型生成具有语言建模损失的标题。我们在微调过程中保持LLM冻结,并与图像编码器一起更新Q-Former的参数。我们用vitg和各种llm进行实验。详细的超参数可以在附录中找到。我们对COCO进行了微调,并对COCO测试集和零射击转移到NoCaps (Agrawal et al, 2019)验证集进行了评估。

结果如表3所示。BLIP-2实现了最先进的性能,在NoCaps方面比现有方法有了显著的改进,对域外图像表现出较强的泛化能力。

image-20230616223143981

表3 NoCaps和COCO字幕上最先进图像字幕方法的比较。所有方法都优化了微调过程中的交叉熵损失。C:苹果酒,S:香料,B@4: BLEU@4。

image-20230616222847505

表4 与最先进的模型进行比较,对视觉问题回答进行了微调。

(4-3) Visual Question Answering

给定带注释的VQA数据,我们在保持LLM冻结的同时微调Q-Former和图像编码器的参数。我们使用开放式答案生成损失进行微调,其中LLM接收Q-Former的输出和问题作为输入,并被要求生成答案。为了提取与问题更相关的图像特征,我们在问题上附加Q-Former条件。具体来说,问题标记作为Q-Former的输入,并通过自关注层与查询交互,这可以引导Q-Former的交叉关注层关注更多信息的图像区域

在BLIP之后,我们的VQA数据包括来自VQAv2的训练和验证分割,以及来自Visual Genome的训练样本。表4展示了开放式生成模型中最先进的BLIP-2结果。

(4-4) Image-Text Retrieval

由于图像-文本检索不涉及语言生成,因此我们直接对第一阶段预训练模型进行微调。具体来说,我们在COCO上使用相同的目标(即ITC, ITM和ITG)对图像编码器和Q-Former进行微调。然后,我们在COCO和Flickr30K (Plummer et al, 2015)数据集上评估图像到文本检索文本到图像检索模型。在推理过程中,我们遵循Li等人(2021;2022),首先根据图像文本特征相似度选择k = 128个候选对象,然后根据成对的ITM分数重新排序。我们用vitl和vitg作为图像编码器进行了实验。详细的超参数可以在附录中找到。

结果如表5所示。BLIP-2实现了最先进的性能,比现有的零拍摄图像文本检索方法有了显著的改进。

image-20230616224515260

表5所示 与最先进的图像-文本检索方法的比较,对COCO进行微调,并将零拍摄转移到Flickr30K。

表6所示 基于图像的文本生成(ITG)损失通过强制查询提取与语言相关的视觉特征来提高图像文本检索性能。

image-20230616225537812

图7 用于VQA调优的模型架构,其中LLM接收Q-Former的输出并将问题作为输入,然后预测答案。我们还将问题作为条件提供给Q-Former,使得提取的图像特征与问题更加相关

ITC和ITM损失(图像文本对比学习(ITC);图像文本匹配(ITM))对于图像-文本检索至关重要,因为它们直接学习图像-文本相似度。在表6中,我们展示了ITG(基于图像的文本生成)损失也有利于图像文本检索。这个结果支持我们在设计表示学习目标时的直觉:ITG损失强制查询提取与文本最相关的视觉特征,从而提高视觉语言一致性

(4-5) Limitation

最近的LLM可以在给定几个例子的情况下进行上下文学习。然而,我们对BLIP-2的实验在为LLM提供上下文中的VQA示例并没有观察到VQA性能的改善。我们将缺乏上下文学习能力归因于我们的预训练数据集,该数据集每个样本只包含单个图像-文本对。llm不能从中学习单个序列中多个图像-文本对之间的相关性。在Flamingo的论文中也报告了相同的观察结果,该论文使用了一个封闭来源的交错图像和文本数据集(M3W),每个序列有多个图像-文本对。我们的目标是在未来的工作中创建一个类似的数据集

由于各种原因,包括来自LLM的不准确的知识,激活不正确的推理路径,或者没有关于新图像内容的最新信息,BLIP-2的图像到文本生成可能会产生不满意的结果(见图7)。此外,由于使用冻结模型,BLIP-2继承了LLM的风险,例如输出攻击性语言,传播社会偏见,或泄露私人信息。补救方法包括使用指令来指导模型的生成或在删除有害内容的过滤数据集上进行训练

21c42a5c72eb5e483d33e721ec6054b

不当言论例子

(4-6) Conclusion

我们提出了一种通用的、计算效率高的视觉语言预训练方法BLIP-2,它利用了冷冻预训练图像编码器llm。在预训练过程中,BLIP-2在具有少量可训练参数的情况下,在各种视觉语言任务上实现了最先进的性能。BLIP-2还展示了零样本指示图像到文本生成的新兴功能。我们认为BLIP-2是构建多模态会话AI代理的重要一步。

image-20230616231341294

blip-2与Diffusion结合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨境电商社交媒体:选择合适的平台

正如您在使用社交媒体的九种方法中了解到的那样,跨境电商优先考虑社交媒体营销可能会更有利可图。有数十个平台可供选择,每个平台都迎合了具有不同兴趣、特征和位置的独特受众。 那么您应该关注哪个社交媒体平台以及如何以最大效率工作? 目…

【Vue全家桶高仿小米商城】——(三)VueCli4.0安装和使用

文章目录 第三章:VueCli4.0安装和使用一、VueCli4.0安装:二、创建Vue项目方式一 使用脚本搭建方式二 使用UI界面搭建 三、安装依赖方式一 Vue脚手架图形界面安装方式二、命令行安装 四、Vue DevTools安装使用两种安装方式: 第三章&#xff1a…

Linux权限解析

一、Linux用户分类 Linux下有两种用户:超级用户(root)、普通用户 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的…

6.6面向对象继承

2. 面向对象特征二:继承(Inheritance) 2.1 继承的概述 说到继承我们会想到什么 在Java面向对象程序设计中的继承,多个类中存在相同属性和行为时,将这些相同的内容抽取到单独一个类(父类)中,然后所有的类继…

【备战秋招】每日一题:4月15日美团春招第二题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第二题-分糖果 在线评测链接:P1236 题目内容 某天,塔子哥去商店买了两种不同口味的糖果,分别买了 a 个和 b 个。当他回到家时,他发现他…

IDE/以glog为例实践CMake-Gui工具使用

文章目录 概述构建glog编译glog.sln解决方案glog的配置项BUILD_SHARED_LIBSBUILD_TESTINGCMAKE_CONFIGURATION_TYPESCMAKE_INSTALL_PREFIXWITH_GTESTGTest_DIRWITH_GFLAGSgflag_DIRPRINT_UNSYMBOLIZED_STACK_TRACESWITH_SYMBOLIZEWITH_FUZZINGWITH_THREADSWITH_TLSWITH_GMOCKWI…

3分钟了解如何做好项目管理和协作

目录 介绍 什么是项目管理 项目管理三要素 时间 成本 质量 项目启动阶段项目启动负责人要了解四个问题 项目规划阶段 任务分解->任务优先级安排->计划呈现->风险控制 快速呈现项目工作计划 项目启动:信息同步任务分工高效 项目跟踪&#xff1a…

实战:用docker-compose容器化springboot项目

文章目录 前言技术积累docker-compose定义docker-compose文件参数docker-compose命令 实战演示1、创建挂载路径2、编写docker-compose.yml3、启动并管理容器 写在最后 前言 前面我们学习和实战了用dockerfile构建镜像,通过镜像可以任意在docker环境容器化部署项目。…

C++静态联编和动态联编

目录 2.1静态联编 2.2动态联编 2.3虚函数面试题 2.3.1构造函数中使用memset函数 2.3.2this指针与虚函数的调用 2.3.3构造析构函数中调用虚函数 2.3.4动态和静态联编与访问属性和默认值 2.3.5动态创建对象时的析构函数 联编是指计算机程序彼此关联的过程,是把…

Fiddler汉化成功

我安装的fiddler 操作系统是:Win10 64Bit 操作系统的版本号是:v5.0.20194.41348 for .NET 4.6.1 fiddler下载地址: 我用夸克网盘分享了「02-Web调试工具-FiddlerSetup.exe」,点击链接即可保存。 链接:https://pan.quar…

什么是项目里程碑?如何为项目成功设置?

高速公路上每隔一公里就有一个标志牌,这表明你需要进一步行驶才能到达目的地的距离。虽然没有这些标志你也可以到达目的地,但它们的存在使你放心,让你确信走在正确的道路上。 项目里程碑在项目管理中也有同样的作用。当你的项目实现目的时&a…

Linux内核学习----整体概览

目录 1、概述 2、核心抽象及设计选型 2.1. 对进程和内核的抽象 2.2. 对进程地址空间的抽象 2.3. 支持可重入可抢占的内核 2.4. 放松管控与努力回收 2.5. 单块结构内核动态加载模块 2.6. 为系统中的一切活动打拍子 2.7. 一切皆文件的理念 3、Linux整体架构模块说明 3.…

对C++中const的说明

对C中const的说明 在C中,const是一个关键字,用于指定对象或变量是只读的,即不可修改。它可以应用于不同的上下文中,包括: 对象和变量声明:通过在变量或对象的声明前加上const关键字,可以将其标…

ACL2022 Document-Level Event Argument Extraction via Optimal Transport

Document-Level Event Argument Extraction via Optimal Transport 论文:https://aclanthology.org/2022.findings-acl.130/ 代码:- 期刊/会议:ACL 2022 摘要 事件论元抽取(EAE)是事件抽取的子任务之一&#xff0c…

智驾传感器新风向!拐点将至

“大家都比较关注激光雷达,尤其是在今年整个行业聚焦降本的大背景下,这个赛道还行不行?”6月8日,2023年度(第十四届)高工智能汽车开发者大会上,高工智能汽车研究院首发《2023-2025年中国汽车市场…

【备战秋招】每日一题:4月29日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-酒王 在线评测链接:P1268 题目内容 塔子哥和他的朋友们共 n 人是一群热爱生活的年轻人,他们经常在一起吃饭,聊天,玩游戏。有一…

预设Preset简单使用

作用 是一个资源文件。可以保存组件、资源、项目设置的属性,将属性应用到组件、资源、项目设置上。 例如,创建一个Transform预设,可记录Transform的属性,其他Transform应用预设,会使用预设中的数据。 文档 预设 预设…

【Vue全家桶高仿小米商城】——(二)Git安装与配置

文章目录 第二章:Git安装和配置一、Windows/Mac/Linux安装二、环境变量配置、开发工具配置Windows - 环境变量Mac/Linux - 环境变量VSCode配置Git使用 VScode git,提交到仓库 三、存储密码 - SSH添加秘钥Git配置命令遇到的问题 四、Git常用命令 第二章&…

新手怎么注册速卖通及其流程?图文详解版不信你还不会!

龙哥发现最近讨论速卖通的人还挺多的,今天龙哥就给大家讲一下新手注册速卖通的流程,特别是需要你提前准备好的资料。感兴趣的朋友接着往下看吧! 速卖通店铺注册条件 1、营业执照、商标 速卖通要求注册商家必须具备合法的企业身份或个体工商户…

浅谈职场中的工作失误

浅谈职场中的工作失误 关于职场中的工作失误如何处理失误一点感言 笔者在一家软件公司从事传统的数据运维工作,也有十年之久了。十年的数据运维工作,真是一步一个脚印,一步一个坑踩出来的,也没想到这一干就是十年… 关于职场中的…