[论文阅读] MoAI: Mixture of All Intelligence for Large Language and Vision Models

news2024/11/25 23:54:12

原文链接:http://arxiv.org/abs/2403.07508

源码链接:https://github.com/ByungKwanLee/MoAI

启发:这篇文章提供一个比较新奇的思路,将传统CV小模型的输出进行语言化,转换成统一格式,传入到后续的模型中,为后续任务提供重要的辅助信息。此外,提出了一个MoAI-Mixer模块,它将CV模型输出的辅助tokens、图像视觉特征和文本的语言特征结合,这种成功利用多模态特征的方法非常值得学习。

Abstract  

研究问题:这篇论文提出的研究问题在于现有的大型语言和视觉模型(LLVMs)在处理视觉语言(VL)任务时,往往忽视了专门计算机视觉(CV)模型在视觉感知任务中的详细和全面的真实世界场景理解能力。这些视觉感知任务包括图像分割、目标检测、场景图生成(SGG)和光学字符识别(OCR)。现有的LLVMs主要依赖于其大型语言模型(LLM)主干的巨大容量和涌现能力,而不是利用这些专门的CV模型的输出。因此,论文提出了一个新的LLVM,名为“Mixture of All Intelligence”(MoAI),旨在通过整合来自外部CV模型的辅助视觉信息来改善这一问题。

研究方法:

  1. 模型架构:提出了一个新的LLVM,MoAI,它通过两个新引入的模块工作:MoAI-Compressor和MoAI-Mixer。

  2. 辅助视觉信息:MoAI利用来自外部分割、检测、SGG和OCR模型的输出,将这些输出转化为语言形式,以便于整合到LLVM中。

  3. MoAI-Compressor:该模块负责对外部CV模型的输出进行对齐和压缩,以高效地使用相关的辅助视觉信息进行视觉语言任务。

  4. MoAI-Mixer:这个模块结合了三种智能类型:

    • 视觉特征。
    • 来自外部CV模型的辅助特征。
    • 语言特征。 MoAI-Mixer利用专家混合(Mixture of Experts)的概念,将这三种特征融合在一起。
  5. 零样本学习:MoAI在多种零样本视觉语言任务中进行评估,特别是在涉及真实世界场景理解的任务,如对象存在性、位置、关系和OCR等方面。

  6. 性能比较:MoAI与开源和闭源的LLVMs进行性能比较,结果显示MoAI在不增加模型大小或额外视觉指令调整数据集的情况下,显著提高了性能。

总的来说,研究方法的核心在于通过结合多种智能源和利用外部CV模型的输出,来提升LLVM在视觉语言任务中的理解和性能。这种方法旨在克服现有LLVMs在真实世界场景理解方面的局限性。

1 Introduction

  1. 背景:介绍了大型语言模型(LLMs)和指令调整数据集的结合,如FlanPaLM和Flan-T5,这些模型通过扩展指令调整数据集来覆盖各种任务,并扩大了模型容量,从而在众多语言任务中提高了零样本(zero-shot)性能。同时,为了提高大型语言和视觉模型(LLVMs)在视觉语言(VL)任务中的零样本性能,研究人员精心策划了多个视觉指令调整数据集,并扩大了LLVMs的规模。

  2. 现有LLVMs的局限性:当前的开源LLVMs尚未明确或完全利用详细和全面的真实世界场景理解能力,主要依赖于其LLM主干的大容量和涌现能力。

  3. MoAI模型的创新:提出了MoAI模型,该模型利用来自外部CV模型的辅助视觉信息,通过两个新引入的模块来有效利用这些信息:MoAI-Compressor和MoAI-Mixer。MoAI-Compressor负责对外部CV模型的输出进行对齐和压缩,以高效地使用相关信息进行视觉语言任务。MoAI-Mixer则混合了三种智能类型:视觉特征、外部CV模型的辅助特征和语言特征,借鉴了专家混合(Mixture of Experts)的概念。

  4. MoAI的性能:MoAI在多种零样本视觉语言任务中的性能显著超过了多个强大的LLVM基线,如InstructBLIP、Qwen-VL和LLaVA1.5,即使没有额外的视觉指令调整数据集或扩大LLVMs的规模。MoAI的成功归因于其利用多样化的外部CV模型的辅助视觉信息,并通过整合三种智能类型来有效执行视觉语言任务。

  5. 贡献总结:引入了一个新的大型语言和视觉模型MoAI,该模型处理来自外部CV模型的各种辅助视觉信息,并通过MoAI-Mixer混合三种类型的智能。MoAI在视觉感知能力方面表现出色,在零样本视觉语言任务的性能上超越了开源和闭源的LLVMs,这是通过考虑详细和全面的真实世界场景理解能力实现的,而不需要扩大模型大小或数据集大小。

