首页 > 其他分享 >KG Structure as Prompt:利用知识图谱构建Prompt,提高大模型对因果关系的理解

KG Structure as Prompt:利用知识图谱构建Prompt,提高大模型对因果关系的理解

时间:2024-09-25 09:57:39浏览次数:9  
标签:KG 提示 图谱 模型 知识 节点 Prompt 因果关系 Structure




KG Structure as Prompt:利用知识图谱构建Prompt,提高大模型对因果关系的理解

  • 秒懂大纲
  • 提出背景
  • 解法拆解
  • 创意视角
  • 中文意译



 


论文:Knowledge Graph Structure as Prompt: Improving Small Language Models Capabilities for Knowledge-based Causal Discovery

代码:https://github.com/littleflow3r/kg-structure-as-prompt

秒懂大纲

├── 1 知识图谱结构作为提示【主题】
│   ├── 背景【背景介绍】
│   │   ├── 因果发现的重要性【研究动机】
│   │   └── 大语言模型(LLMs)在因果发现中的应用【技术背景】
│   │       └── 基于知识的因果发现【研究方向】
│   ├── 研究目标【研究目的】
│   │   ├── 探索小型语言模型(SLMs)在知识型因果发现中的能力【主要目标】
│   │   └── 提出"KG结构作为提示"方法【创新点】
│   └── 主要贡献【研究贡献】
│       ├── 提出新方法整合KG结构信息到基于提示的学习中【方法创新】
│       ├── 证明方法在不同LM架构和KG类型上的有效性【方法验证】
│       └── 展示SLMs与KG结合的强大能力【研究发现】
├── 2 方法【研究方法】
│   ├── KG结构作为提示【核心方法】
│   │   ├── 邻居节点(NN)【KG结构类型】
│   │   ├── 共同邻居节点(CNN)【KG结构类型】
│   │   └── 元路径(MP)【KG结构类型】
│   └── 基于提示的学习【学习方法】
│       ├── 模型架构【技术细节】
│       │   ├── MLM (掩码语言模型)【模型类型】
│       │   ├── CLM (因果语言模型)【模型类型】
│       │   └── Seq2SeqLM (序列到序列语言模型)【模型类型】
│       └── 知识图谱选择【数据来源】
│           ├── Wikidata (通用领域)【KG类型】
│           └── Hetionet (生物医学领域)【KG类型】
├── 3 实验【实验设计】
│   ├── 数据集【实验数据】
│   │   ├── 生物医学领域数据集【领域特定】
│   │   └── 开放域数据集【通用领域】
│   ├── 实验设置【实验参数】
│   │   └── 少样本学习 (k=16)【学习范式】
│   ├── 评估指标【评估方法】
│   │   ├── 精确率 (P)【指标】
│   │   ├── 召回率 (R)【指标】
│   │   └── F1分数【指标】
│   └── 基线模型【对比方法】
│       ├── ICL (上下文学习)【基线】
│       ├── 全数据集微调 (FT_full)【基线】
│       └── 少样本微调 (FT_few-shot)【基线】
└── 4 结果与讨论【研究结果】
    ├── 主要发现【实验结论】
    │   ├── 提出的方法优于无图上下文基线模型【性能比较】
    │   ├── 少样本设置下接近或超过全数据集微调模型【效果评估】
    │   └── SLMs结合KG超过更大参数的LLMs【方法优势】
    └── 分析与讨论【深入分析】
        ├── KG结构类型比较 (NN vs CNN vs MP)【结构效果】
        ├── 模型架构比较 (MLM vs CLM vs Seq2SeqLM)【架构效果】
        ├── 知识图谱比较 (Wikidata vs Hetionet)【KG效果】
        └── SLMs vs LLMs【模型对比】

方法部分:

├── 2 方法【研究方法】
│   ├── 输入【数据源】
│   │   ├── 文本上下文【原始数据】
│   │   │   └── 包含变量对的文本片段【数据形式】
│   │   └── 知识图谱(KG)【结构化知识】
│   │       ├── Wikidata【通用领域KG】
│   │       │   └── 提供广泛主题覆盖【特点】
│   │       └── Hetionet【生物医学领域KG】
│   │           └── 提供专业领域知识【特点】
│   │
│   ├── 处理过程【核心算法】
│   │   ├── KG结构作为提示【方法创新点】
│   │   │   ├── 邻居节点(NN)提取【图结构特征】
│   │   │   │   └── 查询目标节点的直接连接节点【操作】
│   │   │   ├── 共同邻居节点(CNN)提取【图结构特征】
│   │   │   │   └── 查找两个目标节点共有的邻居【操作】
│   │   │   ├── 元路径(MP)提取【图结构特征】
│   │   │   │   └── 寻找连接两个节点的有意义路径【操作】
│   │   │   └── 图上下文生成【特征转换】
│   │   │       └── 将图结构信息转化为自然语言描述【技术】
│   │   │
│   │   └── 基于提示的学习【学习范式】
│   │       ├── 提示构建【输入处理】
│   │       │   ├── 结合文本上下文和图上下文【数据融合】
│   │       │   └── 添加任务相关指令和标记【提示设计】
│   │       ├── 模型选择【技术选型】
│   │       │   ├── MLM (掩码语言模型)【模型类型】
│   │       │   │   └── 预测被掩盖的词【任务特点】
│   │       │   ├── CLM (因果语言模型)【模型类型】
│   │       │   │   └── 单向预测下一个词【任务特点】
│   │       │   └── Seq2SeqLM (序列到序列语言模型)【模型类型】
│   │       │       └── 输入序列生成输出序列【任务特点】
│   │       └── 少样本学习【训练策略】
│   │           └── 使用有限样本(k=16)进行模型适应【方法】
│   │
│   └── 输出【结果生成】
│       ├── 因果关系预测【主要任务】
│       │   ├── 二分类结果:因果/非因果【输出形式】
│       │   └── 预测概率【置信度指标】
│       └── 模型解释【辅助输出】
│           └── 利用图结构信息提供预测依据【可解释性】

【解释】

  1. 输入处理:
  • 文本上下文和知识图谱数据首先被输入系统。
  • 知识图谱数据通过"KG结构作为提示"方法处理,提取NN、CNN和MP特征。
  • 这些特征被转换为自然语言描述,形成图上下文。
  1. 提示构建:
  • 文本上下文与生成的图上下文被结合,并添加任务相关指令和特殊标记。
  • 这个过程创建了一个结构化的提示,作为语言模型的输入。
  1. 模型处理:
  • 选择的语言模型(MLM、CLM或Seq2SeqLM)接收构建的提示。
  • 每种模型使用不同的方式处理输入:MLM预测掩码词,CLM预测下一个词,Seq2SeqLM生成整个输出序列。
  • 模型在少量样本上进行微调,适应特定任务。
  1. 输出生成:
  • 模型输出因果关系预测结果(因果/非因果)及其概率。
  • 图结构信息被用于提供预测的依据,增强模型的可解释性。

