-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
joint_stg.py #11
Comments
似乎像是Transformer依赖的包版本低了 |
谢谢您的回答,我解决了这个问题 |
客气啦:) |
您好,我刚刚运行完joint_evaluate.py文件,看到输出是xlsx格式有uuid,sentence,label,...,但是我发现在您给出的测试网站上面是需要提交zip文件,里面是包含一个预测的json文件的.最后给出提交的json文件的的例子和一开始下载的训练文件差不多 ,例子有error_flag,error_type,correction。这和我的输出文件是不一致的。 这是需要自己写一个文件将输出的文件转换成json文件吗?还是需要怎么进行处理,这个地方需要您的帮助。真诚地感谢您的回答 |
您好, 如果你需要error_flag,error_type的指标,可以用PLM加全连接层训练一下! |
好的,我明白了,谢谢您的回答! |
客气啦:) |
您好, |
transformers我是按照您给的版本安装的4.3.3,那我尝试升级下试试谢谢您的回答 |
不客气,如果之后有问题,可以回复该Issue |
你看一个generator的是长什么样,看上面报错图里不是switch的 |
自己的训练的直接就能过去,是否是因为我自己训练的也是使用的cpu所以就能成功,而您给的检查点是使用gpu训练好的?但是那个gpu_id我也给调了0 |
你用了map_location的话应该是一致的 |
ummm有点奇怪,你检查一下generator_model.py里看看是否有Layernorm?然后Layernorm是否是Model/Layer/LayerNorm.py的? |
终于解决了,真的非常非常非常感谢您,祝您生活愉快,万事顺利。太谢谢您了!!!,抱歉打扰您这么久,问了一些无关的问题。再次感谢您! |
:)客气啦,没事的,也祝你生活愉快! |
我看了一下你的提交,问题出在json文件的名字应该是predict.json,详情请见Codalab的Evaluate: |
谢谢您,已经解决了 |
好的:) |
好的,谢谢您的回答。 |
我稍晚一点再更新一下代码测试一下,因为Modify的样本都应该被包含进去(包括MD)。因为有点久了,我有点忘了之前写的时候为什么加这个限制了,要再看一下。 不过应该只有Indep模型的性能会受到影响,Joint是另一种处理模式,等我确认更新后会在这里回复,再次感谢指出这个问题! |
收到,谢谢您。 |
您好,我在复现您的工作时,我在服务器上跑了几次,最终在您发布的网上评估上面结果是f0.5只有44,但是用您的检查点跑的有46,于是我将训练时每次的精度都保存了下看了看,我发现在Generator模块并没有达到论文中,char-level的0.71,sentence-level 0.68 ,我自己跑的时候最好的结果分别是0.58 和 0.76 ,这个地方和您论文中的结果相差比较大,我实验设置基本上是按照您代码中的给的设置的,但是epoch我设置的是50,但是论文附录上介绍的是100,batch_size我设置的是10,是这个主要影响的吗?还有在训练的过程中我发现偶尔在计算generaotr的loss是nan,好像是因为有些数据并不需要生成token,这个您也有发生吗?还有就是我加载的模型是hfl/chinese-roberta-wwm-ext,是在您代码脚本中的链接 https://github.com/ymcui/Chinese-BERT-wwm上找到的,我看见,他说这个预训练语言模型好像没有MLM的权重,如果需要做MLM任务需要自己二次训练。我想问问您,您是做了二次训练吗?而我没有做二次训练导致我复现的时候,在生成模块的准确率比较低。 |
您好,感谢对我们工作的关注!针对问题回答如下:
import torch
criterion = torch.nn.NLLLoss()
hidden = torch.randn((3, 2))
label = torch.LongTensor([0, 1, 2])
inds = torch.zeros(3)
print(criterion(hidden [inds>0], label[inds>0])) 输出: |
另外抱歉由于最近手头有一点点忙,之前说的那个修Bug的问题可能还要再晚一点:) |
没有关系,不着急,非常感谢您的帮助和回复! |
Fix nan problem for loss_mlm in JointLoss
你好, 对于GeneratorDataset.py我已经查看了代码,确实是之前可能哪里想错了。现在代码里已经把额外的判断注释掉了,应该没有问题了。另外JointLoss我也进行了改动,会判断loss_mlm是否为nan,是的话就不会加到total_loss里,应该就不会在小batch_size下出现错误了。 |
您好,最近我有个问题一直想问您,我在测试自己的方法时,发现验证集最后的平均精度和网站最后的结果似乎不太匹配,比如我这个方法验证集结果平均准确率有0.62 但是要比另一个方法最后的验证集打印的平均准确率0.63要低(这个要比第一个在最后的验证集打印的所有结果都要好或者有的持平,switch,tagger,generator三个模块的性能都好),但是网上评估最后的结果要比平均0.63的模型结果好,我想请问您遇到过这样的问题吗? |
您好, 这是正常的,这是因为验证集和测试集上Label的分布不一定是一样的,我们随机地对数据进行了划分。只要波动不是很大我认为都是比较正常的现象。模型保存的依据也是训练集上训练几个step后,在验证集上验证,当结果达到验证集上的最优性能表现后保存。但由于分布的问题所以参数不一定能在测试集上也能达到最优。这在所有任务上都是通用的现象。 |
好的谢谢您回复! |
客气啦 |
No description provided.
The text was updated successfully, but these errors were encountered: