Title: Ditto: Deep Entity Matching with Pre-Trained Language Models
Github: https://github.com/megagonlabs/ditto
Paper: https://arxiv.org/abs/2004.00584
Requirements
Python 3.7.7
创建对应版本的conda env,并激活
conda create -n ditto python=3.7.7
source activate ditto
PyTorch 1.9 CUDA 10.1
注意不同的CUDA版本对应不同的下载链接
nvidia-smi查看CUDA版本
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
HuggingFace Transformers 4.9.2
conda install -c huggingface transformers
NVIDIA Apex (fp16 training)
这是NVIDIA开发的基于PyTorch的混合精度训练加速神器,能够增加运算速度,并且减少显存的占用。
方法1:
这个库的安装不是像其他的一样的直接使用 pip install XXX的形式,而是使用原始的Git方式
git clone https://github.com/NVIDIA/apex.git
cd apex
pip install -v --no-cache-dir ./
方法2:
如果有conda环境
conda install -c conda-forge nvidia-apex
其它一些包
conda install gensim
conda install numpy
conda install regex
conda install sentencepiece
conda install tqdm
conda install jsonlines
conda install scikit-learn
nltk及其语料的下载
conda install nltk
在下载窗口中,找到我们需要下载的语料。
或者直接通过Terminal实现
tensorboardX
conda install tensorboardx
spacy
在conda命令行中输入如下命令即可安装自然语言处理工具spacy:
#conda config --add channels conda-forge
conda install spacy
python -m spacy download en
此时在执行python train_ditto.py
的时候可能会报错
解决方案参考:https://stackoverflow.com/questions/54334304/spacy-cant-find-model-en-core-web-sm-on-windows-10-and-python-3-5-3-anacon?answertab=trending#tab-top
还需要配置
python -m spacy download en_core_web_lg
python -m spacy download en_core_web_sm
常见报错
1. 编码报错
解决方式:
将
open(path)
改为open(path, 'r', encoding='utf-8')
2. 网络问题
注意,如果开了VPN,可能导致跑不起来
3.apx报错
主要原因是torch1.9之后发生的,因为1.8版本之后container_abcs就已经被移除了。这个错误可以选择降版本到torch1.8,但是其实比较麻烦,不推荐这个。
参考这个博主的方法
关于升级pytorch1.9后出现cannot import name ‘container_abcs‘ from ‘torch._six‘错误的解决方法
具体说来
cd /root/miniconda3/lib/python3.8/site-packages/apex/amp
vim _amp_state.py