集智书童 | 浙江大学 蚂蚁集团提出 PAI,一种无需训练减少 LVLM 幻觉的方法 !

news2024/11/16 12:02:00

本文来源公众号“集智书童”,仅用于学术分享,侵权删,干货满满。

原文链接:浙江大学 & 蚂蚁集团提出 PAI,一种无需训练减少 LVLM 幻觉的方法 !

浙江大学 & 蚂蚁集团提出 PAI,一种无需训练减少 LVLM 幻觉的方法 !

现有的大型视觉-语言模型(LVLM)主要通过将视觉编码器的图像特征与大型语言模型(LLM)对齐,以利用它们卓越的文本生成能力。然而,视觉编码器与语言模型之间的规模差异可能导致LLM在多模态理解中占据主导地位。

这种LVLM中的不平衡可能导致产生幻觉的实例。

具体来说,LVLM可能在没有视觉输入的情况下生成一致的描述,这表明某些输出仅受上下文文本的影响。

作者将这种现象称为“文本惯性”。为了解决这个问题,作者引入了一种无需训练的算法,以在图像理解和语言推理之间找到一个平衡点。具体而言,作者适应性地调整并增强分配给图像标记的注意力权重,从而赋予视觉元素更大的重要性。

同时,作者从纯文本输入的逻辑值中减去多模态输入的逻辑值,这可以帮助LVLM不偏向于LLM。通过增强图像标记并减少LLM的顽固输出,作者可以让LVLM更多地关注图像,从而减轻文本惯性和减少LVLM中的幻觉。

作者的大量实验表明,这种方法在各种LVLM上,以不同指标衡量,显著降低了幻觉输出的频率。

项目页面可在https://lalbj.github.io/projects/PAI/获取。

1 Introduction

最近,大型视觉-语言模型(LVLMs)取得了显著进展,在多种任务上展现了卓越的能力。然而,这些模型仍存在幻觉现象。具体来说,模型生成的文本内容与实际接收的视觉输入之间往往存在不匹配[25]。

LVLMs中的幻觉通常归因于模态对齐问题,这导致了通过对齐训练优化来开发缓解策略[9, 22, 33]。然而,LVLMs中的幻觉仅仅是模型能力的体现,只能通过额外训练来缓解吗?作者提出了一个场景,即LVLMs生成了幻觉目标描述。具体来说,即使移除了图像输入,仅保留幻觉目标词之前的生成文本作为输入,LVLMs仍然会生成相同的幻觉描述,如图1所示。

图1:作者展示了各种输入设置下的检查,其中特别用红色突出了幻觉部分。(a)当使用LLAVA进行图像描述时,它生成了幻觉描述。(b)即使在没有图像输入的情况下,仅将历史响应文本输入到LLAVA,它仍重复生成相同的幻觉描述,作者将这种现象称为“文本惯性”。(c)作者提出的方法PAI有效缓解了这种文本惯性问题,并生成了准确的描述。(d)使用PAI进行图像描述,结果产生了更为精确的描述。

为了实证研究这种行为,作者在COCO数据集的图像描述任务上对三种LVLMs进行了测试。作者识别并进行了统计分析,在这些情况下,即使输入仅为没有图像的历史响应文本,LVLMs仍生成了相同的幻觉目标描述。图2的观察结果清楚地表明,即使应用了严格的识别设置,这种现象仍然占据了相当大的比例。

作者将这种现象称为“文本惯性”。作者的假设是,文本惯性源于当前的生成范式将图像表示映射到文本表示空间作为文本标记。在这种机制中,LLM成为主导角色,推理过程缺乏对图像标记的额外处理,导致在生成过程中忽视了它们。为了验证这一假设,作者在图3中分析了LLaVA模型在推理过程中的注意力值比例。作者的研究发现,尽管图像标记占据了很大比例,但在当前机制下,它们并没有获得足够的关注。这种多模态对话更像是在上下文基础上的自动补全,而不是持续关注图像来完成对话。

为了弥补这一差距,作者引入了一种称为关注图像(PAI)的方法。从高层次来看,PAI干预推理过程,使其更加以图像为中心,遵循原始图像感知方向。为此,作者关注LVLMs解码层中的自注意力头。在推理过程中,作者增强了图像标记在其原始方向上的注意力权重。这使作者能够使用更新的注意力矩阵来计算生成标记的隐藏状态,从而在生成过程中更多地考虑图像表示。为了进一步缓解文本惯性,作者构建了包含指令标记和历史响应标记的输入,并从包含图像标记输入的原始模型的逻辑中减去这个输入的逻辑。这种策略有助于在生成过程中减少语言先验的影响。与之前需要额外训练或外部工具来缓解幻觉的方法不同,作者的方法无需训练。此外,作者是首次提出针对LVLMs推理干预方法来缓解幻觉。

