《MaPLe: Multi-modal Prompt Learning》中文校对版

系列论文研读目录


文章目录

  • 系列论文研读目录
  • 题目:《Maple:多模态提示学习》
  • 摘要
  • 1.简介
  • 2.相关工作
    • 视觉语言模型:
    • 提示学习:
    • 视觉语言模型中的提示学习:
  • 3.方法
    • 3.1.回看CLIP
      • 编码图像:
      • 编码文本:
      • Zero-shot分类:
    • 3.2.Maple:多模态提示学习
      • 3.2.1深度语言提示
      • 3.2.2 深度视觉提示
      • 3.2.3视觉语言提示耦合
  • 4.实验
    • 4.1.基准设定
      • 从基本类到新类的泛化:
      • 跨数据集评价:
      • 领域概括:
      • 数据集:
      • 实现细节:
  • 7.
  • 8.
  • 9.
  • 10.


题目:《Maple:多模态提示学习》

摘要

预训练的视觉语言(V-L)模型,如CLIP,已经显示出对下游任务的出色泛化能力。然而,它们对输入文本提示的选择很敏感,需要仔细选择提示模板才能良好地执行。受自然语言处理(NLP)文献的启发,最近的CLIP适应方法将提示作为文本输入来学习,以微调CLIP用于下游任务。我们注意到,使用提示来适应CLIP(语言或视觉)的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。在这项工作中,我们提出了多模态提示学习(Maple)的视觉和语言分支,以提高视觉和语言表征之间的一致性。我们的设计促进了视觉语言提示之间的强耦合,以确保相互协同作用,并阻止学习独立的单峰解决方案。此外,我们在不同的早期阶段学习单独的提示,以逐步对阶段特征关系进行建模,从而实现丰富的上下文学习。我们评估了我们的方法在三个代表性的任务上的有效性:推广到新的类,新的目标数据集和看不见的域转移。与最先进的方法Co-CoOp相比,Maple表现出良好的性能,在11个不同的图像识别数据集上,在新类别上实现了3.45%的平均绝对增益,在整体谐波平均值上实现了2.72%的平均绝对增益。我们的代码和预培训模型可在https://github.com/muzairkhattak/multimodalprompt-learning上获得。

1.简介

  1. 基础视觉语言(V-L)模型,如CLIP(对比图像预训练)[32]已经显示出对下游任务的出色泛化能力。这种模型经过训练,以在网络规模的数据上对齐语言和视觉模态,例如,CLIP中有4亿个文本图像对。由于自然语言提供了丰富的监督,这些模型可以推理开放词汇的视觉概念。在推断期间,使用手工设计的文本提示,比如’‘a photo of a '作为查询文本的编码器。将输出文本嵌入与来自图像编码器的视觉嵌入进行匹配以预测输出类。设计高质量的上下文提示已被证明可增强CLIP和其他V-L模型的性能[17,42]。
  2. 尽管CLIP在推广新概念方面有效,但其庞大的规模和缺乏的训练数据(例如,few-shot设置)使得不可能为下游任务微调完整模型。这种微调也可能忘记在大规模预训练阶段获得的有用知识,并可能造成过度适应下游任务的风险。为了解决上述挑战,现有的工作提出了语言提示学习以避免手动调整提示模板,并提供了一种机制来在保持原始权重冻结的同时适应模型[14,25,29,48,49]。受自然语言处理(NLP)的启发,这些方法仅探索CLIP中文本编码器的即时学习(图1:a),而自适应选择以及CLIP中同样重要的图像编码器仍然是文献中未探索的主题。
  3. 我们的动机来自CLIP的多模态特性,其中文本和图像编码器共存,并且都有助于正确对齐V-L模态。我们认为,任何提示技术应该完全适应模型,因此,学习提示只为文本编码器,在CLIP中,是不足以模拟图像编码器所需的适应的。为此,我们开始在提示方法中实现完整性,并提出多模态提示学习(MaPLe)来充分微调文本和图像编码器表示,以便在下游任务中实现最佳对齐(图1:B)。我们在三个关键的代表性设置上进行了广泛的实验,包括基础到新的泛化,跨数据集评估和域泛化,证明了Maple的实力。在基于新的泛化方面,我们提出的Maple在11个不同的图像识别数据集上优于现有的快速学习方法(图1:c),并在最先进的方法Co-CoOp上实现了3.45%的绝对平均增益和2.72%的谐波平均值[48]。此外,MaPLe在跨数据集传输和域泛化设置中表现出良好的泛化能力和鲁棒性,与现有方法相比得到了一致的改进。由于其流线型的架构设计,与Co-CoOp相比,Maple在训练和推理过程中表现出更高的效率,而没有太多的开销,Co-CoOp由于其图像实例条件设计而缺乏效率。总之,这项工作的主要贡献包括:
    (1)我们建议在CLIP中采用多模态提示学习,以使其视觉语言表征更好地保持一致。据我们所知,这是第一个用于微调CLIP的多模态提示方法.
    (2)为了将在文本和图像编码器中学习到的提示联系起来,我们提出了一个耦合函数,以明确地将视觉提示条件化到它们的语言对应物上。它是两种模式之间的桥梁,允许梯度的相互传播,以促进协同作用。
    (3)我们的多模态提示是在视觉和语言分支的多个Transformer模块中学习的,以逐步学习两种模态的协同行为。这种深度提示策略允许独立地对上下文关系建模,从而提供更大的灵活性来对齐视觉-语言表示。
    在这里插入图片描述Maple与标准快速学习方法的比较。(a)现有的方法采用单模态提示技术来微调CLIP表示,因为提示仅在CLIP的单个分支(语言或视觉)中学习。(b)Maple引入了分支感知的分层提示,同时适应语言和视觉分支,以提高泛化能力。©Maple在11个不同的图像识别数据集上超越了最先进的方法,用于新的类泛化任务。