2 Related Works 

2.1 LLMs and LLVMs

        概述了大型语言模型(LLMs)和大型语言视觉模型(LLVMs)的发展、能力和当前的研究趋势。

LLMs的发展和能力

        LLMs因其出色的泛化能力和指令调整数据集的有效性而受到关注。

        模型如GPT系列展示了在多种语言任务上的强零样本(zero-shot)或少样本(few-shot)性能,包括文本分类、问题回答、机器翻译和复杂推理任务等。

        这些模型通过大幅增加模型容量和训练数据集来实现泛化能力,如T5、PaLM和OPT等。

训练方法和数据集的进步

        训练方法和数据集的发展进一步提升了LLMs的零样本泛化能力,从大规模预训练数据集过渡到指令调整数据集。

        指令调整(instruction tuning)使LLMs能够遵循人类自然语言中的指令,以适应复杂的真实世界场景。

指令调整的LLMs

        指令调整的LLMs,如Flan-T5、Flan-PaLM、OPT-IML和InstructGPT,明显展示了指令调整的有效性。

LLVMs的发展

        类似策略已应用于多模态模型LLVMs,这些模型由视觉编码器和主干多模态语言模型(MLM)组成。

        例如,LLaVA和ShareGPT4V等模型使用GPT-4和GPT4V来创建视觉指令调整数据集,以提高模型在视觉语言任务中的表现。

现有LLVMs的局限性

        现有的LLVMs忽视了过去几十年中在真实世界场景理解方面取得巨大进步的计算机视觉(CV)模型的详细和全面能力。

        在LLVM时代,这些CV模型被拥有扩大容量和视觉指令调整数据集的LLVMs所掩盖。

LLVMs通过数据的预训练拥有非常强大的泛化能力以及推理能力,但是LLVMs又与过去几十年间持续发展的传统CV算法有所割裂,而这些CV模型在真实世界场景理解方面正好可以补足LLVMs的缺陷

MoAI模型的提出

        MoAI模型强调利用来自外部CV模型的辅助视觉信息的有效性,展示了在视觉语言基准测试中增强的视觉感知能力。

        MoAI通过结合外部CV模型的输出,如全景分割、开放世界目标检测、场景图生成和光学字符识别,来提高LLVMs在真实世界场景理解方面的性能。

        总的来说,这段内容强调了LLMs和LLVMs在处理语言任务和视觉语言任务方面的进步,同时指出了现有模型在利用详细和全面的真实世界场景理解方面的不足,并提出了MoAI模型作为一种新的研究方向,以利用外部CV模型的辅助视觉信息来增强LLVMs的视觉感知能力。

2.2 Mixture of Experts

MoE的起源:Jacobs等人首次将MoE概念引入机器学习,其中不同的“专家”网络处理输入空间的不同部分,由一个门控网络指导每个部分到相关的专家。

MoE的发展:Deep MoE进一步发展了这一理念,通过在深度上堆叠MoE层。条件计算方法只有部分专家被给定输入条件激活。

Shazeer等人将MoE层与LSTM集成,通过门控网络独立地将每个token路由到选择性激活的专家,增强了语言建模和机器翻译任务的性能。

Switch Transformers将MoE层与Transformers结合,用多个专家和一个门控网络替换Transformer层中的密集前馈网络(FFN),为MoE在基于Transformer的LLVMs中的应用铺平了道路,如MoE-LLaVA。

MoE在深度学习中的理念MoE的目标是在不牺牲计算效率的情况下扩大模型容量

MoAI对MoE的创新应用:与以往的MoE方法不同,MoAI明确地为每个专家分配角色,并期望在优化过程中出现专业化。

MoAI将交叉和自注意力模块作为专家,并明确地学习它们以混合不同模态之间的信息(即视觉、辅助和语言特征)。

MoAI特别促进了视觉、辅助、语言三种特征的融合,得到六种成对特征:视觉-辅助特征、视觉-语言特征、视觉-视觉特征、语言-辅助特征、语言-视觉特征、语言-语言特征。