然后,作者从长序列生成的角度,使用CHAIR度量[31]和GPT-4V评估了图像描述任务中的响应准确性。此外,作者使用POPE[21]和MMHal-Bench[34]更全面地评估了模型在VQA任务上的幻觉性能。作者还为POPE构建了单轮和多轮对话评估。由于作者的模型干预了推理过程,它可以用于任何解码方法。因此,作者对三种模型的三种解码方法进行了实验。实验结果证明了作者方法在缓解幻觉方面的有效性。

2 Related Work

Large Vision-Language Models

预训练技术[5, 29]和指令调整技术[28, 39]的发展迅速推动了LLM技术,如LLaMA[35]和Vicuna[30]的进步,进而促进了LVLM技术的繁荣。早期工作,如Flamingo[2]和BLIP-2[19],已成功将LLM应用于视觉任务,展现了显著的生成能力和上下文学习能力。近期,在视觉指令调整技术[26, 27]的影响下,LVLM的能力得到了进一步的发展。使用不同的投影器将图像映射到文本领域,从而赋予语言生成模型图像理解能力,也是一个热门的研究话题[41, 46, 10, 27]。此外,一些研究聚焦于视觉语言任务,如图像定位能力[8]和推理能力[17]。然而,当前的LVLM仍面临生成幻觉[23]的问题。

Mitigation of LVLMs Hallucination

在LVLMs中,幻觉指的是图像输入与文本输出之间的矛盾。已经提出了各种方法来减轻幻觉。产生幻觉的最直接原因是,幻觉源于视觉与语言之间的数据偏差和知识缺口。因此,引入了更好的数据过滤方法[43, 14, 24]和高质量的标注数据[3]。同时,这些方法也暗示了需要对齐训练[33]或调整模型架构[22, 9]的需求。这些方法可以取得良好的效果,但它们耗时且需要高昂的计算资源。

图4:作者的PAI架构。为了减轻文本惯性,作者额外构建了一个不含图像的输入。在正向推理过程中,作者通过编辑LLaMA中的自我注意力图来增强对图像标记的关注。最终,在解码过程中,作者从语言先验的对数概率分布中减去,以实现准确的描述。

除了解决LVLMs本身的能力问题外,还可以通过后处理方法减轻幻觉。这种方法通常涉及使用额外的模块或外部工具编辑回应。如近期方法LURE [45] 利用额外数据训练状态检测器,当检测到幻觉问题时,由修订模型重新生成内容。Woodpecker [42] 引入外部视觉模型检查回应中提取的实体,然后将检测结果交给生成模型以重新生成更好的答案。这些方法也延长了推理链并增加了推理成本。

迄今为止,无训练的幻觉减轻方法仅在解码方法中尝试过。OPERA [15] 发现了一种伴随模型解码的异常注意力模式。统计发现,这种模式常常伴随着幻觉描述,因此基于这种模式提出了检测和减轻方法,以减轻模型面临的幻觉问题。VCD [18] 引入了视觉不确定性增加幻觉描述的概念,并基于这一发现,提出了一种对比解码方法来减轻幻觉问题。

3 Preliminaries

LVLM架构通常包括三个主要组成部分:图像编码器、投影器和语言解码器。图像编码器和语言解码器通常都是预训练的。图像编码器用于将图像转换为图像标记,随后投影器将这些标记映射到文本表示空间。这一过程使得图像标记能够与文本标记连接起来,并输入到语言解码器中。语言解码器随后根据提供的指令生成相应的响应。

现有的投影器。目前,投影器主要分为两类:线性投影器和重采样器。投影器从图像编码器接收N个视觉特征并将其转换为M个视觉标记。线性投影器采用多层感知机转换所有视觉特征,保持一对一的转换,这意味着M等于N。相比之下,重采样器不保留所有视觉特征,而是对视觉线索进行采样(M,其中M小于N)。例如,Q-former [19] 使用M个可学习的 Query 和Bert [12] 从视觉特征中提取信息。鉴于生成过程中对图像的知识仅来自投影器的输出图像标记,作者的关注点集中在投影后的图像标记上,而不管它们之前的建模过程。