这个过程展示了如何将结构化知识(KG)与非结构化文本结合,通过提示学习的方式增强小型语言模型在因果关系识别任务上的表现。

提出背景

  1. 提出背景:

因果发现是科学研究中的一个基础任务,它对于理解和利用潜在的因果关系至关重要。

随着大模型(LLMs)的发展,研究者开始探索利用LLMs进行知识型因果发现,即基于元数据(如变量名称)而非实际数据值来推断因果关系。

例如,在医学诊断中,传统方法可能需要分析大量患者的具体检查结果来确定疾病原因,而这种新方法可以仅基于疾病名称或症状描述来推断可能的因果关系。

  1. 解决的问题类别:

这项研究主要解决的是自然语言处理(NLP)和因果推理的交叉领域问题,特别是在知识型因果发现任务中如何有效利用语言模型。

  1. 具体解决的问题:

具体来说,这项研究旨在解决以下问题:

a) 小型语言模型(SLMs)在知识型因果发现任务中的能力限制:

  • SLMs通常因为参数量较少,在复杂任务上表现不如大型语言模型。
  • 研究如何增强SLMs在这类任务上的性能成为一个重要问题。

b) 如何有效利用外部知识来增强语言模型的因果推理能力:

  • 传统方法主要依赖模型内部的知识,可能存在知识局限性。
  • 需要探索如何将外部结构化知识(如知识图谱)有效地融入到语言模型中。

c) 在少样本学习场景下提高模型性能:

  • 在实际应用中,获取大量标注数据往往成本高昂。
  • 研究如何在有限样本的情况下提高模型的学习效率和泛化能力。

d) 提高模型的可解释性:

  • 在医疗等关键领域,模型预测的可解释性至关重要。
  • 研究如何利用知识图谱的结构信息来提供预测的依据,增强模型的可解释性。

通过提出"KG结构作为提示"的方法,研究者试图将知识图谱的结构化信息融入到基于提示的学习中,以增强小型语言模型在知识型因果发现任务中的性能,同时在少样本学习场景下提高模型的效率和可解释性。

解法拆解

"KG Structure as Prompt"方法是一种创新的知识增强框架,旨在提升语言模型在因果关系推理任务中的性能。

这种方法的核心思想是将知识图谱中的结构化信息巧妙地融入到提示(prompt)中,为语言模型提供更加丰富和相关的上下文信息。具体实现过程包括以下几个关键步骤:

  1. 相关子图提取: 首先,根据待分析的变量对,从大规模知识图谱中精确定位并提取出相关的子图结构。这一步骤确保了后续处理的针对性和效率。
  2. 图结构语义化: 接下来,将提取的图结构信息转换为自然语言描述。这个过程可以被视为一种"图结构语义化",它将抽象的图形表示转化为语言模型可以直接理解和处理的文本形式。
  3. 多源信息融合: 在这一步中,系统将原始的文本上下文、生成的图结构描述(即"图上下文")、待分析的变量对,以及专门设计的任务指导模板进行智能组合,形成一个综合性的提示。
  4. 模型推理与结果解读: 最后,将构建好的复合提示输入到语言模型中。模型基于这些丰富的上下文信息进行推理,其输出再通过特定的映射函数转化为最终的因果关系判断结果。

这种方法的创新性和有效性主要体现在以下几个方面:

  • 它巧妙地将结构化的知识图谱信息转化为非结构化的文本描述,使得语言模型能够充分利用这些额外的知识。
  • 这种方法无需对语言模型本身进行修改,通过优化输入信息来提升模型性能,具有很高的灵活性和普适性。
  • 通过引入外部知识,显著增强了模型的因果推理能力,特别是在处理复杂或隐含的因果关系时表现出色。
  • 这种方法为知识图谱在自然语言处理任务中的应用开辟了新的途径,展示了结构化知识与深度学习模型结合的巨大潜力。

    这张图展示了"KG结构作为提示"方法的整体框架,结合了基于提示的学习。
  1. 知识图谱(KG):
    左下角显示了一个大型的知识图谱结构,由多个节点和边组成。
  2. KG结构(子图):
    从KG中提取出的一个子图,展示了特定实体间的关系(如breast cancer, ERBB2等)。
  3. KG结构作为提示:
    这是本方法的核心部分,将KG结构信息转化为可用的提示。
  4. 图上下文C:
    由KG结构生成的上下文信息,将被插入到提示中。
  5. 提示构成:
  • 文本上下文: “FGF6 contributes to the growth of prostate cancer by…”
  • 图上下文C: 插入到[C]位置
  • 模板词: “The pair [e1] and [e2] shows [MASK] relation.”
  • 变量对: e1和e2代表待分析的实体对(FGF6和prostate cancer)
  1. LLM (大语言模型):
    接收整个提示作为输入。
  2. LM head (语言模型头):
    模型的输出层。
  3. 映射函数:
    将模型输出映射到"causal"或"non-causal"类别。
  4. 预测:
    最终输出因果关系预测结果。

KG Structure as Prompt:利用知识图谱构建Prompt,提高大模型对因果关系的理解_人工智能

目的:增强小型语言模型在知识型因果发现任务中的性能

问题:如何在少样本学习场景下提高小型语言模型的因果发现能力和可解释性

解法:提出"KG结构作为提示"方法
= 子解法1(利用知识图谱结构信息)+ 子解法2(基于提示的学习)+ 子解法3(小型语言模型选择)

子解法1:利用知识图谱结构信息

  • 提取邻居节点(NN)(因为可以提供直接相关信息)
  • 提取共同邻居节点(CNN)(因为可以发现潜在联系)
  • 提取元路径(MP)(因为可以捕捉复杂关系)

之所以用知识图谱结构信息,是因为它能提供丰富的背景知识和结构化信息。

例子:在推断"吸烟"和"肺癌"的因果关系时,可以从知识图谱中提取它们的共同邻居节点(如"尼古丁"、“肺部组织”)作为额外信息。

子解法2:基于提示的学习

  • 构建结合文本和图结构的提示(因为可以融合多源信息)
  • 设计特定任务的提示模板(因为可以引导模型关注关键信息)

