DSTC11-TRACK5——复现历程2

目录

前言(训练用时):

一、前期准备

二、重续前路

2.1部署ssh连接:

2.2设置映射(本地与服务器文件互传)关系并上传文件到服务器

三、跑baseline

3.1速通requirements

3.2攻下run_baseline_training.sh

3.2.1 .sh执行权限问题

3.2.2 ModuleNotFoundError: No module named 'rouge_score'

3.2.3 undefined symbol: cublasltHSHMatmulAlgolnit, version libcublaslt. so.1l​编辑

3.3进军run_baseline_eval.sh

3.3.1 requirements遗留问题:summ_eval

3.3.2 最终问题,RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling `cublasLtMatmul


前言(训练用时):

3060环境下,

training.sh第一阶段20min*10次迭代

training.sh第二阶段共约6h

training.sh第三阶段共约1h

eval.sh第一阶段10min

eval.sh第二阶段30min

eval.sh第三阶段,其实10min内就能训练完,但是总时卡在第1104个数据,这里的出错就是最终的问题了

一、前期准备

书接上回(近日学习10.22 http://t.csdnimg.cn/W2kbA

那时候的我逐渐意识到自己能力的问题,面对需要的文件上传到服务端,对我而言只有两条路:1、在服务端通过wget、git clone等命令直接下载

2、在pycharm通过ssh上传

对于1,存在的问题就是某些文件需要梯子才能下载

对于2,存在的问题是我的pycharm是以前搞的2022社区版,没有ssh传输功能,需要换专业版

鉴于个人本地的虚拟环境和pycharm均已过于杂乱,于是当天就把电脑里所有的anaconda,miniconda,pycharm,python都卸了(可能是之前做课设的时候安装了一堆东西),然后网上找了一个搞pojie pycharm专业版的教程Pycharm2023.1专业版安装与激活

里面包含了从anaconda到pycharm激活的全部流程,总而言之就是安装好了2023.1版本的pycharm,能够进行ssh传输了!


二、重续前路

为了方便管理,不污染已经存在的文件,所以我重新把相关文件复制一遍放到d盘

2.1部署ssh连接:

tools-start SSH Session-填写地址、端口、用户名、密码即可

然后命令行就会自己蹦出来,跳转到输入的网口地址,进入服务器了

进入服务器之后,在自己需要的地方mkdir XXX创建文件夹

2.2设置映射(本地与服务器文件互传)关系并上传文件到服务器

tools--deployment--confiduration--+号--SFTP(这里创建一个名字,如SAM)--mappings

local path就是本地的文件夹地址,deployment path就是我们刚刚创建的服务器文件夹地址

但是这个时候服务器文件夹内容还是空的,这就需要我们把本地文件上传上去了

右键本地文件夹,找到deployment,选择upload to SAM(刚刚创建的名字),就可以看到文件正在上传了

上传完后,可以到刚刚蹦出来的命令行cd到文件夹看看是否上传的文件都在,至此完成了最基础的文件配置,可以说能开始进行复现了


三、跑baseline

3.1速通requirements

有了前面的经验(10.22近日学习http://t.csdnimg.cn/W2kbA),requirements可以参考“2准备工作的问题”,唯一可优化的就是punkt和wordnet本地解压后文件夹可以直接在pycharm上传的服务器了,更方便了一点


3.2攻下run_baseline_training.sh

3.2.1 .sh执行权限问题

首先需要注意的是,不知道为什么,.sh文件都是没有执行权限的,需参考 10.22近日学习http://t.csdnimg.cn/W2kbA “3.1执行:$ ./bin/run_baseline_training.sh 时,报错:Permission denied没权限(执行权限)”,给training.sh和eval.sh添加执行权限

3.2.2 ModuleNotFoundError: No module named 'rouge_score'

解:直接pip install,后面好像还缺了个啥,也直接pip install就好

3.2.3 undefined symbol: cublasltHSHMatmulAlgolnit, version libcublaslt. so.1l

解:其实出现这个就是torch与cuda版本不匹配的问题了,直接查看自己的版本然后修改为合适的版本(比如我从11.1换成了11.7就好了(torch==1.13.1适配cuda==11.6/11.7))

3.2.4ImportError: cannot import name 'get_full_repo_name' from 'huggingface_hub' (/disk2/anaconda3/lib/python3.9/site-packages/huggingface_hub/__init__.py)

解:老问题,没法直接从huggingface下载模型,这就得我们自己下到本地然后上传到服务器

但是到底要下载什么模型呢?这就得回到我们的training.sh了,可以看到需要在huggingface找到microsoft/deberta-v3-base和(忘了是谁好像是facebook?)的bart-base(facebook/bart-base)

知道要下什么就直接下载到本地把,记得最好按照他原本的文件嵌套模式(比如新建一个microsoft文件夹再在里面新建一个deberta-v3-base文件夹,把下载的模型文件都放进deberta-v3-base文件夹里,要不然就要和我一样把.sh里面调用模型的地址代码全都改一遍,如下图)

这是因为我只是建立了他们的模型文件夹,没有做Microsoft和Facebook的文件夹

最后检查一下自己的模型文件是否齐全,齐全了,那这个问题也就解决了。


3.3进军run_baseline_eval.sh

3.3.1 requirements遗留问题:summ_eval

当时没留意这个报错,后面做eval就会发现少了这个函数,然后报错

这里可以看出来是需要用到meteor,然后又是下载不了报错,还好,他给出了meteor的下载地址https://github.com/Maluuba/nlg-eval/blob/master/nlgeval/pycocoevalcap/meteor/meteor-1.5.jar?raw=true,我们直接下载到本地(meteor.1.5.jar)后上传到服务器,然后开始理解后操作:

3.3.1.1summ_val安装

首先是针对上面的红字报错,我们可以pip install summ-eval --user下载到自己的账户下,然后会出现提醒:WARNING: The script calc-scores is installed in '/disk2/undergraduate/yangzy/.local/bin' which is not on PATH.

这就需要把我们账户添加进路径:echo 'export PATH=/disk2/undergraduate/yangzy/.local/bin:$PATH'  这样我们就有了summ_val,eval.sh,但还是会报错,总是企图重新下载meteor

3.3.1.2summ_eval 使用问题

首先的想法,是为什么每次出问题都想下载meteor,于是搜索出现下载链接的文件,找到了,在meteor metric.py 出现了判定需要下载的情况:

于是,对症下药,我们直接把刚刚下载的meteor-1.5.jar放到自己的summ_eval文件夹下(一般就是3.3.1.1里需要我们添加的路径下面能找到summ_eval文件夹)

然后,在刚刚的meteor_metric文件里把关于网址的两行注释掉,然后下面修改为./meteor-1.5.jar

第三,在刚刚的summ_eval文件夹下新建一个data文件夹

因为我们发现,在程序运行的时候,score文件也是需要用到meteor,而且还要再下载一个paraphrase-en.gz

好消息是,他给出了下载地址https://github.com/tylin/coco-caption/blob/master/pycocoevalcap/meteor/data/paraphrase-en.gz?raw=true,我们也是可以直接下载到本地,然后,上传到刚刚创建的data文件夹里

最后,别忘了把上面的score.py文件里面两行关于网址的注释掉(像刚刚处理meteor_metric一样),然后那行outputf.write里面的内容改为"./paraphrase-en.gz"

这样就能解决他总想下载meteor的问题了,能够完成eval的前两个阶段。

3.3.2 最终问题,RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling `cublasLtMatmul

目前没有解法合适,参考过的解法 :http://t.csdnimg.cn/oIyWx、令各个文件的CUDA device设置相同http://t.csdnimg.cn/V6vFe、截断法(我这不适用,因为会破坏文本完整性)http://t.csdnimg.cn/BW5nP、torch与cuda版本问题(不适用,已经是完美匹配了)http://t.csdnimg.cn/6Oa2j

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YZYwpt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值