Datawhale 大模型算法全栈基础篇 202602第1次笔记

Task 1: 环境布署

配置 Conda 国内镜像(可选但推荐)

默认情况下,conda 从官方源下载软件包,在国内网络环境下可能比较慢。可以使用清华镜像源加速。

在终端(或 Anaconda Prompt)中依次执行:

复制代码
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
conda config --set show_channel_urls yes

执行后可以通过以下命令检查当前配置的源:

复制代码
conda config --show channels

创建 base-llm 专用虚拟环境

为了避免与其他项目互相影响,强烈建议为本项目单独创建一个 base-llm 环境。

(1)在终端中运行:

复制代码
conda create -n base-llm python=3.10
  • base-llm:环境名称,可以根据喜好修改。
  • python=3.10:本项目推荐使用 Python 3.10 版本。

出现提示时输入 y 回车,等待环境创建完成。

(2)可以通过以下命令激活环境:

复制代码
conda activate base-llm

激活成功后,命令行前缀会出现 (base-llm),表示当前所有 python / pip / conda 操作都在此环境中进行。若要退出该环境,可使用:

复制代码
conda deactivate

在环境中安装常用依赖

(1)首先在终端中确保已激活环境:

复制代码
conda activate base-llm

(2)激活 base-llm 环境后,可以先安装一些常用的第三方库,这些库涵盖了大部分数据处理与可视化需求。

复制代码
pip install numpy pandas matplotlib scikit-learn jupyter

(3)本项目的代码主要基于 PyTorch,如果当前设备只有 CPU,可以使用下面命令直接安装:

复制代码
pip install torch torchvision torchaudio(4)如果设备中有 GPU,并希望使用 CUDA,通过 nvcc --version 查看完 cuda 版本后可以参考 PyTorch 官网的安装指令,选择与设备和显卡驱动匹配的 CUDA 版本。

问题解决:

1. 当清华镜像源地址失效时,修复如下:

步骤 1:打开配置文件在 PowerShell 中执行以下命令打开配置文件:

powershell

复制代码
notepad C:\Users\app\.condarc

步骤 2:替换为最新的清华镜像源 删除文件中原有内容,粘贴以下最新的配置(移除了废弃的 pkgs/free 路径):

yaml

复制代码
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

保存并关闭文件。

2. 清除 conda 缓存

执行以下命令清除旧的缓存数据,避免残留的失效源信息影响:

powershell

复制代码
conda clean -i
3. 重新创建虚拟环境

现在重新执行创建环境的命令:

powershell

复制代码
conda create -n base-llm python=3.10

执行后会提示确认安装包,输入 y 并回车即可。

4. 验证环境是否创建成功

创建完成后,激活环境并检查 Python 版本:

powershell

复制代码
# 激活环境
conda activate base-llm

# 检查 Python 版本
python --version

如果输出 Python 3.10.x(x 为具体小版本号),说明环境创建成功。

二、明明配置过清华镜像,为什么 conda 能用但 pip 装包失败,而指定临时 pip 镜像源却能成功 ------ 这本质是conda 的镜像配置和 pip 的镜像配置是完全独立的两套系统,二者互不影响。

先理清核心区别:Conda 镜像 ≠ Pip 镜像

你之前修改的是 conda.condarc 配置文件,只针对 conda install 命令生效;而 pip install 有自己独立的配置体系,不会继承 conda 的镜像设置。

我们拆解一下 "为什么之前失败、临时镜像源却成功" 的具体原因:

1. 失败的根本原因:pip 默认用了 "教育网镜像",而非你配置的 conda 清华镜像

从你的报错信息能看到:

plaintext

复制代码
Looking in indexes: https://mirrors.cernet.edu.cn/pypi/web/simple