2.相关工作

视觉语言模型:

语言监督与自然图像的结合使用在计算机视觉领域具有重要意义。与仅使用图像监督学习的模型相比,这些视觉语言(V-L)模型编码了丰富的多模态表示。最近,像CLIP [32],ALIGN [15],LiT [45],FILIP [41]和佛罗伦萨[43]这样的V-L模型已经在广泛的任务中表现出卓越的性能,包括few-shot和zero-shot视觉识别。这些模型使用来自网络的大量可用数据,以自我监督的方式学习联合图像语言表示。例如,CLIP和ALIGN分别使用10400 M和101 B图像-文本对来训练多模态网络。尽管这些预先训练的V-L模型学习了广义表示,但有效地使其适应下游任务仍然是一个具有挑战性的问题。许多工作已经证明了通过使用定制的方法来适应V-L模型以用于few-shot图像识别[9,19,46],对象检测[8,10,27,34,44,50]和分割[5,22,26,33],下游任务的性能更好。在这项工作中,我们提出了一种新的多模态提示学习技术,以有效地适应CLIP的few-shot和zero-shot视觉识别任务。

提示学习:

句子形式的指令,称为文本提示,通常被给予V-L模型的语言分支,使其更好地理解任务。可以为下游任务手工制作脚本,也可以在微调阶段自动学习脚本。后者被称为“提示学习”,它首先用于NLP [21,23,24],然后是V-L [48,49,51]和仅视觉[16,38,39,47]模型中的适应。与[16]类似,我们的设计也使用了深度“视觉”提示。然而,我们是第一个多模态提示设计,而[16]是单模态的。

视觉语言模型中的提示学习:

完全微调和线性探测[9]是使V-L模型(即CLIP)适应下游任务的两种典型方法。完整的微调导致先前学习的联合V-L表示降级,而线性探测限制了CLIP的零触发能力。为此,受NLP中提示学习的启发,许多工作提出通过在端到端训练中学习提示标记来适应V-L模型。CoOp [49]通过优化其语言分支的提示向量的连续集合来微调CLIP以进行少量传输。Co-CoOp [48]强调了CoOp在新类上的较差性能,并通过显式地对图像实例进行条件提示来解决泛化问题。[25]提出了通过学习提示的分布来优化多组提示。[18]通过学习视频理解任务的提示来调整CLIP。[1]通过视觉分支上的提示,对CLIP执行视觉提示调整。我们注意到,现有的方法遵循独立的单峰解决方案,并学习提示,无论是在语言或视觉分支的CLIP,从而适应CLIP部分。在本文中,我们探讨了一个重要的问题:鉴于CLIP的多模态性质,完全提示(即,在语言和视觉分支)更适合适应CLIP?我们的工作是第一个回答这个问题,通过调查的有效性,多模态提示学习,以提高视觉和语言表征之间的一致性。

