【论文精读】大语言模型融合知识图谱的问答系统研究

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互相学习和建立一个积极的社区。谢谢你的光临,让我们一起踏上这个知识之旅!
请添加图片描述

文章目录

  • 📖论文介绍
  • 📖摘要
  • 📖1 相关工作
  • 📖2 系统概述
  • 📖3 系统构建方法
    • 📖3.1 数据构造与预处理
    • 📖3.2 信息过滤
    • 📖3.3 专业回答
    • 📖3.4 抽取转化
  • 📖4 实验
    • 📖4.1 不同模型回答效果展示
    • 📖4.2 性能评估
      • 📖4.2.1 主观评估
      • 📖4.2.2 客观评估
      • 📖4.2.3 消融实验
    • 📖4.3 大语言模型和知识图谱的相互转换
  • 📖5 结束语

📖论文介绍

论文题目:大语言模型融合知识图谱的问答系统研究

作者信息:张鹤译1,王鑫 1+ ,韩立帆1,李钊 1 ,陈子睿1,陈哲 2
1.天津大学智能与计算学部,天津300354 2.天津中医药大学循证医学中心,天津301617

原文地址

代码:https://github.com/zhangheyi- 1/llmkgqas-tcm/


📖摘要

大语言模型(large language model,LLM),包括ChatGPT,在理解和响应人类指令方面表现突出,对自 然语言问答影响深远。然而,由于缺少针对垂直领域的训练,LLM在垂直领域的表现并不理想。此外,由于对 硬件的高要求,训练和部署LLM仍然具有一定困难。为了应对这些挑战,以中医药方剂领域的应用为例,收集 领域相关数据并对数据进行预处理,基于LLM和知识图谱设计了一套垂直领域的问答系统。该系统具备以下 能力:(1)信息过滤,过滤出垂直领域相关的问题,并输入LLM进行回答;(2)专业问答,基于LLM和自建知识 库来生成更具备专业知识的回答,相比专业数据的微调方法,该技术无需重新训练即可部署垂直领域大模型; (3)抽取转化,通过强化LLM的信息抽取能力,利用生成的自然语言回答,从中抽取出结构化知识,并和专业知 识图谱匹配以进行专业验证,同时可以将结构化知识转化成易读的自然语言,实现了大模型与知识图谱的深 度结合。最后展示了该系统的效果,并通过专家主观评估选择题客观评估两个实验,从主客观两个角度验 证了系统的性能。

关键词:大语言模型(LLM);知识图谱;问答系统;垂直领域;中医药方剂

问答系统(question answering,QA)能够自动回 答用户提出的自然语言问题,是信息检索和自然语 言处理的交叉研究方向。将知识图谱(knowledge graph,KG)与问答系统融合,正确理解用户语义是一 大挑战[1]。虽然知识图谱问答能够通过对问题进行 分析理解,最终获取答案,但面对自然语言的灵活性 与模糊性,如何处理复杂问题的语义信息,如何提高 复杂推理问答的高效性仍是研究难点[2]。

面对专业领域的问题,大语言模型的生成结果 可能缺乏真实性和准确性,甚至会产生“幻觉事 实”。为了增强大语言模型应对专业领域问题的能 力,很多工作采取数据微调的方式修改模型参数,从 而让大模型具有更高的专业能力。然而一些文献指 出这些数据微调的方法会产生灾难性遗忘(catas trophic forgetting)[10],致使模型原始对话能力丧失,甚 至在处理非微调数据时会出现混乱的结果。为了应 对这些问题,本文结合大语言模型与知识图谱,设计 了一种应用于专业领域的问答系统。该问答系统通 过将知识库(knowledge base,KB)中的文本知识、知识图谱的结构化知识、大语言模型中的参数化知 识三者融合生成专业问答结果,因此无需使用数 据微调的方式修改模型参数,就能够理解用户语 义并回答专业领域的问题。同时,通过采用类似于 ChatGLM-6B这样对硬件资源要求较低的模型,以降 低硬件对系统的约束
另外,随着大语言模型技术的发展,认知智能范 式的转变将是接下来的研究重点,如何将大语言模 型与知识图谱进行有效结合是一个值得研究的课 题。因此,本文参照研究问答系统的形式,进一步研 究“大语言模型+知识图谱”的智能信息系统新范式, 探索知识图谱与大语言模型的深度结合,利用专业 性知识图谱来增强LLM的生成结果,并利用LLM理 解语义抽取实体对知识图谱进行检索与增强


