大模型技术发展概述 -(四)

news2024/11/24 0:07:32

文本内容参考论文《A Survey of Large Language Models》

在这里插入图片描述
在这里插入图片描述

论文标题:A Survey of Large Language Models
论文链接:https://arxiv.org/pdf/2303.18223v10.pdf

大模型技术发展概述 -(四)

  • 6. 使用方法
    • 6.1 上下文学习
      • 6.1.1 提示形式
      • 6.1.2 示范设计
      • 6.1.3 潜在机制
    • 6.2 CoT提示
      • 6.2.1 CoT下的上下文学习
      • 6.2.2 CoT进一步讨论
  • 7. 性能评估
    • 7.1 基本评估任务
      • 7.1.1 语言生成
      • 7.1.2 知识利用
      • 7.1.3 复杂推理
    • 7.2 先进能力的评估
    • 7.3 公共基准和实证分析

6. 使用方法

在预训练或适应微调之后,使用LLM的主要方法是为解决各种任务设计合适的提示策略。一种典型的提示方法是上下文学习(in-context learning),它将任务描述和/示范以自然语言文本的形式表示。此外,可以通过链式思考提示(chain-of-thought prompting)增强上下文学习,其中涉及一系列中间推理步骤的提示。接下来,将详细介绍这两种技术的细节。

6.1 上下文学习

作为一种特殊的提示形式,上下文学习(In-Context Learning,ICL)是首次随着GPT-3 提出的,已成为利用LLM的典型方法。

6.1.1 提示形式

上下文学习使用一种格式化的自然语言提示,由任务描述和/或几个任务示例作为示范组成。如下图展示了上下文学习的示例。首先,从任务数据集中选择一些示例作为示范。然后,将它们按特定顺序组合,形成带有特殊设计模板的自然语言提示。最后,将测试实例附加到示范中作为LLM的输入,生成输出。基于任务示范,LLM可以在没有明确梯度更新的情况下识别并执行新任务。

在这里插入图片描述

形式化地说,设 D k = f ( x 1 , y 1 ) , . . . , f ( x k , y k ) Dk = {f(x_1, y_1), . . . , f(x_k, y_k)} Dk=f(x1,y1),...,f(xk,yk)表示包含k个示例的示范集,其中 f ( x k , y k ) f(x_k, y_k) f(xk,yk)是将第k个任务示例转化为自然语言提示的函数。给定任务描述 I I I、示范 D k D_k Dk和新的查询输入 x k + 1 x_k+1 xk+1,LLM生成的输出 y ^ k + 1 \hat y_{k+1} y^k+1的预测可以表示为:

在这里插入图片描述

其中实际答案 y k + 1 y_{k+1} yk+1为空,需要LLM预测。由于ICL的性能严重依赖示范,正确设计提示中的示例是一个重要问题。根据方程上面瘩中的构造过程,我们关注提示中格式化示例的三个主要方面,包括如何选择组成示范的示例、如何将每个示例格式化为提示中的示例(使用函数f(·)),以及如何合理地排列示范。

6.1.2 示范设计

多项研究表明,示范的设计对ICL的有效性有很大影响[247-249]。
根据前面第6.1.1节的讨论,我们将从示范选择、格式和顺序这三个主要方面介绍ICL的示范设计。

示范选择

ICL的性能在不同的示范示例下变化较大[250],因此选择能够有效利用LLM的ICL能力的示范子集非常重要。有两种主要的示范选择方法,即启发式方法和基于LLM的方法:

  • 启发式方法:由于简单和低成本的特点,现有的工作广泛采用启发式方法来选择示范。几项研究使用基于k-NN的检索器选择与查询语义相关的示例。然而,他们是针对每个示例单独进行选择,而不是整体评估示例集合。为了解决这个问题,提出了基于多样性的选择策略,用于选择特定任务的最具代表性的示例集合。此外,在选择示范时,还同时考虑了相关性和多样性。
  • 基于LLM的方法:另一种方法是利用LLM选择示范。例如,LLM可以直接测量每个示例的信息量,即添加示例后的性能提升。此外,EPR提出了一种两阶段检索方法,首先使用无监督方法(如BM25)召回相似示例,然后使用经过LLM标记的正负示例训练的密集检索器对它们进行排序。作为一种替代方法,可以将示范选择任务制定为强化学习问题,其中LLM作为奖励函数为策略模型提供反馈[257]。由于LLM在文本注释方面表现出色,一些最近的研究甚至不需要人工干预,直接使用LLM作为示范生成器。

