Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

news2024/12/24 20:55:18

摘要

大语言模型能够通过上下文学习-只需要在推理阶段加入一些输入-标签的示例对,就能完成对新输入文本的预测。但是,对模型是如何学习,示例的哪些方面会影响最终的任务效果,我们知之甚少。在这篇纹章中,我们揭示了 正确的输入-标签示例对不是必须的,随机替换示例中的标签几乎不会影响效果,这个结论在12个不同的模型上是一致的,包括gpt3。相反,我们发现示例的其他方面是最终任务效果的核心驱动,包括:标签的空间,输入文本的分布,整体序列的格式。总之,我们的分析提供了一个新的方式去理解上下文学习是怎么工作的以及背后的机理,同时抛砖引玉:在推理阶段,大语言模型有多少能力可以被激发。

1. 引言

大型语言模型(LMs)通过简单地对几个输入标签对(演示)进行条件反射,在下游任务中表现出了令人印象深刻的性能;这种类型的推理被称为上下文学习(Brown et al., 2020)。尽管上下文学习在广泛的任务上始终优于 zeroshot 推理(Zhao et al., 2021; Liu et al., 2021),但对它的工作原理和演示的哪些方面如何有助于最终任务性能知之甚少。

在本文中,我们表明,事实上,有效的语境学习并不需要基础事实演示(第4节)。具体而言,用随机标签替换演示中的标签几乎不会影响分类和多项选择任务的性能(图1)。结果在 12 个不同的模型上是一致的,包括 GPT-3 家族。这强烈表明,与直觉相反,该模型不依赖于演示中的输入标签映射来执行任务。

实验结果
上图为实验结果,在分类任务和多选任务上,分别使用三个不同大小的lms,评估了GPT-3的六个数据集, 并且使用了通道方法。完整结果见第4节。当演示中的标签被随机标签取代时,上下文学习性能只会略有下降

进一步的分析调查了演示的哪些部分确实对性能有贡献。我们确定了演示的可能方面(例如,标签空间和输入文本的分布),并评估了演示的一系列变体,以量化每个变体的影响(第5节)。我们发现:(1)标签空间和演示所指定的输入文本的分布都是上下文学习的关键(无论标签对个人输入是否正确);(2) 指定整体格式也是至关重要的,例如,当标签空间未知时,使用随机英语单词作为标签比不使用标签要好得多;(3) 具有上下文学习目标的元训练(Min et al.,2021b)放大了这些效果——模型几乎完全利用了演示的更简单方面,如格式,而不是输入标签映射。

总之,我们的分析为理解样例在上下文学习中的作用提供了一种新的方法。我们的经验表明,(1)与直觉相反,模型并不像我们想象的那样依赖于演示样例中提供的基本事实与输入标签映射(第4节),(2)尽管如此,仍然受益于了解演示指定的标签空间和输入分布(第5节)。我们还讨论了更广泛的含义,例如,我们可以对测试时的模型学习说些什么,以及未来工作的途径(第6节)。

2. 相关工作

大型语言模型在广泛的下游任务中对强大的性能至关重要(Devlin 等人,2019;Radford 等人,2019;Liu 等人,2019;Raffel 等人,2020;Lewis 等人,2020)。虽然微调是一种流行的转移到新任务的方法(Devlin等人,2019年),但微调非常大的模型(例如≥10B参数)通常是不切实际的。Brown等人(2020)提出了上下文学习作为学习新任务的替代方法。如图 2 所示,LM 仅通过推理来学习新任务,方法是将训练数据的串联作为演示,而无需任何梯度更新。

在这里插入图片描述

自引入以来,上下文学习一直是大量研究的焦点。先前的工作提出了更好地制定问题的方法(Zhao et al., 2021; Holtzman et al., 2021; Min et al., 2021a),更好的方法为演示选择标记示例(Liu et al., 2021; Lu et al., 2021; Rubin et al., 2021),使用显式上下文学习目标进行元训练(Chen et al., 2021; Min et al., 2021b),并学习遵循指令作为上下文学习的变体(Mishra et al., 2021b; Efrat and Levy, 2020; Wei et al., 2022a; Sanh et al., 2022)。同时,一些工作报告了上下文学习的脆弱性和过度敏感性(Lu et al., 2021; Zhao et al., 2021; Mishra et al., 2021a)。