每一对都被视为相应的交叉或自注意力模块的查询-键对,作为专家,明确了不同模态间信息融合的过程。

总的来说,这段内容强调了MoE在提高模型处理能力和效率方面的重要作用,以及MoAI如何创新性地将MoE应用于处理和融合多模态信息,以提升模型在视觉语言任务中的表现。

3 MoAI: Mixture of All Intelligence 

3.1 Model Architecture

MoAI模型架构如下:

  1. 视觉编码器(Vision Encoder)

    • 负责处理输入的视觉信息,将图像转换为模型可以理解的特征表示。
  2. 多模态语言模型(MLM)

    • 构成MoAI的主干,处理与文本相关的信息,并且与视觉编码器的输出结合,以理解和回答涉及视觉内容的问题。
    • MoAI-Mixers被集成到MLM中,用于混合不同模态的特征。
  3. 中间多层感知器(MLP)连接器

    • 位于视觉编码器和MLM之间,用于进一步处理和转换特征,确保不同模态的信息能够有效地结合。
  4. MoAI-Compressor

    • 专门设计来处理来自外部计算机视觉(CV)模型的多样化辅助视觉信息,包括全景分割、开放世界目标检测、场景图生成和光学字符识别。
    • MoAI-Compressor将这些CV模型的输出通过语言化(verbalization)处理,使它们与MLM对齐并可被解释,如Fig. 4所示。
  5. MoAI-Mixer

    • 用于高效地融合原始特征(视觉和语言特征)与来自外部CV模型的辅助特征。
    • MoAI-Mixer借鉴了专家混合(Mixture of Experts)的概念,通过交叉和自注意力模块来处理不同模态之间的信息融合。
  6. 外部CV模型

    • MoAI利用四个外部CV模型来获取辅助视觉信息,这些模型分别负责全景分割、开放世界目标检测、场景图生成和光学字符识别。

        MoAI模型的架构设计旨在通过结合视觉特征、语言特征和外部CV模型提供的辅助特征,来提高模型在视觉语言任务中的性能,尤其是在理解真实世界场景方面。通过MoAI-Compressor和MoAI-Mixer,模型能够有效地利用和整合来自不同源的信息,从而在零样本视觉语言任务中表现出色。

3.2 Vision and Language Backbone

        选择CLIP-L/14作为视觉编码器,因为它能在视觉语言任务中将图像理解与文本对齐。MoAI使用的MLM是基于InternLM-7B。视觉编码器和MLM之间的桥梁是MLP,它是两个具有GELU激活函数的线性层。

3.3 Verbalization

        由于CV model的输出需要传入MLM,所以需要将输出转换成MLM可以理解的自然语言形式,将这个过程称作Verbalization(语言化)。图4说明了如何将四个CV模型的输出进行语言化。

        (1)panoptic segmentation model(全景分割模型PS):作用是能够区分图像中的前景和背景对象,并且将对象进行分割并获取边界框坐标。因此,将PS输出进行语言化需要描述对象名称及其边界框坐标,然后再embedding为辅助tokens。此外,为了能直接利用分割后的图像,我们使用一个视觉编码器和一个MLP层生成局部保留的辅助tokens。最后把文本辅助tokens和视觉辅助tokens进行拼接。这一过程确保了全景分割图中的视觉信息被全面转换成语言信息,同时保留了全景分割图中固有的空间局部性。

        (2)open-world object detection model(开放世界对象检测模型OWOD):OWOD可以检测PS遗漏的对象,OWOD的输出将按照下述模板进行语言化:

‘The image includes bounding boxes and their objects: {verbalized open-world object detection (OWOD) results}’

        然后embedding为辅助tokens。

        (3)SGG和OCR语言化过程与上面类似。分别按照模板:

        ‘The image includes relationships between objects: {verbalized SGG results}’ 

        ‘The image includes text descriptions: {verbalized OCR results}’

3.4 MoAI-Compressor

        基于Perceiver Resampler(Flamingo: a visual language model for few-shot learning)的模型结构。输入是经过语言化的四个CV模型的辅助tokens以及一个固定长度的可学习的tokens A_{input},输出的长度与A_{input}长度一致,这样就成功将长度不固定的辅助tokens压缩到固定长度的矩阵中。

3.5 MoAI-Mixer

        MoAI-Mixer 嵌入在 MLM 的每一层中,它接收来自 MoAI-Compressor 的辅助tokens A图像的视觉特征 I(l) ∈ Rd×NI 文本的语言特征 L(l) ∈ Rd×NL,其中 l = 0、1、···,N − 1 表示层索引,d 表示嵌入维度,N_I 表示视觉特征的长度,N_L 表示语言特征的长度。通常,MLM 层仅由 Transformer 解码器块 TransDec(l) 组成,\left[ I(l+1), L(l+1) \right] = \text{TransDec}(l) \left[ I(l), L(l) \right]

在MLM内部,特征按照下述公式在层之间传递:

        其中\hat{I}(l)\hat{L}(l)是混合视觉特征与混合语言特征。为了完成特征混合,我们在MoAI-Mixer中设计了六个expert模块,这些模块是自注意模块或者交叉注意力模块,其中三个处理视觉信息,另外三个处理语言信息。如图5所示。

3.6 First Training Step

  1. 训练组件

    • 使用视觉指令调整数据集来训练输入选择模块(A_input)、MoAI-Compressor和MoAI-Mixer。
    • 这一步骤的目的是确保MoAI-Mixer中的六个专家模块能够产生有意义的特征,以执行视觉语言(VL)任务。
  2. 专家模块输出选择

    • 随机选择三个专家模块中的输出,分别对应视觉和语言特征。
    • 使用采样函数从视觉特征的三个专家模块($I_{AUX}$、$I_{LANG}$、$I_{SELF}$)和语言特征的三个专家模块($L_{AUX}$、$L_{IMG}$、$L_{SELF}$)中选择输出。
  3. 注入Transformer解码器

    • 选定的输出被注入到Transformer解码器块(TransDec),以进行进一步的处理。

3.7 Second Training Step

  1. 扩展学习过程

    • 在第一训练步骤学习到的参数基础上,进一步训练两个门控网络,每个MoAI-Mixer一个,分别针对视觉和语言特征。
  2. 门控网络设计

    • 门控网络由单个线性层组成,用于视觉和语言特征,分别表示为$W_{GatingI}$和$W_{GatingL}$。
  3. 权重输出和softmax函数

    • 门控网络的目标是通过使用线性层和softmax函数来输出三个专家模块的最佳权重组合。
  4. 权重计算

    • 计算权重向量,这些权重作为信心分数,用于确定是否使用每个专家模块的信息。
    • 权重通过softmax函数计算,然后与相应的专家模块输出进行元素级乘法($\otimes$)。
  5. 独立训练

    • 视觉和语言特征的门控网络独立训练,没有参数共享,确保两个门控网络以不同的权重混合三种智能。

        通过这种训练方法,MoAI-Mixer和门控网络能够促进三种智能源(辅助、图像、语言)之间的交互,从而提高模型在处理视觉语言任务时的性能和准确性。这种结构允许模型更有效地融合来自不同模态的信息,并在复杂的视觉语言任务中做出更准确的预测。

4 Experiments

为了确保复现性,我们概述了 MoAI 的三个关键技术细节:(a) 外部 CV 模型,(b) MoAICompressor 和 MoAI-Mixer,(c) 训练和推理细节。

4.1 外部CV模型的详细信息:

  1. 全景分割

    • 使用Mask2Former模型(模型大小:106M),结合Swin-B/4。
    • 预测全景分割图时,设置阈值为0.5以保留预测的实例掩码,设置掩码阈值为0.95。
  2. 开放世界目标检测

    • 使用OWLv2模型(模型大小:154M),结合CLIP-B/16。
    • 处理ADE20K-847和ImageNet中的1847个对象类别。
    • 设置阈值为0.1以保留目标检测预测,设置对象阈值为0.5。
  3. 场景图生成(SGG)

    • 使用panoptic SGG模型(模型大小:44M),结合ResNet-50。
    • 设置阈值为0.8以使用SGG谓词。
  4. 光学字符识别(OCR)

    • 使用PaddleOCRv2框架(模型大小:18M)。
    • 设置可识别语言为中文和英文,并调整超参数以读取旋转文本描述。

4.2 MoAI-Compressor和MoAI-Mixer的结构:

  1. 可学习tokens(Ainput)

    • 维度为R4096×64,其中64表示tokens数量(长度),4096表示MLM输入的通道维度d。
  2. MoAI-Compressor

    • 包含4个标准Transformer编码器层。
    • 自注意力中设置4个头和64个头维度。
  3. MoAI-Mixer

    • 特定MLM层索引为l = 7, 15, 23, 31。
    • 对于CA/SA专家模块,使用64个降维、4个头、头维度为1024。

4.3 训练过程:

  1. 训练步骤

    • 使用标准视觉指令调整数据集LLaVA-Instruct-665K进行训练。
  2. 第一训练步骤

    • 训练可学习tokens(Ainput)、MoAI-Compressor参数和MoAI-Mixer的六个专家模块。
    • 使用AdamW优化器,通过余弦退火从1e-4学习率调度到1e-6。
  3. 第二训练步骤

    • 训练第一训练步骤中的参数以及门控网络。
    • 学习率从2e-5调度到1e-6。
  4. 高效推理

    • 将MoAI量化为4位,使用双量化和标准化浮点4位(nf4)。
    • 对于文本生成,使用确定性束搜索(n = 3)。

5 Conclusion

        为了实现对真实世界场景的理解,我们利用了植根于认知科学和机器学习的基本感知能力。这涉及整合来自历史上丰富的外部 CV 模型的辅助视觉信息,我们使用专家模块和门控网络将其与 MLM 中的视觉和语言功能无缝集成。由于这些进步,MoAI 展示了改进的视觉感知能力,从而显着增强了零镜头视觉语言性能。这突显了 MoAI 通过有效利用各种辅助视觉信息和集成多种形式的智能来推进 LLVM 建模的潜力。

 

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

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

相关文章

8. Control Station Studio控制站开发平台概述

更多内容见CSDN博客专栏:无人机飞控 相关资源:https://gitee.com/ss15/ph47 8.1. 概述 Ground Control Station(CSS)是一个地面站软件开发平台,通过对控制站工程的设计搭建,从而开发出面向各种不同用途&a…

【软件测试】基本知识2

一、能对穷举场景设计测试点——等价类划分法 说明:在所有测试数据中,具有某种共同特征的数据集合进行划分 分类 有效等价类:满足需求的数据集合无效等价类:不满足需求的数据集合 步骤 明确需求确定有效和无效等价类提取数据编写…

linux使用xhell连接特别慢

linux使用xhell连接特别慢 在此记录一下 1.vi /etc/ssh/sshd_config,修改如下配置 GSSAPIAuthentication yes 修改 no UseDNS yes 修改 no 2.重新启动sshd服务 systemctl restart sshd

从混乱到卓越:六西格玛是如何助力企业摆脱困境的

六西格玛,这一源自摩托罗拉、发扬于通用电气的管理方法,以其严谨的数据分析、持续改进的理念,成为了企业转型升级的利器。它不仅仅是一套工具和方法论,更是一种追求卓越的文化和思维方式。在六西格玛的视角下,企业的一…

基于yolov8、yolov5的鸟类检测系统(含UI界面、数据集、训练好的模型、Python代码)

项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型:     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 , 直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有 GPU&#xff0…

当下流行的【疗愈】是什么?疗愈门店未来发展前景分析|个案疗愈系统源码私

▶ 「疗愈」是什么? 疗愈通常指的是一种综合性的治疗方法,旨在帮助人们恢复身心健康、平衡和内在和谐。可能包括心理治疗、身体疗法、能量疗法、草药疗法、冥想和其他练习,以促进个体的整体健康和福祉。 疗愈的具体内容和方法会因不同的文化…

论文笔记:Pre-training to Match for Unified Low-shot Relation Extraction

论文来源:ACL 2022 论文地址:https://aclanthology.org/2022.acl-long.397.pdf 论文代码:https://github.com/fc-liu/MCMN (笔记不易,请勿恶意转载抄袭!!!) 目录 A…

IDEA下面的Services不见了(解决方案)

大家使用IDEA有时候新打开个项目这个东西不会自动出现如何解决 配置方法: 右上角打开进入Edit Configurations 进入后我们看到里面是没有SpringBoot相关内容的 点击加号选择SpringBoot 然后Apply Ok即可,现在IDEA下面就会出现Service了,打…

海外盲盒系统开发,开拓海外盲盒市场

近几年,盲盒出海成为热潮,吸引着众多企业转向海外布局!国内盲盒市场逐渐饱和,反而海外市场存在着巨大的商机,这促使着各大企业开始向海外发展。这几年中,海外盲盒市场也创造出了越来越多的惊喜,…