总结一下,在ICL中选择的示范示例应包含足够的关于要解决的任务的信息,并与测试查询相关,对于上述两种选择方法来说都是如此。

示范格式

在选择任务示例后,下一步是将它们集成和格式化为LLM的自然语言提示。一种简单的方法是使用预定义的模板与相应的输入-输出对实例化。为了构建更具信息性的模板,最近的研究考虑添加任务描述或使用思维链式提示增强LLM的推理能力。例如,在中,作者收集了一个由人类编写的任务描述的大规模数据集。在使用该数据集进行调整后,可以提高在已知任务上的性能,并且LLM还可以在一定程度上推广到未知任务。为了减少注释成本,提出了一种半自动化方法,通过使用由人类编写的任务描述的种子集来引导LLM生成新任务的任务描述。由于为不同任务手动注释示范格式的成本很高,一些研究还研究了如何自动生成高质量的示范格式。作为两种典型方法,Auto-CoT利用带有“让我们一步一步思考”零-shot提示的LLM生成中间推理步骤,而“从少到多提示”首先查询LLM执行问题分解,然后使用LLM根据先前解决问题的中间答案逐步解决子问题。

示范顺序

LLM有时会受到最近性偏差的影响,即易于重复出现在示范的末尾的答案。因此,合理地安排示范(即任务示例)非常重要。早期的研究提出了几种启发式方法来快速找到良好的顺序。例如,示范可以根据它们在嵌入空间中与查询的相似性直接组织:相似性越大,越靠近末尾。此外,全局和局部熵指标可以用来评分不同的示范顺序。为了整合更多的任务信息,一些最近的研究提出了最小化压缩和传输任务标签所需的代码长度的方法,这是受信息论启发的。然而,这些方法需要额外的标记数据作为验证集来评估特定示范顺序的性能。为了消除这个需求,提出从LLM本身中采样验证数据的方法。

6.1.3 潜在机制

在预训练后,LLM在不进行更新的情况下可以展现出令人感兴趣的ICL能力。接下来,我们将讨论LLM的ICL能力的两个关键问题,即“预训练如何影响ICL能力”和“LLM在推理过程中如何执行ICL”。

预训练如何影响ICL?

ICL首次在GPT-3中提出,并且已经显示出ICL能力在模型尺寸越大时变得更加显著。然而,一些研究揭示了小规模的PLM在特定设计的训练任务下也能展示出强大的ICL能力(例如,通过使用任务示例进行标签预测和将查询作为输入),甚至可能超过更大的模型。这表明训练任务的设计是影响LLM的ICL能力的重要因素。除了训练任务,最近的研究还调查了ICL与预训练语料库之间的关系。研究表明,ICL的性能严重依赖于预训练语料库的来源,而不仅仅是规模。另一项研究对训练数据分布的影响进行了深入分析。他们发现,只有当训练数据可以聚类成许多罕见的类别时,ICL才会出现,而不是均匀分布。

LLM如何执行ICL?

在推理阶段,研究人员专注于分析LLM在给定示范的基础上执行ICL能力的方式,因为这个过程不涉及显式的学习或更新。他们通常从梯度下降的角度分析,并将ICL视为隐式微调。根据这个框架,ICL过程可以解释如下:通过前向计算,LLM根据示范生成与示范相关的元梯度,并通过注意力机制隐式地执行梯度下降。实验还表明,LLM中的某些注意力头能够执行与任务无关的原子操作(例如,复制和前缀匹配),这与ICL能力密切相关。为了进一步探索ICL的工作机制,一些研究将ICL抽象为一种算法学习过程。具体而言,在预训练过程中,LLM本质上通过其参数对隐式模型进行编码。通过ICL提供的示例,LLM可以实现学习算法,例如梯度下降,或者直接计算封闭形式的解来更新这些模型。根据这个解释框架,已经证明LLM可以有效地学习简单的线性函数,甚至可以使用ICL学习一些复杂的函数,如决策树。

