learner-crapy / Chinese_English_Coreference_Resolution

Chinese and english coreference resolution based on SpanBERT and BERT
2 stars 0 forks source link

Help for Chinese_English_Coreference_Resolution Project #1

Open mtang398 opened 1 year ago

mtang398 commented 1 year ago

你好,我最近也在试图运行troublemaker的程序,但是一直都有些问题。主要是就是我显出不够,所以把一些size的参数调小了,但那样的结果就是Found too many repeated mentions (> 10) in the response, so refusing to score。

mtang398 commented 1 year ago

如果不调小size那么我rtx 3080就跑不了这个程序,你可以给我说说到底怎么改才能避免这些问题吗,如果可以的话,你可以把你跑出来的中文结果给我看看做个参考吗?我的wechat id是maotze 666, 邮箱是mstang3002@gmail.com. 我先提前谢谢 了!

learner-crapy commented 1 year ago

我不太了解你说的troublemaker程序,但我猜测这可能是指的是共指消解问题,但是没有具体的项目信息似乎不能提出什么较好的建议,这里我以bert的处理方式举例,除了bachsize这个参数,max_seq_len这个参数对也很重要,另外模型的选择可以选择参数较少的模型来进行微调,下面是基于bert,加上几个dense层得到的中文下的共指消解的几个指标曲线图,待工作完毕之后再将项目上传。

image image image image image image

mtang398 commented 1 year ago

你好,非常感谢你的回复!我目前正在做中文的指代消解的项目,试图复现 https://github.com/troublemaker-r/Chinese_Coreference_Resolution 这个项目,我再这下面看到了你的留言感觉你对这方面的了解还挺多的,所以想来请教你一下。这是我目前的设置,按照他提供的设定:

Chinese model configuration.

bert_base_chinese {

Edit this

data_dir = C:/Users/mstan/project/Chinese_Coreference_Resolution-main/data

Computation limits.

max_top_antecedents = 50 max_training_sentences = 11 top_span_ratio = 0.4 max_num_speakers = 20 max_segment_len = 128

Learning

bert_learning_rate = 1e-05 task_learning_rate = 0.0002 adam_eps = 1e-6 dropout_rate = 0.3

Task choice

num_docs = 1810 num_epochs = 30 do_train = true do_eval = true do_test = true do_one_example_test = true eval_frequency = 5000 report_frequency = 10

Model hyperparameters.

genres = ["bc", "bn", "mz", "nw", "tc", "wb"] coref_depth = 2 ffnn_size = 2000 feature_size = 20 max_span_width = 30 use_metadata = true use_features = true use_segment_distance = true model_heads = false fine_grained = true use_prior = true single_example = true

file path

train_path = ${data_dir}/train/train.chinese.128.jsonlines eval_path = ${data_dir}/dev/dev.chinese.128.jsonlines test_path = ${data_dir}/test/test.chinese.128.jsonlines test_output_path = ${data_dir}/test_result.jsonlines online_output_path = ${data_dir}/online_test_result.jsonlines conll_eval_path = ${data_dir}/dev/dev.chinese.v4_gold_conll conll_test_path= ${data_dir}/test/test.chinese.v4_gold_conll model_save_path = ./trained_coref_model pretrained_model = ./pretrain_model/ vocab_file = ./pretrain_model/vocab.txt bert_config_file = ./pretrain_model/bert_config.json } 我目前不是很清楚我该调整那些东西才能让我的RTX 3080跑完这个程序,之前我改过ffnn-size和coref-depth但那样scorer.pl就会refuse to score. 你说的那些改batch size和max-seq-len又是需要在哪里改呢?大概需要改成什么样子的?还又最后一个问题中文的F1 score大概多少才是正常的呢,有没有相关数据可以提供一下,麻烦了。

非常抱歉打扰你这么久,非常感谢你的帮助。希望你学业/事业顺利。

On Thu, May 4, 2023 at 12:44 PM Daze Lu @.***> wrote:

我不太了解你说的troublemaker程序,但我猜测这可能是指的是共指消解问题,但是没有具体的项目信息似乎不能提出什么较好的建议,这里我以bert的处理方式举例,除了bachsize这个参数,max_seq_len这个参数对也很重要,另外模型的选择可以选择参数较少的模型来进行微调,下面是基于bert,加上几个dense层得到的中文下的共指消解的几个指标曲线图,待工作完毕之后再将项目上传。

[image: image] https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_69768456_236267734-2Db31c2375-2D8fcc-2D4722-2D80c8-2D3ed3a4e99afa.png&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=NAY9RZdCS2Se94cged2xQ-ofXGSI1zjgcgn9Rkv-1HQ&e= [image: image] https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_69768456_236267825-2Dc8e06323-2D3d36-2D4e74-2Db188-2Dfa05cf318ccc.png&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=Gl6sI1SOJCiIqLeUBIEgdR1NNhCiaYAkxg-NhzA2RI4&e= [image: image] https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_69768456_236267882-2Dd84b2649-2Dcfa1-2D4dab-2D949a-2Dd8c3bedb9a19.png&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=XDoqOCxfp2KPOEw0uPirePDTu6Bk2UWn_bJbtoz7X6c&e= [image: image] https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_69768456_236267958-2D6c862fad-2Dd040-2D4599-2D8546-2Ddf99c3a66e36.png&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=V8tPgnX_fVUPgzz8WLLVFdgPhO2ouWscxVmj-Pfi-EA&e= [image: image] https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_69768456_236268007-2D91fb11d4-2Dabe5-2D4615-2D81f6-2D25f15b4b407b.png&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=plVmIyNe0Hxt_hig5UDjYonS4Cjvoezs68SgpEOHtmM&e= [image: image] https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_69768456_236268057-2Db51fa857-2Dbd68-2D4d3b-2D931e-2Dacf04609e74b.png&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=liZqBx_eyVsNpL-b0uuo1cdHV1_aSt-HsNNdUbydhV8&e=

— Reply to this email directly, view it on GitHub https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_learner-2Dcrapy_Chinese-5FEnglish-5FCoreference-5FResolution_issues_1-23issuecomment-2D1535066132&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=elgoqmU2ViaOx_yUkb24XBeUbykTwl03H9Q7Y0DrzR4&e=, or unsubscribe https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AZHNYVJFOAQX7JFXTA2MLATXEPMHDANCNFSM6AAAAAAXV73Z7Q&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=vv77IKcACTrK-f_JoAKZg434ktELkuyqXNW0y0BxrZYLCxDvrUi-4UsjH8jXaTLL&s=s42stVSYQdiNIbXWn7Bddj2LzXkxRk0VbW0AwSDGMlg&e= . You are receiving this because you authored the thread.Message ID: <learner-crapy/Chinese_English_Coreference_Resolution/issues/1/1535066132@ github.com>

learner-crapy commented 1 year ago
    你好,这个项目我也也只是跑了一下,原因是这个项目中有的文件在win下不支持,在ubuntu上我并没有够条件的显卡去运行这个任务,当时可能是微调了一下。

image 上图我圈出来这几个参数对显存的影响较大,可能还有其他参数,具体你要查看与这个参数相关的代码,如果这些参数使得计算的张量发生很大的变化,那也可以调整, 这个项目的参数max_segment_len 和我说的max_seq_len应该是一样的,表示文本嵌入的向量大小。

另外中文共指消解我没有查到相关的前沿文章,查到的只有几篇用机器学习方法做的文章,F1不到60%,这实在令人遗憾,英文的在OntoNo数据集下目前最高记得是83.3,你可以参考这个链接查看排行榜:https://paperswithcode.com/sota/coreference-resolution-on-conll-2012

调参时可能需要注意的是,有的参数调大调小可能产生张量之间不匹配的问题,比如ffnn_size 这个参数,具体你可能要看一下具体实现的代码然后进行调整。

学术交流勿言打扰,若有好结果,望告知,必前往拜读学习。 regards

mtang398 commented 1 year ago

你好,我的中文指代消解跑出来了,最后的average f1结果大概是66.96左右,这个结果的确显著低于英文的训练成果,但比起那些机器学习的结果已经好上很多了,不知道你跑出来的结果大概如何。[image: Image_20230507091423.jpg][image: Image_20230507091420.jpg][image: Image_20230507091427.png] 谢谢此前提供的帮助!

