大语言模型幻觉解决方案综述

news2024/10/6 22:30:40

图片

论文题目:《Cognitive Mirage: A Review of Hallucinations in Large Language Models》

论文链接:https://arxiv.org/abs/2309.06794v1

论文代码:https://github.com/hongbinye/cognitive-mirage-hallucinations-in-llms

技术交流群

建了技术答疑、交流群!想要进交流群、资料的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流

在这里插入图片描述

一、幻觉介绍

由ChatGPT带来的大模型时代,国内外各大厂家都在陆续推出自己的大模型,然而目前大模型都存在一个普遍的现象就是:幻觉。

幻觉的基本定义:大模型生成看似合理的内容,其实这些内容是不正确的或者是与输入Prompt无关,甚至是有冲突的现象,幻觉示例如下图所示:

图片

在准确率要求非常高的场景下幻觉是不可接受的,比如医疗领域、金融领域等。

觉产生的原因

论文认为产生幻觉的主要原因有预训练数据收集、知识GAP和大模型优化过程三个方面。

数据收集

  • 预训练数据:大模型的知识和能力主要来自与预训练数据,如果预训练数据使用了不完整或者过期的数据,那么就很可能导致知识的错误,从而引起幻觉现象;

  • 上下文学习:为了让大模型可以更好的输出,有时会在Prompt中增加一些上下文内容,然而这些上下文的类别和pair的顺序也可能引起幻觉,比如前几个example的标签是“是”,后面几个是“否”,那么大模型很可能就输出“否”了;

  • 多语言大模型:处理少语种或者非英文翻译的问题;

知识GAP:

主要来自pre-training和fine-tuning阶段的输入数据格式不同引起的。

优化过程:

  • 最大似然估计和teacher-forcing训练有可能导致一种被称为随机模仿的现象,大模型在没有真正理解的情况下模仿训练数据,这样可能会导致幻觉;

  • top-k和top-p采样技术也可能导致幻觉,LLM倾向于产生滚雪球般的幻觉,以保持与早期幻觉的一致性,即使在“Let’s think step by step”这样的提示下,它们仍然会产生无效的推理链;

三、幻觉的分类

论文总结了常见的下游任务的幻觉现象,比如机器翻译、问答系统、对话系统、文本摘要、LLM知识图谱和视觉问答系统,结果如下表所示:

图片

四、幻觉的分类

图片

推理分类器

给定问题Q和答案A,训练一个分类器,让分类器去判断生成的答案是否包含幻觉H,因此,Shen等人(2023)采用最先进的LLM对检测结果进行端到端文本生成。其他一些研究(Li et al.,2023b)发现,在输出之前添加思维链可能会干预最终判断,而检索知识则会带来收益。进一步推进这一概念,用于生成中间过程标签和高质量自然语言解释的暗示分类器和解释器(Shen et al.,2023)被证明可以从各种角度增强最终预测的类别。随后,Tam等人(2023)建议采用与生成的模型不同的分类器模型,这有助于更容易判断事实的一致性。对于放射学报告生成,可以利用二元分类器(Mahmood等人,2023)通过结合图像和文本嵌入来测量可靠性。

不确定度度量:

重要的是要检查幻觉指标与各种视角的输出质量之间的相关性。一种直观的方法是使用模型本身的概率输出。类似地,BARTSCORE(Yuan et al.,2021)采用了一个普遍的概念,即当生成的文本更好时,被训练将生成的文本转换为参考输出或源文本的模型得分会更高。这是一种无监督的度量,支持添加适当的提示来改进度量设计,而无需人工判断来训练。此外,KoK(Amayuelas et al.,2023)基于Pei和Jurgens(2021)的工作,从主观性、模糊限制语和文本不确定性三个类别来评估答案的不确定性。然而,SLAG(Hase等人,2023)在转述、逻辑和蕴涵方面衡量了一致的事实信念。除此之外,KLD(Pezeshkpour,2023)结合了基于信息理论的度量(例如熵和KL散度)来捕捉知识的不确定性。除了专家提供的方案监督外,POLAR(赵等人,2023b)引入了帕累托最优学习评估风险评分,用于估计响应的置信水平;

自我评估:

自我评估是一种挑战,因为模型可能对其生成的样本的正确性过于自信。SelfCheckGPT(Manakul et al.,2023)的动机是利用LLM自身的能力对多个响应进行采样,并通过测量响应之间的信息一致性来识别虚构陈述。Kadavath等人(2022)进一步说明,规模的增加和评估的展示都可以改善自我评估。除了重复的多个直接查询,Agrawal等人(2023)使用开放式间接查询,并将其答案相互比较,以获得一致的分数结果。自矛盾(Mündler et al.,2023)对同一LLM施加了适当的约束,以生成触发自矛盾的成对传感器,从而促使检测。相反,基于轮询的查询(Li et al.,2023i)通过随机抽样查询对象来降低判断的复杂性。此外,Self-Checker(Li et al.,2023d)将复杂的语句分解为多个简单的语句,逐一进行事实核查。然而,Cohen等人(2023)引入了两个LLM交互交叉询问,以推动复杂的事实核查推理过程;

证据检索:

证据检索通过检索与幻觉有关的支持性证据来辅助事实检测。为此,设计一个以索赔为中心的管道允许问题检索摘要链有效地收集原始证据(Chen et al.,2023b;霍等人,2023)。因此,FActScore(Min等人,2023)计算给定知识源支持的原子事实的百分比。为了适应用户与生成模型交互的任务,FacTool(Chern et al.,2023)提出将各种工具集成到任务不可知和领域不可知的检测框架中,以收集有关生成内容真实性的证据。

五、幻觉解决方案

论文总结了五种解决幻觉的方法,具体如下图所示:

图片

不同下游任务解决幻觉的方法不同,具体如下图所示:

图片

参数自适应:

LLM中的参数存储了预训练中学习到的偏见,这些偏见通常与用户意图不一致。一般策略是通过参数调节、编辑和优化来引导有效的知识。例如,CLR(Sun等人,2023)利用对比学习参数在跨度水平上进行优化,以降低负面样本的生成概率。在引入与模型的内在先验知识相矛盾的上下文知识边缘背景的同时,TYE(Shi et al.,2023a)通过上下文感知解码方法有效地降低了先验知识的权重。此外,PURR(Chen et al.,2023a)将噪声腐蚀到文本中,微调紧凑的编辑器,并通过合并相关证据来去噪。为了引入额外的缓存组件,HISTALIGN(Wan et al.,2023)发现其隐藏状态与当前隐藏状态不一致,并提出了序列信息对比学习以提高内存参数的可靠性。因此,Edit TA(Ilharco等人,2023)从任务算法的角度缓解了在预训练中学习到的问题。其背后的直觉是,通过负示例任务学习到的参数变化可以通过权重变化来感知。然而,由于这没有考虑到不同反例的重要性,因此EWR(Da-heim et al.,2023)提出了Fisher信息模型来测量其估计的不确定性,该模型用于对话系统执行参数插值并消除幻觉。EasyEdit(Wang et al.,2023c)总结了参数编辑的方法,同时将对无关参数的影响降至最低。

一个有效的替代方法是识别特定于任务的参数并利用它们。例如,ALLM(Luo et al.,2023)将参数模块与特定任务的知识对齐,然后在背景增强提示中生成相关知识作为附加上下文。类似地,mmT5(Pfeiffer et al.,2023)在预训练期间利用特定语言模块将特定语言信息与独立于语言的信息分离,表明添加特定语言模块可以消除多语性的诅咒。相反,TRAC(Li et al.,2023f)将保角预测和全局测试相结合,以增强基于检索的QA。保守策略公式确保在预测集中包括与真实答案在数量上等效的答案。

另一个参数自适应思想侧重于符合用户需求的灵活采样。例如,Lee等人(2022)观察到,当生成句子的后半部分时,抽样的随机性对事实更不利。为了在保证生成质量和多样性的同时保持生成的忠实性,引入了事实核采样算法。此外,推理时间(Li et al.,2023c)首先识别出一组具有高线性探测精度的注意头,然后沿着与事实知识相关的方向转移推理过程中的激活。

事后归因和编辑技术

幻觉的一个来源是LLM可能会利用预训练数据中观察到的模式,以一种新的形式进行推理。最近,ORCA(Han和Tsvetkov,2022)通过从预训练数据探索支持数据证据,揭示了模型行为中的问题模式。同样,TRAK(Park et al.,2023)和Data Portraits(Marone和Durme,2023。QUIP(Weller等人,2023)进一步证明,提供在预训练阶段观察到的文本可以提高LLM生成更多实际信息的能力。此外,由于LLM和人类思维模式之间的差距,一种直觉是将两种推理模式结合起来。因此,CoT(Wei et al.,2022b)通过一种思维链(CoT)(Kojima et al.,2022)提示引发了忠实的推理。类似地,RR(He等人,2023)基于从CoT提示获得的分解推理步骤来检索相关的外部知识。由于LLM通常不会在第一次尝试时产生最佳输出,因此自精化(Madaan et al.,2023)通过迭代反馈和改进来实现自精化算法。反思(Shinn等人,2023)还采用言语强化,通过学习先前的失败来产生反思性反馈。Verify-and-Edit(赵等人,2023a)提出了一种CoT提示的验证和编辑框架,该框架通过基于外部检索的知识对推理链进行后编辑来提高预测的逼真度。幻觉的另一个来源是用不正确的检索来描述事实内容。为了说明这一点,NP Hunter(Dziri et al.,2021)遵循一种先生成后细化的策略,即使用KG修改生成的响应,以便对话系统化,通过查询KG来纠正潜在的幻觉。

利用外部知识

为了扩展语言模型以减少歧义,建议从大型文本数据库中检索相关文档。RETRO(Borgeud et al.,2022)将输入序列分割成块并检索相似的文档,而In-Context RALM(Tam et al.,2023)将所选文档放在输入文本之前以改进预测。此外,IRCoT(Trivedi等人,2023)将CoT生成和文档检索步骤交织在一起,以指导LLM。由于缩放主要提高了公共知识的内存,但并没有显著提高长尾中事实知识的内存。因此,POPQA(Mallen et al.,2023)在必要时仅检索非参数内存以提高性能。LLM-AUMMENTER(Peng et al.,2023)还将LLM的回答建立在综合外部知识和自动反馈的基础上,以提高答案的真实性得分。另一项工作,CoK(Li et al.,2023h)迭代分析即将到来的句子的未来内容,然后将它们作为查询来检索相关文档,以便在句子包含低可信度令牌时重新生成句子。类似地,RETA-LLM(Liu et al.,2023c)创建了一个完整的管道,以帮助用户构建自己的基于域的LLM检索系统。请注意,除了文档检索之外,还可以将各种外部知识查询组合到检索增强的LLM系统中。例如,FLARE(Jiang et al.,2023)利用结构化知识库来支持复杂的查询,并提供更直接的事实陈述。此外,KnowledGPT(Wang et al.,2023e)采用了思想程序(PoT)提示,生成代码与知识库交互。而cTBL(Ding et al.,2023)提出在会话设置中使用表格数据来增强LLM。此外,GeneGPT(Jin et al.,2023)证明,通过上下文学习和增强解码算法检测和执行API调用,可以更容易、更准确地访问专业知识。为了支持潜在的数百万不断变化的API,Gorilla(Patil et al.,2023)探索了自我构造的微调和检索,以高效利用API。

评估反馈:

随着语言模型变得越来越复杂,评估反馈可以显著提高生成文本的质量,并减少幻觉的出现。为了实现这一概念,LSHF(Stiennon等人,2020)通过模型预测了人类偏好的总结,并将其作为奖励函数,使用强化学习来微调总结策略。然而,这种方法建立在人工注释器构建的模型之上,这使得它们在数据利用率方面效率低下。因此,TLM(Menick et al.,2022)提出通过从人类偏好中强化学习,通过选择几个拒绝回答的问题来提高系统的可靠性,这显著提高了系统的可靠性。而强化学习往往存在不完美的奖励函数,并依赖于具有挑战性的优化。因此,后见链(Liu et al.,2023a)将反馈偏好转化为句子,然后将其输入到模型中进行微调,以增强语言理解。

除了使模型能够以样本有效的方式直接从事实指标的反馈中学习(Dixit et al.,2023)外,建立模型的自我评估功能以过滤候选生成的文本也很重要。例如,BRIO(Liu et al.,2022)提出了摘要模型评估,估计候选输出的概率分布,以评估候选摘要的质量。而LM know(Kadavath et al.,2022)致力于调查LLM是否可以通过检测他们知道问题答案的概率来评估他们自己主张的有效性。随后,Do LLM Know(Agrawal et al.,2023)专门使用黑盒LLM进行查询,并将多次重复生成的查询结果相互比较,以通过一致性检查。此外,黑盒LLM增加了即插即用检索模块(Liu et al.,2023a;Huang et al.,2021),以生成反馈,从而提高模型响应。

由于遗漏引文质量评估影响最终表现,ALCE(Gao et al.,2023c)采用自然语言推理模型来衡量引文质量,并扩展了综合检索系统。类似地,CRITIC(Gou et al.,2023)建议与适当的工具进行交互,以评估文本的某些方面,然后根据验证过程中获得的反馈修改输出。请注意,自动错误检查还可以利用LLM生成符合工具界面的文本。PaD(Zhu et al.,2023c)通过综合推理程序提取LLM,获得的综合程序可以由程序员自动编译和执行。此外,迭代精化过程被验证可以有效地识别适当的细节(Ning et al.,2023;张等人,2023b;余等人,2023b),并且可以停止早期无效的推理链,有益地减少幻觉滚雪球的现象(张等人,2021)。

心态社会

人类的智慧源于认知协同的概念,不同认知过程之间的协作比孤立的个体认知过程产生更好的结果。“心智社会”(Minsky,1988)被认为有可能显著提高LLM的性能,并为语言产生和理解的一致性铺平道路。为了在不同翻译场景的大规模多语言模型中解决幻觉,HLMTM(Guerreiro et al.,2023a)提出了一种混合设置,在该设置中,当原始系统产生幻觉时,可以请求其他翻译系统作为备份系统。因此,多主体辩论(Du et al.,2023)在几轮中使用多个LLM来提出和辩论他们的个人反应和推理过程,以达成一致的最终答案。由于这一过程,鼓励模型构建与内部批评和其他主体反应一致的答案。在给出最终答案之前,所得到的模型社区可以同时保持和维护多个推理链和可能的答案。基于这一想法,MAD(Liang et al.,2023)增加了一个法官管理的辩论过程,表明辩论的适应性中断和受控的“针锋相对”状态有助于完成事实辩论。此外,FORD(Xiong et al.,2023)提出了包括两个以上LLM的圆桌辩论,并强调有能力的法官对主导辩论至关重要。LM与LM(Cohen et al.,2023)还提出了LM与另一个LM之间的多轮交互,以检查原始陈述的真实性。此外,PRD(Li et al.,2023e)提出了一个基于同行排名和讨论的评估框架,以得出所有同行都同意的公认评估结果。为了保持强有力的推理,SPP(Wang et al.,2023g)利用LLM来分配几个细粒度的角色,这有效地刺激了知识获取并减少了幻觉。

六、幻觉待解决问题

尽管在LLM幻觉调查中提出了许多技术解决方案,但仍存在一些潜在的方向:

数据构建管理:

如前所述,LLM的风格和知识通常在模型预训练期间学习。高质量的数据为LLM中幻觉的减少提供了有希望的机会(Kirstain等人,2022)。受机器学习模型的基本规则“垃圾输入,垃圾输出”的启发,周等人(2023)提出了超社会对齐假设,将对齐视为学习与用户交互。对一些高质量样本进行简单微调的结果表明,数据质量和多样性超过了微调大规模指令的重要性(Mishra等人,2021;Wei等人,2022a;Sanh等人,2022)和RLHF(Bai等人,2022;欧阳等人,2020)。为了在知识密集型垂直领域高效执行,我们认为,构建以实体为中心的微调指令(Bao et al.,2023;桂等人,2023)是一个很有前途的方向,它可以将结构化知识和知识图的语义相关性相结合,以增强生成的实体信息的真实性。另一个可行的建议是在教学构建过程中加入自我管理阶段(Li et al.,2023g),以评估候选配对的质量。在迭代过程中,基于手动或自动规则约束的质量评估(Chen et al.,2023c)可以提供自校正能力

下游任务协调:

通用LLM在各种开放环境中具有一定程度的自然语言问题理解能力。然而,主要问题仍然存在于对应用要求的偏离,这导致了各种幻觉的出现。因此,下游任务对齐,特别是建立在垂直领域认知的基础上,需要广泛的符号推理、复杂任务的分解和规划,以及忠实的外部知识注入。具体来说,尽管LLM是语言处理方面的专家,但它很难在数学能力方面取得突破,这是一个与文本训练目标有关的缺陷。尽管已经提出了一些关于符号数学单词问题的研究(Gaur和Saunshi,2023;Zhu et al.,2023b),但增强符号推理和回答数字问题仍有待广泛研究。此外,对于需要不同输出的故事生成任务(Yang et al.,2022023),除了避免事实矛盾外,还需要引人入胜的故事情节。因此,在模型推理过程中实现忠实和创造性之间的平衡仍然是一个关键的挑战。此外,整合新知识来处理知识密集型任务涉及处理LLM的内部知识和外部知识图的显式知识边缘之间的联合推理。设计知识感知方法,将知识边缘图中的结构化信息纳入LLM的预训练过程,这带来了挑战。或者,预计推理过程将动态注入知识图信息(Wen等人,2023)。

LLM作为一种评估工具的使用是一种新兴的应用,但受到模型规模、教学调整效果和不同形式输入的限制(Agrawal等人,2023)。值得注意的是,LLM作为评分法官的尝试必须克服由立场、冗长、自我增强引起的各种偏见(Zheng等人,2023a;Berglund等人,2023;Wang等人,2023b)。因此,我们预测,未来关于设计特定任务机制来分析和纠正新出现的下游任务的过程的研究是一个值得长期关注的领域。

推理机制开发:

新兴的CoT技术(Wei et al.,2022b)通过模仿内在思维流来刺激LLM的涌现推理能力。构造一个逻辑中间推理步骤已被证明能显著提高问题解决能力。最近,一个主要的改进是与CoT的自一致性(CoT-SC)(Yao et al.,2023),这是一种生成多个CoT选项,然后选择最佳结果作为反馈的方法。此外,思维树(ToT)(Yao et al.,2023)在思维过程中引入了严格的树结构,这有助于不同思维路径的发展,并提供了一种新颖的回滚功能。由于以前的方法没有中间结果的存储,累积推理(CR)(Zhang et al.,2023c)以累积和迭代的方式使用LLM来模拟人类的思维过程,并将任务分解为更小的组件。然而,实际思维过程产生了一个复杂的思想网络,例如,人们可以探索一个特定的推理链,回溯或开始一个新的推理链。特别是当意识到以前推理链中的想法可以与当前探索的想法相结合时,它们可以合并为一个新的解决方案。更令人兴奋的是,思维图(GoT)(Zhang et al.,2023c)通过构建具有多个传入边的顶点来聚合任意思想,从而扩展了思想之间的依赖关系。此外,程序辅助语言模型(PAL)(Gao等人,2023b)和思维程序提示(PoT)(Chen等人,2022b)将编程逻辑引入语言空间(Bi等人,2023),扩展了调用外部解释器的能力。总之,我们相信,基于人类认知的研究有助于为幻觉的分析提供精彩而深刻的见解,如双过程理论(Frankish,2010)、三层心理模型(Stanovich,2011)、心理计算理论(Piccinini,2004)和连接主义(Thorndike,1898)。

多模态幻觉调查:

利用LLM出色的理解和推理能力,建立强大的多模式大型语言模型(MLLM)已成为社区共识(Li et al.,2023a;Dai et al.,2021;Ye et al.(2023))。李等人(2023i)通过对象检测和基于轮询的查询证实了MLLM中幻觉的严重性。结果表明,这些模型对物体幻觉具有很高的敏感性,并且生成的描述与目标图像不匹配。此外,Shao等人(2023)认为MLLMs具有有限的多模态推理能力以及对虚假线索的依赖性。尽管目前的研究(Yin et al.,2023b)对MLLMs进行了广泛的概述,但幻觉的原因尚未得到全面的调查。LLM中的幻觉主要来自训练数据中的错误知识,而MLLM的挑战在于将抽象的视觉编码准确地传递到语义空间中。现有的MLLM通过指令进行微调,使其目标输出遵循人类意图。然而,视觉模式和文本模式之间的错位可能会导致有偏见的分配。此外,缺乏视觉约束导致MLLMs出现严重的幻觉问题。因此,一个潜在的改进是将注意力转移到图像上(Wang et al.,2023a)或增强对视觉常识的理解。在细粒度的视觉和实际模态对齐方面,关注图像的局部特征和相应的文本描述可以提供忠实的模态交互。此外,一些MLLM的性能,如MiniGPT-4(Zhu et al.,2023a),高度依赖于提示的选择,需要仔细选择。请注意,为了方便用户,需要在多样性和幻觉之间进行可控的权衡。未来,随着更复杂的多模型应用的出现,改进MLLM的推理路径也是一个很有前途的研究方向。

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

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

相关文章

编写软件产品使用说明书的重要技巧分享

编写软件产品使用说明书是确保用户能够准确了解和使用你的软件的重要一步。一份清晰、详尽的软件产品使用说明书不仅可以提高用户满意度,也能减少用户的疑惑和困惑。然而,要编写一份优秀的软件产品使用说明书并不容易。接下来就跟大家分享一些我的经验和…

使用JMeter创建FTP测试计划

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

Leetcode-234 回文链表

我的解法:使用栈,定义了len略微复杂,拿链表的后半部分和前半部分比较即可,没必要全部比较 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* List…

YOLO目标检测——路标检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用:路标检测数据集在自动驾驶、交通安全监控、导航系统、城市规划和车辆行为分析等领域都有广泛应用的潜力数据集说明:路标检测数据集,真实场景的高质量图片数据,数据场景丰富,含有停止标志、速度限制标志、…

【编程语言发展史】Unity开发语言的历史发展

Unity开发前期版本时,使用的是一种名为UnityScript的类似JavaScript的语言。然而,随着时间的推移,开发者社区大多数人都倾向于使用C#进行开发,Unity决定将重点放在C#上,因为C#具有更强大的生态系统、更好的性能和更广泛…

基于wechaty实现聊天机器人(微信自动回复)

最终效果 返回前端一个二维码,扫码登录后,机器人将上线,根据后端node内代码实现自动回复等功能 初始化项目 npm init -y安装 wechaty 核心包 npm i wechaty wechaty-puppet wechaty-puppet-padlocal安装 qrcode-terminal 用于终端输出二…

【GO】项目import第三方的依赖包

目录 一、导入第三方包 1.执行命令 2.查看go环境变量参数 3.查看go.mod文件的变化情况 二、程序里如何import 1. import依赖包 2. 程序编写 本次学习go如果依赖第三方的包,并根据第三方的包提供的接口进行编程,这里需要使用go get命令。下面将go…

【IP固定】地平线开发板如何实现重启IP地址不变

文章目录 1 背景2 临时解决方案3 真正解决方案 1 背景 重新刷了地平线工具链OE包中BSP20230417的系统镜像,结果只能串口连接,无法实现网口连接,串口连接后,发现eth0和eth1的IP竟然是一样的,如下图所示 还挺少见的。 …

基于单片机的多层电梯控制仿真系统

**单片机设计介绍, 基于单片机的多层电梯控制仿真系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的多层电梯控制仿真系统是一个复杂的系统,它需要结合单片机技术、控制理论、电子技术以及人…

C# 继承,抽象,接口,泛型约束,扩展方法

文章目录 前言模拟需求场景模拟重复性高的需求初始类结构继承优化抽象类 需求1:打印CreateTime方法1:使用重载方法2:基类函数方法3:泛型约束方法3.1:普通泛型方法方法3.2:高级泛型约束,扩展方法…

Linux cat命令

连接文件并打印输出到标准输出设备。cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。 关于此命令,有人认为写 cat 命令的人是因为喜欢猫&am…

canal 同时监听两个数据库实例

我有两个数据库实例 test和test2 复制一个example 并修改为example2 修改canal.properties文件 找到 destinations 修改为监听example和example2实例 把canal.destinations example 修改为 canal.destinations example,example2 在example目录中修改实例配置文件 instance…

java版小程序商城免费搭建-直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

centos7安装docker容器

卸载老版本: $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine/var/lib/docker/路径下存在镜像、数据卷、容器等,在卸载的时候是不会自动删除…

JAVA字符串格式化——String.format()的使用

引言 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。 重载 // 使用当前本地区域对象(Locale.getDefault()),制定…

软件测试面试题之测试基础,想轻松应对面试,看完这篇就够了

软件测试的流程是什么?(测试流程) (1)需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人…

【计算机网络】物理层知识

目录 1、物理层的基本概念 2、数据通信的基础知识 2.1、数据通信系统模型 2.2、信道的几个基本概念 3、物理层下面的传输媒体 4、信道复用技术 1、物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的 传输媒…

数据标注工具【LabelImg】安装使用 用VOC制作自己的数据集

labelImg的安装 ⭐️LabelImg简介⭐️LabelImg的安装⭐️labelImg标注数据集⭐️利用VOC制作自己的数据集 ⭐️LabelImg简介 Labelimg是一款开源的数据标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面&#xf…

漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关

项目说明 在百度地图开发的过程中,如果遇见大数据量POI标注展示或在最佳视野展示时,没有文本标签,会不清楚具体标注的代表的意义;如果同时显示大量的文本标签,又会导致界面杂乱且无法清晰查看,因此&#x…

Leetcode-160 相交链表

双指针:遍历两次 a重bb重a /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public ListNode getInter…