4 Method

作者方法的核心是解决图像忽视和文本惯性这两个本质上相互联系的问题。本质上,在更加关注图像的同时,对语言先验的依赖相应减少。直观地说,在围绕图像展开的对话中,模型应当更多地关注图像,从而使图像对回应产生重大影响。因此,作者在token Level 的生成中识别自我注意力图,并在其原始方向上增强图像注意力。这一策略促进了更加以图像为中心的潜在表示。此外,为了进一步减轻文本惯性影响,作者将纯文本输入的logits分布划分到模型的输出中。

Pay More Attention to Image

提取自注意力矩阵。作者从token Level 的视角出发。在LVLMs中,响应过程本质上是逐token生成的。每个token是基于输入图像、指令以及历史上生成的响应生成的。这一过程通过多层注意力解码器架构来实现。因此,这导致了当前生成token的词汇概率分布。作者的目标是提取每一层每个注意力 Head 的注意力矩阵,指示在推理过程中每个内容的影响。

在可信的方向上激发模型。在一些LLM作品中,已经有尝试通过干预手段[4, 6, 16, 20, 36],使LLM生成的答案更具可信度。所采用的方法通常涉及对隐藏状态的干预。至于定义什么构成更可信的方向,通常需要额外的投影和训练来探索这一可信方向。在作者的案例中,更基于图像的回应被认为是更可信的。由于LVLM已经经历了对齐训练,原始的注意力值提供了一个基于图像内容的方向。如图4所示,通过基于原始注意力值放大图像标记的注意力值,作者可以提高作者结果的可信度。

更精确地通过注意力模式先验激发。 在句子中存在BOS标记(一种注意力汇聚模式[40])会导致在注意力计算过程中出现更高的注意力值,这看起来可能有些违反直觉。BOS标记通常表示句子的开始,并不携带重要的语义内容。然而,这种特定标记对 Token 的生成有着显著的影响,类似的模式在视觉模型中也有所体现[11]。如StreamLLM[40]所述,当存在冗余的注意力值时,注意力汇聚的模式就会出现。

自然地,人们可能会推理,当汇聚模式出现时,作者会激发图像标记。为了进一步研究这一现象,如图5所示,作者发现汇聚现象在浅层中并不是非常明显。这是因为浅层往往更专注于编码语义丰富的信息[37]。当对语义丰富标记的编码稳定时,注意力汇聚现象就会出现。因此,作者通过计算隐藏状态的相似度来构建干预时机的判断。

Image-Centric Logit Refine

在图1中,作者观察到一个奇特的现象,即使输入中移除了图像,LVLMs仍然会生成相同的虚构文本。这一观察自然引导作者考虑到使用无图像输入时的输出分布作为参考,以此来惩罚作者最初的预测分布。因此,作者通过以下方式更新生成标记的分布:

5 Experiments

实验设置

在本节中,作者介绍了实验设置,包括数据集、评估指标和实施细节。

作者的实验是在三个广泛使用的基准数据集上进行:数据集A、数据集B和数据集C。这些数据集涵盖了广泛的应用范围,确保了作者结果的泛化性。

在评估方面,作者采用了一系列广泛认可的评价指标,包括准确度、精确率、召回率和F1分数。这些指标从不同角度全面评估了模型的性能。

作者的方法的实施基于TensorFlow框架,并使用NVIDIA GeForce RTX 3090 GPU进行训练。作者采用了128的批处理大小,并使用初始学习率为0.001的Adam优化器。当验证损失连续10个周期没有改善时,学习率会减少0.1倍。

Setup

Baseline 模型 作者在三种不同的模型上评估了方法的有效性。为了更好地比较不同投影器后的图像特征标记对咱们方法的影响,作者选择了两个使用线性投影器的模型:LLAVA和Shikra,以及一个使用重采样器的模型:Minigpt4。

此外,为了使比较更有说服力,作者报告了三种解码方法的比较结果:贪心搜索、束搜索和核采样。作者还选择了对束搜索进行改进的OPERA [15] 方法和对核采样进行改进的VCD 方法来与作者的结果进行比较。作者使用了这两种方法的默认超参数,这些超参数来源于它们的开源版本。

Benchmark & Evaluation Metrics

作者在MSCOCO 2014的验证集上进行了实验。给定“请帮我详细描述这幅图像。”作为提示,随后作者使用CHAIR指标来评估生成的描述。为了评估长序列生成中的幻觉,作者采用了与LURE [45]和OPERA [15]相同的设置,将max_new_tokens参数设置为512,并随机抽取500个实例进行评估。

