EntGPT: Linking Generative Large Language Models with Knowledge Bases

828 篇文章

已下架不支持订阅

本文介绍了EntGPT,一种旨在通过实体消歧任务提升大型语言模型(LLM)事实正确性能力的方法。通过三步硬提示方法和指令调整,EntGPT在无监督微调的情况下提高了Micro-F1分数,与监督基线相比,在实体消歧和问答任务中表现更优。研究表明,增强实体知识对于改善LLM的幻觉问题和提高问答性能有益。

本文是LLM系列文章,针对《EntGPT: Linking Generative Large Language Models with Knowledge Bases》的翻译。

摘要

由于在训练和推理过程中缺乏事实核查和知识基础,大型语言模型(LLM)生成事实正确输出的能力仍然相对未被探索。在这项工作中,我们的目标是通过实体消歧(ED)任务来应对这一挑战。我们首先考虑提示工程,并设计了一种三步硬提示方法来探测LLM的ED性能,而无需监督微调(SFT)。总体而言,提示方法提高了Micro-𝐹1分,在某些情况下高达36%甚至更高,并且与现有的SFT方法相比,在10个数据集上获得了可比的性能。我们通过具有类似提示和响应的指令调整(IT)进一步提高了知识基础能力。与具有平均micro的监督实体消歧任务的几种基线方法相比,指令调整模型不仅实现了更高的micro-F1分数性能-𝐹1比现有的基线模型提高了2.1%,但在零样本设置下,在六个问答(QA)任务上也获得了更高的准确性。我们的方法同时适用于开源和闭源LLM。

1 引言

2 相关工作

3 方法

4 实验

5 实体消歧的个案研究

6 问题回答的案例研究(RQ4)

7 讨论

在这项工作中,我们描述了实体GPT模型和两种变体:基于提示的(EntGPT-P)和指令调优的(EntPGPT-I)。通过将大型语言模型生成的具体实体的自然语言提及与其在某些知识库中的对应实体联系起来,我们表明EntGPT方法可以减少幻觉。此外,我们还从大量的实

### PoseScript论文中Linking 3D Human Poses and Natural Language部分的复现方法与代码实现 PoseScript是一种结合自然语言和3D人体姿态的方法,其核心思想是通过自然语言描述生成对应的3D人体姿态。为了实现这一目标,通常需要以下几个关键步骤:数据准备、模型设计、训练过程以及结果评估。 #### 数据准备 在PoseScript的复现中,数据准备是一个重要的环节。需要收集包含自然语言描述和对应3D姿态的数据集。这些数据集可以包括但不限于Human3.6M[^3]或AMASS[^4]等公开数据集。此外,还需要对自然语言进行预处理,例如分词、向量化等操作,以便输入到神经网络中。 ```python # 示例代码:加载数据集并进行预处理 import numpy as np from transformers import BertTokenizer def load_dataset(dataset_path): # 加载数据集 data = np.load(dataset_path) return data['texts'], data['poses'] def preprocess_text(texts): # 使用BERT tokenizer对文本进行编码 tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') tokenized_texts = tokenizer(texts, padding=True, truncation=True, return_tensors="pt") return tokenized_texts texts, poses = load_dataset('dataset.npz') tokenized_texts = preprocess_text(texts) ``` #### 模型设计 PoseScript的核心在于构建一个能够将自然语言映射到3D姿态的模型。这通常涉及使用序列到序列(Seq2Seq)架构或Transformer模型来完成任务。具体来说,可以采用以下结构: 1. **编码器**:用于将自然语言描述转换为隐空间表示。可以使用预训练的语言模型如BERT[^5]。 2. **解码器**:用于从隐空间表示生成3D姿态。可以使用RNN或Transformer解码器。 ```python # 示例代码:定义编码器-解码器模型 import torch.nn as nn class PoseScriptModel(nn.Module): def __init__(self, vocab_size, hidden_dim, pose_dim): super(PoseScriptModel, self).__init__() self.encoder = nn.TransformerEncoder(...) self.decoder = nn.TransformerDecoder(...) def forward(self, text_input, pose_input): encoded_text = self.encoder(text_input) generated_pose = self.decoder(encoded_text, pose_input) return generated_pose ``` #### 训练过程 在训练过程中,需要定义损失函数以衡量生成的3D姿态与真实姿态之间的差异。常用的损失函数包括均方误差(MSE)或更复杂的几何损失函数。 ```python # 示例代码:训练模型 import torch.optim as optim model = PoseScriptModel(vocab_size=..., hidden_dim=..., pose_dim=...) optimizer = optim.Adam(model.parameters(), lr=0.001) criterion = nn.MSELoss() for epoch in range(num_epochs): for batch_texts, batch_poses in dataloader: optimizer.zero_grad() outputs = model(batch_texts, batch_poses) loss = criterion(outputs, batch_poses) loss.backward() optimizer.step() ``` #### 结果评估 为了评估模型性能,可以使用多种指标,例如姿态重建误差、视觉相似度等。此外,还可以通过定性分析生成的姿态是否符合自然语言描述的要求。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值