6.2 CoT提示

Chain-of-Thought(CoT)是一种改进的提示策略,用于提高LLM在复杂推理任务(如算术推理、常识推理和符号推理)上的性能。与ICL中简单地使用输入-输出对构造提示不同,CoT将可以导致最终输出的中间推理步骤纳入提示中。接下来,我们将详细讨论如何在ICL中使用CoT以及CoT提示何时以及为何有效。

6.2.1 CoT下的上下文学习

通常,CoT可以在两种主要设置下与ICL一起使用,即少样本和零样本设置,如下所介绍。

少样本CoT

少样本CoT是ICL的特殊情况,通过将每个示范⟨输入,输出⟩增加为⟨输入,CoT,输出⟩,加入CoT推理步骤。为了应用这种策略,我们接下来讨论两个关键问题,即如何设计适当的CoT提示以及如何利用生成的CoT推导最终答案。

  • CoT提示设计:设计适当的CoT提示对于有效引发LLM复杂推理能力至关重要。直接方法表明,使用多样的CoT(即每个问题的多个推理路径)可以有效增强性能。另一个直观的想法是,具有更复杂推理路径的提示更有可能引发LLM的推理能力,从而在生成正确答案方面具有更高的准确性。然而,这两种方法都依赖于带注释的CoT数据集,限制了它们在实践中的使用。为了克服这个限制,Auto-CoT提出利用Zero-shot-CoT(在下面的“零样本CoT”部分详细介绍)通过特殊提示LLM生成CoT推理路径,从而消除了手动努力。为了提高性能,Auto-CoT进一步将训练集中的问题分成不同的簇,并选择与每个簇的中心最接近的问题,这被认为能够很好地代表训练集中的问题。虽然少样本CoT可以被看作是ICL中一种特殊的提示情况,但相比于ICL中的标准提示,调整示范的顺序对性能的影响似乎相对较小:调整示范只会导致大多数任务的性能变化小于2%。
  • 增强的CoT策略:除了丰富上下文信息外,CoT提示还提供了在给定问题情况下推断答案的选项。现有的研究主要集中在生成多个推理路径,并尝试在派生的答案之间找到共识。例如,自一致性被提出作为在生成CoT和最终答案时的新解码策略。它首先生成几个推理路径,然后通过对所有答案进行集成(例如,在这些路径之间通过投票选择最一致的答案)来选择最一致的答案。自一致性通过很大程度上提升CoT推理的性能,甚至可以改善一些通常比标准提示更差的任务(例如,闭书问题回答和自然语言推理)。上述方法可以轻松集成到CoT提示中,以提高性能,而无需额外的训练。相反,其他研究则训练评分模型来衡量生成的推理路径的可靠性,或者持续训练LLM在自己生成的推理路径上,以提高性能。

零样本CoT

与少样本CoT不同,零样本CoT在提示中不包含人工注释的任务示范。相反,它直接生成推理步骤,然后使用生成的CoT推导答案。零样本CoT首次提出出,其中LLM首先通过“让我们一步一步思考”进行提示生成推理步骤,然后通过“因此,答案是”进行提示生成最终答案。他们发现,当模型规模超过一定大小时,这种策略显著提高性能,但在小规模模型上并不有效,显示出显著的能力出现模式。为了在更多任务上解锁CoT能力,Flan-T5和Flan-PaLM进一步对CoT注释和在未见任务上的零样本性能进行了指导调整,并取得了改进。

6.2.2 CoT进一步讨论

在本部分中,我们对与CoT相关的两个基本问题进行讨论,即“CoT何时适用于LLM”和“为什么LLM可以进行CoT推理”。

CoT何时适用于LLM?

由于CoT是一种新兴的能力,它只对足够大的模型产生积极影响(例如,通常包含10B或更多参数的模型),而对小型模型没有影响。此外,由于CoT通过中间推理步骤增强了标准提示,它主要有效地改善需要逐步推理的任务,如算术推理、常识推理和符号推理。然而,对于不依赖于复杂推理的其他任务,它可能比标准提示表现更差,例如来自GLUE的MNLI-m/mm、SST-2和QQP。有趣的是,CoT提示带来的性能提升似乎只有在标准提示的结果较差时才显著。