了解为什么上下文学习有效的工作相对较少。Xie等人(2022)提供了理论分析,即上下文学习可以形式化为贝叶斯推理 即 使用演示样例来恢复潜在概念concept。(Raazeghi 等人2022) 表明上下文内学习性能与预训练数据中的词频高度相关。据我们所知,本文是第一个提供实证分析的论文,该分析调查了为什么上下文内学习比零样本推理实现了性能提升。我们发现演示中的真实输入标签映射只有边际效应,并衡量演示的细粒度方面的影响。

3. 实验建立

我们描述了分析中使用的实验设置(第 4 节和第 5 节)。

**模型:**我们总共试验了12个模型。我们包括6种语言模型(表1),它们都是仅解码器的、dens - lm。按照Min等人(2021a),我们使用每个LM和两种推理方法,直接通道和通道。LM 的大小从 774M 到 175B 不等。包括了GPT-3 和公开发布的最大的密集LM (fairseq 13B)。我们还包括MetaICL,它由GPT-2大型初始化,然后在具有上下文学习目标的监督数据集集合上进行元训练,并确保我们的评估数据集不会与在元训练时使用的数据集重叠。
在这里插入图片描述
评估数据: 我们对26个数据集进行了评估,包括情感分析、意译检测、自然语言推断、仇恨言论检测、问答和句子补全(完整列表和参考文献见附录A)所有数据集都是分类和多项选择任务。我们使用这些数据集是因为它们(1)是真正的低资源数据集,少于10K训练例,(2)包括来自GLUE (Wang等人,2018)和SuperGLUE (Wang等人,2019a)的经过充分研究的基准,以及(3)涵盖科学,社交媒体,金融等多个领域。

其他详细信息: 除非另有说明,否则我们默认使用k=16个示例作为论文中所有实验的演示。示例是从训练数据中均匀采样的。我们使用5个不同的随机种子选择一组k个训练示例,并进行5次实验。对于fairseq13B和GPT-3,由于资源有限,我们用6个数据集2和3个随机种子的子集进行了实验。我们报告了分类任务的MacroF13和多选任务的准确性。我们计算种子上的每个数据集的平均值,然后报告数据集上的宏平均值。我们使用最小模板从一个例子中形成一个输入序列。我们参考附录B了解更多详细信息。所有实验都可以参考github 复现:github.com/Alrope123/ rethinking-demonstrations.

4 真实标签并不重要

4.1 正确标签 和 随机标注(gold label VS random label)

为了在演示中看到正确配对的输入和标签的影响——我们称之为基础真值输入-标签映射——我们比较了以下三种方法。

  • 无演示 No demonstrations是一种典型的零射击方法,它不使用任何标记数据。通过argmax∈C P (y|x)进行预测,其中x是测试输入,C是一个小的离散的可能标签集。
  • 带有正确标签的演示 Demonstrations w/ gold label 其中有k个标记示例(x1, y1)…(yk xk)。k input-label对的串联用于预测viaargmax∈cp (y|x1, y1…)Xk, yk, x)
  • 带有随便标签的演示 Demonstrations w/ random labels标签是用随机标签形成的,而不是用标记数据形成的正确标签。每个xi(1≤i≤k)与从c中均匀随机抽样的i i配对。(x1, i i)…然后使用(xk, yk)通过argmax∈cp (y|x1, y1…)进行预测。(x, y, x)

在这里插入图片描述

结果如图3所示。首先,与没有演示相比,使用带有正确标签的演示显着提高了性能,因为在之前的许多工作中都发现了这一点(Brown等人,2020;赵等,2021;刘等人,2021)。然后我们发现,用随机标签替换正确标签只会略微损害性能。几乎所有模型的趋势都是一致的:模型的性能绝对下降幅度在0-5%之间。在多选择任务中替换标签的影响(平均为1.7%)比在分类任务中(绝对为2.6%)要小。

