NLP GLUE baseline环境搭建

1.0 背景

记录一下自己运行GLUE baseline的一些坑。

2.0 正文

2.1 环境(Linux)

安装ubuntu:

版本:ubuntu-18.04.1-desktop-amd64.iso		

安装conda:

	https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
	Miniconda3-latest-Linux-x86_64.sh
	输入命令:source ~/.bashrc

设置虚拟机共享目录(可选):
在这里插入图片描述

开始安装glue:

	按照官方给出的环境文件安装:
	conda env create -f environment.yml
	(我安装好环境后也导出了一个yml,但是直接安装还是会有一些报错,但可以跳过“问题1”)

问题1:

  • 网络不行,里面包的下载不下来。
  • 那就只能自己按照文本内容一个个装了。

问题2:

  • Error:没有sklearn.utils.linear_assignment_

  • 百度了一下,说是scikit-learn版本问题。卸载原来的scikit-learn,安装低版本的:

      pip3 install -i https://pypi.douban.com/simple scikit-learn==0.19.2
    

问题3:

  • Error:from allennlp.modules.matrix_attention import DotProductMatrixAttention

  • 安装github上面glue-baseline给的环境文件中,allennlp是0.4版本的,但是看了下0.4的代码文件里面没有这个matrix_attention的文件夹,但是github上的allennlp是有的,然后看了下版本更新,发现是从0.5版本开始支持0.4的pytorch(环境文件里给安装的是0.4的pytorch)。于是:

      pip uninstall allennlp
      pip install  allennlp==0.5
    

问题4:

  • Error:pg_config executable not found.

  • 百度上的很多方法都试了,只有下面这个有效:

      sudo apt-get install libpq-dev python-dev
    

问题5:

  • 缺少cove,或者无法加载MTLSTM

  • 需要安装cove,官方安装方法如下:

      git clone https://github.com/salesforce/cove.git # use ssh: git@github.com:salesforce/cove.git
      cd cove
      pip install -r requirements.txt
      python setup.py develop
    

    但是pip install -r requirements.txt的时候不行,然后手动装torchtext,注意版本:pytorch0.4是对应torchtext0.2.3。

      pip install torchtext==0.2.3
    

问题6:

  • 运行的时候发现log中显示:Finished building vocab. Using 2 words
    (看着就不正常,但是不报错,会一直运行到beginning trainning然后就卡住了)
    或者一直闪一段重复的log

  • 最后发现似乎是缺少nltk的punkt,然后按照以下方法装好,就没问题了:

      git clone https://github.com/WILDCHAP/nltk_data
      注意:要把下好的nltk_data放到能索引到的目录里(比如:/home/用户名/)
    

    具体可以参考博客:https://blog.csdn.net/WILDCHAP_/article/details/108670801

问题7:

  • 缺少gcc

      sudo apt update
      sudo apt install build-essential
    

问题8:

  • 其他

      pip install overrides==4.1.2
    

问题9:

  • 找不到训练数据集

      glue代码里面/src/preprocess.py 中22行的这个地址要换成自己放glue数据的地址,
      比如cola数据放在glue/CoLA ,这里就写/mnt/hgfs/share_file/glue/
    

在这里插入图片描述

2.2 测试

	python /mnt/hgfs/share_file/GLUE-baselines-master/src/main.py --exp_dir /mnt/hgfs/share_file/all_out --run_dir /mnt/hgfs/share_file/all_out/run_dir --train_tasks cola --eval_tasks none --word_embs_file /mnt/hgfs/share_file/glove.840B.300d.txt --n_epochs 1 --cuda -1 --classifier_hid_dim 64 --d_hid 64 --val_interval 50 --patience 2

–exp_dir、–run_dir是输出的路径,–train_tasks 可以选all、none、或者几个任务名用,分隔。
(注意:all表示的是 [‘mnli’, ‘mrpc’, ‘qqp’, ‘rte’, ‘qnliv2’, ‘snli’, ‘sst’, ‘sts-b’, ‘wnli’, ‘cola’] 这些任务,比glue给的数据集下载地址 https://gluebenchmark.com/tasks 上可以下载的少了一个snli,但是提交的要求里也不含这个所以去掉就好了。如果没有要训练的任务,必须填none,不设置这个参数的话运行过程中会产生任务名为空串 “” 的任务,key找不到而出错。)
–cuda -1 没有gpu要设置为-1
–eval_tasks 这个和–train_tasks的区别是,train是基线模型(bilstm的那个)上面用glue数据集进行训练;eval指的是在模型后面加一层分类器,然后用glue数据集训练分类器,需要自己在源码里面添加连接代码,好像有给个空的函数可以填。

2.4 在服务器上安装时出现的新错误

  • sudo apt-get -f install 后出现错误:
dpkg-deb: error: archive '/var/cache/apt/archives/nsight-compute-2019.4.0_2019.4.0.12-1_amd64.deb' has premature member 'control.tar.xz' before 'control.tar.gz', giving up
dpkg: error processing archive /var/cache/apt/archives/nsight-compute-2019.4.0_2019.4.0.12-1_amd64.deb (--unpack):
 subprocess dpkg-deb
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值