⌈ 传知代码 ⌋ ERA-CoT: 实体关系推理

💛前情提要💛

本文是传知代码平台中的相关前沿知识与技术的分享~

接下来我们即将进入一个全新的空间,对技术有一个全新的视角~

本文所涉及所有资源均在传知代码平台可获取

以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


📌导航小助手📌

  • 💡本章重点
  • 🍞一. 概述
  • 🍞二. 论文方法
  • 🍞三. 实验
  • 🍞四. 关键代码
  • 🫓总结


💡本章重点

  • ERA-CoT: 实体关系推理

🍞一. 概述

该论文提出了一种新的框架,称为基于链式思维的实体关系分析(ERA-CoT),旨在解决涉及多个实体的复杂场景中的推理任务。通过提取文本中的所有实体及其显式关系,并基于这些关系和隐藏信息推断隐式关系,ERA-CoT显著提高了大语言模型(LLMs)的推理能力和问题回答的准确性。

实验结果表明,ERA-CoT在各种基准测试中均优于现有的链式思维提示方法,在GPT-3.5上平均提升了5.1%的准确率​​。

本篇在论文代码的基础上增加了llama2模型的相关文件,修改了模型相关代码。


🍞二. 论文方法

在这里插入图片描述
论文中提出的ERA-CoT框架包含五个步骤:

  1. 实体提取:

    • 利用大型语言模型(LLMs)的信息提取能力,从文本中提取所有实体及其类型。具体来说,模型接受一个输入句子,利用其命名实体识别(NER)功能预测相应的实体范围和分类。为了提高实体提取的准确性,采用了自一致性(Self-Consistency, SC)方法,多次验证实体提取结果,确保提取的实体可靠。
  2. 显式关系提取:

    • 在零样本设置下,探讨不同实体之间的显式关系。通过LLM的上下文理解能力,从文本中直接提取实体对之间的关系,生成关系三元组。同样地,使用SC方法评估显式关系的可靠性。
  3. 隐式关系推断:

    • 基于显式关系和文本中的隐藏信息推断实体之间的隐式关系。通过生成多个可能的隐式关系,并使用模型进行评分,确定这些关系的可靠性。具体来说,通过分析上下文中的隐含信息,推断出未显式提到但可能存在的实体关系。
  4. 关系过滤:

    • 使用模型对隐式关系的可靠性进行评分,设定阈值筛除低于阈值的隐式关系。这一步骤确保了最终关系集的高质量和准确性。
  5. 问题回答:

    • 基于提取的实体以及获得的显式和隐式关系回答问题。在这个过程中,模型利用之前提取和过滤的关系信息,提供更准确和详细的答案。

    • 通过这些步骤,ERA-CoT框架在处理复杂实体场景中的推理任务时展示了强大的性能和准确性提升​


🍞三. 实验

论文通过在六个广泛采用的数据集上进行实验,验证了ERA-CoT的有效性,并与四种基线方法进行了对比。结果表明,ERA-CoT在几乎所有基准测试中均表现出色,平均提升了大约5.1%的准确率。

在GPT-3.5和Llama-2两种大语言模型上,ERA-CoT在常识推理、数学推理和逻辑推理三种类型的问题上均表现出显著提升,表明增强模型的实体关系理解能力能够显著提高推理能力和问题回答的准确性​​。

创建虚拟环境并激活
在这里插入图片描述

安装环境依赖

在这里插入图片描述

运行llama2的预测代码

在这里插入图片描述


🍞四. 关键代码

实体提取:
import json

# from config import args
prompt_prefix = '''Given a sentence, possible entities may include:'''

prompt_suffix = ''', Find all entities based on the provided sentence.'''

def get_ner_list(type_list_file):
    try:
        f = open(type_list_file, "r", encoding="utf-8")
        entities = "["
        for idx, entity in enumerate(f):
            entities = entities + entity[:-1] + ","
        entities = entities[:-1] + "]"
        return entities
    except FileNotFoundError as e:
        raise FileNotFoundError('can\'t find the demo file: {}'.format(type_list_file))