之所以用基于提示的学习,是因为它能有效地引导模型进行特定任务的推理。

例子:构建提示"[吸烟]与[肺癌]之间的关系可能是[MASK],考虑到它们都与[尼古丁]有关。"

子解法3:小型语言模型选择

  • 使用MLM(因为适合填空式任务)
  • 使用CLM(因为适合生成式任务)
  • 使用Seq2SeqLM(因为适合复杂的序列转换任务)

之所以选择小型语言模型,是因为它们计算效率高,且通过适当的方法可以达到与大型模型相近的性能。

例子:使用BERT-base模型(MLM架构)来预测"吸烟"和"肺癌"之间的因果关系。

  1. 子解法的逻辑链(决策树形式):
├── 利用知识图谱结构信息
│   ├── 提取邻居节点(NN)
│   ├── 提取共同邻居节点(CNN)
│   └── 提取元路径(MP)
├── 基于提示的学习
│   ├── 构建结合文本和图结构的提示
│   └── 设计特定任务的提示模板
└── 小型语言模型选择
    ├── MLM
    ├── CLM
    └── Seq2SeqLM



[处理复杂度]
|
|  [知识图谱]
|     |
|     v
|  [结构提取]
|  --NN/CNN/MP
|     |
|     v
|  [上下文生成]
|  --图+文本
|     |
|     v
|  [提示构建]
|     |
|     v
|  [因果预测]
|  --SLMs

这是一个网络结构,各个子解法之间存在交互和协同。

  1. 隐性特征分析:

在解法中,存在一个隐性的中间步骤特征:图结构信息到自然语言的转换。

这个隐性特征体现在将知识图谱的结构化信息转换为模型可理解的自然语言描述。这个步骤连接了"利用知识图谱结构信息"和"基于提示的学习"两个子解法。

定义这个隐性方法为"图结构语义化":将图结构信息转化为有意义的自然语言描述,以便语言模型理解和利用。

例如,将元路径"吸烟-含有-尼古丁-影响-肺部组织-导致-肺癌"转换为自然语言描述"吸烟含有尼古丁,尼古丁影响肺部组织,可能导致肺癌"。

这个"图结构语义化"方法是连接结构化知识和自然语言处理的关键步骤,使得知识图谱的信息能够有效地融入到基于提示的学习中。

创意视角

  1. 组合:

    • 结合虚拟现实(VR)技术,创造一个可视化的知识图谱交互环境,让研究人员能够"走入"图谱结构中探索因果关系。
    • 融合自然语言处理和计算机视觉技术,使模型能够同时处理文本和图像数据,增强因果关系的多模态理解。
  2. 拆开:

    • 将知识图谱结构分解为更细粒度的元素,如节点属性、边属性等,分别设计专门的提示策略。
    • 把因果关系预测任务拆分为多个子任务,如关系存在性判断、关系方向判断和关系强度评估等。
  3. 转换:

    • 将"KG Structure as Prompt"方法应用于其他领域,如社交网络分析或推荐系统,探索新的应用场景。
    • 把知识图谱结构转换为声音或触觉反馈,为视障研究人员提供新的交互方式。
  4. 借用:

    • 借鉴自然语言处理中的预训练技术,对知识图谱结构进行预训练,提高模型对图结构的理解能力。
    • 从生物学中借鉴基因表达网络的分析方法,应用于复杂因果关系的建模。
  5. 联想:

    • 联想到蜘蛛网的结构,设计一种新的知识图谱可视化方法,突出中心节点和关键路径。
    • 从城市交通网络获取灵感,设计一种动态更新的知识图谱结构,反映实时的因果关系变化。
  6. 反向思考:

    • 尝试从"因果关系预测影响知识图谱结构"的角度思考,探索如何通过预测结果动态调整和优化知识图谱。
    • 考虑如何利用错误的因果关系预测来改进模型,设计一个"反向学习"机制。
  7. 问题:

    • 深入探讨"为什么小型语言模型在因果关系预测中表现不佳",可能发现新的模型优化方向。
    • 思考"如何让模型理解隐含的、非直接表达的因果关系",可能引发对隐式知识表示的新研究。
  8. 错误:

    • 分析模型在因果关系预测中的常见错误类型,设计针对性的"错误修正"模块。
    • 利用错误预测作为反例,构建更丰富的训练数据集,提高模型的鲁棒性。
  9. 感情:

    • 引入情感分析,探索情感因素如何影响因果关系的形成和理解。
    • 设计一种可以表达"因果关系确信度"的可视化方法,增强结果的可解释性。
  10. 模仿:

    • 模仿人类专家进行因果推理的过程,设计一种模拟人类思维的推理机制。
    • 借鉴法律推理中的"证据链"概念,设计一种基于证据的因果关系推理框架。
  11. 最渴望联结:

    • 将因果关系预测与用户最关心的实际问题(如疾病预防、金融风险预测)直接关联,提高研究的实用性。
    • 设计一种将复杂因果关系简化为直观故事的方法,满足人们理解世界运作机制的渴望。
  12. 空隙填补:

    • 开发一种处理时序知识图谱的方法,填补现有方法在动态因果关系分析中的不足。
    • 设计一种能够处理不确定性和概率性因果关系的机制,弥补当前方法在这方面的缺陷。
  13. 再定义:

    • 将"KG Structure as Prompt"重新定义为一种通用的知识增强框架,不仅限于因果关系预测。
    • 重新定义知识图谱的作用,将其视为动态学习的知识库,而不仅仅是静态的信息源。
  14. 软化:

    • 设计一种游戏化的因果关系探索工具,让用户通过互动游戏来理解和验证复杂的因果关系。
    • 开发一个幽默的"因果关系生成器",通过荒谬的关联激发创新思维。
  15. 附身:

    • 模拟不同领域专家(如医生、经济学家、社会学家)的思维方式,设计多角度的因果关系分析系统。
    • 从儿童的好奇心和简单逻辑出发,设计一种直观且富有创意的因果关系可视化方法。
  16. 配角:

    • 关注知识图谱中的非核心节点和边,探索它们在因果关系形成中的潜在重要性。
    • 开发一种专门分析和利用"弱因果关系"的方法,挖掘常被忽视的潜在关联。
  17. 刻意:

    • 设计一种"极端因果关系"生成器,通过夸张的假设激发创新思维和新的研究方向。
    • 开发一个"因果关系挑战者"系统,故意提出反直觉的因果假设,促进深入思考和验证。

根据以下关键标准对这些创新点进行评估和选择:

  1. 可行性:技术实现的难度和可能性
  2. 创新性:想法的新颖程度和潜在影响
  3. 实用性:解决实际问题的能力
  4. 可扩展性:应用到其他领域或问题的潜力