本文的主要贡献有两点:

  1. 提出大语言模型+专业知识库的基于提示学 习(prompt learning)的问答系统范式,以解决专业领 域问答系统数据+微调范式带来的灾难性遗忘问 题。在提升大模型专业能力的同时,保留其回答通 用问题的能力。在硬件资源不足的情况下,选择较 小的大模型部署专业领域的问答系统,实现能和较 大的大模型在专业领域相媲美甚至更好的效果。
  2. 探索了大语言模型和知识图谱两种知识范 式的深度结合。实现了将大语言模型和知识图谱的 双向链接,可以将易读的自然语言转换为结构化的 数据,进而和知识图谱中的结构化数据匹配,以增强 回答专业性;可以将KG中的结构化知识转换为更易 读的自然语言知识来方便人们理解

📖1 相关工作

随着以ChatGPT为代表的大语言模型表现出令 人震惊的能力,国内诸多厂商纷纷投入构建中文大 语言模型,并涌现出了一系列的模型,如百度的文心一言、阿里的通义千问、华为的盘古大模型等。这些 模型虽然具有一定的问答能力,但是正如上文所言, 它们在专业领域都有着巨大的局限性。GLM(gene ral language model)[11]是清华提出的预训练语言模型, 它的底层架构是通用语言模型,在超过4 000亿个文 本标识符上进行预训练。本文系统的应用示例同样 是基于GLM。
在垂直领域存在很多的工作,它们主要采用的 方法仍然是数据+微调的范式,即使用不同的专业数 据对预训练语言模型进行微调,如P-tuning[12]、P tuning v2[13]等,以获取语言模型在相应领域的专业能 力。通过更新少量参数,减少了对硬件资源的要求。 虽然减弱了微调产生的灾难性遗忘问题,但是此问 题仍然存在。

从以上工作可以总 结出,垂直领域的范式还是通过不同来源的数据+不 同的模型基座进行微调,仍然无法避免微调的固有 缺陷,而本文使用的专业知识库+大语言模型的新范 式能够解决这一问题