3.方法

我们的方法涉及微调预训练的多模态CLIP,以便通过提示进行上下文优化,从而更好地泛化到下游任务。图2显示了我们提出的MaPLe(多模态提示学习)框架的整体架构。与之前仅在语言分支学习上下文提示的方法[48,49]不同,Maple提出了一种联合提示方法,其中上下文提示在视觉和语言分支中都被学习。具体来说,我们在语言分支中附加可学习的上下文标记,并通过耦合函数显式地将视觉提示置于语言提示上,以建立它们之间的交互。为了学习分层上下文表示,我们在两个分支中引入了深度提示,通过跨不同Transformer块的单独可学习上下文提示。在微调过程中,只有上下文提示沿着其耦合函数被学习,而模型的其余部分被冻结。下面,我们首先概述预训练的CLIP架构,然后介绍我们提出的微调方法。
在这里插入图片描述

3.1.回看CLIP

在这里插入图片描述
我们的方法建立在一个预先训练的视觉语言(VL)模型CLIP上,该模型由文本和视觉编码器组成。与现有的提示方法[48,49]一致,我们使用基于CLIP模型的视觉Transformer(ViT)[6]。CLIP对图像I ∈ RH×W×3和相应的文本描述进行编码,如下所述。

编码图像:

在这里插入图片描述
在这里插入图片描述
图像编码器V具有K个Transformer层,将图像I分割成M个固定大小的块,这些块被投影到块嵌入E0 ∈ RM×dv中。补丁嵌入Ei与可学习类(CLS)标记ci沿着被输入到第(i + 1)个Transformer块(Vi+1)并依次通过K个Transformer块进行处理,
为了获得最终图像表示x,最后一个Transformer层(VK)的类标记cK经由ImageProj被投影到公共V-L潜在嵌入空间,

编码文本:

在这里插入图片描述
CLIP文本编码器通过将词标记化并将它们投影到词嵌入W 0 = [w1 0,w2 0,· · ·,wN 0 ] ∈ RN×dl来生成用于文本描述的特征表示。在每一级,Wi被输入到文本编码分支(Li+1)的第(i + 1)层Transformer层,
通过将与最后一个Transformer块LK的最后一个令牌对应的文本嵌入经由TextProj投影到公共V-L潜在嵌入空间来获得最终文本表示z,

Zero-shot分类:

在这里插入图片描述
对于零镜头分类,文本提示是手工制作的,具有类标签y ∈ {1,2,…C}(例如,‘a photo of a ’)有C类的照片。利用温度参数τ计算对应于具有最高余弦相似性得分(sim(·))的图像I的预测Hy,

3.2.Maple:多模态提示学习

为了有效地微调CLIP用于下游图像识别任务,我们探索了多模式提示调整的潜力。我们的理由是,先前的研究主要是探索单一模态的方法是不太合适的,因为他们没有提供灵活性,以动态适应语言和视觉表征空间。因此,为了实现提示的完整性,我们强调了多模态提示方法的重要性。在图3中,我们将Maple的图像嵌入与最新的最先进的工作Co-CoOp进行了可视化和比较。请注意,CLIP、CoOp和Co-CoOp的图像嵌入将是相同的,因为它们不学习视觉分支中的提示。可视化结果显示,Maple的图像嵌入更易分离,表明除了语言提示外,学习视觉提示可以更好地适应CLIP。除了多模态提示,我们发现,这是必不可少的学习提示更深的Transformer层逐步建模阶段式的功能表示。为此,我们建议在视觉和语言分支的第一个J层(其中J < K)中引入可学习的令牌。这些多模态分层提示利用嵌入在CLIP模型中的知识来有效地学习与任务相关的上下文表示(见图4)。
在这里插入图片描述在MaPLe中按提示深度(左侧)和提示长度(右侧)进行消融。我们报告所有数据集的保留验证集的平均结果。

