大型语言模型与知识图谱协同研究综述:两大技术优势互补

news2024/11/15 17:45:48

机器之心报道

编辑:杜伟

多图综述理清当前研究现状,这篇 29 页的论文值得一读。

大型语言模型(LLM)已经很强了,但还可以更强。通过结合知识图谱,LLM 有望解决缺乏事实知识、幻觉和可解释性等诸多问题;而反过来 LLM 也能助益知识图谱,让其具备强大的文本和语言理解能力。而如果能将两者充分融合,我们也许还能得到更加全能的人工智能。

今天我们将介绍一篇综述 LLM 与知识图谱联合相关研究的论文,其中既包含用知识图谱增强 LLM 的研究进展,也有用 LLM 增强知识图谱的研究成果,还有 LLM 与知识图谱协同的最近成果。文中概括性的框架展示非常方便读者参考。

eeaa320180ebdfd11aa1b4681f01b8b9.jpeg

论文:https://arxiv.org/abs/2306.08302v1

BERT、RoBERTA 和 T5 等在大规模语料库上预训练的大型语言模型(LLM)已经能非常优秀地应对多种自然语言处理(NLP)任务,比如问答、机器翻译和文本生成。近段时间,随着模型规模的急剧增长,LLM 还进一步获得了涌现能力,开拓了将 LLM 用作通用人工智能(AGI)的道路。ChatGPT 和 PaLM2 等先进的 LLM 具有数百上千亿个参数,它们已有潜力解决许多复杂的实际任务,比如教育、代码生成和推荐。

尽管 LLM 已有许多成功应用,但由于缺乏事实知识,它们还是备受诟病。具体来说,LLM 会记忆训练语料库中包含的事实和知识。但是,进一步的研究表明,LLM 无法回忆出事实,而且往往还会出现幻觉问题,即生成具有错误事实的表述。举个例子,如果向 LLM 提问:「爱因斯坦在什么时候发现了引力?」它可能会说:「爱因斯坦在 1687 年发现了引力。」但事实上,提出引力理论的人是艾萨克・牛顿。这种问题会严重损害 LLM 的可信度。

LLM 是黑箱模型,缺乏可解释性,因此备受批评。LLM 通过参数隐含地表示知识。因此,我们难以解释和验证 LLM 获得的知识。此外,LLM 是通过概率模型执行推理,而这是一个非决断性的过程。对于 LLM 用以得出预测结果和决策的具体模式和功能,人类难以直接获得详情和解释。尽管通过使用思维链(chain-of-thought),某些 LLM 具备解释自身预测结果的功能,但它们推理出的解释依然存在幻觉问题。这会严重影响 LLM 在事关重大的场景中的应用,比如医疗诊断和法律评判。举个例子,在医疗诊断场景中,LLM 可能误诊并提供与医疗常识相悖的解释。这就引出了另一个问题:在一般语料库上训练的 LLM 由于缺乏特定领域的知识或新训练数据,可能无法很好地泛化到特定领域或新知识上。

为了解决上述问题,一个潜在的解决方案是将知识图谱(KG)整合进 LLM 中。知识图谱能以三元组的形式存储巨量事实,即 (头实体、关系、尾实体),因此知识图谱是一种结构化和决断性的知识表征形式,例子包括 Wikidata、YAGO 和 NELL。知识图谱对多种应用而言都至关重要,因为其能提供准确、明确的知识。此外众所周知,它们还具有很棒的符号推理能力,这能生成可解释的结果。知识图谱还能随着新知识的持续输入而积极演进。此外,通过让专家来构建特定领域的知识图谱,就能具备提供精确可靠的特定领域知识的能力。

然而,知识图谱很难构建,并且由于真实世界知识图谱往往是不完备的,还会动态变化,因此当前的知识图谱方法难以应对。这些方法无法有效建模未见过的实体以及表征新知识。此外,知识图谱中丰富的文本信息往往会被忽视。不仅如此,知识图谱的现有方法往往是针对特定知识图谱或任务定制的,泛化能力不足。因此,有必要使用 LLM 来解决知识图谱面临的挑战。图 1 总结了 LLM 和知识图谱的优缺点。

fbd1f79c9706d094fcb074cc65b6b294.jpeg