为什么LLM可以进行CoT推理?

作为第二个问题,我们从以下两个方面讨论CoT的基本机制。

  • CoT能力的来源:关于CoT能力的来源,广泛的假设是它可以归因于在代码上的训练,因为在代码上训练的模型表现出强大的推理能力。直观地说,代码数据具有算法逻辑和编程流程的良好组织,这可能对提高LLM的推理性能有用。然而,这个假设仍然缺乏公开报道的消融实验证据(有代码训练和无代码训练)。此外,指令调整似乎不是获得CoT能力的关键原因,因为实证研究表明,在非CoT数据上进行指令调整并不能提高在CoT基准测试上的性能。
  • 提示组件的影响:CoT提示和标准提示之间的主要区别在于在最终答案之前插入推理路径。因此,一些研究人员研究了推理路径中不同组件的影响。具体而言,最近的研究确定了CoT提示中的三个关键组件,即符号(例如算术推理中的数值数量)、模式(例如算术推理中的方程)和文本(即不是符号或模式的其余标记)。研究表明,后两个部分(即模式和文本)对模型性能至关重要,删除其中任何一个都会导致显著的性能下降。然而,符号和模式的正确性似乎并不重要。此外,文本和模式之间存在共生关系:文本帮助LLM生成有用的模式,而模式帮助LLM理解任务并生成有助于解决任务的文本。

总之,CoT提示提供了一种通用且灵活的方法来调动LLM的推理能力。还有一些初步的尝试将这种技术扩展到解决多模态任务和多语言任务。除了直接利用LLM进行ICL和CoT之外,一些最近的研究探索了如何使LLM专门针对特定任务的能力,这被称为模型专业化。例如,研究人员通过在LLM生成的CoT推理路径上对小规模Flan-T5进行微调,使数学推理的能力得到专门化。模型专业化还可以应用于解决各种任务,如问题回答、代码合成和信息检索。

7. 性能评估

为了检验LLMs的有效性和优越性,人们已经利用了大量的任务和基准来进行实证评估和分析。首先,我们介绍LLMs的三种基本评估任务,即语言生成、知识利用和复杂推理;然后,我们介绍几个具有更复杂设置或目标的LLMs的高级任务;最后,我们讨论现有的基准和实证分析。

7.1 基本评估任务

在本部分,我们主要关注LLMs的三种评估任务,即语言生成、知识利用和复杂推理。需要注意的是,我们并不打算对所有相关任务进行全面覆盖,而是只关注广泛讨论或研究的LLMs任务。接下来,我们详细介绍这些任务。

7.1.1 语言生成

根据任务定义,现有的语言生成任务可以大致分为语言建模、条件文本生成和代码合成任务。需要注意的是,代码合成不是典型的自然语言处理任务,但我们包括它进行讨论,因为许多LLMs(在代码数据上训练的)可以通过类似自然语言文本的生成方法直接解决它。

语言建模

作为LLMs的最基本能力,语言建模旨在基于前面的标记预测下一个标记,主要关注基本语言理解和生成的能力。为了评估这种能力,现有研究常用的典型语言建模数据集包括Penn Treebank 、WikiText-103和Pile,其中困惑度(perplexity)是常用的评估模型在零样本设置下的性能的指标。实证研究表明,LLMs在这些评估数据集上的性能远远超过先前的最先进方法。为了更好地测试文本中长距离依赖关系的建模能力,引入了LAMBADA数据集,在这个数据集中,LLMs需要根据上下文段落预测句子的最后一个词。然后,使用预测的最后一个词的准确性和困惑度来评估LLMs。正如现有研究所示,语言建模任务的性能通常遵循缩放规律,即扩大语言模型会提高准确性并降低困惑度。

条件文本生成