3.2.1深度语言提示

在这里插入图片描述
在这里插入图片描述
为了学习语言上下文提示,我们在CLIP的语言分支中引入了b,可学习标记{Pi ∈ Rdl }b i=1。输入嵌入现在遵循形式[P1,P2,· · ·,Pb,W 0],其中W 0 = [w1,w2,· · ·,wN]对应于固定的输入令牌。在语言编码器(Li)的每个Transformer块中进一步引入新的可学习令牌,直到特定深度J,
这里[·,·]指的是连接操作。在第J个Transformer层之后,后续层处理先前层提示并计算最终文本表示z,
当J = 1时,可学习标记P仅应用于第一层Transformer层的输入,并且这种深度语言提示技术退化为CoOp [49]。

3.2.2 深度视觉提示

在这里插入图片描述
类似于深度语言提示,我们在CLIP的视觉分支中与输入图像标记一起引入B可学习标记{RdPi ∈ Rdv }B i=1。在图像编码器(V)的更深的Transformer层中进一步引入新的可学习令牌,直到深度J。
我们的深度提示提供了跨ViT架构内不同功能层次结构学习提示的灵活性。我们发现,跨阶段的共享提示比独立提示相比是更好的,由于连续的Transformer块处理功能更相关。因此,与早期阶段相比,后期阶段不提供独立学习的补充提示。

3.2.3视觉语言提示耦合

我们的理由是,在提示调整时,它是必不可少的采取多模态的方法,同时适应双方的视觉和语言的CLIP分支,以实现完整的上下文优化。一种简单的方法是简单地将联合收割机和语言提示结合起来,其中语言提示P和视觉提示P~都将在相同的训练计划中学习。我们将此设计命名为“独立V-L提示”。虽然这种方法满足了提示的完整性要求,但这种设计缺乏视觉和语言分支之间的协同作用,因为这两个分支在学习任务相关上下文提示时不交互。
在这里插入图片描述
在这里插入图片描述
为此,我们提出了一个分支意识的多模态提示,通过跨两种模态共享提示,将CLIP的视觉和语言分支调谐在一起。语言提示令牌被引入到语言分支中直到第J个Transformer块,类似于如等式1所示的深度语言提示。1-3.为了保证视觉-语言提示之间的相互协同作用,视觉提示P,是通过视觉-语言投射来投射语言提示P而得到的,我们称之为视觉-语言耦合函数F(·),使得P k = Fk(Pk)。耦合函数被实现为将dl维输入映射到dv的线性层。这在两种模态之间起到桥梁的作用,从而促进梯度的相互传播。
与独立的V-L提示不同,P的外显条件作用有助于在两个分支之间共享的嵌入空间中学习提示,从而提高相互协同作用。

4.实验

4.1.基准设定

从基本类到新类的泛化:

我们评估了MaPLe的可推广性,并遵循zero-shot设置,其中数据集被分为基础类和新类。该模型仅在少数镜头设置中的基本类别上训练,并在基本类别和新颖类别上评估。

跨数据集评价:

为了验证我们的方法在跨数据集传输中的潜力,我们直接在其他数据集上评估了我们的ImageNet训练模型。与Co-CoOp一致,我们的模型在所有1000个ImageNet类上以少镜头的方式进行训练。

领域概括:

我们评估了我们的方法在分布外数据集上的鲁棒性。与跨数据集评估类似,我们直接在包含各种类型的域转换的其他四个ImageNet数据集上测试ImageNet训练模型。

数据集:

为了从基础到新类别和跨数据集评估的推广,我们遵循[48,49]并评估了我们的方法在11个图像分类数据集上的性能,这些数据集涵盖了广泛的识别任务。这包括两个通用对象数据集ImageNet [4]和Caltech 101 [7];五个细粒度数据集OxfordPets [31]、StanfordCars [20]、Flowers 102 [30]、Food 101 [2]和FGVCAircraft [28];场景识别数据集SUN 397 [40];动作识别数据集UCF 101 [36];纹理数据集DTD [3]和卫星图像数据集EuroSAT [11]。对于领域泛化,我们使用ImageNet作为源数据集,并使用其四个变体作为目标数据集,包括ImageNetV 2 [35]、ImageNetSketch [37]、ImageNet-A [13]和ImageNet-R [12]。

