GOLLIE : ANNOTATION GUIDELINES IMPROVE ZERO-SHOT INFORMATION-EXTRACTION
文章目录
- 题目
- 摘要
- 引言
- 方法
- 实验
- 消融研究
题目
Techgpt-2.0:解决知识图谱构建任务的大型语言模型项目
论文地址:https://arxiv.org/abs/2310.03668
摘要
大型语言模型 (LLM) 与指令调优相结合,在泛化到未见过的任务时取得了重大进展。然而,它们在信息提取(IE)方面不太成功,落后于特定任务模型。通常,IE 任务的特点是复杂的注释指南,这些指南描述任务并向人类提供示例。以前利用此类信息的尝试都失败了,即使是最大的模型也是如此,因为它们无法遵循开箱即用的指南。在本文中,我们提出了 GoLLIE(IE 大型语言模型指南),该模型能够通过微调以符合注释指南,从而改进未见过的 IE 任务的零样本结果。综合评估经验表明,GoLLIE 能够泛化并遵循看不见的准则,优于之前零样本信息提取的尝试。消融研究表明,详细的指导方针是获得良好结果的关键。代码、数据和模型将公开。
引言
信息提取(IE)的任务非常具有挑战性。这一挑战在详细的指南中显而易见,其中包含精细的定义和大量的例外情况,人类注释者必须遵循这些指南来执行任务。当前 SoTA 模型的性能在很大程度上取决于人工注释数据的数量,因为该模型从这些示例中学习指导。然而,在新的注释模式中进行测试时,这种性能会显着下降。在 IE 中获得良好结果的常见做法是从头开始在每个新域和模式中手动注释,因为几乎不存在跨应用程序域的传输。不幸的是,这在财务成本和人力方面都是不可行的。
大型语言模型 (LLM)的最新进展使得能够泛化到未见过的任务的模型的开发成为可能。因此,当前的零样本 IE 系统利用LLM中编码的知识来注释新示例。作为预训练过程的副产品,模型现在可以强有力地代表个人或组织。因此,可以提示他们从文本中提取对这些类别的提及。然而,这有一个明显的限制:并非每个注释模式*都以相同的方式定义“人”(或任何其他标签)。例如,ACE 将代词注释为人称,而 CoNLL 则不然。IE 任务需要的信息不仅仅是标签名称,它们还需要注释指南。
目前的LLM已经接受过遵循说明的培训,但他们未能遵循开箱即用的注释指南。例如,下图显示了特定领域的零样本命名实体识别的结果。当提示指导方针时,gpt-3.5-turbo 的结果很低,在音乐或政治领域的 F1 分数约为 20。构建一个能够实现高性能零样本信息提取的系统,减少对昂贵的人工注释的依赖,仍然是一个开放的挑战。在这项工作中,我们提出了 GoLLIE(遵循指南的 IE 大型语言模型),这是一个经过微调的LLM,旨在学习如何遵守一小部分众所周知的 IE 任务的指南。综合零样本评估经验表明,GoLLIE 在零样本信息提取方面优于 SoTA。
大型语言模型 (LLM) 在开发可泛化到未见过的任务的系统方面取得了重大进展。使用大量互联网数据训练了LLM,发现给定自然语言任务描述的预训练模型可以在没有明确监督的情况下执行问答、机器翻译或总结等任务。基于这一发现,指令调优(通常称为多任务微调)已成为实现未知任务泛化的主要方法。此过程涉及在大量未标记数据上预训练模型,然后针对各种任务集合对其进行微调,这些任务被表述为文本到文本问题。向模型提供自然语言指令或提示,以识别其应解决的任务。研究已经证明,增加语言模型的参数数量,再加上指令调优数据集的大小和质量的改进,可以增强泛化能力。LLM在各种具有挑战性的任务中表现出了令人印象深刻的零样本泛化能力,包括编码、常识推理和医学应用等。
在信息提取(IE)领域,最近的共享任务表明,XLM-RoBERTa和 mDEBERTA等仅编码器的语言模型仍然存在最有效的模型。利用 LLM 和自然语言指令进行 IE 的尝试不太成功,因为它们的性能落后于仅编码器模型。在十亿参数 LLM 之前,间接监督方法通过利用从文本蕴涵和问答等任务中学到的知识来改进零样本 IE。提出了一种实体类型方法,该方法使用 LSTM 将维基百科的标签描述编码为嵌入,然后用于对输入进行评分。利用外部知识的方法在细粒度零样本 NER 上也取得了成功。引入了一种统一的文本到结构生成方法,可以对不同的 IE 任务进行通用建模。提出将 IE 任务转换为语义匹配问题,使他们的方法能够推广到新领域并标记训练期间未见过的本体。将 IE 任务定义为自然语言描述性指令,并在各种 IE 任务中训练了LLM。在对具有看不见的标签本体的任务的评估中,他们的模型优于其他指令调整方法。
大多数针对 IE 的指令调整尝试都有一个限制:它们仅考虑提示中的标签名称(例如,“列出所有人员”)。这带来了两大挑战。首先,并非所有数据集都对“人”等标签具有相同的定义(有些数据集不包括虚构人物或代词)。其次,标签名称本身不足以描述复杂或不太常见的标签。虽然有人尝试提示LLM使用指南,但LLM有关任务标签的丰富先验知识阻止了模型遵守这些指南。
方法
与以前的方法不同,GoLLIE 强制模型关注指南中的细节,在训练期间未见过的模式上表现稳健。在本节中,我们深入探讨我们方法的细节,描述输入和输出的表示方式以及用于强制模型遵循准则的正则化技术。我们对模型的输入和输出采用了基于 Python 代码的表示。这种方法不仅提供了清晰且人类可读的结构,而且还解决了通常与自然语言指令相关的几个挑战。它能够以统一的格式表示任何信息提取任务。输入可以使用 Python 代码格式化程序(例如 Black)自动标准化。输出结构良好,解析它很简单。此外,当前大多数LLM都在其预训练数据集中包含代码,这表明这些模型已经熟悉这种表示形式。
上图显示了该格式的三个主要部分:模式定义、输入文本和输出注释。模式定义形成输入的初始段。本节包含有关表示为 Python 类的标签的信息;指导方针,明确表达为文档字符串;以及以代码注释的形式呈现的代表性注释候选者。类定义的数量对应于数据集中标签的数量。课程很灵活,并且针对每项任务而有所不同。例如,NER 数据集的类仅需要一个属性来指定与该类相对应的文本范围。另一方面,事件参数提取 (EAE) 或槽位填充 (SF) 等更复杂的任务需要更多类属性来对任务进行分类,例如事件参与者列表(请参阅附录 A 中的示例)。输入文本是输入的第二部分。输入文本在 Python 中表示为字符串变量。输出注释是模型生成的部分。 result=后模型开始生成。注释是表示为模式定义部分上定义的类的实例列表。解析输出很简单;在 Python 中执行生成的代码会生成一个包含结果的列表。这种易于解析输出的方式是我们模型的一个显着优势。附录 E 提供了对该方法效率的进一步详细分析。
指南增强表示这项工作的主要贡献是使用指南作为推理过程的一部分来改进零样本泛化。下图显示了带有和不带有指导方针的类定义示例。不同的数据集通常以多种不同的方式定义指导方针:有些提供标签的复杂定义,但有一些例外和特殊处理,而另一些则仅给出一些有代表性的候选标签。标签的填充物。为了规范化输入格式,我们将标签定义包含为类文档字符串,并将候选者作为主要参数的注释(通常是提及或跨度)。 EAE 或 SF 等复杂任务需要参数或槽的附加定义,为此,我们在每个类参数上添加了一些小定义作为注释。在本文中,我们将没有指南的模型称为 Baseline,将有指南的模型称为 GoLLIE。
训练正则化我们希望确保模型遵循指导方针,而不仅仅是学习识别特定的数据集并在它们上正确执行。为此,我们在训练期间引入各种噪声。这会阻止模型识别特定数据集、回忆特定标签或仅关注标签名称,而不是学习遵循指南中每个标签的实际描述。我们应用了以下正则化。类顺序打乱,对于每个示例,输入类的顺序被随机打乱。这使得模型更难记住整个任务定义。类丢失,我们随机删除一些输入类。通过从输入和输出中消除少数类,我们迫使模型学习仅输出输入中定义的类的实例。这不仅鼓励模型专注于模式定义,而且还最大限度地减少了推理过程中出现幻觉的情况。指南释义,我们生成标签定义的变体,以防止模型轻松记住它们。我们还认为这将使该方法对于定义的不同变化更加稳健。代表性候选者抽样,与我们对释义所做的类似,对于每个输入,我们从每类 10 个固定池中抽样 5 个不同的候选者。类名称屏蔽涉及用占位符(例如 LABEL 1)替换标签类名称(例如 PERSON)。这可以防止模型在训练期间利用标签名称,并强制其参与并理解指南。
实验
评估零样本能力需要将数据分为训练数据集和评估数据集。然而,许多信息提取基准都基于相同的域或共享其模式的一部分。为了确保零样本评估不受类似数据的影响,我们根据数据域划分了一组基准。对于训练,我们主要保留来自新闻和生物医学领域的数据集,而对于评估,我们使用来自不同领域的数据集。这种方法有助于避免在评估过程中引入任何噪音。在评估数据集中,我们包括 CrossNER,这是一个分为多个领域的数据集,为了简单起见,我们将每个领域称为一个单独的数据集:人工智能、文学、音乐、政治和科学。另外,我们将 MIT Movie 和 MIT Restaurant 称为电影和餐厅。表 1 包含有关实验中使用的数据的信息。
我们训练模型执行 5 种不同的任务:命名实体识别 (NER)、关系提取 (RE)、事件提取 (EE)、事件参数提取 (EAE) 和槽位填充 (SF)。然而,我们仅在感兴趣的三个主要任务上评估了模型:NER、EE 和 EAE。另外两个任务被添加到训练数据中,以增加多样性并提高模型的灵活性。为了提高模型的质量,对两个数据集进行了少量修改。首先,Ontonotes 5 的训练数据由于自动标注而大幅减少。其次,TACRED 数据集从 RE 转换为 SF,以增加任务的复杂性。这些修改使我们的系统无法与这些任务的现有技术相媲美。然而,我们感兴趣的焦点是零样本评估,因此,其好处比在监督设置上添加 2 个可比点更有趣。在 CASIE 数据集中,我们检测到注释的事件跨度不一致。模型通常注释子字符串而不是整个范围。因此,我们根据预测的事件类别评估所有模型,而不考虑确切的文本跨度。对于参数,我们使用部分匹配。
我们使用每个数据集作者发布的指南。当此类指南未公开时,我们会要求人类专家根据开发分会的注释来创建它们。当可用时,从指南中提取代表性候选者,否则,根据词频从列车分割中采样候选者或根据指南手动策划候选者。使用 Vicuna 33B v1.3 自动生成释义。
语言模型和基线 主干LLM:GoLLIE 是的微调版本。 ` 然而,在开发过程中考虑了其他骨干 LLM,例如 LLaMA、LLaMA-2,因为我们的方法使用代码来表示输入和输出,Code-LLaMA 模型在初步实验中效果更好。为了进行公平比较,本文开发的基线也基于 Code-LLaMA。本文的所有开发都是使用 Code-LLama 的 7B 参数版本完成的,但是,为了进行缩放分析,我们还训练了 13B 和 34B 参数模型。训练设置:为了训练模型,我们使用 QLoRA。 LoRA 冻结预先训练的模型权重,并将可训练的秩分解矩阵注入到 Transformer 架构的线性层中。在初步实验中,该设置在零样本任务上优于微调整个模型,同时训练速度更快。我们按照 Dettmers 等人的建议将 LoRA 应用于所有线性变压器块层。使用余弦调度器对模型进行 3 个 epoch 的训练,有效批量大小为 32,学习率为 3e-4。我们的训练基础设施是 2 台 NVIDIA A100,每台 80GB。
可比系统:我们的主要比较点是 Instruct-UIE,因为它是最接近我们系统的方法,但不使用指南。考虑进行比较的另一个系统是 PromptNER,它建议使用 Chain-of-Though 来提示 GPT-3.5 和 T5 的定义,以执行少样本 NER。与我们不同的是,他们没有对模型进行微调以遵守指南。为了公平比较,我们只考虑了论文中报告的零样本结果。此外,当 Instruct-UIE 和 PromptNER 的结果不可用时,还会添加其他 SoTA 系统进行比较。鉴于我们的系统是为零样本场景设计的,监督实验旨在验证我们的系统不会降低其性能。因此,对于监督场景,我们选择了 SoTA 中与我们最具有可比性的设置的系统。
监督数据集上的结果下如表所示。将 GoLLIE 与基线进行比较,它们都获得非常相似的结果,平均绝对差异为 0.3 个 F1 点。这是预期的,因为基线模型隐式地学习了在微调期间根据数据分布注释数据集的指南。此外,尽管 GoLLIE 微调中引入了噪声以便根据准则进行概括,但性能仍接近基线。与其他系统相比,我们的模型总体上取得了相似的结果。关注我们的模型表现明显不佳的两个数据集 WNUT 和 NCBIDisease,我们发现该任务仍需要具体技术。例如,使用外部知识来检测新兴和稀有实体。在 NCBIDisisease 数据集中,在生物医学领域语料库上预训练的模型取得了最佳结果。 利用 Flan-T5,它在生物医学领域任务上非常熟练。然而,这些改进是对我们的建议的补充。
零样本评估,零样本的结果如下表所示。总体而言,与基线相比,在几乎每个数据集上使用指南时,结果都有显着改善,平均绝对差异为 13 个 F1 点。尽管根据领域划分评估基准,但训练标签和评估基准之间总是存在一些重叠。例如,数据集 E3C 和 WikiEvents 与 BC5CDR、ACE05 和 RAMS 等数据集共享其模式的很大一部分。这种现象反映在结果中。GoLLIE 大幅超越了当前的 zeri-shot SoTA 方法 Instruct-UIE和基于 Entailment 的 IE。与 Instruct-UIE 相比,主要区别在于骨干模型、训练数据量以及指南的使用与否。Instruct-UIE 利用 11B FlanT5,它是在 473 个 NLP 数据集上微调的 T5。在数据方面,Instruct-UIE总共利用了来自不同领域的34个IE数据集(将不同的任务计为数据集),我们只利用了12个数据集。与我们的方法相反,他们不使用指南信息。尽管如此,我们的方法表现明显更好,表明指南对结果有重要影响。
PromptNER还在提示中添加了一些定义信息,以便执行零样本 NER。我们将我们的方法与图中的他们(表示为 GPT-3.5)进行比较。尽管他们的方法也利用了指南,但我们的方法在所有数据集上的表现明显更好,这表明LLM(即使使用 175B 参数)很难遵循指南。他们通过在上下文中添加示例来解决这个问题,但在可比较的设置(T5-XXL)上仍然远远落后。
模型扩展:最近的研究表明,增加语言模型的参数数量可以提高泛化能力。更高的参数数量可带来卓越的平均零样本性能。然而,一些数据集和任务可以从更大的LLM中受益匪浅,而另一些则不然。我们认为,某些数据集并没有看到增加 LLM 规模的好处,因为它们的性能受到我们在第 5.3 节中讨论的指南问题的阻碍。虽然一般来说,较大的模型在监督和零样本设置中都能取得更好的结果,但具有 7B 参数主干的 GoLLIE 已经表现出强大的零样本能力。
可见标签与不可见标签:零样本数据集中并非所有标签都是不可见的;训练数据集和零样本数据集中的标签之间存在重叠。尽管这些标签可能有非常不同的注释准则,但我们也会报告训练期间未接触到的标签集的结果,以更好地了解 GoLLIE 的泛化能力。下图汇总了零样本场景中已见和未见标签的跨数据集的 F1 分数。所有模型在看不见的标签上表现出稍低的性能。对于基线模型,性能下降更为明显。相比之下,GoLLIE 表现出更好的泛化能力,显示出可见标签和未看见标签之间的 F1 分数差距较小。此外,随着模型参数数量的增加,差距会更小。
消融研究
我们进行了消融,以查看零样本评估中几个组件的贡献。我们分析了的不同正则化技术。此外,我们将基线表示为“w/o all”,即删除包括指南在内的所有组件时。除了平均零样本 F1 之外,我们还提供了 GoLLIE 的单边 p 值。类顺序改组、指南释义和类名屏蔽似乎对最终结果没有显着贡献,而类丢失虽然显着,但改进很小。损失仅根据结果标记进行计算,从本质上限制了模型与准则过度拟合的可能性。相反,代表性注释项向模型发出了更强的信号。我们看到指南中的定义和代表性候选者如何互补并有助于相互改进。
在本节中,我们的目的是更好地理解通过指南提示LLM的效果。我们专注于不同数据集上的特定标签,结果如下表所示。我们的分析涵盖了 GoLLIE 实体标记的成功和不成功案例。对于后者,我们还旨在确定模型未能正确标记这些实体的原因。详细信息在指南中:MEDIA、VULNERABILITYPATCH、TRAILER 和 TASK 等标签本质上是多义的,因此很难仅根据标签名称来确定适当的分类。因此,由于信息不足,基线很难有效地对这些标签下的项目进行分类。相反,GoLLIE 成功地遵循了这些指南,强调了它们的实用性。当注释不符合准则时:对于 MultiNERD 数据集的 TIME 标签,我们发现我们的模型将年份标记为 TIME 实体。根据注释指南,这是正确的。令人惊讶的是,年份没有被标记为数据集中的实体。在这种情况下,GoLLIE 成功地遵循了指南;不幸的是,数据集注释没有。
不明确的标签:CoNLL03 和 CrossNER 数据集使用的杂项类别是指未包含在数据集设置的预定义类别中的任何命名实体。这个定义非常模糊,并且是对不适合任何类型的各种元素的包罗万象。预定义类别。类似地,电影数据集的 PLOT 类别用于标记各种元素。例如,电影中的事件(例如谋杀、赛马)、角色(例如吸血鬼、僵尸)和原籍国(例如英国)等。这种缺乏特异性阻碍了标记此类元素的一致规则或指南的制定,这对人类和机器来说都是一个问题。因此,GoLLIE 也无法准确地标记它们。
细粒度实体和粗实体之间的冲突:CrossNER 数据集为每个域中的人名引入了两个标签。例如,在科学领域中,使用标签“SCIENTIST”和“PERSON”。前者用于标记任何不是科学家的人。类似地,文学域包括标签“WRITER”和“PERSON”。该指南帮助 GoLLIE 将实体正确标记为 WRITER。然而,尽管有指导方针,GoLLIE 仍然将个人归类为“人”,即使他们是科学家。从技术上讲,这并不是不正确的,因为根据定义,每个科学家也是一个人。
强烈的标签先入之见:在其政治领域集中,CrossNER 包含“政治政党”标签。 GoLLIE 的表现优于基线,再次证明了为模型提供指导的实用性。然而,我们经常发现该模型将政党归类为组织。如表 1 所列,大多数预训练数据集源自新闻领域,其中政党是一个常见实体。然而,没有一个微调数据集包含 POLITICAL PARTY 实体;相反,它们被归类为组织。因此,在推理过程中,该模型始终将政党标记为组织。我们相信这个问题可以通过扩大微调数据集的数量和多样性来解决。
总之,我们预计 GoLLIE 将在具有明确定义和明确界限的指导方针的标签上表现良好。另一方面,模糊的标签或非常粗糙的标签带来了挑战。在这方面,相信 GoLLIE 会受益于学习遵循“始终标记最具体的类”或“在没有其他特定类的情况下注释此类”等指令。我们还预计 GoLLIE 将从扩大预训练数据集的数量和多样性中受益。
在本文中,我们介绍了 GoLLIE,这是一种经过专门微调以符合注释指南的LLM,该指南旨在帮助人类注释数据集。全面的零样本评估从经验上证明,注释指南对于LLM来说非常有价值,因为 GoLLIE 成功地利用了它们。与之前的零样本 IE 尝试相比,GoLLIE 实现了更好的零样本结果,后者不利用指南,或使用未针对遵循指南进行微调的模型。GoLLIE 是模型开发方面的重大进步,可以泛化到未见过的 IE 任务。未来,我们计划通过使用更大、更多样化的预训练数据集来增强 GoLLIE。我们还将通过扩展模型可以遵循的指令集来提高模型在模糊和粗糙标签上的性能。
相关文章:
![](https://i-blog.csdnimg.cn/direct/bba848a76d21448ca0ba37a219b2a305.png)
GOLLIE : ANNOTATION GUIDELINES IMPROVE ZERO-SHOT INFORMATION-EXTRACTION
文章目录 题目摘要引言方法实验消融研究 题目 Techgpt-2.0:解决知识图谱构建任务的大型语言模型项目 论文地址:https://arxiv.org/abs/2310.03668 摘要 大型语言模型 (LLM) 与指令调优相结合,在泛化到未见过的任务时取得了重大进展。然而,它…...
![](https://img-blog.csdnimg.cn/img_convert/d31dabad869688a0ab011883fb7573db.png#pic_center)
2024-07-19 Unity插件 Odin Inspector9 —— Validation Attributes
文章目录 1 说明2 验证特性2.1 AssetsOnly / SceneObjectsOnly2.2 ChildGameObjectsOnly2.3 DisallowModificationsIn2.4 FilePath2.5 FolderPath2.6 MaxValue / MinValue2.7 MinMaxSlider2.8 PropertyRange2.9 Required2.10 RequiredIn2.11 RequiredListLength2.12 ValidateIn…...
![](https://i-blog.csdnimg.cn/direct/c1411a0851794086b9710d8beac6dd3b.png)
跨平台WPF音乐商店应用程序
目录 一 简介 二 设计思路 三 源码 一 简介 支持在线检索音乐,支持实时浏览当前收藏的音乐及音乐数据的持久化。 二 设计思路 采用MVVM架构,前后端分离,子界面弹出始终位于主界面的中心。 三 源码 视窗引导启动源码: namesp…...
![](https://www.ngui.cc/images/no-images.jpg)
设计模式简述(一)
定义:设计模式指的是在软件开发过程中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。创建型设计模式关注对象的创建过程,提供了更灵活、可扩展的对象创建机制。结构型设计模式用于解决…...
![](https://www.ngui.cc/images/no-images.jpg)
OSI参考模型:解析网络通信的七层框架
引言 在现代计算机网络中,OSI(开放式系统互联)参考模型是理解和设计网络通信协议的基础。1978年由国际标准化组织(ISO)提出,OSI模型定义了网络通信的七层结构,每一层都承担着特定的功能&#x…...
![](https://i-blog.csdnimg.cn/direct/c8b21d5996e14ef7bf8e2a85c6c4a5d2.png)
QT通用配置文件库(QPreferences)
QT通用配置文件库(QPreferences) QPreferences项目是基于nlohmann/json的qt可视化配置文件库,将配置保存成json格式,并提供UI查看与修改,可通过cmake可快速添加进项目。默认支持基本类型、stl常用容器、基本类型与stl容器组成的结构体&#…...
![](https://i-blog.csdnimg.cn/direct/187813a2e202437886f69159090f4404.png)
如何搭建一个RADIUS服务器?
1. 系统环境 1.1.操作系统 Ubuntu-20.04.1 (kernel: 5.15.0-58-generic) 1.2.所需软件 FreeRADIUS MariaDB 1.3.注意事项 本文提到的所有操作,都是以root 身份执行; 2. FreeRADIUS的安装 2.1. 安装FreeRADIUS服务器程序 以…...
![](https://i-blog.csdnimg.cn/direct/728bd47bb9554c0ca4965c1d48a6dada.png)
双机热备综合实验
1,对现有网络进行改造升级,将当个防火墙组网改成双机热备的组网形式,做负载分担模式,游客区和DMZ区走FW3,生产区和办公区的流量走FW1 2,办公区上网用户限制流量不超过100M,其中销售部人员在其基…...
![](https://www.ngui.cc/images/no-images.jpg)
Java和Python的图结构如何实现图的深度优先搜索算法
Java和Python的图结构如何实现图的深度优先搜索算法? 在Java和Python中,实现深度优先搜索(DFS)算法的基本思路都是通过递归或栈来探索图的各个节点。 Java实现DFS:Java import java.util.ArrayList; import java.uti…...
![](https://www.ngui.cc/images/no-images.jpg)
Web学习day05
html&css 目录 html&css 文章目录 一、web开发 1.1工作流程 1.2开发技术 二、HTML 2.1HTML规范 2.2基础标签 2.2.1标题 2.2.2水平线 2.2.3段落和换行 2.2.4文字效果 2.2.5超链接 2.2.6图像 2.2.7音频和视频 三、布局标签 3.1列表 3.2容器 3.3表格 3…...
![](https://i-blog.csdnimg.cn/direct/1d844b8e6917460d92e405b4a8036267.png)
LINUX客户端client(socket、connect)实现客户端发送,服务器接收
SERVICE端见前一篇文章 5. 客户端连接函数 connect()(与前面的bind一样) int connect (int sockfd, struct sockaddr * serv_addr, int addrlen) 参数: sockfd: 通过 socket() 函数拿到的 fd addr:struct sockaddr 的结构体变量地址 addr…...
![](https://i-blog.csdnimg.cn/direct/4bcb3bc55d27478fb7c7be7d96e7199b.png)
【网络安全科普】勒索病毒 防护指南
勒索病毒简介 勒索病毒是一种恶意软件,也称为勒索软件(Ransomware),其主要目的是在感染计算机后加密用户文件,并要求用户支付赎金以获取解密密钥。这种类型的恶意软件通常通过电子邮件附件、恶意链接、下载的软件或漏洞…...
![](https://www.ngui.cc/images/no-images.jpg)
TFHE库,fftw和googletest库安装
点个关注吧!本文主要关注于TFHE的安装与常见的问题 1.TFHE的git链接: https://github.com/tfhe/tfhe git clone --recurse-submodules --branchmaster https://github.com/tfhe/tfhe.git 2.安装 mkdir build cd build cmake ../src -DENABLE_TESTSon -D…...
![](https://www.ngui.cc/images/no-images.jpg)
关于Spring Boot IOCDC,看这一篇就够了
一,Spring是什么及常用注解 先说什么是spring,在前面的博客中已经知道了,spring是一个开源框架,为了让我们开发更加简单,那关于ioc呢,一句话概况一下:Spring就是包含了众多工具方法的Ioc容器 …...
![](https://www.ngui.cc/images/no-images.jpg)
Model Import Settings
前言 在可视化3D世界中,模型是3D世界的核心,你可以没有贴图,可以没有特效,甚至可以没有用户交互界面,但必须得有模型来描述世界的基本样貌。 在3D世界中,由点线面构成了模型的轮廓;由UV和纹理&a…...
![](https://i-blog.csdnimg.cn/direct/f7b0cb5c0b6446f4a3376ff5bc02a7cd.png#pic_center)
腾讯云COS托管静态网站,以及如何解决访问出现了下载网页的情况
腾讯云对象存储(Cloud Object Storage,简称COS),与其他云厂商所提供的云对象存储都是面向非结构化数据,只是每个云厂商的叫法有别于他家,或许是更能彰显厂商的品牌吧! 但不管云厂商怎么给云对象…...
![](https://www.ngui.cc/images/no-images.jpg)
软件设计模式: 抽象工厂
抽象工厂 一、解决的问题 抽象工厂模式主要解决了在具有多个产品族的情况下,如何统一管理创建相关产品对象的问题。 当系统需要创建一系列相互关联或相互依赖的对象,并且这些对象可以形成多个不同的产品族时,如果直接由客户端去分别创建这…...
![](https://i-blog.csdnimg.cn/direct/8160198c6c7348568641b221d71e3345.png)
使用Vuepress搭建个人网站
网站地址:bloggo.chat...
![](https://www.ngui.cc/images/no-images.jpg)
lua 写一个 不同时区之间转换日期和时间 函数
这个函数用于调整时间戳以适应不同的时区。它接受五个参数:format、timeStamp、dontFixForTimeOffset、currentServerTimeZone和showLog。返回 os.date,可以转化成指定格式的年月日时间 ### 功能 该函数的主要功能是根据给定的时区偏移量调整时间戳&am…...
![](https://www.ngui.cc/images/no-images.jpg)
谷粒商城——session共享
问题1 一个系统中不同微服务的session共享。 问题1的解决办法 1. session复制的方法:微服务的副本之间通过通信共享session。这样每一个微服务的副本都会保存所有的session。(缺点:造成大量的通信,多处额外的通信开销。&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
Java 语言及其常用集合类的操作,以及反射机制与注解
目录 一、Java 语言概述 二、Java 集合框架 ArrayList 操作示例: HashMap 操作示例: 三、反射机制 1. 反射的示例 五、总结 Java 是一种广泛使用的高级编程语言,因其平台独立性、简洁性及丰富的 API 而备受开发者青睐。 一、Java 语言…...
![](https://img-blog.csdnimg.cn/4a3d2dc909d846f3ade748eb38789629.png#pic_center)
《系统架构设计师教程(第2版)》第12章-信息系统架构设计理论与实践-02-信息系统架构
文章目录 1. 概述1.1 信息系统架构(ISA)1.2 架构风格 2. 信息系统架构分类2.1 信息系统物理结构2.1.1 集中式结构2.1.2 分布式结构 2.2 信息系统的逻辑结构1)横向综合2)纵向综合3)纵横综合 3. 信息系统架构的一般原理4…...
![](https://i-blog.csdnimg.cn/direct/0c6739dd26aa42daa0dd17425f6d8835.png)
用html做python教程01
用html做python教程01 前言开肝构思实操额外修饰更换字体自适应 最后 前言 今天打开csdn的时候,看见csdn给我推荐了一个python技能书。 说实话,做得真不错。再看看我自己,有亿点差距😟。 开肝 先创建一个文件,后缀…...
![](https://www.ngui.cc/images/no-images.jpg)
PHP接口与性状的优雅应用
本文由 ChatMoney团队出品 在PHP编程中,接口是一种定义对象之间交互契约的强大工具。其核心目的不是让一个对象紧耦合地依赖另一个对象的特定身份,而是基于另一对象的能力进行交互。通过接口,我们的代码可以实现与依赖的解耦,从而…...
![](https://www.ngui.cc/images/no-images.jpg)
R语言模型评估网格搜索
### 网格搜索 ### install.packages("gbm") set.seed(1234) library(caret) library(gbm) fitControl <- trainControl(method = repeatedcv,number = 10,repeats = 5) # 设置网格搜索的参数池 gbmGrid <- expand.grid(interaction.depth = c(3,5,9),n.trees =…...
![](https://i-blog.csdnimg.cn/direct/c7d507488bdc461ba8b1c7d3c4904894.png)
Haproxy服务
目录 一.haproxy介绍 1.主要特点和功能 2.haproxy 调度算法 3.haproxy 与nginx 和lvs的区别 二.安装 haproxy 服务 1. yum安装 2.第三方rpm 安装 3.编译安装haproxy 三.配置文件详解 1.官方地址配置文件官方帮助文档 2.HAProxy 的配置文件haproxy.cfg由两大部分组成&…...
Unity VR开发入门:探索虚拟现实世界的无限可能
目录 引言 Unity VR开发基础 1. 安装Unity与VR SDK 2. 创建VR项目 3. 理解VR场景结构 Unity VR开发实战 1. 场景搭建 2. 交互设计 创建C#脚本 编写VRInteractor脚本 应用脚本到场景 注意 修改VRInteractor脚本 3. 用户体验优化 4. 测试与调试 引言 随着科技的飞速…...
![](https://i-blog.csdnimg.cn/direct/3dfa30293ad04346ba65cbc5755882f1.png)
系统架构设计师教程(清华第二版) 第3章 信息系统基础知识-3.2 业务处理系统-解读
教材中,一会儿“业务处理系统”,一会儿“事务处理系统”,语法毛病一堆。真是清华的水平!!! 系统架构设计师教程 第3章 信息系统基础知识-3.2 业务处理系统 3.2.1 业务处理系统的概念3.2.2 业务处理系统的功能3.2.2.1 数据输入3.2.2.2 数据处理3.2.2.2.1 批处理 (Batch …...
![](https://i-blog.csdnimg.cn/direct/e95c6f630a44409c8fe77b68bf683181.png)
32_ConvNeXt网络详解
1.1 简介 ConvNeXt是一种计算机视觉模型,由Meta AI(前Facebook AI)的研究人员在2022年提出,它旨在探索卷积神经网络(CNN)在图像识别任务上的潜力,尤其是在与当时流行的Vision Transformer&…...
![](https://img-blog.csdnimg.cn/img_convert/a8a8728efabb841b93b74ddddec2c686.png)
Langchain[3]:Langchain架构演进与功能扩展:流式事件处理、事件过滤机制、回调传播策略及装饰器应用
Langchain[3]:Langchain架构演进与功能扩展:流式事件处理、事件过滤机制、回调传播策略及装饰器应用 1. Langchain的演变 v0.1: 初始版本,包含基本功能。 从0.1~0.2完成的特性: 通过事件流 API 提供更好的流式支持。标准化工具调用支持Tool…...
![](https://img-blog.csdnimg.cn/img_convert/9e4c72ef6559356f4f0818ba0d2798b2.png)
杭州网站建设公司有哪几家/陕西网站建设网络公司
基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS和都江堰操作系统(djyos)。下面分别介绍这五种嵌入式操作系统的特点及不足。更多交流私我132-陆零伍陆-20-291、μClinuxμClinux是一种优秀的…...
![](https://img-blog.csdnimg.cn/img_convert/18a699c6cc4efb9d557db44938123d5c.png)
网站建设费税率/网站的seo
译文出自:登链翻译计划译者:翻译小组校对:Tiny 熊原文链接:learnblockchain.cn/article…欢迎阅读跟我学习 Solidity系列中的另一篇文章。在上一篇文章,中,我们了解了数据位置的工作方式以及何时可以使用以下三个位置&…...
![](/images/no-images.jpg)
icp网站 是什么意思/网站排名前十
Beego是一个完全的MVC框架,你可以使用你的Go语言专业技术构建你的web应用程序。Beego框架下,你可以自动化地实现测试、打包和部署。Revel能让Go语言的web开发如虎添翼,大大提高你的开发效率。 Martini是一个受到Sinatra (一个Ruby 框架)启发而…...
![](https://img-blog.csdnimg.cn/img_convert/b8ee0f829447e29903cae48b0cc40028.png)
申请一个自己的网站/石家庄网站建设培训
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:低压电工报名考试考前必练!安全生产模拟考试一点通每个月更新低压电工模拟考试题库题目及答案!多做几遍,其实通过低压电工作业考试题库很简单。…...
![](https://img-blog.csdnimg.cn/img_convert/225287cb41318e657210166cfd1236f1.png)
清远网站制作/网站搭建外贸
真的很想吐槽一下李航老师后面的附录,看的我是云头雾里,上网查了很多资料才搞懂。 这篇文章主要讲解牛顿法和拟牛顿法一些算法思路上的由来,作为附录的补充,具体算法细节可以参考那本书1.牛顿法首先你需要知道的是牛顿法本身是一个…...
![](/images/no-images.jpg)
生鲜配送网站建设/长治seo顾问
什么是计算机元年? 上古时期的计算机操作系统是32位,一个int类型的数据是32位,它表示的范围是:-2147483648 ~ 2147483647,用它来代表秒钟数进行计算:2147483647/(3652460*60)68.1(年) 也就是说用这个数来表…...