这一结果表明,带有真实/正确标签的输入对 并不是实现性能提升所必需的。这是违反直觉的,因为在典型的监督训练中,正确配对的训练数据是至关重要的——它告知模型执行下游任务所需的预期输入标签对应关系。尽管如此,这些模型确实在下游任务上实现了重要的性能。这强烈表明模型能够恢复任务的预期输入标签对应;然而,它并不是直接来自于演示中的配对。

同样值得注意的是,MetaICL的性能下降特别小:绝对值为0.1-0.9%。这表明,具有明确上下文学习目标的元训练实际上鼓励模型从本质上忽略输入标签映射,并利用演示的其他组件(更多讨论见5.4节)。在附录C.2中,我们提供了额外的结果,表明(1)从标签的真实分布中选择随机标签(而不是均匀分布)进一步减少了差距,(2)趋势可能依赖于数据集,尽管在大多数数据集总体趋势是一致的。

4.2 消融实验

对于额外的消融,我们使用5个分类和4个多选择数据集进行实验(Classification includes: MRPC, RTE, Tweet_eval-hate, SICK, poem-sentiment; Multi-choice includes OpenbookQA, CommonsenseQA, COPA and ARC.)

  • 正确标签的数量重要吗? 为了进一步检查演示中标签正确性的影响,我们通过改变演示中正确标签的数量来进行消融研究。我们评估“ 包含a%正确标签的演示(0≤a≤100),由k × a%正确对和k ×(1−a%)对错误对组成(见附录B中的算法1)。这里,a = 100与典型的上下文学习相同,即w/ gold标签的演示。
    在这里插入图片描述

    结果如图4所示。模型性能对演示中正确标签的数量相当不敏感。事实上,总是使用不正确的标签比不使用演示效果要好得多,例如,在分类中使用MetaICL演示,在多选择中使用MetaICL演示,在多选择中使用GPT-J分别保留92%、100%和97%的改进。相比之下,分类中的GPT-J在标签错误越多的情况下,性能下降相对明显,例如在总是使用错误标签的情况下,性能下降近10%。尽管如此,总是使用不正确的标签比没有演示要好得多。

  • 结果与k的变化一致吗? 我们在演示中研究了输入标签对(k)的数量的影响。结果如图5所示。首先,即使k很小(k = 4),使用演示也明显优于不演示方法,并且从使用金标签到使用随机标签的性能下降在不同k的范围内始终很小,在0.8 - 1.6%的范围内有趣的是,当k≥8时,无论是金标签还是随机标签,模型性能都不会随着k的增加而增加。这与典型的监督训练相反,在监督训练中,模型的性能随着k的增加而迅速提高,尤其是当k很小的时候。我们假设,较大的标记数据主要有利于监督输入-标签的对应关系,而数据的其他组成部分,如示例输入、示例标签和数据格式更容易从小数据中恢复,这可能是从较大的数据中获得最小性能增益的原因(在第5节中有更多讨论)
    在这里插入图片描述

  • 结果与更好的模板一致吗? 虽然我们默认使用最小的模板,但我们也探索了手动模板,即,以特定于数据集的方式手工编写的模板,取自以前的工作(详见附录B)。图6显示了趋势——用随机标签替换黄金标签几乎不会损害性能——使用手动模板。值得注意的是,使用手动模板并不总是优于使用最小模板。

  • 在这里插入图片描述

5 为什么 上下文学习会有用?

第4节展示了演示中的ground truth输入-标签映射对上下文内学习的性能收益几乎没有影响。本节将进一步讨论演示的哪些其他方面会导致上下文学习的良好表现。

在这里插入图片描述

我们确定了演示的四个方面(x1, y1)…(xk, yk),可能提供学习信号(如图7所示)。

  1. 输入-标签映射,即每个输入xi是否与正确的标签yi配对。
  2. 输入文本的分布,即x1…Xk来自。
  3. 标签空间,即y1…yk所覆盖的空间。
  4. 格式,特别是使用输入标签配对作为格式。