这说明你的 pip默认镜像源被设置成了教育网镜像(mirrors.cernet.edu.cn,而非清华镜像。这个教育网镜像可能存在两个问题:

  • 包版本不全:比如缺少适配 Python 3.10/win-64 的 numpy 版本;
  • 访问 / 同步问题:该镜像的包索引未及时同步,导致找不到对应包。

而你之前配置的清华镜像,只作用于 conda 命令(比如 conda create/conda install),对 pip 完全无效 ------ 这是最关键的区别。

2. 临时镜像源成功的原因:直接覆盖了 pip 的默认镜像

你执行的 pip install ... -i https://pypi.tuna.tsinghua.edu.cn/simple 命令中,-i 参数是 "临时指定 pip 的包索引地址",它会临时覆盖 pip 的默认镜像源(教育网镜像),直接从清华 pip 镜像下载包:

  • 清华 pip 镜像(pypi.tuna.tsinghua.edu.cn)是国内最稳定、同步最及时的 pip 镜像之一;
  • 该镜像完整包含了适配 Python 3.10/win-64 的 numpy、pandas 等包,所以能安装成功。
3. 直观对比:两套镜像体系的核心差异

表格

维度 Conda 镜像 Pip 镜像
配置文件 C:\Users\app\.condarc %APPDATA%\pip\pip.ini(Windows)
生效命令 conda create/conda install pip install
你之前的配置 已改成清华镜像(生效) 未配置,默认是教育网镜像(失效)
临时指定方式 conda install -c 镜像地址 pip install -i 镜像地址

补充:为什么 pip 不会自动用 conda 的镜像?

Conda 和 Pip 是两个独立的包管理工具:

  • Conda 是 Anaconda/Conda 的专属包管理器,管理的是 conda 生态的包(.conda/.tar.bz2格式);
  • Pip 是 Python 官方的包管理器,管理的是 PyPI 生态的包(.whl/.tar.gz格式)。

二者的镜像源、配置文件、包索引体系完全分离,就像 "两个独立的超市"------ 你给 A 超市设置了配送地址,不代表 B 超市会用同一个地址。

总结

  1. 核心区别:你配置的是 conda 的清华镜像(只对 conda 命令生效),而 pip 默认用了教育网镜像(失效),二者互不关联;
  2. 临时镜像源成功的原因-i 参数临时让 pip 改用清华 pip 镜像,该镜像包全、同步及时,能找到适配的包;
  3. 后续建议 :按之前的方法配置 pip 的永久清华镜像,这样后续用pip install就不用每次加-i参数了。

简单来说,你之前只给 "conda 这个工具" 配了清华镜像,而 "pip 这个工具" 还在用坏的镜像;临时指定-i就是让 pip 也用清华镜像,所以就成功了。

临时使用清华 pip 镜像源安装(推荐)

直接在安装命令中指定清华镜像源,这是最快捷的临时解决方案,执行以下命令:

powershell

复制代码
pip install numpy pandas matplotlib scikit-learn jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple

关于CUDA的版本:

显卡是 NVIDIA GeForce RTX 3080 ,这款显卡属于 NVIDIA 的高端显卡,对 CUDA 的支持非常完善 ------ 你直接安装 CUDA 11.8 版本的 PyTorch 就可以,这是最适配 RTX 3080 且兼容性最好的版本,不用纠结其他版本。

1、为什么 RTX 3080 选 CUDA 11.8?

RTX 3080 基于 Ampere 架构,原生支持 CUDA 11.x 全系列,其中:

  • CUDA 11.8 是 11.x 系列的最终稳定版,bug 最少、兼容性最强;
  • 比更高的 CUDA 12.x 适配性更好(很多深度学习项目还基于 11.8 开发);
  • 完全能发挥 RTX 3080 的全部算力,不会有性能浪费。

2、给你直接能用的安装命令(复制执行即可)

在你的base-llm环境中,执行以下命令,会自动下载适配 RTX 3080 的 CUDA 11.8 版本 PyTorch:

powershell

复制代码
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple

这个命令的作用:

  • --index-url https://download.pytorch.org/whl/cu118:指定下载 CUDA 11.8 版本的 PyTorch 包;
  • -i https://pypi.tuna.tsinghua.edu.cn/simple:用清华镜像加速下载,避免速度慢或失败。

3、安装后验证(确认显卡加速生效)

安装完成后,执行以下代码检查是否成功:

powershell

复制代码
python -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA可用:', torch.cuda.is_available()); print('显卡名称:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else '无')"
正常输出示例(说明安装成功):

plaintext

复制代码
PyTorch版本: 2.4.0+cu118
CUDA可用: True
显卡名称: NVIDIA GeForce RTX 3080

如果看到这样的输出,就说明 RTX 3080 已经能被 PyTorch 调用,后续跑深度学习代码会自动用显卡加速。

4、额外说明

  1. 不用手动装 CUDA 驱动 / 工具包:PyTorch 的安装包已经内置了适配的 CUDA 运行库,你不用自己去 NVIDIA 官网装 CUDA Toolkit,命令会自动搞定;
  2. 版本兼容问题:RTX 3080 装 CUDA 11.8 不会有任何兼容问题,哪怕你的显卡驱动版本较高 / 较低,PyTorch 都会自动适配;
  3. 如果安装慢:耐心等即可,PyTorch+CUDA 的包体积较大(约 2-3GB),清华镜像已经是国内最快的速度了。

总结

  1. 核心结论:RTX 3080 直接装 CUDA 11.8 版本的 PyTorch,是最优选择;
  2. 安装命令 :复制上面带cu118的 pip 命令执行即可;
  3. 验证标准 :执行验证代码后,CUDA可用显示True且显卡名称是 RTX 3080,就说明成功。

你只需要复制安装命令执行,不用管其他版本细节 ------RTX 3080+CUDA 11.8 是深度学习的 "黄金组合",能完美适配绝大多数项目。

安装CUDA失败解决方法:

执行了 CUDA 11.8 的安装命令,但最终安装的还是 CPU 版本的 PyTorch(输出2.10.0+cpuCUDA可用: False),核心原因是-i参数(清华 PyPI 镜像)覆盖了--index-url(PyTorch 官方 CUDA 源),导致 pip 优先从清华 PyPI 下载了通用的 CPU 包,而非 CUDA 专用包。

问题根源:pip 参数优先级导致的 "源冲突"

pip的参数优先级是:-i/--index-url(用户指定的主索引) > --index-url(自定义索引)。你命令里的-i https://pypi.tuna.tsinghua.edu.cn/simple会让 pip 优先去清华 PyPI 找包,而清华 PyPI 上的 PyTorch 包默认是 CPU 版本,所以忽略了 PyTorch 官方的 CUDA 源。

解决方法:调整命令,优先用 PyTorch 官方 CUDA 源

执行以下命令(去掉清华 PyPI 的-i参数,改用--trusted-host保证下载安全),让 pip 从 PyTorch 官方 CUDA 源下载适配 RTX 3080 的版本:

powershell

复制代码
# 先卸载当前的CPU版本PyTorch
pip uninstall torch torchvision torchaudio -y

# 重新安装CUDA 11.8版本(仅用PyTorch官方CUDA源,国内网络也能下载)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --trusted-host download.pytorch.org
补充:如果下载速度慢

如果直接从 PyTorch 官方源下载慢,改用 "PyTorch 官方 CUDA 源 + 清华镜像代理" 的组合命令:

powershell

复制代码
pip3 install torch torchvision torchaudio -i https://download.pytorch.org/whl/cu118 --trusted-host download.pytorch.org

安装后重新验证

执行以下命令,确认 CUDA 生效:

powershell

复制代码
python -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA可用:', torch.cuda.is_available()); print('显卡名称:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else '无')"
正确输出示例(RTX 3080):

plaintext

复制代码
PyTorch版本: 2.10.0+cu118
CUDA可用: True
显卡名称: NVIDIA GeForce RTX 3080

为什么之前的命令没生效?

命令参数 作用 优先级 导致的问题
--index-url https://download.pytorch.org/whl/cu118 指定 CUDA 版本源 被后面的-i参数覆盖
-i https://pypi.tuna.tsinghua.edu.cn/simple 指定主下载源 优先从清华 PyPI 下载 CPU 版本的 PyTorch

简单说:你原本的命令相当于 "告诉 pip 先去清华 PyPI 找包,找不到再去 CUDA 源",但清华 PyPI 有 CPU 包,所以 pip 就直接装了 CPU 版。

总结

  1. 核心问题:pip 参数优先级导致 CUDA 源被忽略,安装了 CPU 版本;
  2. 解决关键 :卸载 CPU 版本,重新安装时优先使用 PyTorch 官方 CUDA 源(去掉冲突的-i参数);
  3. 验证标准 :PyTorch 版本带cu118CUDA可用显示True、显卡名称显示 RTX 3080。

CUDA安装成功:

相关推荐
柳鲲鹏2 小时前
股市赚钱学概论:自序
笔记
烟花落o2 小时前
算法的时间复杂度和空间复杂度
开发语言·数据结构·笔记·算法
Blue16°3 小时前
Day28:英语翻译 + 单词打卡
笔记
xian_wwq4 小时前
【学习笔记】OAuth 2.0 安全攻防:从 Portswigger 六大实验看认证漏洞挖掘
笔记·学习·安全
山野万里_4 小时前
B站DR_CAN【Advanced控制理论】课程笔记
笔记
2501_901147834 小时前
粉刷房子问题:从DP基础到空间极致优化学习笔记
笔记·学习·动态规划
时代的凡人4 小时前
0215晨间笔记
笔记·晨间日记
爱凤的小光5 小时前
VisionPro 3D工具(自我笔记)
笔记·计算机视觉·3d
随意起个昵称5 小时前
Dijstra算法学习笔记
笔记·学习·算法