图 1:LLM 和知识图谱的优缺点总结。

如图所示,LLM 的优点:一般知识、语言处理、泛化能力。LLM 的缺点:隐含知识、幻觉问题、无法决断问题、黑箱、缺乏特定领域的知识和新知识。知识图谱的优点:结构化的知识、准确度、决断能力、可解释性、特定领域的知识、知识演进。知识图谱的缺点:不完备性、缺乏语言理解、未见过的知识。

近段时间,将 LLM 和知识图谱联合起来的可能性受到了越来越多研究者和实践者关注。LLM 和知识图谱本质上是互相关联的,并且能彼此互相强化。如果用知识图谱增强 LLM,那么知识图谱不仅能被集成到 LLM 的预训练和推理阶段,从而用来提供外部知识,还能被用来分析 LLM 以提供可解释性。而在用 LLM 来增强知识图谱方面,LLM 已被用于多种与知识图谱相关的应用,比如知识图谱嵌入、知识图谱补全、知识图谱构建、知识图谱到文本的生成、知识图谱问答。LLM 能够提升知识图谱的性能并助益其应用。在 LLM 与知识图谱协同的相关研究中,研究者将 LLM 和知识图谱的优点融合,让它们在知识表征和推理方面的能力得以互相促进。

这篇论文将在联合 LLM 与知识图谱方面提供一个前瞻性的路线图,帮助读者了解如何针对不同的下游任务,利用它们各自的优势,克服各自的局限。其中包含详细的分类和全面的总结,并指出了这些快速发展的领域的新兴方向。本文的主要贡献包括:

1, 路线图:文中提供了一份 LLM 和知识图谱整合方面的前瞻性路线图。这份路线图包含联合 LLM 与知识图谱的三个概括性框架:用知识图谱增强 LLM、用 LLM 增强知识图谱、LLM 与知识图谱协同。可为联合这两种截然不同但互补的技术提供指导方针。

2, 分类和总结评估:对于该路线图中的每种整合模式,文中都提供了详细的分类和全新的分类法。对于每种类别,文中都从不同整合策略和任务角度总结评估了相关研究工作,从而能为每种框架提供更多见解。

3, 涵盖了新进展:文中覆盖了 LLM 和知识图谱的先进技术。其中讨论了 ChatGPT 和 GPT-4 等当前最先进的 LLM 以及多模态知识图谱等知识图谱新技术。

4, 挑战和未来方向:文中也会给出当前研究面临的挑战并给出一些有潜力的未来研究方向。

LLM 和知识图谱基础知识

大型语言模型(LLM)

在大规模语料库上预训练的 LLM 可以解决多种 NLP 任务,拥有巨大潜力。如图 3 所示,大多数 LLM 都源自 Transformer 设计,其中包含编码器和解码器模块,并采用了自注意力机制。LLM 可以根据架构不同而分为三大类别:仅编码器 LLM、编码器 - 解码器 LLM、仅解码器 LLM。图 2 总结了一些代表性 LLM,涉及不同架构、模型大小和是否开源。

5f90442d1b4d1c420c551bbe8ae883c9.jpeg

图 2:近些年有代表性的 LLM。实心方框表示开源模型,空心方框则是闭源模型。

6ad5b6febf093e13126d21c041bf4872.jpeg

图 3:基于 Transformer 并使用了自注意力机制的 LLM 的示意图。

prompt 工程设计

prompt 工程设计是一个全新领域,其关注的是创建和优化 prompt,从而让 LLM 能最有效地应对各种不同应用和研究领域。如图 4 所示,prompt 是 LLM 的自然语言输入序列,需要针对具体任务(如情绪分类)创建。prompt 可包含多个元素,即:指示、背景信息、输入文本。指示是告知模型执行某特定任务的短句。背景信息为输入文本或少样本学习提供相关的信息。输入文本是需要模型处理的文本。

a1c6a03aa029e7c60844088d8c7f817e.jpeg

图 4:一个情绪分类 prompt 的示例。

