目前博0,刚开始接触NLP相关的任务(目前在学习NER任务,后续可能还会继续更新NER相关的内容),记录一下自己成功配置环境的流程,希望能够帮助到正在对相关环境配置焦头烂额的人。
需求:针对anaconda下不同环境安装不同版本的CUDA。
一、版本说明
- python 3.8
- pytorch 1.31.1
- CUDA 11.6
- transformers 4.36.1
ps:如下图,版本主要根据github上面transformers的说明,链接:github_transformers。pytorch1.13.1是2.0.0版本的前一个。
二、配置过程
1、anaconda创建虚拟环境
这个部分比较基础,这边直接给出代码,方便直接使用。env_name
用自己的名字替代。
# 创建环境
conda create -n env_name python=3.8
# 激活环境
conda activate env_name
2、安装Pytorch
这边直接给出代码:
# torch=1.13.1;cu116代表CUDA11.6
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
如果你想要其他版本:pytorch各版本链接。
为了避免网络连接问题,pip需要更换源,可以参考pip换源。
在使用过程中,pip有时候还是会出现连接问题。多试几次就好了
你也可以使用conda
# CUDA 11.6
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
3、配置CUDA
本地配置CUDA的方法网上有很多教程,如CUDA配置。
本文中的CUDA配置主要是考虑在anaconda的环境下单独配置CUDA,方便满足不同项目的环境需求。参考:pip安装CUDA。
先准备一个requirements.txt
文档,然后用pip
安装
requirements.txt
:
--extra-index-url https://pypi.ngc.nvidia.com
nvidia-pyindex
nvidia-cuda-runtime-cu116
nvidia-cuda-cupti-cu116
nvidia-cuda-nvcc-cu116
nvidia-nvml-dev-cu116
nvidia-cuda-nvrtc-cu116
nvidia-nvtx-cu116
nvidia-cuda-sanitizer-api-cu116
nvidia-cublas-cu116
nvidia-cufft-cu116
nvidia-curand-cu116
nvidia-cusolver-cu116
nvidia-cusparse-cu116
nvidia-npp-cu116
nvidia-nvjpeg-cu116
cu116
的116代表1.16版本的CUDA。如果你需要安装其他版本的CUDA,你可以更改为cux
,x即使你想要的版本。为了保险起见,你可以去pypi查是否有对应的版本。
然后安装:
pip install -r requirements.txt
安装完成之后,可以测试一下是否已经可以用GPU:
import torch
print(torch.cuda.is_available())
若结果为True则没问题。
4、安装Transformers
直接上指令:
# 安装必要组件
pip install transformers datasets
# 安装Transformers
pip install transformers==4.36.1
我使用的是4.36.1版本的的Transformers,如果大家有需要也可以在pypi的transformers列表中找想要的版本。
安装完毕后进行测试。
from transformers import pipeline
classifier = pipeline('sentiment-analysis')
output = classifier('We are very happy to introduce pipeline to the transformers repository.')
print(output)
>>[{'label': 'POSITIVE', 'score': 0.9996980428695679}]
如果可以成功运行并且输出,那么就代表所有安装都完成了。
该部分主要参考transformers的官方文档(需要科学上网)。
三、可能会碰到的问题
1、urllib3.exceptions.SSLError: TLS/SSL connection has been closed (EOF) (_ssl.c:1131)
首先conda env list
查看自己的urllib3
版本,一般是因为urllib3
版本过高导致, 只要降低其版本就行:
pip install urllib3==1.25.11
2、 We couldn't connect to 'https://huggingface.co' ...
因为国内网没法访问该网页。
1)本地可以采用科学上网,然后再次运行代码。
2)先把模型下载下来,然后离线使用。(如:参考)
ps:本人采取的是1)办法,验证可行,但是2)没有试验过。
四、总结
本篇博客主要记录分享自己学习过程中遇到的一些问题和心得,帮助遇到类似问题的人。
科研长路漫漫,学海无涯,我也是刚开始学习的小白,如果文中有什么问题,欢迎大家在评论区指出。也欢迎大家在评论区记录自己遇到的问题以及相应的解决方案,以更好地帮助遇到类似问题的人。
如果文章对你有帮助,请点赞哦。后续会继续更新NER相关的内容。
本人在知乎也会发布相应的内容:游学者粥酌 - 知乎