基于这些标准,以下创新点可能最具潜力:

  1. 动态时序知识图谱处理方法(来自"空隙填补"):这个创新点具有高度的可行性和实用性,能够解决现实世界中动态变化的因果关系问题,同时具有良好的可扩展性。

  2. 多模态因果关系理解系统(来自"组合"):结合文本和图像数据的方法具有很高的创新性,可以大大增强模型的理解能力,并且在多个领域都有潜在的应用价值。

  3. 基于证据的因果关系推理框架(来自"模仿"):这个想法具有很强的实用性和可解释性,可以提高因果关系预测的可信度,并且可以应用于多个需要严谨推理的领域。

这些创新点不仅在技术上可行,而且能够显著提升现有方法的性能和应用范围,有潜力推动因果关系预测和知识图谱应用的进一步发展。

中文意译

知识图谱结构作为提示:提升小型语言模型在基于知识的因果发现方面的能力

因果发现旨在根据观察数据估计变量之间的因果结构。

大型语言模型(LLMs)为解决因果发现问题提供了一个新的视角,即通过推理与变量相关的元数据而不是实际数据值来进行因果发现,这种方法被称为基于知识的因果发现。

本文研究了小型语言模型(SLMs,定义为参数少于10亿的LLMs)在基于提示的学习下进行基于知识的因果发现的能力。

具体来说,我们提出了"知识图谱结构作为提示",这是一种将知识图谱的结构信息(如共同邻居节点和元路径)整合到基于提示的学习中的新方法,以增强SLMs的能力。

在三种类型的生物医学和开放领域数据集上进行的少样本实验结果表明,我们的方法效果显著,超过了大多数基线方法,甚至超过了在完整数据集上训练的传统微调方法。

我们的发现进一步突显了SLMs的强大能力:结合知识图谱和基于提示的学习,SLMs展示出超越参数更多的LLMs的潜力。

我们的代码和数据集可在 GitHub 上获取。

关键词:因果关系、语言模型、知识图谱

  1. 引言

在各种科学学科中,发现潜在的因果关系并最终利用它们是一项基本任务。

因果发现是因果性研究的一个分支,它从观察数据中估计因果结构,并生成因果图作为结果。

因果图,如图1所示,是一个有向图,用于建模观察到的变量之间的因果关系;其中节点代表变量,边代表因果关系。

传统上,因果发现涉及通过测量一个变量的变化如何与另一个变量的变化相关联来从观察数据中学习因果关系,这种方法被称为基于协方差的因果发现。

受近期LLMs进展的推动,最近的研究探索了LLMs使用元数据(如变量名)而不是实际数据值的因果能力。

换句话说,因果关系是直接以自然语言向LLMs查询的。

本文关注后者,为了与基于协方差的因果发现区分,我们称这种方法为基于知识的因果发现。

通常,这种基于元数据的因果推理是由主题专家(SMEs)在构建因果图时执行的,他们利用其在特定领域主题和常识方面的专业知识,或基于与变量相关的主题的文献调查。

LLMs的进步简化了这个以前具有挑战性的过程,因为LLMs现在能够提供以前只能由SMEs提供的知识。

近期的研究也显示了令人鼓舞的结果,特别是有研究探索了LLMs的因果能力,通过对因果-效果对进行实验。

他们的发现表明,基于LLM的方法在几个因果基准测试中达到了最先进的性能。

类似地,另一项研究调查了LLMs的因果能力,通过分析它们在给定特定因果问题时的行为。

然而,与前一项研究相反,他们的结果表明LLMs目前缺乏为发现新知识提供令人满意答案的能力。

同时,有研究专注于调查LLMs在自然语言表达的事件之间进行因果关联的能力。

因此,他们的研究更倾向于从非结构化文本中提取因果图(例如事件链),而不是发现新的因果关系。

在本文中,我们调查了语言模型在给定文本源的文本上下文的情况下,对变量对之间进行基于知识的因果发现的能力。

具体来说,给定一对变量 e1 和 e2 (例如 FGF6 和前列腺癌),任务是预测这对变量之间是否可以推断出因果关系。

因此,与之前的研究类似,我们的重点也在于从文本中推断因果关系,而不是发现新的因果关系。

特别地,我们提出了"知识图谱结构作为提示",这是一种将知识图谱(KG)的结构信息整合到基于小型语言模型(SLMs)的提示学习中的新方法。

基于提示的学习通过结合提示(特定任务指令与文本输入的组合)来调整语言模型以适应特定任务,从而引导模型的输出用于下游任务。

我们的方法通过整合来自KGs的额外信息来增强这种方法,利用KGs在提供上下文和背景知识方面的优势。

我们选择SLMs是因为一个能够超越更大模型的小型模型在成本效益上更可取。

我们在三种类型的生物医学和一个开放领域数据集上进行了实验,并进一步评估了所提出方法在三种不同语言模型架构下的性能。

总结我们的主要贡献如下:

  1. 我们提出了"知识图谱结构作为提示",这是一种将KGs的结构信息注入到基于提示的学习中的新方法。在少样本设置的实验中,我们证明了我们的方法优于大多数无KG基线,并达到了与使用完整数据集的传统微调相当的性能,即使在有限样本的情况下。

  2. 我们展示了我们的方法在不同类型的语言模型架构和知识图谱中都是有效的,展示了它在各种语言模型和知识图谱中的灵活性和适应性。

  3. 我们展示了SLMs的强大能力:结合基于提示的学习和对知识图谱的访问,SLMs能够超越参数数量多得多的LLM。

背景和相关工作

小型语言模型(SLMs)指的是参数较少的语言模型,与更大参数的LLMs相比,它们处理文本的能力有所减弱。

然而,SLMs通常需要更少的计算资源,使它们在训练和部署时更快,维护它们通常也更具成本效益。

相反,LLMs在大量多样化的数据上进行训练,因此具有显著更多的参数,能够处理比SLMs更复杂的语言任务。

尽管如此,LLMs昂贵且难以训练和部署,因为它们通常需要更多的计算资源。

例如,GPT-3,由1750亿个参数组成,在资源有限的硬件上运行是不切实际的。

在本研究中,我们将SLMs定义为参数少于10亿的语言模型。

我们探索了具有不同架构的SLMs的因果能力:(1)掩码语言模型(MLM),特别是仅编码器模型,(2)因果语言模型(CLM)或仅解码器语言模型,以及(3)序列到序列语言模型(Seq2SeqLM)或编码器-解码器模型。