def get_ner_prompt(type_list_file):
    ner_prompt = prompt_prefix + get_ner_list(type_list_file) + prompt_suffix
    return ner_prompt

def ner_sentence(ner_prompt, sentence):
    prompt = ner_prompt + "\nSentence: " + sentence + "\nEntity: "
    return prompt

关系提取:
import json
import logging

# from config import args
prompt_prefix = '''Given a sentence, and all entities within the sentence. 
Extract all relationships between entities which directly stated in the sentence.
Every relationship stated as a triple: (E_A, E_B, Relation).\nSentence: '''

prompt_suffix = '''\nRelation: '''

def get_extract_prompt(entities, sent):
    relation_prompt = prompt_prefix + sent + "\nEntities: " + entities + prompt_suffix
    return relation_prompt

关系推理:
import json
import logging

# from config import args
prompt_prefix = '''Given a sentence, all entities, and all explicit relationships within the sentence. 
Infer all possible implicit relationships between entities.
For each pair of entities, infer up to '''

prompt_mid = ''' implicit relationships.
Every relationship stated as a triple: (E_A, E_B, Relation)\nSentence: '''

prompt_suffix = '''\nRelation: '''

def get_infer_num(args):
    return args.infer_num

def get_infer_prompt(args, entities, relation_ext, sent):
    relation_prompt = (prompt_prefix + get_infer_num(args) + prompt_mid
                            + sent + "\nExplicit Relationships:: " + relation_ext
                                + "\nEntities: " + entities + prompt_suffix)
    return relation_prompt

🫓总结

综上,我们基本了解了“一项全新的技术啦” 🍭 ~~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

【传知科技 – 了解更多新知识】

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

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

相关文章

LLVM Cpu0 新后端8 尾调用优化 Stack Overflow Exception异常

想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…

推荐这两款AI工具,真的很好用

巨日禄 巨日禄是一款由杭州巨日禄科技有限公司开发的AI工具,主要功能是将文本内容转换为视频。该工具通过分析大量的剧本数据和影视作品,为用户提供各种类型的故事情节和角色设置,帮助用户快速找到灵感,减少构思剧本的困难和犹豫。…

服务器通的远程桌面连接不上,服务器通的远程桌面连接不上解决方法

当面临服务器远程桌面连接不上的问题时,专业的处理方式需要遵循一系列步骤来确保问题得到准确且高效的解决。以下是一些建议的解决方法: 一、初步排查与诊断 1. 检查网络连接: - 确保本地计算机与服务器之间的网络连接是稳定的。 - 尝…

鸿蒙开发:【线程模型】

线程模型 线程类型 Stage模型下的线程主要有如下三类: 主线程 执行UI绘制。管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消…

ESP RainMaker®为企业提供AIoT云解决方案,启明云端乐鑫代理商

在AIoT的浪潮中,企业面临着前所未有的机遇与挑战。如何快速响应市场变化,开发出具有竞争力的智能产品?如何确保数据安全,同时实现高效的设备管理?这些问题,ESP RainMaker给出了答案。 ESP RainMaker是一个…

数据价值管理-数据验收标准

前情提要:数据价值管理是指通过一系列管理策略和技术手段,帮助企业把庞大的、无序的、低价值的数据资源转变为高价值密度的数据资产的过程,即数据治理和价值变现。第一讲介绍了业务架构设计的基本逻辑和思路。前面我们讲完了数据资产建设标准…

0604 集成电路运算放大器

6.4.1 集成电路运算放大器CMOS MC14573 6.4.2 集成运算放大器741

Day 19:419. 甲板上的战舰

Leetcode 419. 甲板上的战舰 给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X’ 或者是一个空位 ‘.’ ,返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说&#xff…

UV胶开裂主要因素有哪些?如何避免?

UV胶开裂主要因素有哪些?如何避免? UV胶开裂的原因可能包括多个方面: 固化不足:UV胶的固化需要足够的紫外线照射。如果照射时间不够,或者紫外线光源的强度不足,胶水可能没有完全固化,从而导致开…

Xmind导入纯文本TXT方法

最近有很多同事咨询我如何在xmind直接导入纯文本txt笔记或者思维导图呢? 解决办法如下: 1.先打开xmind随便打开一个思维导图-文件-导出-marldown 2.选中导出的markdown文件。右键-打开方式-苹果系统选择文本编辑,Win系统选择记事本 3.按照图示…

【数据结构】二叉树:一场关于节点与遍历的艺术之旅

专栏引入 哈喽大家好,我是野生的编程萌新,首先感谢大家的观看。数据结构的学习者大多有这样的想法:数据结构很重要,一定要学好,但数据结构比较抽象,有些算法理解起来很困难,学的很累。我想让大家…

初级网络工程师之从入门到入狱(三)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 中小型网络系统综合实战实验 前言一、详细拓扑图二、LSW2交换机三、LSW3交换机四、LSW1三层交换机4.1、4.2、4.3、4.4、4.5、…

鸿蒙开发文件管理:【@ohos.statfs (statfs)】

statfs 该模块提供文件系统相关存储信息的功能,向应用程序提供获取文件系统总字节数、空闲字节数的JS接口。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import stat…

2024 全球软件研发技术大会官宣,50+专家共话软件智能新范式!

2024年的全球软件研发技术大会(SDCon)由CSDN和高端IT咨询与教育平台Boolan联合主办,将于7月4日至5日在北京威斯汀酒店举行。本次大会的主题为“大模型驱动软件智能化新范式”,旨在探讨大模型和开源技术的发展如何引领全球软件研发…

GoogleDeepMind联合发布医学领域大语言模型论文技术讲解

Towards Expert-Level Medical Question Answering with Large Language Mod 这是一篇由Google Research和DeepMind合作发表的论文,题为"Towards Expert-Level Medical Question Answering with Large Language Models"。 我先整体介绍下这篇论文的主要内容&#x…

图的存储表示

目录 概述 图的定义 图的存储结构 1)邻接矩阵 2)邻接表 3)十字链表 4)邻接多重表 概述 数据结构分为两类,一类是具有递归结构的数据结构,也就是可以给出一个递归定义的数据结构,一类是非递归结构…

Offline : How to Leverage Diverse Demonstrations in Offline Imitation Learning

ICML 2024 paper code Intro 文章提出一种从混合质量数据中高效抽取有用状态动作数据用于模仿学习。算法基于一种假设,即使当前状态并非属于专家状态,但是若在该状态下采取动作导致下一状态是专家状态,那么该状态相较于随机状态更有价值。 …

AI赋能银行国际结算审单:合合信息抽取技术的实践与应用

官.网地址:合合TextIn - 合合信息旗下OCR云服务产品 时下,银行国际业务是金融体系的重要组成部分,涵盖了外汇交易、国际结算、贸易融资、跨境投资等领域,这些业务对于国际贸易和全球经济发展具有重要作用。国际业务部门单据、凭证…

ffmpeg实现视频播放 ----------- Javacv

什么是Javacv和FFmpeg? Javacv是一个专门为Java开发人员提供的计算机视觉库,它基于FFmpeg和Opencv库,提供了许多用于处理图 像、视频和音频的功能。FFmpeg是一个开源的音视频处理工具集,它提供了用于编码、解码、转换和播放音视频…

LabVIEW RT环境中因字符串拼接导致的系统崩溃问题

在LabVIEW实时操作系统(RT)环境中运行的应用程序出现字符串拼接后死机的问题,通常涉及内存管理、内存泄漏或其他资源管理问题。以下是一些指导和步骤,帮助解决这个问题: 1. 内存泄漏检测 字符串拼接会在内存中创建新…