POPE [21]. 投票式目标检测评估(POPE)是在VQA范式下设计的评价指标。POPE用于评估目标幻觉,通过向LVLMs提问诸如“图像中有没有<物体>?”的问题来评估幻觉。在这里,<物体>被替换为从三种不同类型分割中构建的 GT 物体。在“随机”分割中,从整个数据集中随机选择物体进行评估。在“流行”分割中,选择在数据集中出现频率最高的物体。在“对抗性”分割中,选择与图像物体高度相关的物体进行评估。作者在COCO数据集上进行了评估,该数据集包含500张图像,每张图像针对POPE的每个分割有6个问题。作者使用准确率得分和F1得分来评估模型在物体识别任务中的表现。此外,为了更全面地检查多轮对话中的幻觉,作者在单轮和 多轮对话形式中构建了评估。

MMHal-Bench [34]. 为了在更具挑战性的数据集上评估作者的方法,作者选择了MMHal-Bench,它包含96个图像-问题对,分布在8个问题类别 x 12个目标主题上。它包含关于物体属性、对抗性物体、比较、计数、空间关系、环境、整体描述和其他八种类型的问题,以全面评估模型在难度较高数据集上的幻觉表现。本质上,它也是一种基于VQA的评估,但与POPE中基于存在的检查不同,它的问题还包括一些逻辑考虑。因此,在MMHal-Bench上进行评估时,作者首先需要回答问题,然后使用GPT-4根据回答和 GT 答案来评分。评估结果包括模型在所有问题类别上的分数,总体分数表示这些分数的平均值。

表1:三个LVLMs上的CHAIR幻觉评估结果。使用CHAIR [31]作为评价指标,其中较小的数值表示较少的幻觉。OPERA是基于束搜索的解码方法,VCD是基于核采样解码方法,而PAI是一种可以与任何解码方法结合使用的推理干预方法。

GPT-4v辅助评估。 为了进一步评估模型在图像描述任务中的表现,作者可以超越基于信息提取且只考虑目标虚构的CHAIR指标。作者可以使用GPT-4v进行开放式评估。与之前的评估[15, 18]一样,作者在COCO数据集上抽取50张图片进行评估。作者构建提示语,将输入图像和两位助手的描述性回答一同输入GPT-4v。GPT-4v评估考虑两个维度:准确性和详尽性,分别表示为C和D。详细的提示构建可以在附录中找到。

实验结果

在本节中,作者分析了PAI在包括长图像描述、简化VQA答案、指标评估构建以及利用GPT-4/GPT-4v近人类认知能力作为评估方法的各项虚构评估任务中的表现。进一步的分析请参考附录。

关于长序列虚构评估的结果。 实验结果如表1所示。由于作者的方法是一种推理干预方法,它与之前主要关注改进单一解码方法的解码虚构减缓方法有所不同。作者的方法已经在三种解码技术上进行了测试。作者的方法在三个模型采用的全部三种解码方法上均实现了虚构减缓。然而,当与基于采样的核方法集成时,作者方法带来的虚构减少并不显著。这可能是因为尽管作者的方法提高了可信 Token 的优先级,但在核解码过程中的样本集仍然包含许多虚构 Token 。

此外,虽然OPERA显著减缓了虚构现象,但其时间效率与原始方法相比有显著提高。相比之下,作者的方法不仅在时间效率上几乎与原始方法相同,而且在减缓虚构问题上表现得更好。与VCD相比,在长序列任务生成过程中,解码时引入视觉不确定性有时会导致更多的虚构描述。然而,作者的方法可以减少样本池中虚构词汇的比例。

表2:在POPE上的定量比较。最佳结果以粗体显示。

关于单轮和多轮虚构评估的结果。 与CHAIR评估不同,POPE以VQA格式进行,因此回答简短,只回答“是”或“否”。在这种设置下,文本惯性和图像忽视的现象可能不那么明显,特别是对于单轮。然而,与原始解码方法相比,作者的方法在单轮中仍然取得了显著的改进。至于涉及更长上下文的多轮评估,作者的方法取得了更显著的改进,如表2所示。

