VCTP(Visual Chain-of-Thought Prompting for Knowledge-Based Visual Reasoning)论文

news2024/11/25 6:37:23

目录

  • 摘要
  • 介绍
  • 相关工作
  • 方法
    • 总体
    • 模型细节
  • 实验

摘要

知识型视觉推理仍然是一个艰巨的任务,因为它不仅要求机器从视觉场景中解释概念和关系,而且还需要将它们与外部世界知识联系起来,对开放世界问题进行推理链。然而,以前的工作将视觉感知和基于语言的推理视为两个独立的模块,在推理的所有阶段都没有同时关注这两个模块。为此,我们提出了一种知识型推理的视觉思维链提示(VCTP),它涉及视觉内容与自然语言的交互,以迭代的逐步推理方式进行。VCTP包含三个阶段:看、想和确认。看阶段扫描图像,并用视觉感知模型将视觉概念候选与地面真实情况相结合。思考阶段采用预训练的大型语言模型(LLM)从自然语言问题中自适应地关注关键视觉概念。然后,它使用视觉字幕模型将关键视觉内容转换为文本内容进行提示,并采用LLM生成答案。确认阶段进一步使用LLM为答案生成支持理由,然后通过跨模态分类器传递,以验证它与视觉内容一致。我们通过思考-确认阶段的迭代来确保经过验证的理由与答案一致。我们在一系列知识型视觉推理数据集上进行实验。我们发现我们的VCTP有几个优点,1)。它比以前的少次学习基线表现更好;2)。它通过为每个推理步骤提供理由,实现了整个推理过程的完全透明性和可信度;3)。与其它微调基线相比,它在计算上更有效率。我们的代码可在 https://github.com/UMass-Foundation-Model/VisualCoT.git 上获取。

介绍

机器视觉推理自从引入神经符号机制(Yi等人,2018)以来取得了巨大进步,这使得机器能够发展出多步骤的推理链。然而,正如早期认知科学家所预示的那样,这种逻辑和符号系统基本上不适合于现实世界、常识知识的表示和推理(Oaksford和Chater,2007),因为它们仅依赖于封闭世界的逻辑规则和硬约束(Stenning和Van Lambalgen,2012)。

因此,我们研究了知识型视觉推理(Marino等人,2019;Schwenk等人,2022)的问题,这要求模型解释图像内容,回忆开放世界知识的相关内容,并执行逐步的逻辑推理以得出答案。知识型视觉推理比传统的视觉问答和推理(Antol等人,2015;Goyal等人,2017)更具挑战性,因为需要在推理链中交互式地整合视觉上下文、外部知识和自然语言问题。如图1所示,要回答“这个房间叫什么名字?”这个问题,人类首先需要看到房间并提取诸如“框架”、“沙发”和“灯”等视觉概念。然后我们关注与问题语义相关的关键视觉概念,并思考“这是一张咖啡桌”和“有一个带有棕色靠垫的长沙发”以得出答案“客厅”。最后但同样重要的是,人类最终会通过回顾视觉上下文并得出结论“沙发和咖啡桌通常位于客厅”来确认答案是正确的。视觉到语言和语言到视觉的互动可以反复执行,直到我们得出一个令人满意的答案。如果机器也具备这样的能力,它们可以被用于许多现实世界的应用,如辅助机器人(Brohan等人,2022)和具身聊天机器人(Konstantopoulos,2010)。