LangChain(https://www.langchain.com/)是一个 强大的框架,旨在帮助开发人员使用语言模型构建 端到端的应用程序,可以为LLM的开发利用提供有 力支撑。它提供了一套工具、组件和接口,可以简化创建由LLM或聊天模型提供支持的应用程序的过 程。LangChain可以轻松管理与大语言模型的交互, 将多个组件链接在一起,并集成额外的资源。利用 LangChain,本文设计的问答系统可以轻松建立知识 库与大语言模型间的链接,将知识注入到大语言模 型当中


📖2 系统概述

本文提出的专业问答系统基于大语言模型与知 识图谱,旨在探索大语言模型+专业知识库的问答系 统范式,探索大语言模型与知识图谱的深度结合,以 实现专业的垂直领域问答效果,并为用户提供专业 问答服务和友好交互服务。
基于以上目标系统实现了以下功能:信息过滤、 专业问答、抽取转化
为了实现这些功能,系统基于专业知识与大语 言模型,利用LangChain将两者结合,设计并实现了 大语言模型与知识图谱的深度结合新模式


信息过滤模块旨在减少大语言模型生成虚假信 息的可能性,以提高回答的准确性。专业问答模块 通过将专业知识库与大语言模型结合,提供专业性 的回答。这种方法避免了重新训练大语言模型所需 的高硬件要求和可能导致的灾难性遗忘后果。


抽取转化是指从自然语言文本抽取出知识图谱 结构化数据,将知识图谱结构化数据转化为自然语 言文本,是为了进一步探索问答系统新范式而设 计的。一方面基于大语言模型提取出专业知识,将 知识图谱结构化数据转化为自然语言文本,易于用 户理解;另一方面利用知识抽取出三元组和知识图 谱对比验证,可以增强大语言模型回答的专业性,同 时抽取出的三元组在经专家验证后可以插入知识图 谱中以增强知识图谱。除此之外,本系统还实现了 用户友好的交互服务。


如图1所示,系统交互流程如下:(1)用户向系统 提出问题,问题通过信息过滤后,与知识库中的相关 专业知识组成提示,输入到专业问答模块中得到答 案;(2)信息抽取模块从回答中提取出三元组,与知 识图谱进行匹配,获取相关节点数据;(3)这些节点 数据经用户选择后,同样以提示的形式输入专业问 答模块得到知识图谱增强的回答。这种双向交互实 现了大语言模型和知识图谱的深度结合。
在这里插入图片描述


总而言之,本文提出的专业问答系统通过大语 言模型与知识图谱深度结合,实现了专业的垂直领域问答效果,并且提供用户友好的交互服务。系统 的信息过滤模块减少了虚假信息生成的可能性,专 业问答模块提供了专业性的回答,抽取转化模块进 一步增强了回答的专业性,并可以对结构化数据进 行解释,降低用户理解难度,同时可用专家确认无误 的知识进一步增强知识图谱。这种新的问答系统范 式为用户提供了更准确、更专业的答案,同时保持了 用户友好的交互体验。


📖3 系统构建方法

本文从数据构造与预处理、信息过滤、专业问 答、抽取转化四方面,以中医药方剂领域的应用为 例,介绍如何构建系统。

本文针对专业领域,收集相关领域数据进行预 处理,设计流程来训练一套易于部署的专业领域问 答系统,并探索大语言模型与知识图谱的融合。

图2以中医药方剂专业领域为例展示了该系统 的问答流程。首先,对输入的中医药方剂相关问题 文本进行信息过滤,即文本分类,判断出该文本是否 与中医药方剂相关。其次,通过LangChain在知识库 中检索与文本相关的知识,以提示的方式和问题一 起输入大模型,如:ChatGPT、ChatGLM等,大模型通 过推理生成具备专业知识的答案。然后,对该回答 进行知识抽取,从回答中抽取出三元组。将抽取出 的三元组和已有的方剂知识图谱进行匹配,以验证 回答的专业性,同时将知识图谱中的节点以问题的 形式输入大模型,获取易读的自然语言解释,从而实现了大模型和知识图谱的双向转换
在这里插入图片描述


📖3.1 数据构造与预处理

本系统的实现需要收集整理专业数据集,以支 持系统的实现。本文基于多种数据构造系统所需的 数据集、知识库,并对这些数据进行数据预处理。
(1)基于已有的专业领域数据集。本文直接搜 集专业领域已有的相关数据集,参考其构成,从中整 理筛选出所需的数据。对于中医药方剂领域,参考 MedDialog[19]、CBLUE[20]、COMETA[21]、CMeKG数据 集,整理并构建相关专业数据。相关介绍如表1所示
在这里插入图片描述

(2)权威数据。权威数据从专业书籍或权威网 站收集。这部分数据来自于相关领域的专业书籍和 权威网站,用于构建知识库,为大模型的回答提供专 业知识支撑。对于中医药方剂领域,主要基于方剂 学等专业书籍构建了中医药方剂专业知识库,同时 从NMPA(国家药品监督管理局)、药融云-中医药数 据库群、TCMID中医药数据库、中医药证候关联数据 库等专业权威网站收集中医药方剂领域的相关数据 知识。

(3)问题数据。问题数据用来训练信息过滤模 型。由于某些专业领域存在问题数据缺失的情况, 本文设计了一种基于提示的方法,使用大模型生成 问题数据(图3所示)。首先从相关数据中选择一条 数据用来生成提示,将提示输入大模型生成一条数 据,重复以上述步骤,直到相关数据被选完。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)激活知识抽取能力的微调数据。如图3所 示,使用基于提示的方法,通过让LLM回答问题,生成合适的微调数据。提示如表2中P2所示,结合信 息抽取示例,将P2输入LLM生成25条微调数据,利用这些数据微调大模型以激活大模型的信息抽取能力。