Cesium 贴地圆 并显示外轮廓线 outline

老规矩:直接放效果图,符合就往下看,不符合出门右转。 cesium官方暂时未提供贴地的圆,添加外轮廓线。 思路能不能写glsl更改材质,让图形显示外轮廓线。设置一个阈值距离圆心距离定值内显示一种颜色,超过这个…

JQuery基本操作(二)

遍历 $(选择器).each(function(下标,值){//代码块 });$.each(数组名,function(下标,值){//代码块 }); <body><button> 获得数组下标和值</button> </body> <script>$(function(){$("button").click(function(){var arr [1,2,3,4,5,…

PN8036非隔离DIP7直插12V500MA开关电源芯片

PN8036宽输出范围非隔离交直流转换芯片 &#xff0c;集成PFM控制器及650V高雪崩能力智能功率MOSFET&#xff0c;用于外围元器件极精简的小功率非隔离开关电源。PN8036内置650V高压启动模块&#xff0c;实现系统快速启动、超低待机功能。该芯片提供了完整的智能化保护功能&#…

软考《信息系统运行管理员》- 5.2 信息系统数据资源例行管理

5.2 信息系统数据资源例行管理 文章目录 5.2 信息系统数据资源例行管理数据资源例行管理计划数据资源载体的管理存储介质借用管理存储介质转储管理存储介质销毁管理 数据库例行维护健康检查数据库日志检查数据库一致性检查 数据库监测管理数据库备份与恢复数据库备份与恢复数据…

【Qt】详细Qt基础 (包括自定义控件)

目录 QT 概述创建项目项目文件&#xff08;. pro&#xff09;main.cppmainwindow.uimainwindow.hmainwindow.cpp 窗口类QWidget 窗口显示QDialog 窗口 QPushButton创建显示 对象树基本概念功能 坐标体系控件Item WidgetsQListWidgetQTreeWidgetQTableWidget 自定义控件 QT 概述…

Java_EE 多线程技术(Thread)--2

线程同步的使用使用this作为线程对象锁 某一个同步块需要同时拥有“两个以上对象的锁”时&#xff0c;就可能会发生“死锁”的问题。比如&#xff0c;“化妆线程”需要同时拥有“镜子对象”、“口红对象”才能运行同步块。那么&#xff0c;实际运行时&#xff0c;“小丫的化妆线…

解锁健康低卡的沙拉汁,享受清爽美味!

文章目录 蜂蜜芥末沙拉汁香草酸奶沙拉汁香草酸奶沙拉红酒醋黄芥末汁油醋沙拉汁百香果沙拉汁柠檬油醋汁蜂蜜芥末沙拉汁 往密封罐里,加入芥末酱、蜂蜜、苹果醋和胡椒,然后秘诀来了:用力摇10秒让油汁充分融合乳化,可以增添这款沙拉酱浓醇的厚度和风味。 香草酸奶沙拉汁 先将…

pytest + yaml 框架 - 支持pytest-repeat插件重复执行用例

平常在做功能测试的时候&#xff0c;经常会遇到某个模块不稳定&#xff0c;偶然会出现一些bug&#xff0c;对于这种问题我们会针对此用例反复执行多次&#xff0c;最终复现出问题来。 自动化运行用例时候&#xff0c;也会出现偶然的bug&#xff0c;可以针对单个用例&#xff0…

轻催和重催的催收方式?

在催收行业中&#xff0c;"轻催"和"重催"的概念通常指的是催收的策略和手段的不同。 轻催&#xff1a;这种方法通常适用于逾期时间较短&#xff0c;债务人可能只是暂时遗忘或遇到了短期的流动性问题。轻催的手段包括发送提醒通知、进行友好的电话提醒等&am…

汇编语言实现字母大小写转换

程序运行后数据段内容如箭头所示 执行转换后内存内容变为&#xff1a; 确实进行成功转换了

基于 CSS Grid 的简易拖拉拽 Vue3 组件,从代码到NPM发布(2)- NPM发布、在线示例

这里分享一下本开源项目是如何构建组件库及其如何发布到NPM上的&#xff0c;还有组件库与在线示例的构建有什么差异。 请大家动动小手&#xff0c;给我一个免费的 Star 吧~ 大家如果发现了 Bug&#xff0c;欢迎来提 Issue 哟~ github源码 NPM 示例地址 版本更新信息 这两天抽空…