prompt 工程设计的目标是提升 LLM 应对多样化复杂任务的能力,如问答、情绪分类和常识推理。思维链(CoT)prompt 是通过中间推理步骤来实现复杂推理。另一种方法则是通过整合外部知识来设计更好的知识增强型 prompt。自动化 prompt 工程(APE)则是一种可以提升 LLM 性能的 prompt 自动生成方法。prompt 让人无需对 LLM 进行微调就能利用 LLM 的潜力。掌握 prompt 工程设计能让人更好地理解 LLM 的优劣之处。

知识图谱(KG)

知识图谱则是以 (实体、关系、实体) 三元组集合的方式来存储结构化知识。根据所存储信息的不同,现有的知识图谱可分为四大类:百科知识型知识图谱、常识型知识图谱、特定领域型知识图谱、多模态知识图谱。图 5 展示了不同类别知识图谱的例子。

22d574bd79b4c3afa59e1dfbb90e2c84.jpeg

图 5:不同类别知识图谱示例。

应用

LLM 和知识图谱都有着广泛的应用。表 1 总结了 LLM 和知识图谱的一些代表性应用。

7a66441f9bfe59598592f2aed29a68e6.jpeg

表 1:LLM 和知识图谱的代表性应用。

路线图与分类

下面会先给出一份路线图,展现将 LLM 和知识图谱联合起来的框架,然后将对相关研究进行分类。

路线图

图 6 展示了将 LLM 和知识图谱联合起来的路线图。这份路线图包含联合 LLM 与知识图谱的三个框架:用知识图谱增强 LLM、用 LLM 增强知识图谱、LLM 与知识图谱协同。

3352bed43c73704a88e1db74d6ddd63b.jpeg

图 6:联合知识图谱和 LLM 的一般路线图。

bdec76aebff4fb85f06007a481925524.jpeg

图 7:LLM 与知识图谱协同的一般框架,其中包含四层:数据、协同模型、技术、应用。

分类

为了更好地理解联合 LLM 和知识图谱的研究,论文进一步提供了每种框架的细粒度分类。具体来说,这里关注的是整合 LLM 与知识图谱的不同方法,即:用知识图谱增强 LLM、用 LLM 增强知识图谱、LLM 与知识图谱协同。图 8 细粒度地展示了相关研究的分类情况。

02a4fd44bfd34f25979a1fd987cb5563.jpeg

图 8:联合 LLM 与知识图谱的相关研究分类。

用知识图谱增强 LLM

大型语言模型在许多自然语言处理任务上都表现出色。但是,由于 LLM 缺乏实际知识而且常在推理时生成事实性错误,因此也饱受批评。解决该问题的一种方法是用知识图谱增强 LLM。

具体的方式有几种,一是使用知识图谱增强 LLM 预训练,其目的是在预训练阶段将知识注入到 LLM 中。二是使用知识图谱增强 LLM 推理,这能让 LLM 在生成句子时考虑到最新知识。三是使用知识图谱增强 LLM 可解释性,从而让我们更好地理解 LLM 的行为。表 2 总结了用知识图谱增强 LLM 的典型方法。

10acafcbcaf2c2767ca70ca721e0fb5e.jpeg

表 2:用知识图谱增强 LLM 的方法。

用知识图谱增强 LLM 预训练

现有的 LLM 主要依靠在大规模语料库上执行无监督训练。尽管这些模型在下游任务上表现卓越,它们却缺少与现实世界相关的实际知识。在将知识图谱整合进 LLM 方面,之前的研究可以分为三类:将知识图谱整合进训练目标、将知识图谱整合进 LLM 的输入、将知识图谱整合进附加的融合模块。

d49b9220ece61cdd6ee46aa5878b4242.jpeg

图 9:通过文本 - 知识对齐损失将知识图谱信息注入到 LLM 的训练目标中,其中 h 表示 LLM 生成的隐含表征。

fece580ff9fb3094c9b5a979bdffdd23.jpeg

图 10:使用图结构将知识图谱信息注入到 LLM 的输入中。

7e2f9516981ae577b0167aa21c324306.jpeg

图 11:通过附加的融合模块将知识图谱整合到 LLM 中。

用知识图谱增强 LLM 推理

以上方法可以有效地将知识与 LLM 的文本表征融合到一起。但是,真实世界的知识会变化,这些方法的局限是它们不允许更新已整合的知识,除非对模型重新训练。因此在推理时,它们可能无法很好地泛化用于未见过的知识。