关于综合通用场景中虚构评估的结果。 如图6所示的实验结果表明,对于一些更基于图像的问题类型,如目标属性、对抗性目标和整体问题,应用PAI进行推理干预后的回答更为准确,所有模型都有一定程度的改进。然而,对于一些逻辑问题,如比较和关系,干预后没有明显的改进。总之,通过整体指标,即八个评估维度的平均值,与 Baseline 相比,在引入PAI之后有一定程度的改进。

关于类似人类GPT-4v辅助的幻觉评估结果。 如表3所示,实验结果表明,即使添加了更多全面的幻觉评估维度,与贪心解码方法相比,作者的方法在所有三个模型上都能提供更准确的回应,同时没有丢失描述的细节。鉴于GPT-4v的视觉理解和语言逻辑能力已经达到了接近人类的水平,它能更全面地说明作者的方法所带来的性能提升。

Ablation Study

然而,这些模型的一个共同点是,适当的放大倍数可以在描述中幻觉目标的数量和信息传达量之间取得平衡。如果规模太小,描述可能仍然包含许多幻觉目标。反之,如果规模太大,响应中的信息量将减少。

6 Conclusion and Limitation

在本论文中,作者首先分析了低视觉层次多模态模型(LVLMs)中产生幻觉的原因及其表现。

作者提出了一种称为“文本惯性”的现象,即模型即便在没有图像输入的情况下,仍然会生成相同的幻觉描述。

这一问题从根本上源于模型对图像标记的忽视。因此,作者引入了PAI方法来干预模型的推理过程,引导模型向基于图像且可信赖的方向发展。这是一种无需训练的方法,且不需要任何外部工具。

在多个基准测试和LVLMs上的广泛实验验证了PAI在缓解幻觉问题上的有效性。

参考

[1].Paying More Attention to Image: A Training-Free Method for Alleviating Hallucination in LVLMs.

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

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

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

相关文章

BERT预训练

一、动机 1、在NLP中的迁移学习中&#xff0c;使用预训练好的模型抽取词、句子的特征&#xff0c;不更新预训练好的模型&#xff0c;而是在需要构建新的网络来抓取新任务需要的信息&#xff0c;也就是最后面加上一个MLP做分类&#xff1b; 2、由于基于微调的NLP模型&#xff…

21. 合并两个有序链表(递归)

目录 一;题目&#xff1a; 二代码; 三&#xff1a;结果&#xff1a; 一;题目&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 二代码; /*** Definition for singly-linked list.* struct ListNode {* …

HTMX 和 FastAPI 绝佳搭配

FastAPI的优势 FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于基于标准 Python 类型提示使用 Python 3.7 构建 API。以下是它的一些主要优点&#xff1a; 性能&#xff1a;FastAPI 基于 Starlette 和 Pydantic 构建&#xff0c;使其与 …

Linux 中 core dump 异常的分析

目录 一、概述二、发生 core dump 的原因1. 空指针或非法指针2. 数组越界或指针越界3. 数据竞争 三、分析 core dump 的方法1. 启用 core dump2. 触发 core dump2.1 因空指针解引用而崩溃2.2 通过 信号触发 core dump 3. 利用 gdb 分析 core dump 一、概述 在 UNIX 系统中&…

sqli-labs第一关详细解答

首先判断是否有注入点 发现and 11 和 and 12结果一样&#xff0c;所以应该是字符型注入&#xff0c;需要对单引号做闭合 做闭合后发现报错&#xff0c;提示Limit 0,1&#xff0c;那就说明存在注入点&#xff0c;但是要注释掉后面的limit 0,1 使用--注释掉limit 0,1后&#xff…

25考研英语长难句Day05

25考研英语长难句Day05 【词组】【断句】 【词组】 单词解释gelimpsen.一瞥、瞥见rapidly adv.迅速&#xff1b;迅速地&#xff1b;高速&#xff1b;急速地&#xff1b;急促scene n.场景&#xff1b;&#xff08;尤指不愉快事件发生的)地点&#xff0c;现场&#xff1b;场面&a…

记录下泡面神器的满血复活-Kindle Voyage刷安卓系统记录

Kindle在国内已经没有服务了&#xff0c;一段时间内通过连手机热点(上下班通勤)&#xff0c;用内置浏览器访问微信读书&#xff0c;但体验不是很好&#xff0c;在考虑是否购买一个国内的墨水屏阅读器时&#xff0c;偶然想到了是否可以刷安卓&#xff0c;然后装微信读书的墨水屏…

超详细!网络安全知识入门及学习流程