正如第4节对输入-标签映射所做的那样,我们设计了一系列演示的变体,以单独量化每个方面的影响(第5.1-5.3节)。然后,我们还讨论了具有上下文学习目标的模型元训练的趋势(第5.4节)。对于所有的实验,模型在5个分类和4个选择数据集上进行评估,如4.2节所示。有关实现细节和示例演示,分别参见附录B和表4。

5.1 输入文本分布的影响

我们对OOD演示进行了实验,其中包括分布外(OOD)文本,而不是来自未标记训练数据的输入。具体来说,从外部语料库中随机抽取k个句子{xi,rand}k i=1,替换x1…Xk在演示中。该变体评估输入文本分布的影响,同时保留标签空间和演示的格式。
在这里插入图片描述

结果图8显示,当在分类和选择中使用Channel MetaICL、Direct GPT-J或Channel GPT-J时,使用分布外输入而不是来自训练数据的输入会显著降低性能,绝对下降3-16%。在选择题中,Direct GPT-J甚至比没有演示更糟糕。Direct MetaICL是一个例外,我们认为这是元训练的影响(在第5.4节讨论)。

这表明演示中的分布输入对性能提升有很大贡献 *这可能是因为 以符合训练分布的 文本输入 使任务更接近于语言建模,因为LM在训练期间总是以分布文本为条件。

5.2 标签空间的影响

我们还进行了随机英语单词的演示实验,使用随机英语单词作为所有k对的标签。具体来说,我们对英语单词Crand的一个随机子集进行采样,其中|Crand| = |C|,并将i∈Crand与xi随机配对。该变体评估标签空间的影响,同时保持输入文本的分布和演示的格式。
在这里插入图片描述

结果 根据图9,直接模型和通道模型表现出不同的模式。使用直接模型,在标签空间内使用随机标签和使用随机英语单词之间的性能差距是显著的,绝对值在5-16%之间。**这表明对标签空间的调节对性能的提高有很大的帮助。**即使对于没有固定标签集的多选择任务也是如此——我们假设多选择任务仍然具有模型使用的特定选择分布(例如,OpenBookQA数据集中的“螺栓”或“螺钉”等对象)。
另一方面,去除输出空间不会导致通道模型的显著下降:绝对值下降0–2%,有时甚至会增加。我们假设这是因为通道模型只以标签为条件,因此不受益于了解标签空间。这与必须生成正确标签的直接模型形成对比

5.3 输入-标签的映射的影响

第5.1节和第5.2节侧重于尽可能保持演示格式的变体。本节探讨了更改格式的变体。虽然格式有很多方面,但我们会进行最小的修改,以删除输入与标签的配对。具体来说,我们评估了没有标签的演示,其中LM以x1…xk的连接为条件,而只有标签的演示是以y1…yk的连接为前提。这些消融分别提供了“随机英语单词演示”和“OOD输入演示”的无格式对应物。
在这里插入图片描述

结果 基于图 10,删除格式接近或低于没有演示,表明格式的重要性。这可能是因为对一系列输入标签对的条件会触发模型模仿整体格式并完成给定测试输入时的预期新示例

更有趣的是,通过仅使用输入或仅使用标签,保持格式在保留大部分性能增益方面起着重要作用。
例如,使用Direct MetaICL,通过简单地从语料库中随机抽取句子,并分别在分类和多选择中将它们与标签集随机配对(如图10所示),可以保留95%和82%的上下文学习(带有金标的演示)改进。
同样,对于通道模型,通过简单地将MetaICL分类、GPTJ分类、MetaICL多选择和GPT-J多选择中的未标记训练数据的每个输入分别与随机英语单词配对(如图10所示),可以保留82%、87%、86%和75%的上下文学习改进。对于所有这些情况,删除输入而不是使用OOD输入,或者删除标签而不是使用随机英语单词的情况要糟糕得多,这表明保持输入-标签对的格式是关键。

5.4 元训练的影响