实现细节:

在所有实验中,我们使用了少量的训练策略,在16个镜头中,每个类随机抽样。我们对预训练的ViT-B/16 CLIP模型应用即时调整,其中dl = 512,dv = 768和dvl = 512。对于MaPLe,我们将提示深度J设置为9,并将语言和视觉提示长度设置为2。所有模型均在单个NVIDIA A100 GPU上通过SGD优化器进行了5个时期的训练,批处理大小为4,学习率为0.0035。我们报告基地和新的类精度和他们的谐波平均值(HM)平均超过3次运行。我们用模板“a photo of a”的预训练CLIP单词嵌入初始化第一层P0的语言提示,而对于后续层,它们是从正态分布随机初始化的。为了在ImageNet的所有1000个类上训练Maple作为源模型,提示深度J设置为3,模型训练了2个epoch,学习率为0.0026。深度语言提示、深度视觉提示和独立V-L提示的超参数详见附录A。超参数在所有数据集上都是固定的。

7.

8.

9.

10.

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

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

相关文章

【H2O2|全栈】关于HTML(5)HTML基础(四)

HTML基础知识 目录 HTML基础知识 前言 准备工作 标签的具体分类&#xff08;四&#xff09; 本文中的标签在什么位置中使用&#xff1f; 表单&#xff08;一&#xff09; 表单标签 输入域标签 预告和回顾 后话 前言 本系列博客将分享HTML相关知识点。 这一期博客&…

mac|安装nginx

使用homebrew安装nginx brew install nginx 注意&#xff1a; 一般来说nginx会被默认安装在/usr/local/cellar,打开【访达】&#xff0c;前往【电脑】 由于/usr是隐藏文件&#xff0c;无法直接查看。通过 shiftommand. 即可查看 可以看到我的不在这里&#xff08;我也不知道…

python基础语法七-openpyxl操作excel

书接上回&#xff1a; python基础语法一-基本数据类型 python基础语法二-多维数据类型 python基础语法三-类 python基础语法四-数据可视化 python基础语法五-函数 python基础语法六-正则匹配 1. 打开文件 &#xff08;1&#xff09;创建新文件 from openpyxl import W…

仕考网:考公务员有什么好处?

公务员工作节奏不快&#xff0c;工作压力小&#xff0c;不用担心下岗待业工作很稳定。机关事业单位职工退休可拿到在职工资的80%至 90%。薪资待遇高&#xff0c;国家也在不断完善中央和地方公务员薪酬体系管理工作&#xff0c;提高公务员薪资。 1、公务员定义 (1)公务员考试,…

搭建Docker私有仓库管理本地的Docker镜像,通过harbor实现Web UI访问和管理私有仓库

要在本地搭建一个Docker私有仓库&#xff0c;你可以按照以下步骤进行设置&#xff1a; 安装Docker 确保你已经安装了Docker。如果还没有安装&#xff0c;可以按照官方指南进行安装&#xff1a; 对于Ubuntu系统&#xff0c;你可以运行以下命令来安装Docker&#xff1a; sudo ap…

【前端】animation动画以及利用vue制作简单的透明度改变动画,包含vue生命周期实现

一. 问题描述 想做一个文字透明度从1到0然后再从0到1的css动画。 二. 代码写法 2.1 animation写法 2.1.1 animation属性key 2.1.2 代码展示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"…

利士策分享,逆境破局关键:精准策略

利士策分享&#xff0c;逆境破局关键&#xff1a;精准策略 在人生的征途上&#xff0c;逆境如同试炼场&#xff0c;考验着我们的智慧与勇气。 为了在这片试炼场上稳健前行&#xff0c;我们需要一套具体而精准的应对策略。 以下&#xff0c;是结合实践经验与智慧总结的应对策略…

【环境领域EI稳定 I 院士主讲】第九届能源与环境研究进展国际学术会议(ICAEER 2024)