系统使用(1)、(2)中的数据构建知识库,知识库 支持多种形式的数据,包括txt、html、pdf等格式。使 用(3)中的数据训练信息过滤模型。使用(4)中的数 据训练知识抽取模型。


📖3.2 信息过滤

针对专业领域的问答,大语言模型无需回答其 他领域的问题,为此本系统添加了基于BERT(bidi rectional encoder representations from transformers)[24] 的文本过滤器对问题进行过滤,以限制大模型可以 回答的问题范围。

因此需要单独设计文本过滤器以对信息进行过滤。
假设可输入大模型的所有的问题集合为Q,大 模型在某一专业领域可以回答的问题集合为R,可以生成专业回答的问题集合为D,显然有Q>R>D。 使用微调方式限制将使得R→D,会让模型回答能 力减弱1)。而使用过滤器的形式,使得Q→R,将尽
可能保证询问的问题在R的范围之内,虽然会有部分 R之外的数据进入大模型,但是由于本文设计的专业 增强问答系统仍然保留一定的通用能力,对R之外的 问题也可以进行无专业验证的回答。
信息过滤将保证本系统尽可能回答在系统能力 范围以内的问题,以减少产生幻觉事实的可能
在这里插入图片描述

在这里插入图片描述


📖3.3 专业回答

为了使得大模型知识图谱问答系统的回答更具 备专业性,本文通过提示的方式注入知识库中专业 知识,增强回答的专业性。通过检索知识库,大模型 可以回答其本身能力之外的专业问题,使得大语言 模型支持的问题边界扩大。这种方式和引入专业数 据的微调方法对比,无需重新训练就可以部署一个 专业领域大语言模型
在这里插入图片描述


📖3.4 抽取转化

本节探索大语言模型和知识图谱的深度结合。 大模型的回答是易读的自然语言数据,而知识图谱 的数据是结构化的知识。为了将两者交互结合,需 要实现两者的相互转换:(1)实现对自然语言的结构 化;(2)可将结构化的知识转换为自然语言。前者是 信息抽取的任务,后者可以通过提示的方式输入大 模型转换成自然语言文本

以中医药方剂领域的应用为例进行分析:

(1)对于信息抽取,使用P-tuning v2微调的方式 强化LLM的信息抽取能力。具体来说,在语言模型的每一层上将l个可训练的注意力键和值嵌入连接到前缀上,给定原始的键向量K∈Rl×d和值向量 V∈Rl×d,可训练的向量Pk、Pv将分别与K和V连
接。注意力机制头的计算就变为
在这里插入图片描述
其中,上标(i)代表向量中与第i个注意力头对应的部分,本文通过这种方法来微调大语言模型,第3.1节 描述了如何构建微调数据。如图1所示,将大模型生 成的自然语言答案文本,输入经过信息抽取增强微 调后的大模型中,提取出结构化的三元组信息,并与 知识图谱进行匹配,在专家验证后,可以存储到方剂 知识图谱中。

(2)对于结构数据的易读化,使用提示的方式 (提示构造如表2的P3所示),将知识图谱相关节点转 换为P3后,再将P3输入大模型得到自然语言的回答。
本文尝试将专业知识图谱与大语言模型结合, 利用大模型生成自然语言回答,抽取出专业的结构 化知识,并和已有的专业方剂知识图谱进行知识匹 配,以进行专业验证。同时可以将知识图谱中的结 构化知识转化成易读的自然语言


📖4 实验

在这里插入图片描述


📖4.1 不同模型回答效果展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


📖4.2 性能评估

为了评估系统的性能,本节从主观评估客观评估两方面验证了在中医药方剂学领域的专业效 果,并通过消融实验验证了各个模块都具备相应的 提升系统性能的能力


📖4.2.1 主观评估

本实验请三个中医药方面的专家对不同模型的 回答进行评估,用以验证系统效果。将100个问题分 别输入三个不同的模型生成答案,然后把来自不同 模型的每个问题的结果,交给专家进行评估,比较对 于同一个问题,专家更喜欢哪一个模型的回答。如图 6所示,横坐标表示不同的专家,纵坐标表示最满意问 题所占问题总数的比例。模型1是本文所提专业问 答系统,模型2表示ChatGLM,模型3表示ChatGPT。 由于是对比三个模型的结果,因此只需专家最满意 比例大于总体1/3就可以证明专业问答系统的回答更好。专家们对模型1的回答结果最满意总个数分 别是37、42、42,都超过总问题个数的1/3因此本文 设计的系统更受专家喜欢
实验过程中,问题被分为两类,一种是普通问 题,另一种是专业问题,两者分别有50个问题,共100 个问题。普通问题是相对常见的问题,对专业知识 需求较低;专业问题是考验式问题,类似于考试题, 回答专业问题需要具备更多的知识。专家总体评估 如图6(a),简单问题评估如图6(b),专业问题评估如 图6(c)。

在图**6(a)中,模型1取得了最高的满意率,可以 看出本系统提出的方法更受中医药专家的喜欢。对 于简单问题,如图6(b)所示,远远优于其他两个模 型,对于专业问题,如图6(c)**所示,虽然ChatGPT取 得最优的结果,但是模型1相对于模型2仍更受专家 喜欢。相对于其他模型,模型1的回复更加详细,会 补充更多专业知识。但是当问题难度上升,回答问 题需求知识更多,当知识库中没有这部分知识时,模 型1的回答专业性就不如ChatGPT。这可能是因为 ChatGPT训练时所用的语料中涉及专业问题,所以 ChatGPT在回答专业问题时更具备优势。

结果表明,总体上本文所提系统更受专家喜 欢。虽然面对复杂问题时,表现不如ChatGPT,但是 相对基线模型ChatGLM-6B仍保持更高的满意率,表 明了本文所提系统的有效性

在这里插入图片描述

📖4.2.2 客观评估

为了客观验证系统的问答性能,让系统回答专 业相关的选择题,可以客观验证系统性能。此实验 收集并整理了50条方剂学不同难度的选择题,让不 同模型进行回答,计算不同模型对不同问题的得分 情况,以评估系统的客观性能。
实验过程中,问题按照问题的难度分为三类,分 别为简单题(simple question,SQ)、中等题(medium question,MQ)、困难题(difficult question,DQ)。准确 率以正确问题个数除以总问题个数进行计算。
在表4中,小括号中的数字表示正确回答问题的 个数。从其中结果看,显然随着问题难度提升,回答 的正确率依次下降。对于平均正确率而言,专业问 答系统显著高于ChatGLM-6,略低于ChatGPT。说明 专业问答系统能够显著提升大模型的专业能力,甚 至能够达到和ChatGPT相媲美的结果。
在这里插入图片描述

结果表明,和ChatGLM-6B相比专业问答系统答 对题目的数量更多,从客观上验证了系统的性能


📖4.2.3 消融实验

本文进行消融实验,进一步验证信息过滤、专业问 答、知识抽取与知识图谱相互转换三个模块的功能对于信息过滤模块而言,其作用并非是增强回 答专业性,而是对问题进行过滤,减少生成幻觉事实 的可能性,因此为了验证其能力,需要使用问题数据 集单独进行测试;对于专业问答模块,其本质是利用 知识库增强回答专业性,因此对该模块需要测试性 能;对于知识抽取与知识图谱相互转换模块,可以通 过去除和知识图谱交互重新生成答案部分,以验证 增强回答专业性同样需要测试性能。因此在消融 实验中,对信息过滤模块单独使用问题数据集验证 其信息过滤能力,对后两者使用客观性能评估的数 据集验证性能提升
实验过程中,为了验证信息过滤模块的能力,将 输入的问题按照相关程度划分为三种类型的问题, 分别为无关问题(completely unrelated question,CUQ)、 部分相关问题(some related question,SRQ)、完全相 关问题(completely related question,CRQ)。对于部 分相关问题,是在无关问题的基础上增加相关的 信息或在相关问题的基础上增加无关信息,作为 干扰。通过将无关信息和相关信息混合的方式制 造部分相关问题,可以验证信息过滤的鲁棒性。 准确率使用正确过滤问题个数除以问题总个数进 行计算。
在表5中,RIF(remove information filter)表示去 除信息过滤,RKB(remove knowledge base)表示去除 知识库,RKG(remove knowledge graph)表示去除知 识图谱交互。去除信息过滤模块后,专业问答系统 可以通过合适的提示机制进行信息过滤,从结果看, 专业问答-RIF的过滤准确率低于专业问答系统的过 滤准确率,说明了去除信息过滤模块后系统的信息 过滤能力有所降低,验证了信息过滤模块的有效 性。对于简单问题的回答,专业问答-RKB的准确与ChatGLM-6B基本相同,专业问答-RKG的准确率 与专业问答系统基本相同,说明对于SQ,大模型本身 具备一定的回答能力,其增幅主要依靠知识库,知识 图谱进行交互增强不明显。对于困难问题,专业问 答-RKB和专业问答-RKG的准确率低于专业问答系 统,高于ChatGLM-6B,可见对于MQ、DQ,通过知识 图谱进行交互发挥一定的作用,猜测这可能是因为 知识图谱能够注入相关知识或辅助大模型进行推 理,激活大模型的边缘知识。总体来说RKB、RKG都 会使得专业问答系统的回答准确率下降,并且高于 ChatGLM-6B的准确率,由此验证了系统各个模块均 发挥作用。
对于简单问题知识图谱作用不明显,这是由于 回答问题相对简单时,所需要知识是孤立的,无需通 过深度推理得出,当不存在相应知识时,就无法通过 知识图谱辅助推理得到正确的答案,因此知识图谱 交互对回答的增强不明显。

在这里插入图片描述

📖4.3 大语言模型和知识图谱的相互转换

本实验通过展示系统的用户界面截图,体现了 系统用户交互服务,同时还体现了本文所设计的系 统具备的大语言模型与知识图谱之间的交互能力。

本文实现了知识图谱与大模型的双向链接,探 索了大语言模型和知识图谱的深度结合。用户向系统提出问题,系统进行回答,并通过图的方式,展示 知识图谱相关数据节点,用户可以选择其中相关节 点,再次输入大模型得到更多的解释。

图7来自系统界面截图,展示了系统问答、图谱 数据易读化、自然语言回答结构化的效果。左上角 的问答截图是用户向系统发出提问,系统生成答案, 然后对答案进行结构化,生成三元组,并和已有的知 识图谱进行匹配后,展示出右上角的知识图谱节 点。如图7右下角所示,用户可以选择相关节点,系 统将其转化为问题再次生成答案,最终两个答案相 结合就是系统的回复。这样既为用户提供了良好的 交互服务,也实现了大语言模型与知识图谱的双向 交互。

在中医药方剂领域,系统生成的回复有一定的 参考价值,但是由于中医药方剂领域本身的一些特 性,系统还具有很多可以改进的地方,比如加入中医 如何开方的数据和相关问诊的多模态数据,如患者 的舌苔、脉象、气色等。该系统针对不同的领域,需 有相应的调整。
在这里插入图片描述

📖5 结束语

在大模型时代,激活大模型中的“涌现”能力并将其适配到具体领域场景是未来在垂直领域建立竞争力的关键,其中高质量领域数据与知识不可或 缺。垂直领域的数据与知识可以有两种利用方式:

(1)在LLM预训练过程中,注入垂直领域知识并进行 相应架构与工程的优化,或者使用微调方法修改模 型参数向其中注入专业知识;
(2)结合垂直领域数据 与知识图谱,设计合适的提示机制,充分激发基座大 模型的能力,实现垂直领域任务能力的“跃迁”。本 文从第二种方式开始,研究大语言模型+专业知识库 的问答系统范式,探索将专业知识图谱与大语言模 型深度结合,实现了大语言模型与知识图谱的双向 交互,同时实现了文本知识库、知识图谱、大语言模 型三种知识的融合

大模型知识图谱问答系统是对大模型与知识图 谱结合的探索工程,仍然存在着很多值得完善的部 分。在该系统中目前仅实现了在中医药方剂领域的 应用,其设计思路还可以应用在不同的领域,如法 律、金融、教育等垂直领域。除此之外,在系统效果 的验证方面还缺少一项标准的评估系统专业能力的 基准,因此在后续工作中,将开发一个专门用于评估 垂直领域问答系统性能的基准。

挑战与创造都是很痛苦的,但是很充实。

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

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

相关文章

一文看懂 | 机器视觉前景

机器视觉概述:机器视觉是人工智能发展中的一个重要分支,其主要目标是用机器替代人眼进行测量和判断。 机器视觉系统通过图像摄取装置将目标转换成图像信号,然后传送给专用的图像处理系统,最终得到目标的形态信息。 全球机器视觉…

链路负载均衡之策略路由

一、策略路由的概念 一般来说,防火墙是根据目的地址查看路由,这种情况下只能根据报文的目的地址为用户提供服务,没办法更加灵活对内网用户进行区分,让不同用户流量走不同的链路转发,如根据源地址、应用协议等区分流量…

照片 200K 的尺寸是多大?如何调整照片到200k?

在数字时代,我们经常需要在互联网上上传和分享照片。在上传照片时,我们常常会遇到文件大小的限制,通常以“K”(千字节)为单位。如果您需要上传的照片大小为 200K,那么它的实际尺寸是多大呢?本文…

栈【stack】 栈的【STL】运用 【单调栈】 【单调栈】的详细解释【图文讲解】 洛谷P5788 【模板】单调栈 【单调队列】