与其他模型不同的是,MetaICL是根据上下文学习目标进行训练的,这与最近在大量监督数据集(称为元训练)上使用多任务训练以泛化到新任务的工作一致(Aghajanyan等人,2021;Khashabi et al., 2020;魏等人,2022a;Sanh et al., 2022)。我们的目标是通过仔细检查MetaICL的结果,更好地理解与我们的发现相关的元训练的作用。特别是,我们观察到,到目前为止,我们看到的模式在MetaICL中比在其他模型中更为明显。例如,基本事实输入标签映射的重要性更小,而保持演示的格式则更重要。在Direct MetaICL中,输入标签映射和输入分布的影响几乎为零,在Channel MetaICL中,输入标签映射和输出空间的影响几乎为零。

基于这一观察,我们假设元训练鼓励模型只利用演示的简单方面,而忽略其他方面。这是基于我们的直觉,即(1)输入标签映射可能更难利用,(2)格式可能更容易利用,以及(3)模型训练生成的文本空间可能比模型设定的文本空间更容易利用。(也就是说,直接模型 利用标签空间 比利用输入空间更好,通道模型利用输入分布 比 利用标签空间更好。)

6 讨论和结论

在本文中,我们研究了示范对上下文学习成功的作用。我们发现,演示中的基本事实输入标签映射比人们想象的要重要得多——在演示中用随机标签替换黄金标签只会略微降低性能。然后,我们确定演示中的一系列方面,并检查哪一方面真正有助于提高性能。结果表明:
(1)增益主要来自输入空间和标签空间的独立规范,
(2)如果使用正确的格式,则通过仅使用输入或仅使用标签集,模型仍然可以保留高达95%的性能增益,
(3)具有上下文学习目标的元训练放大了这些趋势。
总之,我们的发现为上下文学习提供了一系列更广泛的指示,以及未来工作的途径。

**模型在测试时学习吗?**如果我们对学习进行严格的定义:捕捉训练数据中给出的输入标签对应关系,那么我们的研究结果表明,LMs在测试时不会学习新任务。我们的分析表明,该模型可能会忽略演示定义的任务,而使用预训练中的先验知识。然而,学习一项新任务可以被更广泛地解释:它可能包括适应特定的输入和标签分布以及演示所建议的格式,并最终做出更准确的预测。有了这个学习的定义,模型确实可以从演示中学习任务。我们的实验表明,该模型确实利用了演示的各个方面,并实现了性能提升。

LMs的能力。该模型执行下游任务,而不依赖于来自演示的输入标签对应关系。这表明,该模型仅从语言建模目标中学到了输入标签对应关系(隐含的概念),例如,将积极评价与“积极”一词联系起来。这与Reynolds和McDonnell(2021)一致,他们声称演示是针对任务定位的,执行任务的内在能力是在预训练时获得的。

一方面,这表明语言建模目标已经带来了巨大的零样本能力,即使从天真的零样本准确性中并不总是很明显。另一方面,这表明上下文学习可能不适用于尚未在LM中捕获输入标签对应关系的任务。这就引出了如何在上下文学习无法解决的NLP问题上取得进展的研究问题:我们是否需要一种更好的方法来提取已经存储在LM中的输入标签映射,一种学习更广泛任务语义的LM目标的更好变体,或者通过对标记数据进行微调来进行显式监督。

与指令遵循模型的联系。先前的工作发现,训练能够读取任务的自然语言描述(称为指令)并在推理时执行新任务的模型是有希望的(Mishra等人,2021b;Efrat和Levy,2020;Wei等人,2020;Sanh等人,2022)。我们认为演示和指令在很大程度上与LM具有相同的作用,并假设我们的发现适用于以下指令模型:指令提示模型恢复其已有的能力,但不监督模型学习新的任务语义。Webson和Pavlick(2022)已经部分验证了这一点,他们表明,在不相关或误导性的指令下,模型性能不会降低太多。我们将更多的分析留给后续的教学模式。

显著提高零射击性能。我们的主要发现之一是,可以在不使用任何标记数据的情况下实现接近k-shot的性能,只需将每个未标记的输入与随机标签配对并将其用作演示。这意味着我们的零射击基线水平比之前想象的要高得多。未来的工作可以进一步提高零射击性能,在访问未标记的训练数据时使用宽松的假设。

Limation 受限因素

