anaconda环境下配置Pytorch+CUDA+transformers

目前博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相关的内容。

本人在知乎也会发布相应的内容:游学者粥酌 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

游学者粥酌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值