与认知科学家的观点一致,即带有软约束的知识与大型连接主义模型(Oaksford和Chater,2007)非常兼容,大型语言模型(LLMs)确实在少次推理(Brown等人,2020;Zhang等人,2022)方面取得了巨大进步。特别是思维链提示(Wei等人,2022)通过提供思维链(即一系列中间推理步骤)来执行复杂的语言推理,超越了普通的LLMs。然而,如何利用这些LLMs进行视觉和语言任务的推理仍然是一个挑战。现有的工作要么是用大量的视觉-语言数据微调LLMs(Tsimpoukelli等人,2021;Alayrac等人,2022;Jin等人,2022),这是计算密集型的;要么采用基于提示的方法,如PICa(Yang等人,2022),将图像转换为字幕进行文本提示。这两种工作都无法像人类推理过程那样生成逐步推理链,使模型成为完全的黑盒。此外,它们将视觉感知和基于语言的推理视为独立的模块(例如,视觉模块用于为LLMs生成特征或字幕),忽略了跨模态的大量交互和通信。这与人类执行视觉推理的方式不符,如图1所示。受此启发,我们希望研究的关键问题是如何使大型语言模型与视觉信息进行交互和通信,构建开放世界知识型视觉推理的逐步推理链。为此,我们提出了一个名为视觉思维链提示(VCTP)的新颖框架,如图1所示,模仿人类推理过程。我们的模型是一个迭代和交互框架,包含三个关键模块:看模块、想模块和确认模块。给定一对图像-问题,看模块首先使用场景解析器提取图像中的所有候选视觉概念。想模块采用LLM选择与给定自然语言问题相对应的由看模块提取的相关视觉概念,并使用字幕模型将视觉信息转换为文本描述。基于所关注的视觉上下文,LLM预测问题的答案。此外,我们引入了一个确认模块进行理由验证,以提供更透明和可信的推理。具体来说,我们要求LLM为预测的答案生成理由(例如,在图1中为预测的答案“客厅”生成的理由“沙发和咖啡桌通常位于客厅”)。然后我们使用神经跨模态分类器估计这些理由与给定视觉输入之间的匹配相似度。最后,所选的理由被反馈到LLM的提示中,以确保理由可以一致地推断出相同的输出。我们重复思考和确认的迭代过程,直到连续两次迭代的答案相同。

总之,我们介绍了VCTP,这是一个新颖的模块化、交互和迭代框架,用于知识型视觉推理,能够迭代地关注图像中相关的视觉概念,并为答案预测提供一致的支持理由。VCTP具有几个优点。首先,它是有效的。在知识型基准测试上的广泛实验发现,VCTP的表现优于以前的少次基线。此外,由于它保持了导致预测的整个逐步推理痕迹,因此VCTP更加透明和可解释。与微调方法相比,VCTP在计算上也更加高效。我们的代码将在被接受后提供。
在这里插入图片描述

相关工作

视觉提示
像GPT-3(Brown等人,2020)这样的大型语言模型在自然语言处理(NLP)中推广了少次提示,其中几个输入输出对被用作上下文,以便语言模型理解任务并为新示例生成预测。思维链提示(Wei等人,2022)及其变体(Creswell, Shanahan, 和 Higgins 2022; Zhou等人,2022a; Marasovic等人,2022)已经被开发用于在NLP中更有效或更透明地推理。后来,提示被引入到视觉领域(Zhou等人,2022c; Jia等人,2022; Ju等人,2021; Ge等人,2022; Zhou等人,2022b; Wang等人,2022)。CLIP(Radford等人,2021)和RegionCLIP(Zhong等人,2022)通过在训练期间用自然语言监督替换类标签,实现零样本分类和检测。UnitedIO(Lu等人,2022)使用语言提示指定每个视觉任务以执行多任务学习。同时进行的工作(Zhang等人,2023)训练一个变换器首先预测理由,然后基于多模态特征向量推断答案。不同地,我们旨在使用交互式提示进行知识型视觉推理。它需要语言模型和视觉模型之间的频繁交互,例如提取相关的视觉概念、回忆外部知识以及验证文本预测与视觉上下文一致性,这之前尚未得到很好的研究。

