ymcui/Chinese-ELECTRA

ELECTRA-base的配置文件的参数设置

ChrisChaw opened this issue · 21 comments

请问ELECTRA-base, Chinese: 12-layer, 768-hidden, 12-heads, 102M parameters的params_cmrc2018.json配置文件参数是什么?README里提供的是ELECTRA-small

ymcui commented

把small换成base,其余参数请自行调参(主要修改学习率)。另外,请不要重复开贴,有问题请在本帖继续提问,谢谢。

image
您好,请问这两个文件discriminator.json和model.bin在哪里?

ymcui commented

如果你说的是ELECTRA-base-discriminator,请下载PyTorch版本的权重。
https://github.com/ymcui/Chinese-ELECTRA#模型下载
选择ELECTRA-base, Chinese -> PyTorch-D的谷歌或者讯飞云下载点进行下载。

还需要请教您
image
image
tf的checkpoint file在哪里?

ymcui commented

截图中的内容是手动将TensorFlow版模型转换成PyTorch版本的步骤。

  1. 如果你已经下载了PyTorch版本的模型是不需要上述步骤的。
  2. 如果你下载的是TensorFlow版本的模型,但要转换成PyTorch版本,则需要上述步骤。
    ./path-to-large-model/指的是你下载下来的TensorFlow版本权重存放的位置。

我需要pytorch版本,但是代码都是tensorflow版本的

ymcui commented

本目录的模型TF/PT都可以使用,但代码只提供TF版本。
PyTorch版代码请你参考transformers库的用法,这里不做进一步讨论。

image
image
报错提示需要 'checkpoint' file or checkpoints in given directory train/models/cmrc2018 checkpoint文件在哪里?是预训练生成的吗?启动预训练的命令 是什么?应该先预训练好模型后保存,才能微调吧?

ymcui commented
  1. checkpoint是tensorflow版本所需要的,你不是用PyTorch吗?
  2. 感觉你应该是对预训练和精调有一些理解上的问题,建议你看一下ELECTRA论文。
  3. 我们提供的就是已经预训练好的模型了,你直接就可以在上面做精调。
ymcui commented

抱歉,时间有限,没法一一解答。
建议你补充一下预训练模型相关基础知识,比如看一下ELECTRA的论文以及官方目录:https://github.com/google-research/electra

这就是运行fine tuning时报的错。

ymcui commented
该项目是已经预训练好的,预训练好的checkpoint file保存在哪里了?在运行fine tuning时报错未找到checkpoint file,烦请告知,感谢。

你下载TensorFlow版的权重就会有checkpoint文件了。
如果还是找不到,你就自己写一个文件,保存成checkpoint。
至于checkpoint文件是什么,你可以去学习TensorFlow的基础课程。

model_checkpoint_path: "electra_small"
all_model_checkpoint_paths: "electra_small"

image
image
我用的base版本的,解压后确实没发现有像small版本的checkpoint文件。
这是执行fine tuning后生成的文件:
image
经查阅,checkpoint文件是个后缀为.ckpt的文件 这种文件自己怎么写?

ymcui commented

我怀疑你有没有认真看我的回复。上面明明说了是得用TensorFlow版的权重才会有checkpoint文件。
你最后一张里的截图是CMRC 2018训练集所对应的tfrecord,并不是什么模型文件。
真心建议你先补充一下TensorFlow或者PyTorch的基础再进行上述实验。关于TF/PT基础方面的问题我这边没法一一解答了。

现在想起来了 我应该下载tensorflow版本的模型 因为确实没用过tensorflow 所以不好意思 麻烦您了

这个项目在服务器上跑了一下(tensorflow版本的),内存爆了。
image

image
请教一下,我用 Transformers引用electra-base,MODEL_NAME是不是等于画红框的部分?还需要在transformers里面修改代码 ?请告知,感谢!

ymcui commented

是,但是具体用法你还是要认真学习一下transformers库的基本用法。

image
请问是像这样下载吗?

ymcui commented

是,麻烦你自己先钻研,先把需要的背景知识和工具都学习一下再进行实验。大家的时间都挺宝贵的,谢谢。

torch模型的forward方法里面内容为空,用Electra模型无法训练。
image
image
上图是训练模型时调用的forward方法,这个方法里的代码为空,下图是报的错,请大佬百忙之中看一下这个问题该如何解决?非常感谢您!!!