任务和数据集类型的影响。本文的重点是来自具有真实自然语言输入的已建立的NLP基准的任务。正如Rong(2021)所观察到的那样,输入更有限的合成任务实际上可能更多地使用基础真值标签。我们通过检查多个NLP数据集的平均性能来报告宏观层面的分析,但不同的数据集可能表现不同。附录C.2讨论了这方面,包括在一些数据集模型对中使用基础真实标签和使用随机标签之间存在较大差距的发现(例如,在最极端的情况下,在使用GPT-J的financial_phrasebank数据集上,绝对误差接近14%)。自我们论文的第一个版本以来,Kim等人(2022)表明,使用否定标签大大降低了分类的性能我们认为重要的是要理解模型需要多大程度的基础真值标签才能成功地执行上下文学习。

扩展到生成。我们的实验仅限于分类和多项选择任务。我们假设,在开放集任务(如生成)中,背景真值输出可能不是上下文学习所必需的,但将其留给未来的工作。将我们的实验扩展到这样的任务并非无关重要,因为它需要在保持正确输出分布的同时对具有不正确输入-输出对应的输出进行变化(根据我们在第5节的分析,这是重要的)。自我们论文的第一个版本以来,Madaan和Yazdanbakhsh(2022)使用思维提示链进行了类似的分析(Wei et al., 2022b),这产生了执行复杂任务(如数学问题)的基本原理。Madaan和Yazdanbakhsh(2022)表明,虽然在演示中简单地使用随机基本原理(例如,与来自不同示例的基本原理配对)会显著降低性能,但其他类型的反事实基本原理(例如,错误的方程)不会像我们想象的那样降低性能。我们参考Madaan和Yazdanbakhsh(2022)关于理论基础的哪些方面重要或不重要的更多讨论。

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

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

相关文章

postman官网下载安装登录测试详细教程

目录 一、介绍 二、官网下载 三、安装 四、注册登录postman账号(不注册也可以) postman注册登录和不注册登录的使用区别 五、关于汉化的说明 六、使用示范 一、介绍 简单来说:是一款前后端都用来测试接口的工具。 展开来说:…

Redis集群(三十七)

部署搭建Redis主从复制、哨兵模式、集群部署 目录 一、Redis主从复制 (一)概念 (二)作用 (三)缺点 (四)流程 (五)搭建 二、Redis哨兵模式 &#xff0…

单体版ruoyi代码生成增删改查

目录 拉取代码 打开代码,新建一个模块,模块放我们的项目后台数据库的curd代码。 我们的新模块引入ruoyi的通用模块 ruoyi的adm引入我们的项目依赖,引用我们的模型、service、mapper 将我们的模块注入父项目 打开ruoyi-adm配置MyBatis&…

UDS的DID(Data identification)

引言 DID是UDS中的一个重要概念,它代表着特定的数据标识符。DID用于标识和获取ECU中的特定参数数据,如传感器数据、状态信息等。通过使用DID,诊断工具可以准确地获取所需的数据,从而帮助诊断人员更好地了解车辆的状态和性能。 D…

芯片工程师求职题目之CPU篇(3)

1. 什么是cache(缓存)?它的工作原理是什么? Cache是少量的快速内存。它位于主存储器和中央处理器之间。每当CPU请求memory位置的内容时,首先检查cache中是否有此数据。如果数据存在于cache中,CPU直接从cache中获得数据。这是更快…

必备工具:Postman Newman 详解

目录 Postman Newman 是什么? Postman Newman 的作用 如何使用 Postman Newman? 第一步:安装 Node.js 第二步:全局安装 Newman 第三步:导出集合或环境变量为 JSON 格式 第四步:使用 Newman 运行测试…

IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)

一、前言 当涉及到软件开发和项目管理时,使用一个可靠的构建工具是非常重要的。Maven是一个广泛使用的构建工具,它为Java项目提供了一种简化的构建过程和依赖管理。 在本文中,我们将探讨如何部署Maven并开始使用它来构建您的项目。我们将介绍…

快递管理系统springboot 寄件物流仓库java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 快递管理系统springboot 系统有1权限:管…