大型预训练模型用于视觉推理
大型预训练模型也已被用于视觉和语言推理(Dou等人,2022; Zeng等人,2022; Gao等人,2022; Zhao等人,2023)。大多数工作(Tsimpoukelli等人,2021; Jin等人,2022; Zellers等人,2022; Chen等人,2022a)从大量视觉语言数据中学习大型预训练模型,并将其微调为下游任务,这通常在计算上非常昂贵且耗时。例如,Flamino(Alayrac等人,2022)需要在1536个TPUv4上微调15天,使用1.85亿张图像和182 GB的文本。还观察到,这些预训练模型中的许多(例如,Kamath等人,2022; Tan和Bansal,2019)包含有限的开放世界知识。它们在KB-VR数据集上的表现不如使用LLMs的模型,用于外部知识(Gui等人,2022)。Yang等人将图像转换为文本描述,并将它们作为LLMs的提示,这在基于知识的视觉上下文问题回答上取得了高性能。然而,它的基于文本的视觉上下文与查询问题独立,使问题回答过程成为黑盒。 知识型视觉推理。我们的工作还与知识型视觉推理(KB-VR)(Marino等人,2019; Schwenk等人,2022; Wang等人,2017a)相关,这要求同时理解图像内容和检索外部知识以回答问题。大多数早期方法(Zhu等人,2021; Ding等人,2022b; Gard`eres等人,2020; Lin和Byrne,2022)使用深度神经网络来理解图像,并从显式知识库中检索相关知识。近期的方法(Gui等人,2022; Yang等人,2022)发现,像GPT-3这样的LLMs可以作为知识库,并直接使用LLM回答问题。虽然我们的模型也从LLMs检索相关知识,但它除了最终答案预测外还提供了逐步推理过程。

知识型视觉推理
我们的工作还与知识型视觉推理(KB-VR)(Marino等人,2019年;Schwenk等人,2022年;Wang等人,2017年)相关,这要求模型不仅要理解图像内容,还要检索外部知识以回答问题。大多数早期方法(Zhu等人,2021年;Ding等人,2022年;Gard`eres等人,2020年;Lin和Byrne,2022年)使用深度神经网络来理解图像,并从显式知识库中检索相关知识。近期的方法(Gui等人,2022年;Yang等人,2022年)发现,像GPT-3这样的大型语言模型可以作为知识库,并直接使用它们来回答问题。尽管我们的模型也从LLMs中检索相关知识,但它除了最终答案预测外,还提供了逐步推理过程。

神经符号视觉推理
我们的工作可以被视为神经模块网络(Yi等人,2018年;Andreas等人,2016年;Chen等人,2022年;Ding等人,2021年,2022年;Chen等人,2021年),这些网络提供了透明的逐步推理。它们通常将查询问题分解为一系列操作,每个操作都用一个网络模块来建模,并通过迭代执行这些操作来获得结果。虽然这些模型更易于解释,但它们要么专注于简单的物理场景(Johnson等人,2017年;Yi等人,2020年),要么在现实世界数据集上的表现不如端到端的神经网络方法(Hudson和Manning,2019年)。与它们不同,我们希望构建一个系统,它在开放世界知识型视觉推理上能够实现合理的性能,同时保持系统的互操作性。

方法

总体

在本节中,我们介绍了一个名为Visual Chain-of-Thought Prompting(VCTP)的新框架,该框架用于基于知识的可视化推理,可以理解查询问题,关注图像中的关键视觉概念,检索支持证据,并最终以逐步的方式得出答案。VCTP由三个模块组成:see、think和confirm,以迭代方式运行这些模块。如图2所示
在这里插入图片描述
给定一个图像有关其内容的问题,see模块使用场景解析器(Han等人,2021)来检测图像中的所有候选对象(概念),并用它们预测的类别名称表示它们。它还为整个图像生成一个全局描述。然后,think模块使用大型预训练语言模型(LLM)来关注与查询问题语义相关的主要概念,并使用图像字幕生成器自然语言的形式描述它们。基于所关注的视觉上下文,LLM预测问题的答案。确认模块要求LLM继续生成答案的支持理由,并使用跨模态分类器(Radford等人,2021)验证它们。为确保理由与答案一致,我们将经过验证的支持理由重新添加到提示上下文中并开始新的think-confirm迭代。我们重复生成答案和理由,直到连续两次迭代中的答案预测一致。我们在算法1中总结了整个算法流程。
在这里插入图片描述
与现有的基于上下文学习方法(Yang等人,2022;Wei等人,2022)相比,我们的框架有两个优点:有效性和可解释性。它之所以有效,是因为它能够自适应地关注相关的视觉区域,并输出一致的答案-理由预测。它之所以可解释,是因为它能够逐步调查整个推理过程。可以在图4中找到这种推理过程的可视化示例。
在这里插入图片描述

模型细节

See模块。给定一个查询图像,我们使用FasterRCNN(Ren等人,2015)来检测图像中的所有对象候选项。具体来说,我们使用Yang等人(Han等人,2021)发布的检测模型来预测对象的位置及其类别标签,如“knife”,“plate”和“napkin”。它还使用图像字幕生成器(Li等人,2022)为整个图像提供全局字幕。这些视觉概念将在think模块中被选择和进一步描述,以提供有价值的视觉上下文以获得答案。