best, Maosen Tang

On Fri, May 5, 2023 at 2:54 AM Daze Lu @.***> wrote:

你好,这个项目我也也只是跑了一下,原因是这个项目中有的文件在win下不支持,在ubuntu上我并没有够条件的显卡去运行这个任务,当时可能是微调了一下。

[image: image] https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_69768456_236391755-2Dd43217a4-2D5ea5-2D4794-2D9d2b-2D2ac1658c8a6a.png&d=DwMGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=QyD1Q2Yz5xA_kv-MFNA3jkxMpZRZ8z_xlUaWB6WVNQzpjJ7EUGx9BAoTN5WyAh-i&s=T85P8Eh2-mEGsEqSMjIDMAslqOS5cMfFxbjVWQRzOS4&e= 上图我圈出来这几个参数对显存的影响较大,可能还有其他参数,具体你要查看与这个参数相关的代码,如果这些参数使得计算的张量发生很大的变化,那也可以调整, 这个项目的参数max_segment_len 和我说的max_seq_len应该是一样的,表示文本嵌入的向量大小。

另外中文共指消解我没有查到相关的前沿文章,查到的只有几篇用机器学习方法做的文章,F1不到60%,这实在令人遗憾,英文的在OntoNo数据集下目前最高记得是83.3,你可以参考这个链接查看排行榜: https://paperswithcode.com/sota/coreference-resolution-on-conll-2012 https://urldefense.proofpoint.com/v2/url?u=https-3A__paperswithcode.com_sota_coreference-2Dresolution-2Don-2Dconll-2D2012&d=DwMGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=QyD1Q2Yz5xA_kv-MFNA3jkxMpZRZ8z_xlUaWB6WVNQzpjJ7EUGx9BAoTN5WyAh-i&s=gGiMPIe1ko-nffMtCFO1H5Mr6XaVeZPsqpyt26rsjbQ&e=

调参时可能需要注意的是,有的参数调大调小可能产生张量之间不匹配的问题,比如ffnn_size 这个参数,具体你可能要看一下具体实现的代码然后进行调整。

学术交流勿言打扰,若有好结果,望告知,必前往拜读学习。 regards

— Reply to this email directly, view it on GitHub https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_learner-2Dcrapy_Chinese-5FEnglish-5FCoreference-5FResolution_issues_1-23issuecomment-2D1535799208&d=DwMGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=QyD1Q2Yz5xA_kv-MFNA3jkxMpZRZ8z_xlUaWB6WVNQzpjJ7EUGx9BAoTN5WyAh-i&s=1TuV1vQM_VXZ-gVPNOB8IeSptLvBOgJu-kPeyTqYTSM&e=, or unsubscribe https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AZHNYVOUO2PP67VTEUJD2BTXESPXPANCNFSM6AAAAAAXV73Z7Q&d=DwMGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=xo57MW0RT1mABH9M8k8OWw&m=QyD1Q2Yz5xA_kv-MFNA3jkxMpZRZ8z_xlUaWB6WVNQzpjJ7EUGx9BAoTN5WyAh-i&s=Uk6TBTzJ7ko7MEfFg7yaYDFBJNHeJ6oUdxb59OvTu8Q&e= . You are receiving this because you authored the thread.Message ID: <learner-crapy/Chinese_English_Coreference_Resolution/issues/1/1535799208@ github.com>

learner-crapy commented 1 year ago
   我之前跑出来的结果和你的差不多,但是和google公布的结果还是相差甚远,谷歌官方的代码我跑过,和论文里的数据几乎是一样的,这里的代码为中文共指消解而搭建,可能是不适合直接使用在英文数据集上,因为中英文在将文字对应为vocab.txt中的数字下标处理的方式是不一样的,英文直接可以使用text.split(' ')即利用空格来分割,而中文直接遍历即可

image 这是英文下的tokens处理 image 这是中文下的tokens处理

你可能需要关注一下代码中是不是存在这样的问题。

regards!