HITsz-TMG / PPAT

PPAT: Progressive Graph Pairwise Attention Network for Event Causality Identification
10 stars 1 forks source link

RRGCATbert_dataset #5

Closed Moomyd closed 5 months ago

Moomyd commented 10 months ago

您好,我在运行中发现 assert len(self.PAD) == len(self.CLS) == len(self.TSTART) == len(self.TEND) == 1 assert pad_len >= 0 and len(token_pie) == len(pos_pie) 这四个变量的长度并不都等于1。 pad_len小于0并且token_pie和pos_pie的长度不相等。 请问您如何解决的?

foggy-frost-forest commented 10 months ago

你好, 感谢对我们工作的关注! 对于BERT的实验,需要在其词表中添加两个event marker tokens. 可以将BERT的 vocab.txt 文件中的[unused0], [unused1]替换, 样例如下:

[PAD]
<t>
</t>
[unused2]
[unused3]
[unused4]
[unused5]

对于pad_len<0的问题, 可以设置--maxlen 512, --tokenlen 380, --shiftlen 190, 如果仍然出现此问题, 可以适当减少--tokenlen

如果以上方法无法解决问题, 请告知我们.

glare-ni commented 9 months ago

您好,我在运行中也遇到了上述问题,在尝试了您所提出的解决办法后仍未解决该问题: 其中,对于 assert len(self.PAD) == len(self.CLS) == len(self.TSTART) == len(self.TEND) == 1 即使如您所述添加了后,self.TSTART打印结果仍然为['<', 't', '>'],self.TEND打印结果仍然为['<', '/', 't', '>']。 对于 assert pad_len >= 0 and len(token_pie) == len(pos_pie) 在源码预设数值下,len(pad_len) is = -24,len(token_pie) = 536,len(pos_pie) = 321。我多次尝试减少了--tokenlen,发现其在200附近可以保证len(pad_len)>0,但剩下两项始终无法相等。 针对这两个问题,请问您还有别的建议吗?

foggy-frost-forest commented 9 months ago

你好, 这个问题应该是没有将""和""作为special token加入到BERT的tokenizer中。可以先确认一下tokenizer的加载路径是否是从修改过的vocab.txt的所在的文件夹路径。如果还是不行,下面有两种方法:

self.TSTART = tokenizer.tokenize('[unused2]')
self.TEND = tokenizer.tokenize('[unused3]')
glare-ni commented 9 months ago

您好,我发现RRGCAT(BERT)/RRGCATbert_framework.py的38行与82行似乎是不正确的

foggy-frost-forest commented 9 months ago

您好,我发现RRGCAT(BERT)/RRGCATbert_framework.py的38行与82行似乎是不正确的

您好, 能否提供一些更详细地描述, 例如错误类型等。 请问您是否使用的是标准的bert-base模型?其可以通过下面的链接获取https://huggingface.co/bert-base-uncased

ytWu1314 commented 8 months ago

我遇到的问题和以上提出的一样,对于 assert len(self.PAD) == len(self.CLS) == len(self.TSTART) == len(self.TEND) == 1 这里的报错,尝试了上面的方法都不行,想请问作者你现在还能运行代码吗?是不是有哪些不一样的。

glare-ni commented 8 months ago

您好,我发现RRGCAT(BERT)/RRGCATbert_framework.py的38行与82行似乎是不正确的

您好, 能否提供一些更详细地描述, 例如错误类型等。请问您是否使用的是标准的bert-base模型?其可以通过下面的链接获取 https://huggingface.co/bert-base-uncased

具体来说,RRGCATbert_framework.py的82行指向的是encoder/BERT-base中的tokenizer,我做了两处修改:一处是在38行之后插入了 self.tokenizer = model.tokenizer 另一处是在82行修改为 tokenizer = self.tokenizer。 作出上述修改可能是因为在encoder/BERT-base/vocab.txt中adding and as event marker tokens无法起到效果,导致代码运行一直报错;在作出上述修改后,代码运行没有报错。 如果您方便的话,请检查一下这种修改是否背离您代码的原意(由于显卡显存过小,只成功在Causal-TimeBank数据集上运行了代码,但效果与您论文中所描述的相差甚远)

foggy-frost-forest commented 8 months ago

您好,我发现RRGCAT(BERT)/RRGCATbert_framework.py的38行与82行似乎是不正确的

您好, 能否提供一些更详细地描述, 例如错误类型等。请问您是否使用的是标准的bert-base模型?其可以通过下面的链接获取 https://huggingface.co/bert-base-uncased

具体来说,RRGCATbert_framework.py的82行指向的是encoder/BERT-base中的tokenizer,我做了两处修改:一处是在38行之后插入了 self.tokenizer = model.tokenizer 另一处是在82行修改为 tokenizer = self.tokenizer。 作出上述修改可能是因为在encoder/BERT-base/vocab.txt中adding and as event marker tokens无法起到效果,导致代码运行一直报错;在作出上述修改后,代码运行没有报错。 如果您方便的话,请检查一下这种修改是否背离您代码的原意(由于显卡显存过小,只成功在Causal-TimeBank数据集上运行了代码,但效果与您论文中所描述的相差甚远)

您好, 请在原始上传的RRGCATbert_datasets.py代码的38行之后添加下述代码,

special_tokens_dict = {'additional_special_tokens': ['<t>', '</t>']}
tokenizer.add_special_tokens(special_tokens_dict)

同时在RRCGATbert_model.py的218行后面添加如下代码:

special_tokens_dict = {'additional_special_tokens': ['<t>', '</t>']}
self.tokenizer.add_special_tokens(special_tokens_dict)
self.encoder.resize_token_embeddings(len(self.tokenizer))

希望这能够解决您的问题, 我将在之后上传一个新的版本的代码, 感谢您的关注

foggy-frost-forest commented 8 months ago

我遇到的问题和以上提出的一样,对于 assert len(self.PAD) == len(self.CLS) == len(self.TSTART) == len(self.TEND) == 1 这里的报错,尝试了上面的方法都不行,想请问作者你现在还能运行代码吗?是不是有哪些不一样的。

您好, 请尝试参考一下上述办法, 希望能够解决您的问题, 感谢您对我们工作的的关注!

ytWu1314 commented 7 months ago

您好,请问一下怎么使用多GPU运行?在运行ESL的数据集会显存溢出。

foggy-frost-forest commented 6 months ago

您好, 您可以参考PPAT(Long)文件夹中的模型代码, 将每层图网络放在不同的GPU上, 或者适当减少gat_hidden_size参数.

------------------ 原始邮件 ------------------ 发件人: "HITsz-TMG/PPAT" @.>; 发送时间: 2024年2月13日(星期二) 晚上11:24 @.>; @.**@.>; 主题: Re: [HITsz-TMG/PPAT] RRGCATbert_dataset (Issue #5)

您好,请问一下怎么使用多GPU运行?在运行ESL的数据集会显存溢出。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>