【速写】conda安装(linux)
序言
昨天叶凯浩空降(全马241),降维打击,10分24秒断层夺冠。
夏潇阳10分53秒绝杀小崔10分54秒第2,小崔第3,均配都在3’30"以内,即便我是去年巅峰期也很难跑出这种水平。我就知道他去年大一刚过来5000米校运会就能跑19分02秒,显然天赋很好,只是没想到这么快就已经把我都拉开这么多了。
我是第4个跑回田径场,可惜最后100米被代陈一给反超,年轻人突出一个不讲武德,我还以为是艾鑫追上来。11分44秒(3’32"+3’53"+3’54"+24.5"),均配只有3’46",被前三慢了接近1分钟,现在就算认真跑也只有这种水平咯,令人唏嘘。
其实本来也就是拉亦童跑一跑的,实际上他最终也跑进了6分配,到今天已经能跑4K了,只要愿意,总还是能跑起来的,没那么难。
题述
下面记录的是与deepseek的对话,最近A800服务器被回收,日常不做人事,重回老破小的V100集群。之前因为集群有几次磁盘出问题,无法写入,home下好多自己的文件都被root权限接管,删又删不掉,关键还有一个venv也被接管,conda都remove不掉,只好重新安装一遍conda了。
它给出的方案确实可行,我觉得是很有帮助。一个很好用的小trick,linux上nvcc -v
以及nvidia -smi
命令都行不通的话,ls /usr/local | grep cuda
是很好用的办法、
不得不说腰部以下的技术培训机构差不多都可以出局了,大模型第一波打烂的就是教培的腿,尽管我还是无法去解释模型为什么能够如此正确,至少从表面上来看,它并不是想象中的那么机械,总还是能启迪人做一些有趣的事情,大概算是有一点生动的吧。
值得关注的ICLR的BEST PAPER:AnyEdit: Edit Any Knowledge Encoded in Language Models,知识编辑,其实就是试图去解释了。
我对LLM可解释的观点是,目前想要解释模型的每个参数显然是不现实的,但至少我们应该想办法解释一些module,就像diffusers的U-Net的一些研究那样,这样的研究是有意义的。
但模型解释又是一个悖论,它无可避免地带来backdoor attack,安全性又受到威胁,如果我们为了安全似乎不该去解释模型,模型越黑越好,这样谁都不能走后门,众生平等。
但是倘若不解释,我们又很恐惧他的力量,不知这种力量从何而来,让人更加感觉不安全。
令人费解。
或许应该用“他”,而不是“它”了。
文章目录
- 序言
- 题述
- 问题一:conda权限问题
- 方案 1:请求管理员协助(推荐)
- 方案 2:个人安装 MiniConda(无root权限)
- 方案 3:使用虚拟环境(如果基础conda可用)
- 方案 4:使用 pip --user 安装
- 建议:
- 问题二:安装conda到用户
- **步骤 1:下载 Anaconda 安装脚本**
- **步骤 2:运行安装脚本**
- **步骤 3:激活 Conda**
- **步骤 4:测试 Conda**
- **常见问题解决**
- **卸载方法**
- **总结**
- 问题三:conda install v.s. pip install
- **1. 核心原则**
- **2. 你的包列表分析**
- **3. 推荐安装命令**
- **方案 1:混合安装(最优灵活性)**
- **方案 2:纯 Conda(稳定性优先)**
- **4. 关键注意事项**
- **5. 验证安装**
- **总结建议**
- 问题四:如何查看cuda的版本号?
- **方法 1:通过 `nvcc` 编译器(最准确)**
- **方法 2:通过 `nvidia-smi`(驱动兼容版本)**
- **方法 3:检查 CUDA 安装路径**
- **方法 4:查看动态库版本**
- **方法 5:通过 PyTorch 验证(间接确认)**
- **关键区别说明**
- **常见问题**
- **下一步建议**
- 问题五:cuda版本已查询
- **1. 安装 PyTorch(CUDA 11.3 版本)**
- **通过 Conda 安装(推荐)**
- **通过 Pip 安装**
- **2. 验证 PyTorch 是否能识别 GPU**
- **3. 安装其他依赖(vLLM 等)**
- **vLLM**
- **其他库(无严格CUDA限制)**
- **4. 备选方案**
- **关键注意事项**
- **附:CUDA 11.3 兼容的 PyTorch 版本参考**
问题一:conda权限问题
我在linux服务器上工作,我是一个普通user,username是caoyang,home在 /nfsshare/caoyang下面,我发现conda命令安装在 /nfsshare/apps/anaconda3/bin/conda,即受root权限约束,我现在无法通过conda命令创建环境以及安装package,因为权限不够。有何解决方案?
你在使用 conda 时遇到权限问题,因为 anaconda3 目录归 root 所有。以下是几种解决方案:
方案 1:请求管理员协助(推荐)
最安全的方式是联系服务器管理员:
- 请求将
/nfsshare/apps/anaconda3
目录的组权限改为可写(例如chmod -R g+w
) - 或将你的用户加入有权限的组
- 或为你创建软链接到有权限的目录
方案 2:个人安装 MiniConda(无root权限)
# 下载 Miniconda(选择适合的版本)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh# 安装到你的home目录
bash Miniconda3-latest-Linux-x86_64.sh -b -p /nfsshare/caoyang/miniconda3# 初始化conda
/nfsshare/caoyang/miniconda3/bin/conda init bash# 重新加载配置
source ~/.bashrc
方案 3:使用虚拟环境(如果基础conda可用)
# 创建环境时指定有权限的目录
conda create --prefix /nfsshare/caoyang/my_env python=3.8# 激活时指定完整路径
conda activate /nfsshare/caoyang/my_env
方案 4:使用 pip --user 安装
# 在已有Python环境中使用
pip install --user package_name
建议:
- 优先选择方案2,完全独立且不会影响他人
- 安装后建议在
.bashrc
添加:export PATH="/nfsshare/caoyang/miniconda3/bin:$PATH"
- 如果空间有限,可以定期清理缓存:
conda clean --all
这些方案都能避免需要root权限的问题。根据你的具体需求(是否需要特定版本的conda、是否允许自行安装等)选择最适合的方式。
问题二:安装conda到用户
如果我想给自己安装anaconda3呢?
这里我想给自己安装,因为像pip install
可以添加--user
的参数来指定安装到用户,但是conda
似乎就不行,其实这里我也想过如果我给自己再安装一个conda是不是会跟外面root下面的conda冲突呢?不过好像并没有这个问题
如果你想在 Linux 服务器上以普通用户身份(无 root
权限)安装 Anaconda3,可以按照以下步骤操作,所有文件都会安装到你的 home 目录(如 /nfsshare/caoyang/
),不会涉及系统目录,因此不需要管理员权限。
步骤 1:下载 Anaconda 安装脚本
进入你的 home 目录,然后下载最新版 Anaconda(Linux 64 位版本):
cd ~ # 进入你的 home 目录
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
(如果网络较慢,可以尝试用 curl -O
或找国内镜像源)
步骤 2:运行安装脚本
bash Anaconda3-2024.02-1-Linux-x86_64.sh
(替换成你下载的实际文件名)
安装过程会询问:
- 按
Enter
查看许可协议,然后输入yes
同意。 - 安装路径:默认会安装到
~/anaconda3
(即/nfsshare/caoyang/anaconda3
),直接按Enter
确认。- 如果希望自定义路径(如
/nfsshare/caoyang/my_anaconda3
),可以手动输入。
- 如果希望自定义路径(如
- 是否初始化 Conda:输入
yes
,这样会自动将 Conda 添加到你的~/.bashrc
。
步骤 3:激活 Conda
安装完成后,重新加载 shell 配置:
source ~/.bashrc
现在你的命令行前会出现 (base)
,表示 Conda 基础环境已激活。
步骤 4:测试 Conda
conda --version # 查看 Conda 版本
conda create -n test_env python=3.9 # 创建一个新环境
conda activate test_env # 激活环境
如果一切正常,说明安装成功!
常见问题解决
-
conda
命令未找到- 如果安装时没有选择自动初始化,需要手动将 Conda 加入
PATH
。在~/.bashrc
末尾添加:export PATH="/nfsshare/caoyang/anaconda3/bin:$PATH"
- 然后运行
source ~/.bashrc
。
- 如果安装时没有选择自动初始化,需要手动将 Conda 加入
-
磁盘空间不足
- Anaconda 较大(约 3GB+),如果 home 目录空间有限,可以:
- 安装 Miniconda(精简版,仅包含 Conda + Python)。
- 安装后定期清理缓存:
conda clean --all
。
- Anaconda 较大(约 3GB+),如果 home 目录空间有限,可以:
-
安装包时权限错误
- 确保所有操作在你的 home 目录下进行,不要尝试写入系统目录(如
/opt
或/usr/local
)。
- 确保所有操作在你的 home 目录下进行,不要尝试写入系统目录(如
卸载方法
如果想卸载,直接删除整个 Anaconda 目录即可:
rm -rf ~/anaconda3 # 或你自定义的安装路径
然后清理 ~/.bashrc
中相关的 Conda 初始化代码。
总结
- 优点:完全独立,不依赖系统权限,可以自由管理环境和包。
- 缺点:占用个人存储空间(Anaconda 较大,Miniconda 更轻量)。
- 推荐:如果不需要 Anaconda 的全部科学计算包,可以改用 Miniconda(安装方式类似,但更节省空间)。
如果有其他问题,欢迎继续提问!
问题三:conda install v.s. pip install
我已经安装好了anaconda3,执行which conda显示的路径也是在我的home下的路径。我创建了一个环境
conda create --name llm312 python=3.12
,现在我激活环境后conda activate llm312
,我需要安装vllm,transformers,torch,accelerate,trl,peft等一系列库,你觉得是用conda install更适合,还是pip install更适合?
在你的情况下,选择 conda install
还是 pip install
取决于几个关键因素(尤其是涉及 GPU 加速的 PyTorch 和 vLLM)。以下是详细分析和建议:
1. 核心原则
- 优先用
conda install
:如果 Conda 官方仓库(defaults
或conda-forge
)有该包,且版本符合需求。 - 退而用
pip install
:当 Conda 没有该包,或需要更灵活的版本控制(如 PyTorch 的特定 CUDA 版本)。
2. 你的包列表分析
包名 | 推荐安装方式 | 原因说明 |
---|---|---|
torch | conda install | Conda 预编译的 PyTorch 通常与 CUDA/cuDNN 兼容性更好(如 conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia ) |
vLLM | pip install | Conda 无官方包,PyPI 版本更新更快(需确保 PyTorch CUDA 版本匹配) |
transformers | 均可 | Conda-forge 有该包(conda install -c conda-forge transformers ),但 PyPI 更新更快 |
accelerate | pip install | Conda 版本可能滞后,PyPI 更新更及时 |
trl | pip install | Conda 无官方包 |
peft | pip install | Conda 无官方包 |
3. 推荐安装命令
方案 1:混合安装(最优灵活性)
conda activate llm312# 1. 优先用conda安装PyTorch(确保CUDA兼容性)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia# 2. 剩余包用pip安装
pip install vllm transformers accelerate trl peft
方案 2:纯 Conda(稳定性优先)
conda install -c conda-forge pytorch torchvision torchaudio # Conda-forge的PyTorch
conda install -c conda-forge transformers
pip install vllm accelerate trl peft # 无法用Conda的包
4. 关键注意事项
-
CUDA 版本对齐:
- 运行
nvcc --version
或nvidia-smi
查看服务器 CUDA 版本。 - PyTorch 的 Conda 和 Pip 版本必须匹配该 CUDA 版本(如
pytorch-cuda=12.1
或pip install torch --index-url https://download.pytorch.org/whl/cu121
)。
- 运行
-
依赖冲突处理:
- 如果混用 Conda 和 Pip 后出现冲突,优先用 Conda 创建干净环境:
conda create -n llm312_clean python=3.12 conda activate llm312_clean conda install pytorch... # 先用Conda装核心包 pip install ... # 再用Pip装剩余包
- 如果混用 Conda 和 Pip 后出现冲突,优先用 Conda 创建干净环境:
-
虚拟环境隔离:
- 为不同项目创建独立环境(如
llm312
专用于大模型),避免包冲突。
- 为不同项目创建独立环境(如
5. 验证安装
# 检查PyTorch是否能识别GPU
python -c "import torch; print(torch.cuda.is_available())"# 检查vLLM等是否可导入
python -c "from vllm import LLM; print('vLLM OK')"
总结建议
- 推荐方案 1(混合安装):用 Conda 管理 PyTorch 和基础包,Pip 安装其他库。
- 如果遇到问题,可以尝试:
- 使用
conda list
和pip list
对比包来源。 - 清理缓存后重试:
conda clean --all && pip cache purge
。
- 使用
如果需要更精确的版本号(如特定 CUDA 的 PyTorch),可以告诉我服务器环境细节,我会提供定制命令。
问题四:如何查看cuda的版本号?
如何查看cuda的版本号?
此时需要确定版本号安装torch
在 Linux 服务器上,可以通过以下几种方法查看 CUDA 版本号(适用于 NVIDIA GPU 环境):
方法 1:通过 nvcc
编译器(最准确)
运行以下命令查看 CUDA 编译器版本:
nvcc --version
输出示例:
nvcc: NVIDIA (R) Cuda compiler
release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
这里 CUDA 版本是 11.8。
⚠️ 如果提示
nvcc: command not found
,说明 CUDA Toolkit 未安装或未加入PATH
,尝试其他方法。
方法 2:通过 nvidia-smi
(驱动兼容版本)
运行以下命令查看 GPU 驱动支持的 CUDA 版本:
nvidia-smi
输出示例:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 NVIDIA A100 80G... On | 00000000:00:1B.0 Off | 0 |
| N/A 35C P0 50W / 300W | 0MiB / 81920MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
这里 CUDA Version: 12.0 表示驱动支持的最高 CUDA 版本(但实际安装的 CUDA Toolkit 版本可能更低,需用 nvcc
确认)。
方法 3:检查 CUDA 安装路径
如果 CUDA Toolkit 已安装,可以通过路径推断版本:
ls /usr/local | grep cuda
输出示例:
cuda
cuda-11.8
这里 cuda-11.8
表示安装了 CUDA 11.8。
方法 4:查看动态库版本
cat /usr/local/cuda/version.txt # 旧版CUDA
或
cat /usr/local/cuda/version.json # 新版CUDA
方法 5:通过 PyTorch 验证(间接确认)
如果你已安装 PyTorch,可以运行 Python 代码检查:
python -c "import torch; print(torch.version.cuda)"
输出示例:
11.8
关键区别说明
方法 | 实际含义 | 用途 |
---|---|---|
nvcc --version | 实际安装的 CUDA Toolkit 版本 | 开发时需匹配此版本(如编译代码) |
nvidia-smi | 驱动支持的最高 CUDA 版本 | 运行 CUDA 程序时的兼容性参考 |
PyTorch 输出的版本 | PyTorch 构建时使用的 CUDA 版本 | 确保 PyTorch 能调用 GPU |
常见问题
-
nvcc
和nvidia-smi
版本不一致?- 这是正常现象,只要 Toolkit 版本 ≤ 驱动支持的版本即可(例如
nvcc
显示 11.8,nvidia-smi
显示 12.0 是兼容的)。
- 这是正常现象,只要 Toolkit 版本 ≤ 驱动支持的版本即可(例如
-
如何安装
nvcc
?- 需完整安装 CUDA Toolkit(从 NVIDIA 官网下载),或让管理员安装。
-
服务器没有 GPU 怎么办?
- 运行
nvidia-smi
会提示No devices found
,此时无法使用 CUDA。
- 运行
下一步建议
根据查到的 CUDA 版本,安装对应版本的 PyTorch 和 vLLM:
# 例如 CUDA 11.8
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install vllm -U # vLLM 会自动匹配PyTorch的CUDA版本
如果需要更具体的帮助,请提供你的 nvcc --version
和 nvidia-smi
输出结果!
问题五:cuda版本已查询
我查看到cuda版本只有11.3,应该如何安装torch?
此时我是发现直接把它上面给的conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
中的11.8改成11.3并不能找到正确的版本。
如果服务器上的 CUDA 版本是 11.3,你需要安装与之兼容的 PyTorch 版本。以下是具体步骤和注意事项:
1. 安装 PyTorch(CUDA 11.3 版本)
通过 Conda 安装(推荐)
conda activate llm312 # 激活你的环境
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
- 这会自动安装与 CUDA 11.3 兼容的 PyTorch 版本。
- 如果下载慢,可以尝试添加国内镜像源(如清华源)。
通过 Pip 安装
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
cu113
表示 CUDA 11.3 的预编译版本。
2. 验证 PyTorch 是否能识别 GPU
安装完成后,运行以下命令检查:
python -c "import torch; print(f'PyTorch版本: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'CUDA版本: {torch.version.cuda}')"
期望输出:
PyTorch版本: 2.0.1+cu113 # 版本可能不同,但应有`cu113`后缀
CUDA可用: True
CUDA版本: 11.3
如果 CUDA可用: False
,说明安装的 PyTorch 与 CUDA 11.3 不匹配,需重新安装。
3. 安装其他依赖(vLLM 等)
由于 CUDA 11.3 较旧,部分库(如 vLLM
)可能需要更高版本的 CUDA。以下是兼容性建议:
vLLM
- vLLM 官方要求 CUDA ≥ 11.8,但可尝试手动安装旧版:
如果失败,可能需要从源码编译或放弃使用 vLLM。pip install vllm==0.2.0 # 指定旧版本,可能兼容CUDA 11.3
其他库(无严格CUDA限制)
pip install transformers accelerate peft trl
4. 备选方案
如果 PyTorch 或其他库因 CUDA 11.3 限制无法运行:
- 请求管理员升级 CUDA(如升级到 11.8 或 12.x)。
- 使用 CPU 版 PyTorch(不推荐,性能极低):
conda install pytorch torchvision torchaudio cpuonly -c pytorch
- 改用 Docker 容器(需管理员支持):
# 使用预装高版本CUDA的容器 docker run --gpus all -it pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
关键注意事项
- 严格匹配 CUDA 版本:PyTorch、CUDA Toolkit、NVIDIA 驱动三者需兼容。
- 可通过 PyTorch 官方页面 查找历史版本。
- 环境隔离:建议为不同 CUDA 版本创建独立 Conda 环境。
- 错误排查:
- 如果
import torch
报错,尝试重新安装或检查LD_LIBRARY_PATH
是否包含 CUDA 库路径(如/usr/local/cuda-11.3/lib64
)。
- 如果
附:CUDA 11.3 兼容的 PyTorch 版本参考
PyTorch 版本 | 安装命令(Conda) | 安装命令(Pip) |
---|---|---|
1.12.1 | conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch | pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 |
2.0.1 | conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 cudatoolkit=11.3 -c pytorch | pip install torch==2.0.1+cu113 torchvision==0.15.2+cu113 torchaudio==2.0.2 --extra-index-url https://download.pytorch.org/whl/cu113 |
如有其他问题,请提供具体的错误信息(如 nvidia-smi
和 nvcc --version
的完整输出),我会进一步帮你分析!