yzhangcs / parser

:rocket: State-of-the-art parsers for natural language.
https://parser.yzhang.site/
MIT License
827 stars 139 forks source link

biaffine问题 #81

Closed yt-liang closed 2 years ago

yt-liang commented 2 years ago

您好,我想问一下如何使用Chinese-bert来训练中文biaffine。因为预训练语言模型是需要字符输入的,中文如ctb数据都是以分好词的形式,那么您是如何对齐到词呢

yzhangcs commented 2 years ago

@yt-liang 输入BERT的时候可以转换成字符序列,然后对BERT输出根据词边界做一下pooling得到词表示

yt-liang commented 2 years ago

@yt-liang 输入BERT的时候可以转换成字符序列,然后对BERT输出根据词边界做一下pooling得到词表示

感谢您的回复。 1.pooling之后直接进行Biaffine还是还需要在进行LSTM编码 2.下载您的模型,发现英语的可以正常下载,中文的无法下载,是您那里关闭下载了吗?

yt-liang commented 2 years ago

手动下载然后移到目录可以解决问题。还想问您一下:1.pooling之后直接进行Biaffine还是需要再进行LSTM编码

yzhangcs commented 2 years ago

@yt-liang

pooling之后直接进行Biaffine还是还需要在进行LSTM编码

还需要LSTM编码一下

下载您的模型,发现英语的可以正常下载,中文的无法下载,是您那里关闭下载了吗?

请问具体是哪一个模型呢?另外请确保包升级到了最新版(>= 1.1.0),旧版本可能有一些未知问题

yt-liang commented 2 years ago

@yt-liang

pooling之后直接进行Biaffine还是还需要在进行LSTM编码

还需要LSTM编码一下

下载您的模型,发现英语的可以正常下载,中文的无法下载,是您那里关闭下载了吗?

请问具体是哪一个模型呢?另外请确保包升级到了最新版(>= 1.1.0),旧版本可能有一些未知问题

感谢您的回答。目前下载问题已经解决了。手动下载然后移到目录可以解决问题

yt-liang commented 2 years ago

@yt-liang

pooling之后直接进行Biaffine还是还需要在进行LSTM编码

还需要LSTM编码一下

下载您的模型,发现英语的可以正常下载,中文的无法下载,是您那里关闭下载了吗?

请问具体是哪一个模型呢?另外请确保包升级到了最新版(>= 1.1.0),旧版本可能有一些未知问题

您好,您的中文BERT做Biaffine具体pooling方法,和LSTM编码,和一些重要参数,你能介绍一下么,目前实现性能很低,谢谢您了。

yzhangcs commented 2 years ago

@yt-liang 能给出具体的训练命令吗

yt-liang commented 2 years ago

@yt-liang 能给出具体的训练命令吗

您好,您看一下我的想法对吗。就是我的bert得到字符了,pooling的方式我采用的是求平均,求平均之后输入到LSTM中(400,双向,4层),之后就是MLP、Biaffine了。优化器采用AdamW,学习率3e-5,weight_decay=1e-2。dropout=0.33,其它参数和Biaffine一样的

yzhangcs commented 2 years ago

@yt-liang Finetuning吗,那不需要LSTM直接训练BERT就可以了,其他参数设置可以参考EXAMPLES.md,如果不finetuning这里的学习率太小了

yt-liang commented 2 years ago

@yt-liang Finetuning吗,那不需要LSTM直接训练BERT就可以了,其他参数设置可以参考EXAMPLES.md,如果不finetuning这里的学习率太小了

不需要LSTM了吗,那什么情况需要接LSTM?反向传播会进行修改,算Finetuning吧

yzhangcs commented 2 years ago

@yt-liang 使用LSTM的话一般BERT的参数是冻结的,这里直接finetuning后面只需要MLP+Biaffine就可以了

yt-liang commented 2 years ago

@yt-liang 使用LSTM的话一般BERT的参数是冻结的,这里直接finetuning后面只需要MLP+Biaffine就可以了 感谢您,我使用Finetuning,现在UAS能达到88,就是到不了90左右。

yzhangcs commented 2 years ago

@yt-liang 正常的结果是?

yt-liang commented 2 years ago

@yt-liang 正常的结果是?

我用的CTB7数据集,LSTM87左右,我看其它使用bert的90左右,我的结果在88,就比LSTM好一点