Think模块。我们框架的第二个模块是think模块,它关注图像中的对应区域,并将它们转换为文本描述,以便LLM预测答案。如图2所示,我们在think模块中使用attend-describe-predict方法。第一步是attend,我们使用提示方法(Brown等人,2020;Chowdhery等人,2022)帮助LLM关注图像中与查询问题语义相关的主要概念。我们在图3(A)中显示了LLM关注关键视觉概念的提示模板。
在这里插入图片描述
我们将一些来自训练集的输入-输出对输入到LLM的提示中,并要求LLM基于给定的上下文进行选择。问题显示在模板的顶部。在see模块中检测到的对象由它们的类别名称表示,例如“knife”和“beans”,LLM输出词汇表中的词汇限制在这些类别名称中。LLM选择最相关的对象以提供进一步的视觉上下文来处理查询问题。如图2所示,这种被关注的概念(例如“meat”和“knife”)对于得到问题“Which food item is the knife for?”的答案“meat”是重要的。Think模块的下一步是describe。所选概念对应的图像区域被裁剪并输入到图像字幕生成器(Li等人,2022)以生成新概念的区域描述。生成的区域描述将被添加到LLM的提示中以提供细粒度的视觉上下文以预测答案。请注意,一个对象的区域描述通常比对象类别更信息丰富。例如,图2中的“some pieces of meat on the plate”的字幕额外描述了“meat”和“plate”之间的关系。Think模块的最后一步是predict。我们添加了多个来自训练集的问题-答案示例到LLM的提示中,并要求它预测一个答案。答案预测基于所关注的视觉上下文和在前几次迭代中由confirm模块预测的理由,我们将在confirm模块中讨论。

Confirm模块。我们框架中的最后一个模块是confirm模块,如图2所示,它的目的是为答案预测生成一致的支持理由并验证预测的正确性。给定由think模块生成的少量示例上下文和交互提示,我们要求LLM在答案预测后继续预测支持理由。这样一个问题-答案-理由模板的示例可以在图3(B)中找到。
在这里插入图片描述
LLM预测的一个显著问题是,生成过程是一个黑箱,很难验证预测答案和理由的正确性。我们认为一个正确的理由应该有两个鲜明的特点。首先,理由应该与答案一致。给定预测的支持理由(图2中的“The knife is for cutting the meat”),当它被添加到上下文中时,我们应该能够预测相同的答案。其次,理由应该与视觉输入一致。为确保理由支持答案预测,我们将生成的文本理由输入到下一轮迭代中LLM的提示中。我们重复这个答案到理由和理由到答案的过程,直到连续两次预测的答案相同(算法1的第4行到第17行)。为确保生成的理由与给定的视觉上下文一致,我们使用大型预训练的跨模态分类器(Radford等人,2021)来验证文本理由是否与给定图像匹配(算法1的第13行到第15行)。只有具有高匹配相似度的理由才会被接受,并添加到下一轮迭代的答案预测提示中。

实验

在本节中,我们通过大量实验展示了所提出的VCTP的优势。

实现细节:所提出的VCTP的有效性依赖于几个预训练的视觉模型(Li等人,2022;Radford等人,2021)和语言模型(Zhang等人,2022)的交互。我们选择由(Han等人,2021)发布的更快的R-CNN模型来检测图像中的视觉概念,该模型在Visual Genome(Krishna等人,2017)上进行了训练。我们选择BLIP(Li等人,2022)作为所关注对象的区域字幕模型。我们使用OPT-66B和Llama-2-70B作为预训练的语言模型进行提示,因为它们既有效又公开可用。我们使用CLIP模型(ViT-B/16)(Radford等人,2021)来验证理由和图像之间的匹配相似度。我们没有使用GPT-3(Brown等人,2020),因为它的API成本昂贵且访问频率有限。

我们固定think模块中的上下文示例数量为8,因为这是我们在硬件配置上能够高效运行的最大数量。按照(Yang等人,2022)的做法,我们使用上下文示例选择和多查询集成来提示LLM。对于上下文示例,我们选择与训练集中当前图像-问题对CLIP特征最相似的示例。对于多查询集成,我们像以前的方法(Yang等人,2022;Chen等人,2021a)一样,除了表3中的对齐模型外,我们用模型和基线输入5次,并选择具有最高对数概率的一个,对齐模型我们集成14次,使它们具有与我们相似的计算成本。

