自然语言推断:微调BERT

http://zh-v2.d2l.ai/chapter_natural-language-processing-applications/natural-language-inference-bert.html

Win10环境,单GPU运行Jupyter以下有错:

  1. data_dir = d2l.download_extract(‘SNLI’),永远不能解压缩下载的SNLI数据
  2. class SNLIBERTDataset 中
    def _preprocess(self, all_premise_hypothesis_tokens):
    pool = multiprocessing.Pool(4) # 使用4个进程
    out = pool.map(self._mp_worker, all_premise_hypothesis_tokens)

pool.map函数貌似会卡死。

  1. bert.small是用256给出的参数训练出来的吗,前面在14.9和14.10节中预训练bert是用的128训练,怎么这里改成了256?

  2. 代码里没有设置ignore_stale_grad=true,请问何来设置的呢?


    image

完结撒花
BTW
这篇的代码有BUG,无论是’bert.base’还是’bert.small’,都有不同的BUG
解决方法:

  1. 关于李沐书籍中“15.7 自然语言推断:微调BERT”节代码问题总结-pudn.com
  2. 完整BERT存在BUG(网络结构与预训练文件不匹配)解决方法:
    李沐动手学深度学习V2-BERT微调和代码实现_cv_lhp的博客-CSDN博客_bert微调代码
    上面的方法亲测有效