MLMs,特别是像BERT这样的仅编码器模型,是一种利用transformer架构中的编码器块的语言模型,它们被训练来根据周围单词提供的上下文预测被掩码的标记。

它们在自然语言理解(NLU)任务(如文本分类)中表现出色,因为它们能够捕捉文本序列中单词之间的关系。

CLMs,如GPT-3,使用transformer架构中的解码器块,并被训练为一次生成一个标记的文本,每个标记都依赖于序列中前面的标记。

同时,Seq2SeqLMs,如T5,由编码器和解码器块组成。编码器将输入序列转换为向量表示,而解码器基于编码的向量生成输出。

CLMs和Seq2SeqLMs通常在自然语言生成(NLG)和NLU任务(如翻译和摘要)方面表现良好,因为它们可以生成连贯且语法正确的句子。

基于提示的学习与知识注入。

对文本中因果关系的分类研究主要在监督设置下进行,利用传统的机器学习(ML)方法或微调预训练语言模型。

传统ML技术通常需要大量的特征工程,与微调语言模型(如BERT)相比,性能较差。因此,我们将我们的方法与微调方法作为基线进行评估。

同时,基于提示的学习(也称为提示调优)最近作为传统微调方法的一个有前景的替代方案出现,适用于各种自然语言处理(NLP)任务。

通常,提示由离散文本(硬提示)组成;然而,最近的工作引入了软提示,这是一个可以通过反向传播优化的连续向量。

在关系分类任务中,基于提示的学习通常涉及将包含掩码标记的提示模板插入到输入中,本质上将任务转换为掩码语言建模或文本生成问题。

这种方法特别适合少样本或零样本场景,其中只有有限的标记数据可用。

这促使我们在少样本设置下调查这种基于提示的学习,考虑到我们的因果关系分类任务数据集的稀缺性。

其他工作探索了知识注入用于提示构建,例如,KnowPrompt将关系标签中包含的潜在知识注入到具有可学习虚拟单词的提示构建中。

KAPING从Wikidata中检索目标实体的前K个相似三元组,并进一步将它们增强为提示。

KiPT使用WordNet计算输入与手动构造的核心概念之间的语义相关性来构建提示。

我们的工作与它们不同,因为我们专注于利用知识图谱的结构信息来构建提示。

  1. 任务公式化

在本工作中,我们专注于成对的基于知识的因果发现:给定一对实体e1和e2(即变量或节点对,如FGF6和前列腺癌),任务是预测这对之间是否可以推断出因果关系。

我们将任务公式化为二元分类任务,将关系分类为因果或非因果。

我们在数据集D = {X, Y}上评估我们的方法,其中X是训练实例集,Y = {causal, non-causal}是关系标签集。

每个实例x ∈ X由一个标记序列x = {w1, w2, …w|n|}和标记的变量对的跨度组成,并用标签y_x ∈ Y进行注释。

  1. 方法

我们的方法框架如图2所示。首先,我们生成一个图上下文,这是通过我们的"知识图谱结构作为提示"方法从知识图谱的结构信息中得出的。接下来,我们将生成的图上下文和输入(即变量对及其文本上下文)输入到SLMs中,以训练基于提示的学习模型。

4.1 预备知识

形式上,我们定义一个有向图G = (V, E),其中V是顶点或节点集,E ⊆ V × V是有向边集。

知识图谱是一种特定类型的有向图,表示实体网络及其之间的关系。

形式上,我们将知识图谱定义为一个有向标记图KG = (N, E, R, F),其中N是节点(实体)集,E ⊆ N × N是边(关系)集,R是关系标签集,F : E → R是将边分配给关系标签的函数。

例如,将标签r分配给边e = (x, y)可以看作是一个三元组(x, r, y),如(东京, 是首都, 日本)。

4.2 知识图谱结构作为提示

在图神经网络(GNNs)领域,有研究探索了LLMs是否可以通过使用自然语言描述图的几何结构来取代GNNs作为图的基础模型。

他们在几个图数据集上的结果超过了传统的基于GNN的方法,显示了LLMs作为图的新基础模型的潜力。

受其成功的启发,我们类似地利用特定类型图(即知识图谱)的结构信息来推断变量对之间的因果关系。

我们选择知识图谱是因为它们丰富的结构化信息和表达相互关联关系的能力。

我们称我们的方法为"知识图谱结构作为提示"。

例如,我们可以通过查看知识图谱中节点对之间的多跳关系来推断因果关系,如图3所示。

在图3中,节点FGF6通过节点FGFR4间接地与节点前列腺癌在一跳内连接。

经人类专家验证,节点FGF6和前列腺癌之间确实存在因果关系。

我们认为,这种图结构信息(在这个例子中是一条路径)在LMs的内部知识之上增加了背景知识,有效地帮助LMs推断变量对之间的因果关系。

具体来说,我们旨在使用知识图谱结构信息的自然语言描述作为基于提示学习的提示。

我们将这种知识图谱结构的描述称为图上下文。

在本工作中,我们特别研究了KG的三种重要结构信息作为图上下文,即(1)邻居节点,(2)共同邻居节点,(3)元路径,详细描述如下。

(1) 邻居节点 (NN)。

GNNs的本质在于对图结构应用不同的聚合函数,即将节点特征传递给相邻节点,每个节点聚合其邻居的特征向量以进一步更新自己的特征向量。

因此,显然邻居节点是图中最关键的特征。

受此启发,我们检查目标节点对的邻居节点以推断它们的因果关系。

形式上,在知识图谱KG = (V, E)中,如果存在边{x, y} ∈ E,则节点x是节点y的邻居。

图4提供了一个来自Wikidata的邻居节点示例。

根据提供的示例,节点前列腺癌以泌尿科作为其邻居节点之一,而FGF6以膀胱作为其邻居之一。

因此,由于它们各自的邻居节点:膀胱↔泌尿科,节点对(FGF6,前列腺癌)之间可能存在联系。

为了在提示中利用邻居节点结构,我们用自然语言描述它以形成图上下文C,我们正式表示为:

C(x, V, E) = {x} “与” {[x2]x2∈V’x2} “相连接”

我们还创建了C的一个变体,其中包括边描述/关系标签E,正式表示如下:

C(x, V, E) = {x} “与” {[x2]x2∈V’x2} “有” {Ex,x2} “关系”

其中V’xk表示节点x的k跳邻居节点列表,Ex,x2表示节点x与其邻居节点之间的关系或边描述。

额外的模板词如"与…相连接"和"有…关系"是可选的,可以替换为任何其他合适的词。

(2) 共同邻居节点 (CNN)。

与邻居节点不同,共同邻居节点捕捉了这样一个想法:一对节点(x, y)共享的邻居越多,它们之间存在边e = x, y的可能性就越大。

我们认为两个节点之间的共同邻居有助于推断它们的关系,所以我们也检查节点对之间的共同邻居信息作为图上下文。

图5显示了来自Hetionet知识图谱的对(乳腺癌, ERBB2)的共同邻居节点示例。

根据提供的示例,该对总共有95个共同邻居,确认了它们之间的密切关系。

形式上,节点x和y之间的共同邻居可以定义为:

CN{x, y} = N(x) ∩ N(y)

其中N(x)是与节点x相邻的节点集(x的邻居),N(y)是与节点y相邻的节点集(y的邻居)。

(3) 元路径 (MP)。

元路径是定义从起始节点到目标节点的行走的节点类型序列。

本工作中的"元路径"一词借鉴自生物医学领域,指被认为具有信息价值的特定节点类型组合。

由于其在生物医学网络分析中的重要性,我们调查两个节点的元路径以推断它们的因果关系。

此外,因果关系经常在生物医学领域中观察到。

图6显示了对(前列腺癌, FGF6)的元路径示例。

形式上,元路径MP可以定义为描述节点类型Z和Z(n+1)之间关系R的路径Z1 R1→ Z2 R2→ … Rn→ Z(n+1)。以下示例说明了图6中不同路径长度n的元路径:

MP = (FGF6, FGFR4, 前列腺癌),由节点类型{基因,基因,疾病}组成,n = 3
MP = (FGF6, 肌腱, SDRDL, FGFR2, 前列腺癌),由节点类型{基因,解剖,基因,基因,疾病}组成,n = 5

如图3所示的例子所解释的,我们认为两个节点之间的间接路径可以用于推断两对之间的因果关系,即使边本身并不描述因果关系。

因此,间接元路径或有意义的节点类型组合可能是变量对之间因果关系的潜在证据。

我们用自然语言描述KG中的元路径结构以形成图上下文C,如下所示:

C(x, y, MP{V, E}) = {x} “通过以下路径与” {y} "相连: "{v} {Ev,v2} {v2}

其中MP{V, E}是长度为n的元路径MP,包含一组节点V(v1, v2, …v|n|)和一组边E(v1, v1+n)。额外的词如"通过以下路径与…相连"是可选的,可以替换为其他词。

为了防止LMs的预测偏差,我们避免使用直接路径。

例如,对于对(x, y),当KG中存在这样的路径时,我们避免使用路径MP = (x, y)和MP = (y, x)。

4.3 结合图上下文的基于提示的学习

如图2中的模型架构所示,我们将文本上下文与通过"知识图谱结构作为提示"生成的图上下文一起输入到SLMs中。

我们进一步设计了一种利用这两种上下文的基于提示的学习方法。

为了清楚地区分传统微调和我们提出的基于提示的学习方法,我们首先简要概述传统微调方法。

给定一个预训练的语言模型L,在数据集D上进行微调,传统微调方法将训练序列x = {w1, w2, …w|n|}编码为相应的LMs输出隐藏向量h = {h1, h2, …h|n|}。

对于像BERT这样的MLMs,特殊标记"[CLS]"被插入到序列的开头,这个特殊标记被用作最终序列表示h’,因为它应该包含来自整个序列的信息。

然后在这个表示上应用全连接层和softmax层,以计算类别集Y上的概率分布。

相比之下,基于提示的学习通过在自然语言提示上进行预训练来适应预训练的LMs用于下游任务。

具体来说,我们首先使用模板T将每个输入序列x转换为提示x’: T: x 7→ x’。

此外,使用映射函数M将下游任务类别集Y映射到构成LM L所有词汇的标签词集V,即M: Y 7→ V。

与LMs的预训练一样,我们进一步将特殊标记"[MASK]"插入到x’中,让L用标签词V填充。

我们提供了一个提示公式的例子:

给定x=“吸烟导致成年男性癌症。”,我们设置一个模板T,例如,
T = [x] “这表明[MASK]关系。”

那么提示x’将是:
x’ = “吸烟导致成年男性癌症。这表明[MASK]关系。”

我们进一步将提示x’输入到L中以获得[MASK]的隐藏向量h[MASK]。

接下来,使用连接类别集Y和标签词的映射函数M,我们在掩码位置上形式化Y上的概率分布,即p(y|x) = p([MASK] = M(y)|x’)。

这里,映射函数也可以手动设置,例如M(true) = "因果"和M(false) = “非因果”。

请注意,根据任务、数据集和提示设计,类别标签本身可以直接使用,无需任何映射函数M。

在本研究中,我们的基于提示的学习将输入序列x与图上下文C结合到提示x’中,如图2所示。

具体来说,我们将提示x’公式化为包含以下元素:

(1) 文本上下文:包含对的输入序列x,
(2) 图上下文C:从KG结构生成的上下文,如4.2节所述,
(3) 目标对:作为目标的对e1和e2,例如(FGF6,前列腺癌),
(4) [MASK]标记,
(5) (可选)模板词。

随后,我们对e1和e2的最终提示x’作为LM的输入可以正式定义为:

x’ = [x] [C] 对[e1]和[e2]显示[MASK]关系。

在本研究中,我们为三种架构各选择了一个SLM:MLM、CLM和Seq2SeqLM。

由于每种类型的SLM训练方式不同,我们为每种类型的SLM设计了不同的提示x’。

例如,方程7中的提示x’,这是一个完形填空式任务提示,适合MLM架构,因为这种模型被训练成能够看到文本中的前后词。

对于CLM和Seq2SeqLM,我们将任务转化为生成类型,提示x’如下:

x’ = [x] [C] 对[e1]和[e2]显示因果关系:[MASK]。

如前所述,设计映射函数M将输出映射到下游任务标签的方式因任务、数据集和提示设计而异。

例如,对于方程7中的提示x’,我们可以直接使用类别标签集Y = {因果,非因果}而无需任何映射函数。

同时,对于方程8中的提示x’,我们手动定义一个映射函数,例如M(因果) = "真"和M(非因果) = “假”。请注意,模板"对…显示…"是可选的,可以替换为其他文本。

  1. 评估

实验设置。

我们在少样本设置下评估了所提出的方法,在所有实验中使用k = 16个训练样本。

采用精确率§、召回率®和F1分数(F1)指标来评估性能。

由于在低资源情况下的微调经常存在不稳定性,结果可能会因数据的不同分割而改变,我们应用了5折交叉验证,并对指标分数进行平均。

我们限制了包含在提示中的KG结构内容的数量,因为SLMs的提示长度是有限的,同时我们也限制了查询KG时的跳数。我们尝试了不同的设置,并报告了表现最佳的模型。

数据集。评估数据集总结在表1中。

因果关系经常在生物医学领域观察到,因此我们主要在这一领域评估我们的方法,并辅以一个开放领域数据集。

数据集中的每个实例包括一个变量对在文本中共同出现的文本上下文,并由人类专家注释,以确定变量之间是否存在因果关系。

SLMs的选择。在本工作中,我们将SLMs定义为总参数少于10亿的语言模型。

我们尝试了具有三种不同架构的SLMs,如下:

(a) MLM: 适应生物医学领域的roberta模型,有1.25亿参数(biomed-roberta-base-125m)
(b) CLM: bloomz-560m,有5.6亿参数
© Seq2SeqLM: T5-base-220m模型,有2.2亿参数

KGs的选择。我们为实验选择了以下两个KGs:

(a) Wikidata,作为通用领域KG的代表
(b) Hetionet,一个特定领域的KG,由29个不同的数据库组装而成,涵盖基因、化合物和疾病

我们选择Wikidata是因为它广泛覆盖了众多主题和话题。

作为比较,我们选择了生物医学KG Hetionet,因为我们主要在这个特定领域的数据集上评估我们的方法。

模型比较。我们比较了以下模型:模型(1)到(4)代表没有图上下文训练的模型,即基线,而标有"PBL"的模型(5到7)是我们提出的注入了来自KGs的图上下文信息的基于提示的学习方法。

(1) ICL: 上下文学习指的是一种提示方法,其中向LLMs提供了少量任务演示作为提示的一部分。对于这种方法,我们选择了OpenAI的GPT-3.5-turbo-instruct模型,并提供k = 16个样本作为演示来查询模型。

(2) FT_full: 使用完整数据集训练的传统微调模型。

(3) FT_few-shot: 在少样本k = 16设置下的传统微调模型。

(4) PT_few-shot: 原始提示调优作为基线,本质上是没有任何图上下文的基于提示的学习。

(5) PBL_NN-Wiki-few-shot: 我们提出的基于提示的学习 + 知识图谱结构作为提示,使用Wikidata的邻居节点NN结构。

(6) PBL_CNN-Het-few-shot: 我们提出的基于提示的学习 + 知识图谱结构作为提示,使用Hetionet的共同邻居节点CNN结构。

(7) PBL_MP-Het-few-shot: 我们提出的基于提示的学习 + 知识图谱结构作为提示,使用Hetionet的元路径MP结构。

由于在Wikidata中进行多跳查询的计算成本高昂,这常常导致许多对没有可用的元路径,我们省略了一些提议方法的变体,如PBL_MP-Wiki-few-shot。

此外,为了集中讨论更有效的模型,我们省略了效果较差的模型的结果,如PBL_NN-Het-few-shot。

  1. 结果和讨论

表2和3总结了结果。

我们报告了平均精确率§、召回率®和F1分数,包括5折交叉验证中F1分数的标准偏差值。

我们首先提供主要发现的摘要(6.1节),然后对结果进行分析和讨论(6.2节)。

6.1 主要发现

我们列出了表2的主要结果摘要如下:

(a) 我们提出的方法在大多数实验中,跨不同数据集领域,都优于无图上下文的基线模型:在生物医学数据集上F1分数最高提升了15.1个百分点(GENEC数据集,从55.5提升到70.6),在开放领域数据集上提升了6.8个百分点(SEMEVAL数据集,从61.1提升到67.9)。

(b) 在k = 16训练样本的少样本设置下,我们提出的方法通常达到了仅次于FT_full模型(使用完整数据集训练的传统微调模型)的第二好性能。有些甚至超过了它们,比如在GENEC数据集上,MLM架构的PBL_NN-Wiki-few-shot模型(63.0 vs 61.5)和CLM架构的PBL_CNN-Het-few-shot模型(69.1 vs 60.7)。

© 我们基于参数少于10亿的SLMs的模型在所有数据集的大多数实验中都超过了在更大模型上的ICL提示方法,强调了KGs支持较小LMs有限内部知识的重要性。

6.2 分析和讨论

NN vs. CNN vs. MP

在我们的实验中,KG结构元路径MP对表现最佳的模型贡献最大,而邻居节点NN和共同邻居节点CNN在各模型和数据集中表现大致相当。

MP的有效性可能取决于数据集中实体对之间的跳数,即COMACG数据集的平均跳数较高(2.8),MP给出了最佳性能。

相反,对于GENEC数据集,其平均MP跳数较低(1.8),CNN和NN优于MP。

为了训练一个能够在任何KG结构下很好泛化的鲁棒模型,我们选择不优化当前实验中KG结构的内容选择。

例如,当一对有超过m个元路径时,我们随机选择其中m个,m是作为提示包含的元路径数量的超参数。

尽管如此,我们提出的方法仍然取得了相对令人满意的性能,这表明基于实验,结构信息的类型(即NN vs. CNN vs. MP)可能比结构的内容更重要。

MLM vs. CLM vs. Seq2SeqLM

对于分类任务,通常更倾向于使用MLM架构训练的语言模型。

这种偏好源于MLMs被训练成既考虑前面的词也考虑后面的词,这对于在分类模型中准确预测正确的类别至关重要。

与此一致,在完整数据集和少样本数据集上训练的表现最佳的模型都基于MLM架构。

使用完整数据集的第二表现最佳的模型基于Seq2SeqLM架构,其次是基于CLM架构的模型。

这很可能是因为,与MLMs类似,Seq2SeqLMs也包括编码器块,并被训练成识别周围的词。

然而,在少样本设置的实验中,这个趋势略有不同,基于CLM架构的模型表现优于基于Seq2SeqLM架构的模型。

因此,选择适当的架构,特别是LMs的训练方式,对于将LMs适应下游任务至关重要。

正如我们实验结果所示,与Seq2SeqLM和CLM架构相比,用MLM架构训练的LMs通常更适合分类任务。

Wikidata vs. Hetionet

在生物医学领域,注入Hetionet结构信息的提议方法在大多数实验中表现更好。

考虑到数据集的特定领域性质,这是预期的结果。

尽管如此,Wikidata和Hetionet都表现得相对较好;COMAGC和GENEC数据集的表现最佳模型是用Hetionet获得的,而DDI数据集的表现最佳模型是用Wikidata获得的。