数据集和评估指标:我们在标准的基于知识的VQA基准测试OK-VQA(Marino等人,2019)和A-OKVQA(Schwenk等人,2022)上评估我们的模型。OK-VQA是最受欢迎的基于知识的VQA数据集,包含14,055个图像-问题对。A-OKVQA是当前最大的KBVR数据集,它不仅提出与知识相关的问题,还提供支持理由,使其成为逐步推理的更好测试平台。我们没有在其他KB-VR数据集上进行实验,如F-VQA(Wang等人,2017a)和KB-VQA(Wang等人,2017b),因为它们假设问题知识可以从预定义的知识库中检索。

基线:我们主要将我们的方法与两个强大的基于上下文的学习基线进行比较,PICa(Yang等人,2022)和CoT(Wei等人,2022)。

  • PICa。使用GPT-3的PICa是OK-VQA上当前最先进的few-shot模型,它仅用图像字幕和对象标签提示LLM。
  • CoT。CoT是一种流行的提示方法,执行逐步推理来解决问题,而不是直接输出答案。我们通过要求LLM首先生成理由,然后预测答案来实现CoT。

我们使用OPT66B模型仔细实现了这两种方法,以进行公平比较。我们还在表格中包括了其他全监督方法以供参考。
在这里插入图片描述
定量结果:我们在表1中比较了我们的VCTP与A-OKVQA数据集的验证集和测试集上的基线。少次射击上下文学习方法在表中用⋆标记,我们的方法用灰色背景标记,以方便参考。根据结果,我们有以下观察。首先,与基于上下文学习的基线PICa和CoT相比,我们有持续的增益,甚至在A-OKVQA的测试分割上比之前的全监督预训练方法GPV-2表现更好。这些增益显示了我们方法在答案预测中的有效性。我们还注意到,与基于上下文的方法相比,全监督方法在验证集和测试集之间的性能差异更大。例如,GPV-2的准确率下降了7.9,而我们的方法只下降了0.4。我们认为原因是验证集已经在全监督方法中经常评估,有些过度拟合。

我们还评估了我们在OK-VQA的方法,结果在表1中。OK-VQA的训练集没有提供理由,这是CoT和我们方法所需的。对于我们的方法,我们开发了一个变体,只使用OK-VQA中的例子作为think模块的提示,而没有理由推理。当连续两次迭代的预测答案相同时,模型停止。我们观察到,我们的模型表现优于基线,PICa和CoT,这与我们在A-OKVQA数据集的发现一致。我们还可以看到(KAT-GPT-3(Gui等人,2022)和PICa-GPT-3)依赖于更强大的LLM,GPT-3(175B),以获得出色的性能。相比之下,我们的方法通过整合可用的OPT-66B LLM实现了合理的性能。当我们将OPT-66B LLM替换为Llama-2-70B模型(Touvron等人,2023),或BLIP2(Li等人,2023)和Codex(Chen等人,2021a)模型时,我们方法的性能显著提高,表明我们的方法可以从更强大的模型中受益。

定性结果:我们VCTP的逐步推理特性提供了更好的透明度和互操作性,使理解我们模型的工作原理变得容易。我们在图4中提供了与基线的定性比较。图4中的→显示了我们方法的推理过程,以获得相关的视觉概念、区域描述和支持理由。与PICa相比,我们的方法可以自适应地关注图像中对问题(例如What is the fence meant to block?)语义重要的关键视觉概念(例如“ball”和“tennis court”),并以自然语言的形式描述它们(例如“Someone has a tennis racket and is about to hit the ball”)以获得答案。此外,如图4中的explain列所示,我们的方法可以生成更好的支持理由(“The wall is used for displaying art”),这与图像中的视觉上下文更好地匹配。相比之下,CoT可能会生成与视觉上下文不一致的理由(“The wall is used for a sofa.”),导致错误的答案。

理由评估:为了进一步评估我们方法的推理过程,我们在表2中比较了我们方法和CoT在A-OKVQA验证集上的理由质量,其中理由是公开可用的。我们使用广泛使用的BLEU分数和CLIP句子相似度作为指标。我们测量了由CLIP(ViT-B/16)(Radford等人,2021)文本编码器计算的句子表示的多BLEU分数和平均余弦相似度。BLEU和相似度结果均显示,我们方法生成的理由比CoT生成的理由更接近真实情况。