205、仿真-51单片机直流数字电流表多档位切换Proteus仿真设计(程序+Proteus仿真+原理图+流程图+元器件清单+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括: 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源…

Apache JMeter:完全指南

Apache JMeter 是一款开源的性能测试工具,可以用于测试 Web 应用程序、FTP 服务器、数据库等各种类型的服务器。本文将以 JMeter 5.5 为例介绍 JMeter 的使用方法。 下载和安装 由于 JMeter 是使用 Java 开发的,因此在运行之前必须先安装 JDK。您可以在…

【Python常用函数】一文让你彻底掌握Python中的toad.quality函数

任何事情都是由量变到质变的过程,学习Python也不例外。只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。本文和你一起来探索Python中的toad.quality函数,让你以最短的时间明白这个函数…

Multi-object navigation in real environments using hybrid policies 论文阅读

论文信息 题目:Multi-object navigation in real environments using hybrid policies 作者:Assem Sadek, Guillaume Bono 来源:CVPR 时间:2023 Abstract 机器人技术中的导航问题通常是通过 SLAM 和规划的结合来解决的。 最近…

Michael.W基于Foundry精读Openzeppelin第25期——IERC1820Registry.sol

Michael.W基于Foundry精读Openzeppelin第25期——IERC1820Registry.sol 0. 版本1. IERC1820Registry.sol2. 官方实现合约代码解读2.1 ERC1820Registry 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 1. IERC1820Registry.sol Github:…

【Linux初阶】system V - 共享内存

文章目录 前言一、共享内存初识1.共享内存的原理2.理解共享内存3.共享的内存的概念 二、共享内存函数1.shmget函数2.shmat函数3.shmdt函数4.shmctl函数 三、共享内存的查看方法及其特征四、共享内存的代码实现五、共享内存优缺点分析1.共享内存的优点2.共享内存的缺点 六、共享…

uni-app弹窗列表滚动, 弹框下面的内容也跟随滚动解决方案

滑动弹窗里的列表,弹框下面的内容也会跟着滑动,导致弹窗中的列表不能正常滚动 1.弹窗组件代码,需要在最外层的view中加入touchmove.stop.prevent"moveHandle",且弹窗中需要滚动的列表要使用scroll-view标签包裹起来&…

学生课堂行为识别教学质量评估 yolov7

学生课堂行为识别教学质量评估系统利用教室安装的摄像头,学生课堂行为识别教学质量评估系统对学生的表情状态、课堂表现和互动行为进行全面监测。对学生的参与度、专注度、互动质量等进行评估,为教师提供有关教学效果的实时反馈。可以为教师提供个性化的…

深谙封装之道:requests再封装,更完美的请求函数

这集我们来讲一个requests的封装函数。 作为一个程序员,我们经常会追求代码的复用性,所以就很多三方库,让我们不重复造轮子。但三方库也不是一步到位的,真正要完成目标还是要动动手的,把工具组装起来。相信每个人都封…

win10在vmware15中安装macos10.13系统

第一步、安装vmware版本信息如下 第二步、下载unlocker-main和darwin.iso放到安装文件夹 第三步、管理员身份运行win-install.cmd 第四步、运行vmware新建虚拟机 第五步、启动新创建的虚拟机macOS 10.13并选择语言 第六步、选择磁盘工具抹掉磁盘 第七步、格式化完成后退出磁盘工…

dialogbot:开箱即用的对话机器人解决方案,涵盖问答型对话、任务型对话和聊天型对话等多种场景,为您提供全方位的对话交互体验。

dialogbot:开箱即用的对话机器人解决方案,涵盖问答型对话、任务型对话和聊天型对话等多种场景,支持网络检索问答、领域知识问答、任务引导问答和闲聊问答,为您提供全方位的对话交互体验。 人机对话系统一直是AI的重要方向&#xf…

二叉搜索树K和KV结构模拟

一 什么是二叉搜索树 这个的结构特性非常重要,是后面函数实现的结构基础,二叉搜索树的特性是每个根节点都比自己的左树任一节点大,比自己的右树任一节点小。 例如这个图, 41是根节点,要比左树大,比右树小&…