一些研究关注的正是分离知识空间与文本空间以及在推理时注入知识。这些方法主要关注的是问答(QA)任务,因为问答既需要模型捕获文本语义,还需要捕获最新的现实世界知识。

9adc9a760ed9b05ec0d60715b5dfc03c.jpeg

图 12:用于 LLM 推理的动态知识图谱融合。

b9ac83cdcdf6cfc26a9046ad88d44f04.jpeg

图 13:通过检索外部知识来增强 LLM 生成。

用知识图谱增强 LLM 可解释性

尽管 LLM 在许多 NLP 任务上都表现不凡,但由于缺乏可解释性,依然备受诟病。LLM 可解释性是指理解和解释大型语言模型的内部工作方式和决策过程。这能提升 LLM 的可信度并促进 LLM 在事关重大的场景中的应用,比如医疗诊断和法律评判。由于知识图谱是以结构化的方式表示知识,因此可为推理结果提供优良的可解释性。因此,研究者必然会尝试用知识图谱来提升 LLM 的可解释性;相关研究大致可分为两类:用于语言模型探测的知识图谱、用于语言模型分析的知识图谱。

d9c42d5e2079d217b52d3f314df7eea6.jpeg

图 14:使用知识图谱进行语言模型探测的一般框架。

8b1640dc0abf8ffcb936edb0fc7b93db.jpeg

图 15:使用知识图谱进行语言模型分析的一般框架。

用 LLM 增强知识图谱

知识图谱的显著特点就是结构化的知识表示。它们适用于许多下游任务,比如问答、推荐和网络搜索。但是,传统知识图谱往往不完备,并且已有方法往往不会考虑文本信息。

为了解决这些问题,已有研究者考虑使用 LLM 来增强知识图谱,使其能考虑文本信息,从而提升在下游任务上的表现。表 3 总结了代表性的研究工作。这里会涉及到使用 LLM 对知识图谱进行不同增强的方法,包括知识图谱嵌入、知识图谱补全、知识图谱到文本生成、知识图谱问答。

68c5c9055b7873663bc2f5b495da5e04.jpeg

表 3:用 LLM 增强知识图谱的代表性方法。

用 LLM 增强知识图谱嵌入

知识图谱嵌入(KGE)的目标是将每个实体和关系映射到低维的向量(嵌入)空间。这些嵌入包含知识图谱的语义和结构信息,可用于多种不同的任务,如问答、推理和推荐。传统的知识图谱嵌入方法主要依靠知识图谱的结构信息来优化一个定义在嵌入上的评分函数(如 TransE 和 DisMult)。但是,这些方法由于结构连接性有限,因此难以表示未曾见过的实体和长尾的关系。

图 16 展示了近期的一项研究:为了解决这一问题,该方法使用 LLM 来编码实体和关系的文本描述,从而丰富知识图谱的表征。

cb9fcae9cda9df33dfd1ed871b9cfbe9.jpeg

图 16:将 LLM 用作知识图谱嵌入的文本编码器。

58989e46f0909b06957cdf5d1a28c60c.jpeg

图 17:用于联合文本与知识图谱嵌入的 LLM。

用 LLM 增强知识图谱补全

知识图谱补全(KGC)任务的目标是推断给定知识图谱中缺失的事实。类似于 KGE,传统 KGC 方法主要关注的是知识图谱的结构,而不会考虑广泛的文本信息。

但是,近期有研究将 LLM 整合到了 KGC 方法中来编码文本或生成事实,取得了更好的 KGC 表现。根据使用方式,这些方法分为两类:将 LLM 用作编码器(PaE)、将 LLM 用作生成器(PaG)。

0c7509e9cfbed162c0e76bca584a0875.jpeg

图 18:将 LLM 用作编码器(PaE)来补全知识图谱的一般框架。

333a56d5bfe7b893e2f4a4feffe8d397.jpeg

图 19:将 LLM 用作生成器(PaG)来补全知识图谱的一般框架 En. 和 De. 分别表示编码器和解码器。

60f9632bc21d4698bb9bce0d0e550014.jpeg

图 20:使用基于 prompt 的 PaG 来补全知识图谱的框架。

用 LLM 增强知识图谱构建