计算分析:为了更好地理解我们方法的效率,我们使基于上下文学习的基线具有与我们模型相似的计算成本。具体来说,我们增加了查询集成的k数量(除了PICa-aligned和CoT-aligned以下的实验中为5)对于PICa和CoT,并使它们对LLM的总体查询数量与我们的方法相同。考虑到我们方法在实验中的平均查询数量为13.62,成本对齐的PICa和CoT的集成数量k为每个样本14,分别表示为PICa-aligned和CoT-aligned。我们在表3中将它们的结果与我们的方法进行比较,表明在考虑计算成本问题后,我们的方法仍然显著优于PICa和CoT。我们还注意到PICa的性能在集成数量k增加时略有下降。我们认为这种下降与上下文样本选择方法有关,当k增加时,选择的样本与当前问题更不相关。消融研究。我们在A-OK-VQA的验证集上进行了消融研究,并在表4中总结了结果。Ours表示我们的默认模型,所有组件都与算法1中的mIter集成为5。Ours-1/4/6表示我们将最大迭代设置为1、4和6。“w/o A/R/V”表示VCTP模型没有attend-describe组件,没有生成理由和没有CLIP验证模块。R-A/G/R分别关注一个随机区域,将全局字幕替换为训练集中的随机一个,并从训练集中随机选择一个理由;O-A是一个预言模型,关注由文本编码器估计的与答案最相似的视觉概念。Recall-1和Recall-2使用最后一步的提示来评估模型捕获关键概念的性能,通过计算真实答案最相关的视觉概念和包含在真实答案和理由中的所有概念的提示的召回率。我们发现,如果没有任何一个消融组件(w/o A/R/V),性能会下降,表明每个组件都对整体性能有所贡献。与大多数消融研究相比,除了w/o V,我们发现我们的模型关注了更重要的概念,正如Recall-1和Recall-2所示。如果能够准确地关注关键概念(Oracle-A),我们模型的性能可能会进一步提高。我们进一步发现,Ours关注了比w/o V更少的重要概念,但是问题回答性能更高,我们认为这是因为验证机制帮助拒绝了一些误导性的理由重新添加到提示中。我们观察到,“attend”模块对性能影响最大,我们认为这是因为“attend”组件为LLM提供了关键的视觉上下文,以推断正确的答案,如图4中的示例所示。“w/o R”和“Random-R”消融表明,将推理理由添加到模型中不仅增加了模型的透明度,而且对答案预测也产生了积极影响。与没有迭代的消融(Ours-1)相比,我们的模型表现更好,这表明了迭代交互式提示的重要性。

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

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

相关文章

论文文献翻译怎么做?快又准的外文文献翻译软件帮你搞定

平时我们查阅文献通常都是将其翻译成中文,方便更高效和准确地理解和阅读;但对于不少留学生而言,如何把文献翻译成英文也是他们需要解决的一大硬茬~ 今天就给大家盘点了4个能够把文献翻译成英文的实用小技巧,有需要的小伙伴可别错…

PicHoro v2.4.0 — 强大的图床管理,可导入PicGo配置

PicHoro是一款基于Flutter开发的手机端云存储平台,支持多种云存储服务和图床,提供便捷的文件管理和分享功能。兼容多种云存储和图床平台,包括Webdav、Alist、SSH/SFTP、S3 API、腾讯云COS、阿里云OSS、七牛云、又拍云、Imgur、SM.MS以及Githu…

Java基础入门20:特殊文件、日志技术、多线程、网络通信

特殊文件 properties属性文件 Properties是一个Mp集合(键值对集合),但是我们一般不会当集合使用。 核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容。 使用Properties把键值对数…

【STM32】电容触摸按键

电容按键就是酷,但据我使用过电容按键版的洗澡计费机子后,一生黑(湿手优化没做好的电容按键简直稀碎)。 大部分图片来源:正点原子HAL库课程 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目录 1 触摸按…

IPv4和IPv6的区别是什么?什么是局域网和广域网,公网IP和私有IP?

文章目录 1.基本网络2.局域网3.广域网4.IPv4与NAT5.公网IP和私有IP6.IPv6 1.基本网络 我们都知道计算机的数据都是存在各自硬盘中的,与其他计算机之间没有人任务关系. 假设计算机A需要给计算机B发送数据,可以选择使用U盘这类移动存储数据来拷贝数据来实现数据交互,但是这样一…

惊艳开源界!20.6K+星标瞩目,打造高性能LLM(大型语言模型)应用的开发平台

项目简介 Dify 是一个开源的LLM(大型语言模型)应用开发平台,它通过直观的界面结合了AI工作流程、RAG(检索-分析-生成)管道、代理功能、模型管理、可观察性特性等,使用户能够快速从原型设计转向产品生产。 …