作为语言生成的一个重要领域,条件文本生成旨在根据给定的条件生成满足特定任务需求的文本,通常包括机器翻译、文本摘要和问题回答。为了衡量生成文本的质量,通常使用自动评估指标(如准确性、BLEU和ROUGE)和人工评分来评估性能。由于强大的语言生成能力,LLMs在现有数据集和基准上取得了显著的性能,甚至超过了人类表现(在测试数据集上)。例如,只给出32个示例作为输入,使用上下文学习的GPT-3可以在SuperGLUE的平均得分上胜过完整数据微调的BERT-Large;在MMLU上,5个示例的Chinchilla几乎使人类评分者的平均准确率翻倍,而在5个示例的设置下,GPT-4进一步实现了最先进的性能,相比之前最好的模型,平均准确率提高了10%以上。因此,这引发了人们对现有条件文本生成任务基准是否能够恰当评估和反映LLMs能力的严重关注。考虑到这个问题,研究人员试图通过收集当前无法解决的任务(即LLMs无法表现良好的任务)或创建更具挑战性的任务(例如超长文本生成)来创建新的评估基准(例如BIG-bench Hard)。此外,最近的研究还发现,自动评估指标可能低估了LLMs的生成质量。在OpenDialKG中,ChatGPT在BLEU和ROUGE-L指标上表现不如经过微调的GPT-2,但在人工判断中更受欢迎。因此,需要更多努力来开发与人类判断更加一致的新指标。

代码合成

除了生成高质量的自然语言文本,现有的LLMs还展示了生成正式语言,特别是满足特定条件的计算机程序(即代码)的强大能力,称为代码合成。与自然语言生成不同,由于生成的代码可以直接通过相应的编译器或解释器进行执行检查,现有工作主要通过计算针对测试用例的通过率来评估LLMs生成的代码的质量,即pass@k。最近,提出了几个侧重于功能正确性的代码基准,用于评估LLMs的代码合成能力,例如APPS、HumanEval和MBPP。通常,它们包含多样的编程问题,其中包括文本规范和用于正确性检查的测试用例。为了提高这种能力,关键是对LLMs进行代码数据的微调(或预训练),这可以有效地使LLMs适应代码合成任务。此外,现有研究还提出了一些生成代码的新策略,例如采样多个候选解决方案 和基于计划的解码,这可以被视为程序员进行错误修复和代码规划过程的模仿。令人印象深刻的是,LLMs最近在编程竞赛平台Codeforces上获得了与用户排名前28%相当的排名。此外,GitHub Copilot已发布,用于辅助编程IDE(例如Visual Studio和JetBrains IDEs),它可以支持包括Python、JavaScript和Java在内的多种语言。ACM通信杂志上的一篇名为“程序的终结”的观点文章讨论了AI编程对计算机科学领域的影响,强调了LLMs作为新的计算原子单元的高度适应性。

主要问题

虽然LLMs在生成类似人类文本方面取得了辉煌的表现,但它们容易受到语言生成方面的两个主要问题的困扰,如下所述。

  • 可控生成:对于LLMs来说,生成具有特定条件的文本的主流方式是通过自然语言指令或提示来实现的。尽管这种机制很简单,但在对生成的输出施加细粒度或结构性约束方面存在着重大挑战。现有研究表明,当在文本结构上施加复杂约束时,LLMs在局部规划(例如相邻句子之间的交互)方面表现良好,但在全局规划(即长距离相关性)方面可能遇到困难。例如,要生成包含多个段落的复杂长文本,要直接确保特定的文本结构(例如概念的顺序和逻辑流程),考虑到整个文本是仍然困难的。对于需要遵循正式规则或语法的生成任务(例如代码合成),情况将更具挑战性。为了解决这个问题,一个潜在的解决方案是将单次生成扩展为LLMs的迭代提示。这模拟了人类的写作过程,将语言生成分解为计划、起草、重写和编辑等多个步骤。一些研究已经证明,迭代提示可以引出相关知识,从而在子任务中获得更好的性能。从本质上讲,链式思维提示已经利用了将复杂任务分解为多步推理链的思想。此外,生成的文本的安全控制对于实际部署也很重要。已经显示LLMs可能生成包含敏感信息或冒犯表达的文本。虽然RLHF算法在一定程度上可以缓解这个问题,但它仍然依赖于大量人工标注的数据来微调LLMs,没有遵循客观优化目标。因此,有必要探索有效的方法来克服这些限制,并对LLMs的输出实现更安全的控制。
  • 专门化生成:尽管LLMs已经学习了生成连贯文本的一般语言模式,但在处理专门领域或任务时,它们的生成能力可能受到限制。例如,一个在通用网络文章上进行训练的语言模型在生成涉及许多医学术语和方法的医学报告时可能面临挑战。直观地看,领域知识对于模型的专门化至关重要。然而,将这样的专业知识注入到LLMs中并不容易。

