Lordog / dive-into-llms

《动手学大模型Dive into LLMs》系列编程实践教程
https://sjtullm.gitbook.io/dive-into-llms
3.41k stars 296 forks source link

关于pytorch的安装问题 #11

Closed morninghut closed 3 months ago

morninghut commented 3 months ago

您好,在尝试跟随Chapter 1 预训练语言模型微调与部署进行学习时,我遇到了默认pytorch版本为cpu的问题。

在完全按照文档中的内容配置环境后(选择了基于解耦版本的代码),我发现代码仅仅使用cpu进行训练。简单排查后,我发现环境中的torch为cpu版本:

import torch
print(torch.cuda.is_available())
# False
print(torch.__version__)
# 2.3.1+cpu

我发现这可能是设置pypi为清华镜像源的问题:默认pip install torch将安装cpu版本相关讨论

我在tuna mirror仓库的issue中进行了简单搜索,结论是:tuna目前由于种种原因,仅提供conda对应的各CUDA版本的pytorch包。因此配置清华pypi镜像源后,直接通过pip install -r requirements.txt只能安装cpu的pytorch。而上交镜像源提供了pypi的CUDA版本的pytorch包。来源

因此,可选的解决方案如下:

  1. 部署环境时改为使用conda安装包

    需要增加配置conda镜像的部分。

~~2. 更改pypi镜像源为上交源。 pip config set global.index-url https://mirror.sjtu.edu.cn/pypi/web/simple~~ 测试发现并不能自动安装支持CUDA的pytorch

  1. 删除requirements.txt中自动安装的torch,改为手动执行pip3 install torch torchvision torchaudio -f https://mirror.sjtu.edu.cn/pytorch-wheels/{CUDA_VERSION}/torch_stable.html进行pytorch的安装。

在我的环境下(CUDA 12.1,python 3.9),卸载原有torch包,执行pip3 install torch torchvision torchaudio -f https://mirror.sjtu.edu.cn/pytorch-wheels/cu121/torch_stable.html后,得到了支持CUDA的pytorch环境:

import torch
print(torch.cuda.is_available())
# True
print(torch.__version__)
# 2.3.1+cu121

或许方案2/3较为可行。请考虑对文档进行补充,谢谢!

Lordog commented 3 months ago

收到,感谢您的反馈!(最近在赶稿,预计6.17之后会修改)