一起搭WPF之列表数据绑定

一起搭WPF之列表数据绑定 1 前言2 数据绑定2.1 前端2.2 后端实现2.2.1 界面后台2.2.2 模型与逻辑 3 问题3.2 解决 总结 1 前言 之前已经简单介绍了列表的大致设计,在设计完列表界面后,我们可以开展列表的数据绑定,在前端显示我们的数据&…

【问题处理】前端Vue项目遇到的一些问题及处理方式

每次新整一个项目的时候,开端总是会遇到各种奇奇怪怪的问题,一步一坎的感觉,但是没关系,遇到了就一步一步去解决,当把所有问题都处理后,成功运行起来,就会突然很有成就感,一切都是那…

大模型嵌入向量Embeddings

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhlEmbeddings概述 嵌入(Embeddings)概述 基本概念 嵌入,或称为Embeddings,在机器学习领域中扮演着至关重要的角色。它是一种将离散数据元素,如文本中的单词或图像中的像素点,映射到连续的向量…

虹科方案 | 疫苗冷链温度监测解决方案

通过WHO PQS标准的支持和稳定性预算的应用,我们可以更好地保障疫苗在全球范围内的安全运输和储存,接下来让我们了解一下既能计算药品剩余稳定性预算,又符合WHO PQS预认证的疫苗冷链温度监测解决方案。 疫苗冷链温度监测解决方案 根据WHO和《…

dpdk解析报文协议-基于l2fwd

dpdk解析报文协议-基于l2fwd 0 前置条件 1、这里需要两台虚拟机,配置了相同的虚拟网络,可以通过tcpreplay在一台虚拟机回放报文,在另一台虚拟机通过tcpdump -i 网卡名 捕获到。 具体配置可参考https://www.jb51.net/server/2946942fw.htm 2…

IP SSL:最快捷的安全证书

在这个数字化时代,企业面临着前所未有的挑战——如何在保证业务高效运行的同时保护其核心资产免受网络威胁。随着网络安全事件频发,企业和个人对数据安全的关注度达到了前所未有的高度。在此背景下,IP SSL(Internet Protocol Secu…

Python分布式任务处理库之dramatiq使用详解

概要 在现代 Web 应用和数据处理任务中,异步任务处理是一个至关重要的部分。Dramatiq 是一个用于分布式任务处理的 Python 库,旨在提供简单、可靠的任务队列解决方案。与其他任务队列库相比,Dramatiq 更加轻量级,且易于上手。它的设计目标是帮助开发者轻松地将耗时的任务放…

【开源分享】在线客服系统PHP源码 带搭建教程

系统的主要特色功能 自动回复和机器人知识库:通过后台设置机器人知识库,系统可以根据关键词自动回复用户,提高响应速度和服务效率。 内容过滤:支持设置违禁词,避免接收包含不良信息的用户消息,维护平台健…

海康VisionMaster使用学习笔记17-定位项目误差分析及精度提高

定位问题排查步骤 机构及成像排查 标定过程排查 标定数据质量排查 标定结果排查 示教过程排查 注意事项总结

Kompose工具:转换Compose项目为K8S项目

Docker与Kubernetes系列 转换Compose项目为K8S项目 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.cs…

光储电站联合配置!多种调度模式下的光储电站经济性最优储能容量配置分析程序代码!

前言 不同于光伏独立系统以平衡负荷电量为目标,光伏电站需要跟踪调度中心下达的计划出力曲线。光伏发电存在随机性和波动性的特点,大规模集中式光伏电站集群引起出力变化,并且其有功功率上调节能力较弱,将大量占用系统备用资源&a…

MacOS安装Axure10

MacOS安装Axure10 小阿呜有话说一、 软件下载&安装与激活二、Axure10软件汉化 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 小阿呜有话说 前不久换了新电脑,需要重新安…

文心快码Baidu Comate 帮你解大厂面试题:spring如何实现交叉依赖的注入?

🔍【大厂面试真题】系列,带你攻克大厂面试真题,秒变offer收割机! ❓今日问题:在8g内存的机器,能否启动一个7G堆大小的java进程? ❤️一起看看文心快码Baidu Comate给出的答案吧!如…

设计模式2个黄鹂鸣翠柳-《分析模式》漫谈23

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第一章有这么一句: The "Gang of Four" book has had much more influence in software patterns than Alexanders work, and three o…