7.1.2 知识利用

LLMs具备广泛的知识利用能力,可以应用其预训练的大规模混合来源数据中所获得的丰富知识。知识利用的评估方法包括使用特定任务的数据集来评估LLMs在各种任务中的表现。此外,还有通用的评估方法,如上下文理解和追问技术。研究人员还使用对抗性样本来测试LLMs的鲁棒性和对抗性。

7.1.3 复杂推理

LLMs在复杂推理方面展现出强大的能力。它们可以执行诸如逻辑推理、数学问题解决和常识推理等任务。评估复杂推理能力可以使用具有挑战性的数据集和任务,以及针对特定领域的数据集。

7.2 先进能力的评估

LLMs还展示了一些先进的能力,需要特殊的评估方法。这些能力包括与人类对齐、与外部环境的交互和工具操作。在与人类对齐方面,评估方法包括人工评估和自动评估,使用数据集和专家的反馈来提高LLMs的行为。与外部环境的交互可以通过虚拟环境和真实世界实验来评估。工具操作的评估可以通过复杂的推理任务来进行,评估LLMs在利用外部工具解决问题时的表现。

7.3 公共基准和实证分析

为了评估LLMs的性能,已经提出了多个公共基准和实证分析方法。其中包括MMLU、BIG-bench和HELM等广泛使用的基准。这些基准涵盖了多个领域和任务,可以用于评估LLMs的各种能力。此外,还有一些特定能力的基准,如TyDiQA和MGSM。

此外,还有许多综合分析研究,探讨LLMs的能力和限制。这些研究涵盖了LLMs的通用能力和专业能力的评估,以及LLMs在人类特征、公平性和准确性等方面的研究。

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

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

相关文章

网络套接字编程(三)(HTTP)

gitee仓库:https://gitee.com/WangZihao64/linux/tree/master/CalTcp 一、重谈协议 协议是一种“约定”,这种约定是双方都知道的。有了一致的约定,双方才能够正常地进行通信。协议在网络的第一篇博客中也提到过,协议是双方进行通…

uniapp中H5定位功能实现

1.要实现该功能 必须使用vue-jsonp进行跨域 JSONP是一种跨域数据请求的解决方案,它使用script元素来请求数据,再利用回调函数将数据传回页面。 Vue框架提供了对JSONP的支持,可以方便地在Vue应用中使用JSONP获取跨域数据。下面我们来了解一下…

【Java】StringBuffer和StringBuilder

共同点 他们都是可变的,在每次进行修改操作时,都不会产生新的对象,所以在进行修改的时候,尽量使用这两种类型的字符串 不同点 StringBuffer在单线程中效率高 StringBuilder用于多线程确保安全性 测试代码 public class test …

keepalived安装配置详解

文章目录 高可用介绍keepalived安装、使用vip漂移抓包脑裂脑裂有没有危害?如果有危害对业务有什么影响? keepalived架构双vip架构 Healthcheck实现 notifyVRRP选举格式 高可用 介绍 高可用性(High Availability)是指系统或服务能…

Linux的locale本地化配置

Linux的locale本地化配置 locale简介localectl常用操作语言环境键盘布局 常见问题:配置语言环境报错Linux系统locale(UTF-8)报错最小化自动安装的Centos7修改完整中文显示 locale简介 参考: http://m.blog.chinaunix.net/uid-20621049-id-3427444.html locale把按照所涉及到的…

Python调用ImageMagick生成PDF文件缩略图

使用Python调用ImageMagick生成PDF文件缩略图 Imagemagick使用Ghostscript作为其依赖项之一,以便能够处理和转换PDF相关的图像。 准备 安装Ghostscript,网站安装ImageMagick,网站 安装完毕后,需要自行配置环境路径 脚本 使用示…

灌区信息化智能测控一体化闸门系统解决方案