ICAEER 2024会议投稿经过2-3位组委会专家严格审核之后&#xff0c;符合Springer ESE征稿要求的论文将由斯普林格&#xff08;Springer-Nature&#xff09;旗下的 Environmental Science and Engineering (ISSN: 1863-5520) 出版&#xff0c;出版后提交至EI Compendex&#xff…

最新SMS测压SMS源码 全新版本

php调至7.3 设置伪静态为thinkphp 设置网站运行目录为public 编辑根目录下的.env文件配置数据库信息 详细教程请看源码内置说明文本&#xff01; 亲测截图&#xff01;真实有效&#xff01; 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/8972239…

如何通过食堂采购小程序端降低成本,提升效率?

随着数字化管理工具的普及&#xff0c;越来越多的食堂正在引入小程序来优化采购流程&#xff0c;减少成本和提升效率。食堂采购小程序端通过技术手段实现了自动化、智能化的管理方式&#xff0c;为管理者提供了极大的便利。本文将探讨如何利用技术手段开发一个高效的食堂采购小…

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数 一、环境说明二、页面之间相互传参 一、环境说明 DevEco Studio 版本&#xff1a; API版本&#xff1a;以12为主 二、页面之间相互传参 说明&#xff1a; 页面间的导航可以通过页面路由router模块来实现。页面路由模块根据页…

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文&#xff5c;华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求&#xff0c;一定…

打造可视化数据大屏供应链管理平台:基于食堂采购系统源码的开发方案

食堂采购系统作为供应链管理的一个关键组成部分&#xff0c;通过集成可视化数据大屏&#xff0c;可以有效提升采购和供应链各环节的管理效率。在本文中&#xff0c;我们将探讨如何基于食堂采购系统源码&#xff0c;开发一个高效的可视化数据大屏供应链管理平台。 一、可视化数据…

Java数组(详解版)

数组的定义&#xff1a; 什么是数组&#xff1a; 数组&#xff1a;可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3. 每个空间有自己的编号&#xff0c;其实位置的编号为 0 &#xff0c;即数组…

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_search函数&…

review——C++中的右值引用

目录 前言 一、什么是左值、什么是右值 二、右值引用 1.右值引用与右值引用的一些性质 2.解释一下左值引用与右值应用于程序员之间的关系 3.右值引用与移动语义 4.右值引用右值后变成左值的必要性与完美转发 1.右值引用引用右值后变为左值属性的必要性 2.完美转发 Ⅰ…

【机器人工具箱Robotics Toolbox开发笔记(十二)】 机器人运动轨迹规划

​在机器人学中&#xff0c;机器人的运动轨迹是其各关节在三维空间中随时间变化的位置、速度和加速度的综合表现。针对这些运动轨迹&#xff0c;主要关注三个方面&#xff1a; 轨迹规划&#xff1a;根据具体的操作任务&#xff0c;为机器人设计并指定一条在空间中合理且高效的移…

无人机飞手执照:模拟训练技术详解

随着无人机技术的飞速发展&#xff0c;其在航拍、农业、物流、救援等多个领域的应用日益广泛&#xff0c;对无人机飞手的技能与安全意识要求也随之提高。为了确保无人机操作的安全性与效率&#xff0c;获取无人机飞手执照成为专业从业者不可或缺的步骤。模拟训练作为执照考取过…

简单实用的php全新实物商城系统

免费开源电商系统,提供灵活的扩展特性、高度自动化与智能化、创新的管理模式和强大的自定义模块,让电商用户零成本拥有安全、高效、专业的移动商城。 代码是全新实物商城系统源码版。 代码下载

【Redis】Redis 集群搭建与管理: 原理、实现与操作

目录 集群 (Cluster)基本概念数据分片算法哈希求余⼀致性哈希算法哈希槽分区算法 (Redis 使⽤) 集群搭建 (基于 docker)第⼀步: 创建⽬录和配置第⼆步: 编写 docker-compose.yml第三步: 启动容器第四步: 构建集群 主节点宕机演⽰效果处理流程1)故障判定2)故障迁移 集群扩容第⼀…