我们在SEMEVAL数据集上使用Wikidata也获得了6.8个百分点的F1分数提升。

这表明提议的方法在KGs的选择上相当灵活。

SLMs vs. LLMs

我们选择OpenAI的GPT-3.5-turbo-instruct作为大参数LLMs的代表。

然而,OpenAI并未提供诸如参数数量等技术细节;只提供了这个模型的上下文窗口大小为4,096个标记。

这比我们选择的SLMs最大标记长度(从128到512不等)要大得多。

总的来说,结果表明SLMs在大多数实验中在所有数据集上都优于这个模型。

这进一步显示了SLMs的潜力:结合基于提示的学习和对KGs的访问,提议的方法以最小的训练努力(少样本)就超越了具有相当大规模和参数的LLMs。

注意,我们也为GPT模型提供了k = 16个训练样本作为任务演示,以便与少样本设置的实验进行更公平的比较。

通常,SLMs相比LLMs训练的数据量显著减少,导致它们在下游任务中的能力和性能降低。

因此,我们提出的"知识图谱结构作为提示"方法生成的图上下文有效地作为因果关系的额外证据;换句话说,它帮助SLMs不仅依赖于它们有限的内部知识,还通过从KGs获取的更密集的信息来增强它们的能力。

  1. 结论

在本文中,我们提出了"知识图谱结构作为提示",这是一种将KGs的结构信息整合到基于提示的学习中的新方法,以进一步增强小型语言模型(SLMs)的能力。

我们在基于知识的因果发现任务上评估了我们的方法。

在生物医学和开放领域数据集上进行的广泛少样本设置实验突显了所提方法的有效性,它超越了大多数无KG基线,包括使用完整数据集的传统微调方法。

我们还展示了SLMs的强大能力:结合基于提示的学习和KGs,SLMs能够超越参数更多的语言模型。

我们提出的方法也证明了在不同类型的LMs架构和KGs上都有效,显示了它在各种LMs和KGs中的灵活性和适应性。

我们的工作集中在发现变量对之间的因果关系。

在未来的工作中,我们旨在通过开发分析具有多个相互关联变量的因果图的方法来解决更复杂的场景,这将提供对因果关系的更深入理解。

补充材料声明:数据集、源代码和其他详细信息可在GitHub上获得。




标签:KG,提示,图谱,模型,知识,节点,Prompt,因果关系,Structure
From: https://blog.51cto.com/u_13937572/12107172

相关文章

  • opea prompt app 制作
    ref:Helm|从这里开始吧createahelmchartchart=prompt-usvchelmcreate$chartadd ConfigMapcheckthevaluesfrom:GenAIComps/comps/prompt_registry/mongo/docker-compose-prompt-registry-mongo.yamlatmain·opea-project/GenAIComps(github.com)and:GenA......
  • Figma UI Design add background color to text All In One
    FigmaUIDesignaddbackgroundcolortotextAllInOne如何使用Figma给文字添加背景色https://www.figma.com/design/solutionshttps://www.youtube.com/watch?v=j1UT8ezXAXIdemoshttps://www.figma.com/design/QvsvpFRmtIHf8MpJGctgdZ/home-page?node-id=401-3&n......
  • css使用上中下三种图设置背景图,上下两张高度位置固定,中间拉伸(background-size、backg
    注意:此处计算需要使用calc,less的减法是在编译阶段不满足此处需求上下两张图高度为5px,位置紧贴上下边缘,中间背景图根据高度拉伸,并且增加模糊度background:url('./images/top.png')no-repeat,/*顶部图片*/url('./images/bottom.png')no-repeat,/*底部图片*/u......
  • AI大模型教程 Prompt提示词工程 AI原生应用开发零基础入门到实战【2024超细超全,建议收
    在AGI(通用人工智能)时代,那些既精通AI技术、又具备编程能力和业务洞察力的复合型人才将成为最宝贵的资源。为此,我们提出了‘AI全栈工程师’这一概念,旨在更精准地描述这一复合型人才群体,而非过分夸大其词。学习目标:这门课的目标,就是培养「AI全栈」人才。通过这门课程的学习,我们......
  • 讯飞星火大语言模型,2024-09-21,什么是提示词(prompt)?
    prompt是一种在人工智能领域中用于指导模型生成特定输出的输入文本或指令。以下是对它的详细介绍:基本概念:prompt是指向AI模型提供输入以引导其生成特定输出的文本或指令。它的目的是引导模型产生所需的回应,以便更好地控制生成的输出[1]。历史起源:prompt这个词源自拉丁语“promp......
  • 文心一言,文心大模型4.0 Turbo,2024-09-21,什么是提示工程(prompt engineering)?
    PromptEngineering,即提示工程,是自然语言处理(NLP)领域中的一个重要概念,它指的是通过设计精心构造的提示(prompt)或输入,来引导大型语言模型生成特定类型的输出。这个技术背后的原理是利用模型对输入的敏感性,通过提供特定格式或内容的提示,引导模型生成符合预期的输出。一、定义与原理......
  • Prompt提示词概念
    什么是prompt提示词?叮!快来看看我和文心一言的奇妙对话~什么是提示工程(promptengineering)?点击链接https://yiyan.baidu.com/share/vMZ69XCFTc?utm_invite_code=P0HSh4T14mrU4TwxGbJ%2BSw%3D%3D&utm_name=SGlkZGVuX3N0YXJz&utm_fission_type=common--文心一言,既能写文案、读文......
  • CRICOS Data Structures and Algorithms Trees
    DataStructuresandAlgorithmsTreesPage1of3CRICOSProvideCode:00301JNote:DSATreeNodehasalreadybeenwrittenforyou,butyou’llneedtounderstandandtestit.Thecodeforfind()wasalreadyimplementedforyou-insert()anddelete()are......
  • CSS background背景设置无效
    在CSS中使用背景图片时,路径的正确性很重要。如果你在路径中使用了斜杠(/),可能会导致路径解析出现问题。以下是一些可能的原因和解决方案:路径解析:./ 表示相对当前文件的路径。如果你的CSS文件和图片的相对位置是正确的,使用 ./ 是没有问题的。/ 表示根目录的路径,如果......
  • 使用Code-Prompt模拟实现openai o1: V2
    在之前的一个版本中,展现出来一定的思考能力,但是这只是一种表演型的思考能力,为什么?根据实际的观察,我认为是因为规划的部分,这部分实际上是有问题的,将后续的Step限制的太严重了.改进思路其实在上一期已经提过了,那就是怎么思考,思考不是能够在一开始就就能够规划好......