一、方案背景 闸门是节水灌溉工程中重要组成部分。在农田灌区中,一方面存在传统手摇闸门,未能实现自动化、数字化,另一方面部分灌区闸站虽然部分实现了自动化控制,但是由于闸站较多,有些位置较为偏僻,部分水…

网络数据安全风险评估实施指引(一)

近日,全国信息安全标准化技术委员会发布了《网络安全标准实践指南 网络数据安全风险评估实施指引》(TC260-PG-20231A v1.0-202305),旨在响应《数据安全法》要求,落实重要数据处理过程风险评估,衔接已发布的…

前端开发中的微服务架构设计

前端服务化和小程序容器技术为前端应用带来了更好的组织结构、可维护性和可扩展性。这些技术的应用将促进前端开发的创新和发展,使团队能够更好地应对复杂的前端需求和业务挑战。通过将前端视为一个服务化的架构,我们能够构建出更强大、可靠且可持续的前…

OpenCv (C++) 使用矩形 Rect 覆盖图像中某个区域

文章目录 1. 使用矩形将图像中某个区域置为黑色2. cv::Rect 类介绍 1. 使用矩形将图像中某个区域置为黑色 推荐参考博客:OpenCV实现将任意形状ROI区域置黑(多边形区域置黑) 比较常用的是使用 Rect 矩形实现该功能,代码如下&…

vmware-ubuntu 出现的奇怪问题

虚拟机突然连不上网 参考博文-CSDN-卍一十二画卍(作者)-Vmware虚拟机突然连接不上网络【方案集合】 sudo vim /var/lib/NetworkManager/NetworkManager.statesudo service network-manager stop sudo vim /var/lib/NetworkManager/NetworkManager.stat…

华为云子网路由表作用及价值

子网路由表 子网路由表作用云专线、VPN的配置与子网路由表强关联,本质是在相应的子网路由表中添加了一条路由Nat路由表问题地址变更问题snat和dnat 子网路由表作用 子网内部作为一个二层网络,通过mac地址互通,不通过路由互通。跨子网&#x…

Java Vue物联网系统

一个简单易用的物联网平台,可用于搭建物联网平台以及二次开发和学习。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。 系统后端采用Spring boot;前端采用Vue;消息服务器采用EMQX; 技术栈 服务端相关技术…

Vector - CANoe - DoIP在CANoe应用

目录 背景说明 一、DoIP通信说明 1、连接(Connection) 2、车辆发现(Vehicle Discovery)

第一阶段-第八章 Python的文件操作

目录 一、文件的编码  1.学习目标  2.文件编码  3.查看文件编码  4.本小节的总结 二、文件的读取  1.学习目标  2.什么是文件  3.文件包含的操作(打开、关闭、读、写)  4.文件的操作步骤(打开或创建文件open(mode…

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 14 日论文合集)

文章目录 一、检测相关(6篇)1.1 LVLane: Deep Learning for Lane Detection and Classification in Challenging Conditions1.2 Garbage in, garbage out: Zero-shot detection of crime using Large Language Models1.3 Robotic surface exploration with vision and tactile …

汽车电子 -- 使用CANdb++ Editor创建并制作一个DBC

参看:关于DBC文件的创建(DBC文件系列其一) 一、什么是DBC DBC文件是DataBase Container文件的缩写。 CAN数据库文件也称为后缀为(.dbc)的文件。DBC文件是基本的文本文件,其中包括将原始CAN总线数据解码为…

Raft算法之日志复制

Raft算法之日志复制 一、日志复制大致流程 在Leader选举过程中,集群最终会选举出一个Leader节点,而集群中剩余的其他节点将会成为Follower节点。Leader节点除了向Follower节点发送心跳消息,还会处理客户端的请求,并将客户端的更…

音频播放器Web页面代码实例(基于HTML5)

音频播放器Web页面代码实例&#xff08;基于HTML5&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><…

C/C++自定义类型(详解struct,enum,union)

目录 一&#xff0c;struct 1&#xff09;结构及一般使用方法 2&#xff09;无名结构体 3&#xff09;巧用typedef 4)struct小细节 5&#xff09;补充内存对齐&#xff08;提高程序可移植性&#xff0c;提高运行效率&#xff09; 二&#xff0c;enum 1)结构及一般使用方…