nlp学习

本文基于github教程:https://github.com/bentrevett/pytorch-seq2seq

环境搭建

本实验使用的环境为:pytorch=1.8.2 torchtext=0.9.2 Spacy=3.4.0

# 创建conda环境
conda create --name nlp python=3.8
conda activate nlp

# 安装依赖 注意这里我一并安装了torchtext
pip3 install torch==1.8.2 torchvision==0.9.2 torchaudio===0.8.2 torchtext==0.9.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu111

# 使用Spacy对语料分词(一般使用conda做环境管理,pip做包管理。conda本身的包比较少且国内网络不太好)
pip3 install -U pip setuptools wheel
pip3 install -U 'spacy[cuda117]'

# 注:有的时候上述安装过程很慢,只有几kb的速度,多尝试几次关闭窗口再重新开,有时候就能达到几mb的速度了
# 安装pytorch有些包死活安装不上(网络问题),替换源之后就好了(如下)。其中 -i 表示指定源,不写则默认是pypi.org,–extra-index-url 表示备用源
# pip3 install torch==1.8.2 torchvision==0.9.2 torchaudio===0.8.2 torchtext==0.9.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ –extra-index-url https://download.pytorch.org/whl/lts/1.8/cu111

torchtext版本需和pytorch版本对应,若安装不对应的torchtext,则它会强制重新安装对应的pytorch

https://github.com/pytorch/text

下载语料处理相关的库:

教程中使用 python -m spacy download en_core_web_sm 的方式下载并安装数据集,但会出现网络的问题导致无法下载。

事实上,每个语料库都会被当作一个单独的python包进行安装,所以只需手动下载这些包,然后进行本地安装即可。(其他安装方法参见:https://spacy.io/usage/models

下载路径:https://github.com/explosion/spacy-models/releases

这里面可以找到各种语言的语料库,我这里选择中文和英文的进行下载

下载完成后进行本地安装

pip3 install C:\Users\HuntZou\Documents\Personal\Datasets\zh_core_web_sm-3.4.0-py3-none-any.whl
pip3 install C:\Users\HuntZou\Documents\Personal\Datasets\en_core_web_sm-3.4.0-py3-none-any.whl

测试

数据集使用的是 PAWS-X,见:https://github.com/google-research-datasets/paws/tree/master/pawsx

注:本代码库中已包含下载好的数据集,无需单独下载

模型搭建与训练

https://github.com/HuntZou/translateZH2EN

遇到的问题

第一次训练结果就很失败,模型完全没法用

训练集的loss还在下降,测试集的已经在上升了,应该是过拟合了,但就算我把训练数据直接用来测试翻译,结果还是不行。

其他训练过程中的问题:

Leave a Comment