知识图谱构建涉及到为特定领域内的知识创建结构化的表示。这包括识别实体以及实体之间的关系。知识图谱构建过程通常涉及多个阶段,包括:实体发现、共指消解和关系提取。图 21 展示了将 LLM 用于知识图谱构建各个阶段的一般框架。近期还有研究探索了端到端知识图谱构建(一步构建出完整的知识图谱)以及直接从 LLM 中蒸馏出知识图谱。

60c60b907e75d1307f69d5b15f0001e6.jpeg

图 21:基于 LLM 的知识图谱构建的一般框架。

ea1929aeb4ba20905e9ae6ebfc4382cd.jpeg

图 22:从 LLM 中蒸馏出知识图谱的一般框架。

用 LLM 增强知识图谱到文本生成

知识图谱到文本(KG-to-text)生成的目标是生成能准确一致地描述输入知识图谱信息的高质量文本。知识图谱到文本生成连接了知识图谱与文本,能显著提升知识图谱在更现实的自然语言生成场景中的可用性,包括故事创作和基于知识的对话。但是,收集大量知识图谱 - 文本平行数据难度很大,成本很高,这会导致训练不充分和生成质量差。

因此,有许多研究致力于解决这些问题:如何利用 LLM 的知识?如何构建大规模的弱监督知识图谱 - 文本语料库来解决这个问题?

4206e0dc0bf6043d5fd15432074a0be9.jpeg

图 23:知识图谱到文本生成的一般框架。

用 LLM 增强知识图谱问答

知识图谱问答(KGQA)的目标是根据知识图谱存储的结构化事实来寻找自然语言问题的答案。KGQA 有一个无可避免的挑战:检索相关事实并将知识图谱的推理优势扩展到问答任务上。因此,近期有研究采用 LLM 来填补自然语言问题与结构化知识图谱之间的空白。

图 24 给出了将 LLM 用于 KGQA 的一般框架,其中 LLM 可用作实体 / 关系提取器和答案推理器。

bcd643baba8d5075370149c67c0329c8.jpeg

图 24:将 LLM 用于知识图谱问答的一般框架。

LLM 与知识图谱协同

LLM 与知识图谱协同近年来赢得了不少关注,该方法能将 LLM 和知识图谱的优点融合,从而更好地应对各种下游任务。举个例子,LLM 可用于理解自然语言,同时知识图谱可作为提供事实知识的知识库。将 LLM 和知识图谱联合起来可以造就执行知识表征和推理的强大模型。

这里从两个方面关注了 LLM 与知识图谱协同:知识表征、推理。表 4 总结了代表性的研究工作。

ca4df42e2bced68420da5b267a408f4c.jpeg

表 4:LLM 与知识图谱协同方法汇总。

知识表征

文本语料库和知识图谱都包含大量知识。但是,文本语料库中的知识通常是隐式的和非结构化的,而知识图谱中的知识是显式的和结构化的。因此,想要以统一方式来表示这些知识,就必须对齐文本语料库和知识图谱中的知识。图 25 给出了针对知识表征任务统一 LLM 和知识图谱的一般框架。

7b3e21e9bca4c86e6b95f15f3ad886f1.jpeg

图 25:针对知识表征任务统一 LLM 和知识图谱的一般框架。

KEPLER 是一种用于知识嵌入和预训练语言表征的统一模型。KEPLER 会使用 LLM 将文本实体描述编码成它们的嵌入,然后对知识嵌入和语言建模目标进行联合优化。JointGT 提出了一种知识图谱 - 文本联合表征学习模型,其中提出了三个预训练任务来对齐知识图谱和文本的表征。DRAGON 则给出了一种自监督方法,可以基于文本和知识图谱来预训练一个语言 - 知识的联合基础模型。其输入是文本片段和相关的知识图谱子图,并会双向融合来自这两种模式的信息。然后,DRAGON 会利用两个自监督推理任务(掩码语言建模和知识图谱链接预测)来优化该模型的参数。HKLM 则引入了一种联合 LLM,其整合了知识图谱来学习特定领域知识的表征。

推理

为了同时利用 LLM 和知识图谱的优势,研究者也通过 LLM 和知识图谱协同来执行多种应用的推理任务。在问答任务中,QA-GNN 首先会利用 LLM 来处理文本问题,再引导知识图谱的推理步骤。这样一来就构建了文本和结构化信息之间的桥梁,从而能为推理过程提供解释。

在知识图谱推理任务中,LARK 提出了一种由 LLM 引导的逻辑推理方法。其首先会将传统的逻辑规则转换成语言序列,然后要求 LLM 推理出最终输出。此外,Siyuan et al. 通过一个统一框架统一了结构推理和语言模型预训练。给定一个文本输入,他们采用 LLM 来生成逻辑查询,其可在知识图谱上执行以获取结构化的上下文信息。最后,这个结构化的上下文会与文本信息融合以生成最终输出。

RecInDial 则将知识图谱与 LLM 组合起来在对话系统中提供个性化推荐。KnowledgeDA 提出了一种统一的领域语言模型开发流程,可使用领域知识图谱增强针对特定任务的训练过程。

未来方向

在联合知识图谱和大型语言模型方面还有诸多挑战有待解决,下面简单给出了这一研究领域的一些未来研究方向:

  • 将知识图谱用于检测 LLM 的幻觉;
  • 将知识图谱用于编辑 LLM 中的知识;
  • 将知识图谱用于黑箱 LLM 知识注入;
  • 将多模态 LLM 用于知识图谱;
  • 将 LLM 用于理解知识图谱的结构;
  • 将 LLM 和知识图谱协同用于双向推理。

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

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

相关文章

记录一下kibana启动连接报错问题(kibana server is not ready yet)

记录一下kibana启动连接报错问题(kibana server is not ready yet) 今天启动kibana出现该问题 先去看了看是否是elasticsearch连接出错 启动了容器 docker start elasticsearch docker start kibana进入了kibana容器 docker exec -it kibana bash进行了下面的操作&#xf…

注册微信小程序平台安装微信小程序开发工具(详细教程)

