Making Large Language Models Perform Better in Knowledge Graph Completion

Making Large Language Models Perform Better in Knowledge Graph Completion

基本信息

博客贡献人

鲁智深

作者

Yichi Zhang, Zhuo Chen, Wen Zhang, Huajun Chen
隶属于浙江大学计算机学院和软件学院

摘要

    本文主要探讨了如何将有用的知识图谱结构信息融入大语言模型中,以实现大语言模型中的结构感知推理。

    基于大语言模型的知识图补全(KGC)旨在使用LLM预测KGs中缺失的三元组。但目前对基于LLM的KGC的研究有限,缺乏对LLM推理能力的有效利用,忽略了KGs中重要的结构信息,阻碍了LLM获得准确的事实知识。
    为解决这个问题,本文研究如何将有用的KG结构信息融入到LLM中,实现LLM的结构感知推理。首先将现有的LLM范式转移到结构感知设置中,提出了知识前缀适配器(KoPA)来实现这一目标。KoPA采用结构嵌入预训练来捕获KG中实体和关系的结构信息。然后将知识前缀适配器告知LLM,该适配器将结构嵌入映射到文本空间中,并获得虚拟知识tokens作为输入prompt的前缀。
    对这些基于结构感知的LLM的KGC方法进行了全面的实验,并提供了深入的分析,比较了结构信息的引入如何更好地提高LLM的知识推理能力。

基于LLM的KGC

符号定义

    一个KG记为 G = ( E , R , T , D ) G=(E,R,T,D) G=(E,R,T,D),其中 E , R E,R E,R分别为实体集、关系集。 T = ( h , r , t ) ∣ h , t ∈ E , r ∈ R T={(h,r,t)|h,t∈E,r∈R} T=(h,r,t)h,tE,rR是三元组集合, D D D是每个实体和关系的描述集。我们将 D ( e ) , D ( r ) D(e),D(r) D(e),D(r)表示为每个实体 e ∈ E e∈E eE和每个关系 r ∈ R r∈R rR的简短文本描述。例如,实体‘/m/0ctzf1’的文本描述为D(‘/m/0ctzf1’)=“The Transformer”。
    将LLM应用于KGC任务时,将LLM表示为作为文本解码器的 M M M。模型M的输入文本序列 S S S由几个部分组成:指令提示 I I I、三元组提示 X X X和可选的辅助提示 U U U。指令提示 I I I是手动准备的指导LLM M M M执行KGC任务的指令。三元组提示 X X X包含需要处理的三元组的文本信息,可以记为:
X ( h , r , t ) = D ( h ) ⊕ D ( r ) ⊕ D ( t ) X(h,r,t)=D(h)⊕D(r)⊕D(t) X(h,r,t)=D(h)D(r)D(t)
其中 ( h , r , t ) ∈ T (h,r,t)∈T (h,r,t)T是一个三元组, ⊕ ⊕ 表示文本标记连接操作。辅助示例 U U U是针对不同设置的可选prompt。
    以三元组分类作为切入点,研究如何利用LLM来完成KGC任务。三元组分类是一个基本的KGC任务,目的是对给定的三元组进行二元分类任务。而在LLM范式中,所有的任务都被转换为文本生成的形式。因此,我们希望模型 M M M给定文本序列输入 S = I ⊕ U ⊕ X S = I⊕U⊕X S=IUX回答真或假。
    这个任务可以被建模为一个文本分类任务。但三元组分类不同于普通的文本分类,因为三元组提示符中的实体和关系具有由给定的KG定义的复杂语义信息。如果不知道这种类型的信息,模型答案的内容是不可靠的和不稳定的。尽管在LLMs中存在大量的常识,研究表明大型模型对细粒度的事实知识麻木,会陷入幻觉。因此,将KG信息整合到提示符中,以提供更多的辅助信息,并指导LLM进行结构感知推理,是实现优秀的基于LLM的KGC的关键。

无训练的推理方法

    无训练推理是一种利用LLM解决下游任务的有效方法。需要准备一个合适的prompt模板来获得模型 M M M生成的结果。主流无训练方法包括zero-shot推理和上下文学习。
    zero-shot推理方法(ZSR):Zero-shot推理是LLM在没有辅助信息 U U U的情况下完成推理任务的一种直接方法。因此,ZSR的输入序列可以记为 S z s r = I z s r ⊕ X S_{zsr}=I_{zsr}⊕X Szsr=IzsrX。LLM M M M的解码过程可以表述为:
A z s r = a r g m a x A P M ( A │ S z s r ) = a r g m a x A P M ( A ∣ I z s r , X ) A_{zsr}=argmax_A P_M (A│S_{zsr} )=argmax_A P_M (A|I_{zsr},X) Azsr=argmaxAPM(ASzsr)=argmaxAPM(AIzsr,X)
其中, A A A是模型 M M M生成的答案, I z s r I_{zsr} Izsr是ZSR的指令模板。在ZSR的设置中,没有向输入序列 S z s r S_{zsr} Szsr中添加KG信息。
    ZSR提示符中的确定性信息只是测试三元组的文本描述。由于设置限制,ZSR无法合并KG信息,否则不能称为zero-shot。
    具有结构感知示例的上下文学习方法(ICL):作为另一种无训练范式,上下文学习允许模型 M M M在输入 S S S中添加辅助示例 U U U,并以类比推理的形式完成任务:
A i c l = a r g m a x A P M ( A │ S i c l ) = a r g m a x A P M ( A ∣ I i c l , U , X ) A_{icl}=argmax_A P_M (A│S_{icl} )=argmax_A P_M (A|I_{icl},U,X) Aicl=argmaxAPM(ASicl)=argmaxAPM(AIicl,U,X)
对于三元组分类任务, U U U应该是一些三元组,其标签形式为 ( X i , y i ) , 1 ≤ i ≤ k {(X_i,y_i),1≤i≤k} (Xi,yi),1ik,其中 X i X_i Xi是示例三元组。用𝑘个示例将ICL表示为𝑘-shot ICL。
    示例三元组可以从现有的训练KG中随机采样。然而,为了进一步纳入测试三元组 ( h , r , t ) (h,r,t) (h,r,t)的相对KG信息,我们建议对位于 h h h t t t的局部结构中的三元组进行采样,这意味着每个采样三元组中的一个实体应该是 h h h t t t。此外,由于现有的KG只由正三元组组成,我们采用负抽样对负三元组进行抽样形成示例。对于平衡预测,正三元组和负三元组的数量是相同的。在示例prompt中,正的三元组被标记为真,负的三元组被标记为假。
    通过这样做,我们将局部结构信息融入到具有正样本和负样本的示例提示U中。这种结构感知的示例可以更好地增强模型M的类比推理过程。

指令微调(IT)方法

    指令微调旨在对 LLM 进行微调,使其遵循人类指令并完成指令提示中提到的任务。
    Vanilla指令微调:在普通IT的设置中,指令提示 I i t I_{it} Iit将描述完成三元组分类任务的细节,而三元组提示 X X X由输入的三元组分类任务组成。输入模板中不包含其他辅助示例。为了训练模型 M M M,输入序列被组织为 S i t = I i t ⊕ X ⊕ A i t S_{it}=I_{it}⊕X⊕A_{it} Sit=IitXAit。其中, A i t A_{it} Ait为训练数据的预测答案。模型 M M M对下一个单词预测任务进行了微调,这是一种训练LLM的通用方法。训练目标可表述为:
L i t = − 1 / S i t ∑ ( i = 1 ) ( ∣ S i t ∣ ) l o g P M ( s i ∣ s < i ) L_{it}=-1/S_{it} ∑_{(i=1)}^{(|S_{it} |)}logP_M (s_i |s_{<i}) Lit=1/Sit(i=1)(Sit)logPM(sis<i)
其中, s i s_i si(𝑖= 1,2,……,| S i t S_{it} Sit|)表示输入序列 S i t S_{it} Sit的文本tokens。在推理阶段,采用模型 A i t A_{it} Ait来预测测试数据的答案。
    Vanilla IT 只对 LLM 进行微调,以学习单个三元组中的知识,从而进行判别。这种方法使得充分利用KG中丰富的语义变得困难,模型性能有限。
    结构感知的指令微调:KG的结构信息在KGC任务中起着重要的作用。为了在微调阶段融入这些KG信息,我们通过添加输入三元组的邻域描述来实现这一目标。具体来说,可以对头部ℎ和尾部𝑡的邻域进行采样,并将邻域三元组的文本描述放在示例提示 U i t U_{it} Uit中。这样,输入的训练序列就被增强为 S i t = I i t ⊕ U i t ⊕ X ⊕ A i t S_{it}=I_{it}⊕U_{it}⊕X⊕A_{it} Sit=IitUitXAit。将这种方法命名为结构感知指令调优,因为实体的局部结构信息以邻域三元组的形式添加到输入序列中。

基于LLM的KGC的知识前缀适配器

    前一节中提到的融入KG结构信息的基本方法的重点是将邻域信息以文本的形式添加到输入序列中。但以文本形式表示KG结构信息并不是一个好的选择,可能会给提示带来更多无效或冗余的信息。无限期地增加提示符的长度是不可扩展的和无效的,因为较长的上下文会导致模型能力的下降和高计算消耗。此外,也很难在KG中找到对三元组识别具有决定性作用的结构信息。
    为了解决这些问题,引入知识前缀适配器(简称KoPA),将KG结构信息合并到LLM中进行三元组分类。KoPA方法分为两部分:首先通过结构嵌入预训练提取KG中实体和关系的结构信息,然后通过结构前缀适配器将这些信息注入输入序列,LLM进一步利用结构注入序列进行微调。

在这里插入图片描述

图1. 对知识前缀适配器(KoPA)的概述。KoPA是一个基于LLM的两阶段KGC框架。KoPA首先对给定的KG中的实体和关系进行预训练结构嵌入。然后,KoPA使用指令调优来微调LLM。给定输入三元组序列的结构嵌入将通过适配器投影到LLM的文本标记空间中,并作为输入提示序列前面的前缀串,也称为虚拟知识标记。通过仅使用解码器的LLM的单向注意机制,这些虚拟知识标记将被following文本标记看到,这将允许LLM在结构感知状态下解码指令的答案。

结构嵌入预训练

    KoPA没有在输入序列中添加关于邻域信息的文本,而是通过自监督的结构嵌入预训练来提取实体和关系的结构信息。对于每个实体 e ∈ E e∈E eE和每个关系 r ∈ R r∈R rR,我们分别学习一个结构嵌入 e ∈ R ( d e ) , r ∈ R ( d r ) e∈R^{(d_e)},r∈R^{(d_r)} eR(de)rR(dr),其中 d e d_e de d r d_r dr为嵌入维数。将KG结构信息编码,并将其引入到LLM的文本表示空间中。
    参考现有的基于嵌入的KGC范式,定义了一个评分函数 F ( h , r , t ) F(h,r,t) F(h,r,t)来衡量三元组 ( h , r , t ) (h,r,t) (h,r,t)的合理性。采用了通过负采样的自监督预训练目标:
L p r e = 1 / ( ∣ T ∣ ) ∑ ( h , r , t ) ( − l o g σ ( γ − F ( h , r , t ) ) ) − ∑ ( i = 1 ) K p i l o g σ ( F ( h i ′ , r i ′ , t i ′ ) − γ ) L_{pre}=1/(|T|) ∑_{(h,r,t)}(-logσ(γ-F(h,r,t))) - ∑_{(i=1)}^K p_i logσ(F(h'_i,r'_i,t'_i)-γ) Lpre=1/(T)(h,r,t)(logσ(γF(h,r,t)))(i=1)Kpilogσ(F(hi,ri,ti)γ)
其中 γ γ γ为边, σ σ σ为s型激活函数, h i ′ , r i ′ , t i ′ h'_i,r'_i,t'_i hi,ri,ti(𝑖= 1,2,…,𝐾)为 ( h , r , t ) (h,r,t) (h,r,t)的𝐾个负样本。
    通过最小化这种预训练的损失,每个实体和关系的结构嵌入被优化,以适应其所有的相对三元组,从而在嵌入中捕获KG的结构信息,如子图结构和关系模式。

知识前缀适配器

    经过结构嵌入预训练后,我们可以得到三元组(ℎ,𝑟,𝑡)的结构嵌入(𝒉,𝒓,𝒕),其中KG的结构信息被编码在里面。然而,结构嵌入是在针对LLM M M M的文本标记表示空间的不同表示空间中学习的,这意味着 M M M不能直接理解这些嵌入。因此应用一个知识前缀适配器 P P P,将它们映射到 M M M的文本标记表示空间中。具体来说,结构嵌入通过 P P P转换为几个虚拟知识token K:
K = P ( h ) ⊕ P ( r ) ⊕ P ( t ) K = P (h) ⊕ P (r) ⊕ P (t) K=P(h)P(r)P(t)
    在实践中,适配器 P P P是一个简单的投影层。然后将 K K K放在原始输入序列 S S S的前面,作为指令和三元组提示符的前缀 S k p a = K ⊕ I i t ⊕ X S_{kpa}=K⊕I_{it}⊕X Skpa=KIitX。这样,由于仅使用解码器的LLM中的单向注意力,所有后续的文本Token都可以看到这些前缀。这样,文本Token可以对输入三元组的结构嵌入进行单向注意,从而在微调和推理期间实现结构感知提示。在训练过程中,冻结预训练好的结构嵌入。该适配器经过优化,可以学习从结构知识到文本表示的映射,并在推理阶段将其泛化到新的三元组,这将有利于文本描述,并从另一个角度提供三元组信息,从而增强预测。

实验

    在实验中,使用三个公共的KG基准UMLS,CoDeX-S 和FB15K-237N来评估所提出的基于LLM的KGC方法的能力。UMLS是一个经典的医学知识图,包括关于医学和卫生保健的一般知识。CoDeX-S是从百科中提取的百科全书式KG。

实验设置

    基线方法:在实验中,将提出的方法与三元组分类任务上的三大类基线模型进行了全面的比较,这是KGC的一个重要子任务。KGC基线可以分为三个部分:基于嵌入的方法、基于PLM的方法和基于LLM的方法。用于这些基线的具体模型如下:
    (1)嵌入式KGC方法:选择四种传统的基于嵌入的KGC方法进行比较,即TransE、DistMult、KGC和RotatE。这些方法通过学习到的结构嵌入和模型中定义的分数函数来预测三元组合理性。
    (2)基于PLM的KGC方法:选择KG-BERT和PKGC作为基于PLM的KGC基线,这是专注于三元组分类任务的经典方法。这些方法将三元组分类视为一个二元文本分类任务。
    (3)基于LLM的KGC方法:基于LLM的KGC研究仍处于早期阶段。只有KGLLaMA是基于LLM的KGC基线。除了KGLLaMA之外,在第2节中提出的方法,包括ZSR、ICL、IT和结构感知IT(增强型IT)也将作为基线。
    此外,进一步将基于LLM的方法分为两类:无训练方法和微调方法。无训练方法包括ZSR和ICL,其余均为微调方法。
    所有基于LLM的方法,使用Alpaca-7B作为LLM的主干。KoPA使用RotatE和结构嵌入预训练的得分函数,适配器是一个512×4096的线性投影层。
    评估指标:三元组分类任务本质上是一个二元分类任务。所有的测试数据集都是标签平衡的。因此,使用accuracy、precision、recall、和F1-score作为评价指标。

表1. 三元组分类的主要实验结果。报告了三个数据集上每种方法的准确率(ACC)、精度(P)、召回率(R)和F1-score(F1)结果。“-”意味着结果缺失,因为PKGC的特异性使其难以复制。基线中最好的Acc / F1结果用下划线标记,当实现新的SOTA时,用粗体突出显示我们的结果。

在这里插入图片描述

主要结果

    三元组分类的主要实验结果如上表所示。总的来说,可以发现,与现有的16个基线模型相比,KoPA在所有三个数据集上取得了优越的准确性和F1分数结果。以CoDeX-S为例,KoPA的F1分数提高了1.81%,准确率提高了1.85%。当在KoPA中使用预训练的RotatE嵌入时,可以观察到KoPA明显优于原始的基于嵌入的RotatE方法,特别是在更大、更具挑战性的数据集上,如CoDeX-S和FB15K-237N。
    同时,与所有基于LLM的方法相比,可以看到,如果没有微调,LLM就不能很好地理解KG的结构信息。即使GPT-3.5-turbo(175B参数)具有出色的能力,zero-shot LLM在三元组分类任务中表现得非常差。虽然ICL提供的示例可以包含KG信息,但性能增益是有限的。此外,无训练方法的预测结果是有偏差的,很容易陷入全对或全错的极端,因为它们的召回率要么很高,要么很低,但F1分数一直相对较低。
    然而,微调LLM可以将KG信息引入到LLM中,整体性能有了明显的改进。同时,尽管结构感知IT利用三元组的邻域信息增强了输入提示,但与KoPA相比,其性能也有限。这表明,与基于文本的辅助提示相比,结构嵌入包含了更多语义丰富的信息,LLM也可以通过前缀适配器来理解。

可转移性研究

    主要实验结果表明了KoPA的有效性。为了进一步验证KoPA的通用性和可转移性,进行了一个新的可转移性实验。在本实验中,我们将证明知识前缀适配器将学习从结构嵌入转换到文本tokens表示,并提供语义丰富的辅助信息,以增强LLM推理的解码过程。
    通过测试KoPA对不出现在训练阶段的实体的影响来证明这一点,这在其他KGC的作品中也被称为归纳设置。我们将KG数据集分割成一个具有定义的归纳率(IR)的归纳设置,它指的是在训练过程中看不见的实体的比例。例如,如果IR=为10%,我们将随机选择10%的实体作为归纳实体集。训练集中头部或尾部在归纳集中的任何三组训练都将在训练过程中被去除。此外,测试集中的三元组将分为两部分:可见(S)部分和看不见(U)部分。如果三元组的头部或尾部在归纳实体集中,它将被视为看不见的。
    只用剩余的可见的三元组来微调LLM,并对已看到和未看到的三元组进行测试。在这种情况下,一组实体将不会参与训练过程,而LLM也不会看到它们的文本描述,这将使测试过程更具挑战性。我们报告了已看到(S)、未看到(U)和所有(A)测试三元组的准确性和F1分数,如下图所示,有三种微调方法: KoPA、普通IT和结构感知的IT(图中增强了IT)。
    从雷达图中可以观察到,KoPA的性能优于其他方法,并且当IR增加时,性能下降更小。具有文本形式的邻域三元组的结构感知IT(增强型IT)的性能更加不稳定。这些现象表明,知识前缀适配器可以学习从结构嵌入到文本表示的一个很好的映射,即使在训练过程中看不到实体,这也是可转移的。从KG中捕获的结构嵌入在告知LLM有用的结构信息方面发挥了更重要的作用。
在这里插入图片描述

图3.可转移性实验的结果。我们报告了在不同诱导率(IR)下的CoDeX-S数据集的结果。此外,我们根据实体是否在训练过程中是否出现,将测试数据分为可见的(S)和看不见的(U)部分。我们还将所有(A)测试数据的结果汇总。雷达图中报告了精度(Acc)和F1评分(F1)。

案例研究

    为了更直观地了解KoPA,本节从宏观和微观的角度进行了一个案例研究。从宏观的角度来看,我们计算了多个模型的预测重叠,并绘制出如图4所示的维恩图。

在这里插入图片描述

图4.不同模型预测的维恩图。集合的相交部分代表了模型对某些数据的相同的预测。

    从图中可以发现,KoPA有很大一部分预测没有与其他几个模型相交,这意味着KoPA对一些测试数据做出了正确的预测,而许多其他模型的预测并不正确。这表明,KoPA中包含的结构信息在做出正确的预测方面具有重要作用。举一个简单的例子,一个测试三元组(约翰·兰迪斯,导演电影,来到美国)被RotatE模型和vanilla指令微调LLM预测为错误的。检索邻域三元组(来到美国,地点,纽约),(约翰·兰迪斯,国籍,美国),(来到美国,类型,浪漫喜剧),(喜剧,常见netflix标题,来到美国),结构感知微调LLM仍然做出错误的预测,因为邻域信息在当前预测的判断中几乎没有用处,尽管它们是正确的事实。KoPA中应用的结构嵌入比文本形式的结构信息包含更多的信息,并且我们更容易通过结构预训练过程进行提取。因此,KoPA在三元组分类任务中优于其他模型。

相关知识链接

论文代码

Talk Like a Graph: Encoding Graphs for Large Language Models

总结

[亮点]

  • 本文是第一个全面探索LLM在KGC中的应用的工作,特别是通过结合KG结构信息来增强LLM推理。这涉及到将现有的LLM范式(如ICL和IT)转移到KGC任务的结构感知设置中。
  • 本文提出了一种知识前缀适配器(KoPA),能有效地集成了预训练好的KG结构嵌入和LLM。KoPA支持来自LLM的文本嵌入和来自KG的结构嵌入的完全交互。具有KoPA的微调LLM能够做出显示出KGC结构意识的决策。

BibTex

@article{zhang2023making,
  title={Making Large Language Models Perform Better in Knowledge Graph Completion},
  author={Zhang, Yichi and Chen, Zhuo and Zhang, Wen and Chen, Huajun},
  journal={arXiv preprint arXiv:2310.06671},
  year={2023}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线性布局(Row/Column)

目录 1、概述 2、基本概念 3、布局子元素在排列方向上的间距 3.1、Column容器内排列方向上的间距 3.2、Row容器内排列方向上的间距 4、布局子元素在交叉轴上的对齐方式 4.1、Column容器内子元素在水平方向上的排列 4.2、Row容器内子元素在垂直方向上的排列 5、布局子元…

Sam Altman 与同性男友结婚;传微软正讨论亚洲研究院去留丨 RTE 开发者日报 Vol.125

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

Python实现简易版选课系统

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 需求 学生选课系统&#xff1a; 学生 信息&#xff1a;学号&#xff0c;姓名&#xff0c;住址&#xff0c;选的课程列表 功能&#xff1a; 查看&#xff1a;查看该学生所有课程添加课程&#xff1a;把选好得课程添加到课程列…

Python数据分析案例31——中国A股的月份效应研究(方差分析,虚拟变量回归)

案例背景 本次案例是博主本科在行为金融学课程上做的一个小项目&#xff0c;最近看很多经管类的学生作业都很需要&#xff0c;我就用python来重新做了一遍。不弄那些复杂的机器学习模型了&#xff0c;经管类同学就用简单的统计学方法来做模型就好。 研究目的 有效市场假说是现…

基于ssm社区医疗保健监控系统+vue论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统社区医疗保健信息管理难度大&#xff0c;容错率低&#x…

生成式人工智能研究焦点:揭秘基于扩散的模型

生成式人工智能研究焦点&#xff1a;揭秘基于扩散的模型 文章目录 生成式人工智能研究焦点&#xff1a;揭秘基于扩散的模型去噪扩散是什么让扩散发挥作用&#xff1f;采样生成图像的设计选择以更少的步骤理顺流程在低噪音水平下步骤高阶求解器可实现更准确的步骤训练降噪器的设…

Lagrange对偶法

这里写自定义目录标题 5.1.1 The Lagrangian5.1.2 The Lagrange dual function5.2 The Lagrange dual problem5.2.3 Strong duality and Slater’s constraint qualification5.2.3 Strong duality and Slater’s constraint qualification5.5.3 KKT optimality conditions Lagr…

C 语言每日一题——旋转数组的最小数字

一、题目内容 提供一下该OJ题的链接&#xff1a;旋转数组的最小数字_牛客题霸_牛客网 (nowcoder.com) 二、题目分析 通过示例1可知&#xff0c;我们写代码的目的是在数组中找到一个最大值&#xff0c;并且返回来&#xff1b; 我们很容易的会想到创建一个变量&#xff1a;int…

天软特色因子看板 (2024.1 第6期)

该因子看板跟踪天软特色因子A04001(当日趋势强度)&#xff0c;该因子为反映股价走势趋势强弱&#xff0c;用以刻画股价走势趋势强弱&#xff0c;abs(值)越接近1&#xff0c;趋势 性越强&#xff0c;符号代表涨跌方向。 今日为该因子跟踪第6期&#xff0c;跟踪其在SW801040 (申万…

深入理解UML中的继承关系

深入理解UML中的继承关系 在面向对象的设计中&#xff0c;继承关系是构建清晰、可维护系统的关键。统一建模语言&#xff08;UML&#xff09;提供了一种标准化的方法来可视化这些关系。本文将深入探讨UML中的继承关系&#xff0c;并探讨它如何在代码中体现。 什么是继承关系&a…

如何修复DLL错误或丢失的问题,这里提供几种方法

DLL错误是指DLL文件的任何错误&#xff0c;一种以.dll文件扩展名结尾的文件。 DLL错误可能出现在微软的任何操作系统中&#xff0c;包括Windows 10、Windows 8、Windows 7、Windows Vista和Windows XP。 DLL错误尤其麻烦&#xff0c;因为存在许多这样类型的文件&#xff0c;所…

pyx文件编译为pyd/so文件(分别在windows/linux系统下)

Python有以下几种类型的文件&#xff1a; py&#xff1a;Python控制台程序的源代码文件pyx&#xff1a;是Python语言的一个编译扩展&#xff0c;它实际上是Cython语言的源代码文件&#xff08;可以理解为既支持Python语言也支持C/C&#xff09;。pyc&#xff1a;Python字节码文…

关于lora的理解

非常推荐看参考中的文章&#xff0c;对lora的原理和代码&#xff0c;包括细节都讲得很清楚&#xff01; 参考&#xff1a;【OpenLLM 007】大模型炼丹术之小参数撬动大模型-万字长文全面解读PEFT参数高效微调技术 - 知乎 (zhihu.com)图解大模型微调系列之&#xff1a;大模型低秩…

创新技术高精度直线模组技术优势及应用详解

近年来&#xff0c;随着工业自动化转型升级不断提速&#xff0c;市场对优质直线模组的需求量直线上升&#xff0c;而直线模组拥有单体运动速度快、重复定位精度高、本体质量轻、占设备空间小、寿命长等优势&#xff0c;在机械设备领域备受青睐。作为深耕工业自动化产品市场多年…

软件测试最新项目合集【商城、外卖、银行、金融等等.......】

​项目一&#xff1a;ShopNC商城 项目概况&#xff1a; ShopNC商城是一个电子商务B2C电商平台系统&#xff0c;功能强大&#xff0c;安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城&#xff0c;系统PC后台是基于ThinkPHP MVC构架开发的…

谁在成为大模型的“AI运营”?

在过去的一段时间里&#xff0c;“AI-native”成为所有工具的一个显著探索趋势&#xff0c;不论是算力集群的智算中心&#xff0c;还是数据库侧的向量数据库&#xff0c;再或者是不断进化的算法&#xff0c;都在以一种更适配大模型架构的方式被推演出来。 那么&#xff0c;大模…

四川云汇优想教育咨询有限公司引领电商未来

四川云汇优想教育咨询有限公司&#xff0c;一家在电商服务领域崭露头角的领军企业&#xff0c;致力于为广大客户提供最优质、最全面的电商服务。作为业界翘楚&#xff0c;云汇优想凭借其卓越的服务品质和强大的技术实力&#xff0c;在激烈的市场竞争中独树一帜&#xff0c;赢得…

【数据库原理】(24)数据库安全性策略

数据库安全性是数据库管理系统&#xff08;DBMS&#xff09;中一个至关重要的方面。它指的是保护数据库免受非授权访问和恶意操作&#xff0c;包括数据泄露、修改、破坏等。 多层安全模型 在典型的计算机系统安全模型中&#xff0c;安全措施被设置在不同层级&#xff1a; 应用…

第11章 GUI Page489~494 步骤三十 保存画板文件02 实现存盘函数SaveFile

工程添加新头文件 tool_4_save_load.hpp 增加源文件 tool_4_save_load.cpp IItem类增加保存到流的接口&#xff1a; 在直线&#xff0c;圆&#xff0c;十字形&#xff0c;方框&#xff0c;文字类中实现这个接口 回到主框架窗口&#xff0c;实现保存文件的函数SaveFile 首先封…

win7用什么录屏软件好?这款软件请你收好

随着科技的不断进步&#xff0c;屏幕录制在工作和娱乐中变得越来越普遍。对于使用windows 7操作系统的用户来说&#xff0c;选择一款适合的屏幕录制软件尤为重要。可是win7用什么录屏软件好呢&#xff1f;在本文中&#xff0c;我们将介绍三款适用于win 7系统的录屏软件。通过详…