xlxwalex / FCGEC

The Corpus & Code for EMNLP 2022 paper "FCGEC: Fine-Grained Corpus for Chinese Grammatical Error Correction" | FCGEC中文语法纠错语料及STG模型
https://aclanthology.org/2022.findings-emnlp.137
Apache License 2.0
108 stars 12 forks source link

404 client #21

Closed YJforgithub closed 1 year ago

YJforgithub commented 1 year ago

作者你好,在运行你的程序的时候,遇到一个问题,我想运行单句子改错,但是报错显示404 Client Error: Not Found for url: https://huggingface.co//datadisk2/xlxw/Resources/pretrained_models/roberta-base-chinese/resolve/main/config.json

这个问题该怎么解决

xlxwalex commented 1 year ago

Hi,这个问题是你需要把PLM的路径进行修改,你提示报错的部分 datadisk2/xlxw/Resources/pretrained_models/roberta-base-chinese/是我这边的预训练模型存放路径。

修改方式有两种方法:

  1. 将bash文件如run_stg_joint.sh中的PLM_PATH=改成你机器上预训练模型的存放路径
  2. 将参数文件evaluate_joint_config.pylm_path的默认值改成你机器上预训练模型的存放路径

如果你的机器上没有下载预训练模型,可以访问:

  1. pretrained-models中的各个仓库
  2. 直接在Huggingface对应的位置进行下载,如roberta-base-chinese可以在hfl/chinese-roberta-wwm-ext中找到。

如果你还有问题别的问题,欢迎在下面回复。

YJforgithub commented 1 year ago

我对项目预训练模型还存在一些问题,在readme中作者提到将checkpoints.pt放到model/STG-correction/checkpoints目录下,但是我放在这里的话,会提示No such file or directory: 'checkpoints/joint_model/checkpoint.pt',于是我新建了一个joint_model文件夹,并把checkpoints.pt改名为checkpoint.pt。之后就有了issue上的第一次发言。 我按照作者的修改方法,把Chinese-roberta-wwm-ext中的config,json,pytorch_model.bin以及tf_model.h5进行下载,把他们放在checkpoints/joint_model下,如图所示,但是会报新的错误,将max_generate改为5似乎不能解决问题 image 报错如下,似乎是多个权重文件的问题,不知道我处理预训练模型和checkpoint的方法有没有问题 3

xlxwalex commented 1 year ago

Hi,

lm_path专指预训练模型的参数,所以比较合适的方案是不要将这两个路径合并:你应该创建设置一个单独的文件夹,可以叫它roberta-base-chinese,并将config,json,pytorch_model.bin,tokenizer.json,tokenizer_config.json,vocab.txt这几个文件放入文件夹中,然后将lm_path的值指向这个路径。

然后你需要在checkpoints文件夹中创建joint_model子文件夹,并将README中提到的我们的STG模型的参数checkpoint.pt放到该子文件夹中。

这样才是完整的配置方式,如果还有问题,欢迎回复。

YJforgithub commented 1 year ago

感谢作者帮忙,已经成功运行了,但似乎还有一个问题 image image 按照issue3我将max_generate和tagger_classes都改成5,似乎模型和权重之间有些偏差

xlxwalex commented 1 year ago

你好,

ISSUE3中我没有找到提到了将tagger_classes设为5的信息,这个是Tagger类型,因此不应该被改变才对,只有max_generate需要修改

YJforgithub commented 1 year ago

tagger_classes初始值为6,现在我修改回来了,max_generate修改成5,红字依旧存在,有什么办法能解决这个问题吗,但是singleline能运行,而demo_pipeline 只有在tagger_classes为7才能运行

xlxwalex commented 1 year ago

红字是不需要管的,那个是个warning,是因为hfl的预训练模型没带LMHead的权重,所以才会这样,这个是正常的。

YJforgithub commented 1 year ago

感谢作者回复,十分感谢

xlxwalex commented 1 year ago

客气啦