首先我们先去微信小程序平台注册账号,下面是网址 首页 | 微信开放社区 进入后,使用手机扫描登录,然后,选择小程序,选择个体——填写个人信息——进入到开发者平台(相信这里对一个开发者很简单了吧&#xff…

API安全测试检查项小结

现如今开发基本上都是前后端分离,相比前端,后端的测试是最容易发现一些底层bug, 修复成本也低。今天主要聊聊接口的安全测试,以及常见的漏洞。 一、逻辑越权类 可以分为两类:平行越权:权限类型不变,权限对…

单线程JavaScript为何如此高效

什么是js执行机制 JavaScript 的执行机制指的是 JavaScript 代码在运行时的工作方式和顺序。它涉及以下几个关键概念: 单线程:JavaScript 是一门单线程的编程语言,意味着它只有一个主线程用于执行代码。这意味着 JavaScript 中的代码是按顺序…

编程(43)----------ConcurrentHashMap

在多线程中使用哈希表, 首先是不能使用HashMap的. 因为其本身并非线程安全. 与其相反HashTable则是安全的. 其原因在于本身给关键的方法加了锁. 但即便如此, 与HashTable相比, 更推荐使用ConcurrentHashMap. 其原因在于, 它在HashTable的基础上做了较多的优化: 上述提到, Hash…

自从前端用上了低代码,开发速度直接起飞

作为前端工作人员,我们都深知在这个快速发展的时代里,不断学习和掌握前沿技术是至关重要的。随着互联网的不断革新和新兴技术的崛起,我们需要保持敏锐的触角,紧跟潮流,才能在竞争激烈的市场中保持领先地位。 一直以来&…

MAC电脑垃圾好用的文件清理软件CleanMyMac X

古语云:“工欲善其事,必先利其器。”因此,一个运行流畅的Mac更能使我们的工作事半功倍。但又是什么导致电脑的运行不流畅呢? 其实这大多还是缓存垃圾过多、内存不足的原因。尝试安装了许多的垃圾文件清理软件,垃圾没有…

HashMap 为什么不能一边遍历一遍删除

前段时间,同事在代码中 KW 扫描的时候出现这样一条: 上面出现这样的原因是在使用 foreach 对 HashMap 进行遍历时,同时进行 put 赋值操作会有问题,异常 ConcurrentModificationException。 于是帮同简单的看了一下,印象…

为什么Qt成为工业软件开发的首选框架?

工业软件开发中使用Qt的主要原因有以下几点: 跨平台性:Qt是一个跨平台的C应用程序开发框架,可以在多个操作系统上运行,包括Windows、macOS、Linux等。这种跨平台性使得开发人员能够使用相同的代码库创建适用于不同操作系统的应用程…

Github-Readme-Stats 简明教程

注:本篇文章首发于 博客园sarexpine 为保持阅读的舒适性,可以选择移步至 博客园sarexpine 阅读,日后的文章将首发于 博客园sarexpine 平台,谢谢! 1. 更新 Readme 文件 在你想要放置 Readme-WakaTime 的位置中放置以下…

Nginx【Nginx场景实践(动静分离、动静分离实战、缓存机制)】(十)-全面详解(学习总结---从入门到深化)

目录 Nginx场景实践_动静分离 Nginx场景实践_动静分离实战 Nginx场景实践_缓存机制 Nginx场景实践_动静分离 Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求和静态请求分开&…

@Transaction事务导致的mysql连接耗尽源码分析

背景: Transaction注解是我们在日常的写代码过程中最常使用的事务注解了,本文就从spring源码的角度解析下这个注解的执行过程,以便分析为什么使用事务比正常的单sql执行更容易导致连接池耗尽 源码追踪: 本文假定使用PROPAGATIO…

音频怎么转文字?试试这三个简单的方法吧!

有时候我们会遇到一些比较重要的会议、讲座或者演讲,如果我们能够将这些声音记录下来,并将其转换为文字,就可以更加方便地保存和管理这些信息。这样,我们就不用再去听录音了,只需要看文字就可以了。此外,录…

智能指针的deleter机制

一、介绍 智能指针的deleter机制是指,当智能指针的引用计数降为0时,智能指针会自动调用一个指定的析构函数(deleter)来释放所管理的内存。这个析构函数通常是一个函数对象,可以是一个函数指针、一个lambda表达式或者一…

青少年机器人技术一级考试备考重点(四):功与能量以及常用传动装置

随着机器人技术的飞速发展,越来越多的青少年开始关注并参与其中。青少年机器人技术考试作为一项评估学生机器人技术水平的重要考试,备受广大青少年和家长的关注。为了更好地备战青少年机器人技术一级考试,了解考试的学习要点和备考重点是非常…

C++数据结构X篇_07_C++单向循环链表解决约瑟夫问题

本篇参考单向循环链表解决约瑟夫问题(C)整理,先搞懂结构框架,后期根据视频利用c对内容实现,也可以对c有更高的提升。 文章目录 1. 链表创建与初始化2. 添加插入、删除和打印函数3. 插入数据并核验4. 解决约瑟夫问题&am…

DM8:达梦数据库备份还原报错-文件已存在 -4558 file exists

DM8:达梦数据库备份还原报错-文件已存在 -4558 file exists 1 文件已存在 -4558 file exists2 使用 OVERWRITE 参数对数据库还原3 参数介绍 1 文件已存在 -4558 file exists 在数据库还原操作时,遇到报错文件已存在 -4558 file exists,可以使用OVERWRIT…

IP归属地与IP定位

IP归属地查询是指根据给定的IP地址,确定该IP地址所属的地理位置或网络服务提供商。这种查询可以帮助用户了解到访者的地理位置,有助于网络安全、反垃圾邮件等应用。 在实际应用中,IP归属地查询常用于以下几个方面: 网络安全&…

vcruntime140_1.dll详细修复方法(推荐使用这个方法)

vcruntime140_1.dll丢失要怎么办?其实很多人都在头疼这个问题,关于dll文件的丢失这事情是时常发生的,因为电脑的杀毒软件有时候会误杀,然后就会导致你的游戏程序都打开不了,你必须要修复好了才行,今天小编就…

【UE5 Cesium】09-Cesium for Unreal 子关卡应用实例(下)

效果 通过按钮点击事件实现子关卡的切换 步骤 新建两个Actor蓝图作为GeoMarker,分别命名为“BP_GeoMarker_BeiJing”、“BP_GeoMarker_ShangHai” 分别打开这两个蓝图,添加文本渲染组件 在指定的地理位置上拖入蓝图“BP_GeoMarker_BeiJing” 控制“BP_…