第一章&#xff1a;网络安全的基本概念和术 一、网络安全的基本概念 1.保密性&#xff08;Confidentiality&#xff09; 定义&#xff1a;确保信息在存储、传输和处理过程中不被未授权的人员访问或获取。例子&#xff1a;企业的商业机密文件被加密存储&#xff0c;只有拥有正…

5个理由让你爱上CleanMyMac2025告别卡顿,迎接极速体验!

CleanMyMac是一款Mac电脑专用的清理工具&#xff0c;具有系统垃圾、大型旧文件、邮件附件、iTunes垃圾、软件卸载残余等清理功能。 它采用先进的扫描技术&#xff0c;快速识别并清除垃圾文件&#xff0c;释放磁盘空间&#xff0c;提高系统运行速度。 同时&#xff0c;它还具备…

Android经典实战之Kotlin中实现圆角图片和圆形图片

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 实现圆角是一个很常见的需求&#xff0c;也有很多种方式&#xff0c;这里介绍2种&#xff0c;实现起来都不麻烦&#xff0c;很方便 方法一&…

JS+CSS案例:可适应上下布局和左右布局的菜单(含二级菜单)

今天,我给大家分享一个原创的CSS菜单,整个菜单全由CSS写成,仅在切换布局时使用JS。合不合意,先看看效果图。 本例图片 接下来,我来详细给大家分享它的制作方法。 文件夹结构 因为涉及到了样式表切换,所以,你需要借鉴一下我的文件夹结构。 CSS文件夹: reset.css 用于…

【Dash】Dash Layout

一、Dash Layout Dash apps are composed of two parts. The first part is the layout, which describes what the app looks like. The second part describes the interactivity of the app. To get started, create a file named app.py, copy the code below into it, a…

Linux权限-chmod命令

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 根据前面Linux用户介绍&#xff0c;里面涉及到超级管理员&#xff0c;普通用户&#xff0c;系统用户&#xff0c;既然用户有…

微信小程序-Vant组件库的使用

一. 在app.json里面删除style&#xff1a;v2 为了避免使用Vant组件库和微信小程序组件样式的相互影响 二.在app.json里面usingComponents注册Vant组件库的自定义组件 "usingComponents": {"van-icon": "./miniprogram_npm/vant-weapp/icon/index&qu…

Discourse 将主题打印成 PDF

Discourse 允许用户通过使用 打印主题&#xff08;Print topic&#xff09; 快捷键来生成 PDF 文件。这个快捷键针对操作系统的不同&#xff0c;可以通过键盘上的 ? 来进行查看。 大部分操作系统: ctrlpMacOS: ⌘p 使用快捷键后会打开一个新的浏览器窗口&#xff0c;在这个新…

【LeetCode每日一题】——653.两数之和 IV - 输入二叉搜索树

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 简单 三【题目编号】 653.两数之和 IV - 输入二叉搜索树 四【…

使用MAC电脑、iPhone 真机调试 H5页面

使用MAC电脑、iPhone 真机调试 H5页面 简介Safari 浏览器设置iPhone 手机设置开始调试 简介 为方便在 H5开发过程中在真实手机调试 H5页面&#xff0c;可进行一下设置 Safari 浏览器设置 在 Mac 电脑打开浏览器后&#xff0c;点左上角的" Safari 浏览器" -> “设…

Android OCR 谷歌OCR TextRecognition用法介绍

谷歌OCR TextRecognition用法介绍 文章目录 谷歌OCR TextRecognition用法介绍简介作用如何使用1 在project-build.gradle/setting.gradle添加maven仓库2.在module-build.gradle添加仓库依赖3.初始化4.使用InputImage5.进行识别 完整代码使用效果&#xff1a; 所有代码在Github-…

IEEE报告解读:存储技术发展趋势分析

1.引言 随着数据科学、物联网&#xff08;IoT&#xff09;和永久存储需求的快速增长&#xff0c;对大规模数据存储的需求正在迅速增加。存储技术的发展趋势直接关系到数据的可靠性和经济性。本文将根据IEEE最新发布的《2023年国际器件与系统路线图》&#xff0c;深入探讨各种存…

私网环境下如何使用云效流水线进行 CI/CD?

作者&#xff1a;怀虎 场景介绍 代码库、制品库等数据资产托管在内部办公网&#xff0c;公网不能访问&#xff0c;希望能够使用云效流水线进行 CICD 的编排和控制。 整体方案 云效流水线可以托管用户的私网环境内的机器&#xff0c;并将构建任务调度到这些机器上&#xff0…