文章目录 栈的定义栈的STL运用 单调栈 & 单调队列单调栈的详细解释【图文讲解】例题:洛谷P5788 【模板】单调栈code↓洛谷P5788 【模板】单调栈 AC 栈的定义 栈的修改与访问是按照后进先出的原则进行的 栈通常被称为是后进先出(last in first out&…

centos ps命令

1. ps : Process Status的缩写,用于查询系统的进程状态 2. 常用参数:-ef 返回系统中所有用户的所有进程的完整列表 -A 显示所有进程(同-e) -a 显示当前终端的所有进程 -u 显示进程的用户信息 -o 以用户…

33、一致性哈希算法分区

33、一致性哈希算法分区 一、背景二、介绍三、步骤1、算法构建一致性哈希环2、Redis服务器IP节点映射3、key落到服务器的落键规则 四、优点1、一致性哈希算法的容错性2、一致性哈希算法的扩展性 五、缺点1、一致性哈希算法的数据倾斜问题2、拓展 六、总结 一、背景 一致性哈希…

sylar高性能服务器-日志(P57-P60)内容记录

文章目录 P57-P60:序列化模块Varint(编码)Zigzag(压缩)class ByteArrayNode(链表结构)成员变量构造函数写入读取setPositionaddCapacity 测试 P57-P60:序列化模块 ​ 序列化模块通常…

某酷ckey140逆向(之前下架了重新上传补发)

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018…

Python - Pycharm 配置 autopep8 并设置快捷键

什么是 PEP8 官方:PEP 8 – Style Guide for Python Code | peps.python.org PEP8 是 Python 官方推出的一套编码的规范,只要代码不符合它的规范,就会有相应的提示,还可以让代码自动的格式化 Pycharm 自带的代码格式化 ​ 但这…

2024年Android笔试题总,如何系统全面性学习Android语言

开头 让我们一起来看看,字节跳动的第三面,面试官都问了什么?(第一二面的题目及答案已整理,需要的可以在文末领取) 从七月中旬开始,我前前后后差不多一共投递了八十份简历,到目前为…

章鱼网络进展月报 | 2024.2.1-2.29

章鱼网络大事摘要 1、Omnity 完成了核心组件的原型开发,正在测试,未来将首先支持 Runes 资产跨链。 2、$NEAR Restaking 质押总量超过400万美元。 3、章鱼网络受邀参加 ETHDenver 2024,并且与 ICP 共同组织活动,介绍 Omnity 的…

【C语言】linux内核netif_receive_skb

一、中文注释 /*** netif_receive_skb - 从网络处理接收缓冲区* skb: 要处理的缓冲区** netif_receive_skb() 是主要的数据接收处理函数。* 它总是成功的。由于拥塞控制或协议层的原因,缓冲区可能在处理过程中被丢弃。** 这个函数只能在软中断(softirq&…

guava的使用

对数组操作前判断是否会越界&#xff1a; List<String> s new ArrayList<>();System.out.println(Preconditions.checkElementIndex(2,s.size(),"下标长度超过了")); 是否为空 String s null;System.out.println(Preconditions.checkNotNull(s)); 判空…

Android使用Sensor.TYPE_STEP_COUNTER计步器传感器进行步数统计

1、首先&#xff0c;申请权限 必须声明 ACTIVITY_RECOGNITION 权限&#xff0c;以便您的应用在运行 Android 10 (API 级别 29) 或更高版本的设备上使用此传感器。 Manifest.xml也记得声明 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {Log.d(TAG, "[权限]&quo…

Docker的安装跟基础使用一篇文章包会

目录 国内源安装新版本 1、清理环境 2、配置docker yum源 3、安装启动 4、启动Docker服务 5、修改docker数据存放位置 6、配置加速器 现在我们已经完成了docker的安装和初始配置。以下为基本测试使用 自带源安装的版本太低 docker官方源安装的话速度太慢了 所以本篇文…

iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

移动端的自动化测试&#xff0c;最常见的是 Android 自动化测试&#xff0c;我个人觉得 Android 的测试优先级会更高&#xff0c;也更开放&#xff0c;更容易测试&#xff1b;而 iOS 相较于 Android 要安全稳定的多&#xff0c;但也是一个必须测试的方向&#xff0c;这个系列文…

STM32(18)I2C

串口通信缺点 一个设备就需要一个串口&#xff0c;单片机可能没有那么多串口外设 总线/非总线 主机&#xff1a;负责管理总线&#xff0c;可控制波特率、数据的通信方向 波特率&#xff1a;由主机产生波特率信号 数据的传输 每个从机都有7位地址&#xff0c;最后移位是读&a…

力扣--动态规划516.最长回文子序列

思路分析&#xff1a; 创建一个二维动态规划表dp&#xff0c;其中dp[i][j]表示在子串s[i...j]中的最长回文子序列的长度。初始化基本情况&#xff1a;对角线上的元素dp[i][i]都为1&#xff0c;因为单个字符本身就是长度为1的回文子序列。从字符串末尾向前遍历&#xff0c;填充…

IPsec VPN协议框架

IPsec是IETF&#xff08;Internet Engineering Task Force&#xff09;制定的一组开放的网络安全协议。它并不是一个单独的协议&#xff0c;而是一系列为IP网络提供安全性的协议和服务的集合&#xff0c;包括认证头AH&#xff08;Authentication Header&#xff09;和封装安全载…

第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 统计子矩阵

#include<iostream> #include<algorithm> #include<cstring> #include<string> #include<vector> #include<queue>using namespace std;int cnt,temp; int n,m,K; int a[505][505]; int pre[505][505];//二维前缀和void sol() {cin>>…