WSL2+Ubuntu24.04+PyTorch2.7:零基础搭建AI微调环境完整流程(附迅雷下载加速技巧)
WSL2+Ubuntu24.04+PyTorch2.7:零基础搭建AI微调环境完整流程(附迅雷下载加速技巧)
如果你是一名刚刚踏入AI领域的开发者,或者是一位对模型微调充满好奇的研究者,面对本地环境搭建这座大山,可能会感到一丝迷茫。在Windows系统上直接运行复杂的AI训练任务,尤其是涉及GPU加速的模型微调,常常会遇到兼容性不佳、性能损耗大等问题。而传统的虚拟机方案,又往往伴随着显卡驱动加载困难、资源占用高等烦恼。有没有一种方案,能让我们在熟悉的Windows界面下,无缝获得一个接近原生性能的Linux开发环境呢?答案是肯定的,这正是WSL2(Windows Subsystem for Linux 2)的魅力所在。
本文将手把手带你完成从零开始,在Windows 11上构建一个专为AI模型微调优化的完整开发环境。我们将以最新的Ubuntu 24.04 LTS作为Linux发行版,并安装PyTorch 2.7框架,确保你能充分利用NVIDIA GPU进行加速计算。更重要的是,针对国内网络环境下访问GitHub、微软官方仓库速度缓慢的痛点,我会分享一些经过验证的、利用常见下载工具进行加速的实用技巧,让你跳过漫长的等待,快速进入核心的开发环节。无论你是完全的Linux新手,还是希望寻找更高效本地开发方案的AI爱好者,这篇指南都将为你提供一条清晰、可操作的路径。
1. 环境准备与WSL2安装
在开始之前,我们需要确保你的Windows 11系统已经做好了准备。WSL2并非一个独立的软件,它是深度集成在Windows系统中的一项功能,其本质是一个轻量级的虚拟机,运行着完整的Linux内核。与传统的VMware或VirtualBox相比,它的资源开销更小,与Windows主机的文件系统互通性更好,并且能获得接近原生的I/O性能,这对于需要大量读写数据的AI训练任务至关重要。
1.1 启用必要的Windows功能
WSL2的安装始于几个系统功能的开启。这个过程不需要下载额外的ISO镜像,全部通过Windows自带的命令行工具完成。
首先,我们需要以管理员身份启动Windows终端(Terminal)或PowerShell。一个更便捷的方法是,在开始菜单搜索“PowerShell”,右键点击“Windows PowerShell”,然后选择“以管理员身份运行”。
在打开的管理员PowerShell窗口中,我们将分两步启用两个核心功能。第一个是“适用于Linux的Windows子系统”基础功能,第二个是“虚拟机平台”,这是WSL2架构的基石。
# 启用“适用于Linux的Windows子系统”功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用“虚拟机平台”功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行这两个命令后,系统会开始配置更改。整个过程可能需要几分钟,期间你可能会看到进度条在0%到100%之间缓慢移动,请耐心等待,不要中途关闭窗口。当两个命令都显示“操作成功完成”后,必须重启你的电脑,这些更改才能完全生效。
注意:网上有些教程会提到需要进入BIOS开启CPU虚拟化支持(如Intel VT-x或AMD-V)。对于绝大多数现代电脑,尤其是预装Windows 11的机型,这个功能默认就是开启的。如果你在后续步骤中遇到与虚拟化相关的错误,可以再进入BIOS确认。
1.2 安装并更新WSL2内核
电脑重启后,我们进入安装的第二步:获取并安装WSL2的Linux内核更新包。微软会不定期更新这个内核以提升性能和兼容性。虽然可以通过wsl --update命令在线更新,但在网络不畅时速度极慢。
这里我们可以采用手动下载安装包的方式。访问微软WSL项目的GitHub发布页面,找到最新的内核更新包(通常是一个名为wsl_update_x64.msi的文件)。由于GitHub在国内的访问速度不稳定,我们可以借助下载工具的“离线下载”或“加速”功能。
操作技巧:复制该.msi文件的直链地址,打开你常用的下载工具(如迅雷),新建任务并粘贴链接。这类工具通常拥有更好的网络节点,能够显著提升下载速度。下载完成后,直接双击运行这个.msi安装程序,按照向导提示完成安装即可,过程非常简单。
接下来,我们需要将WSL的默认版本设置为2。重新打开一个普通权限的PowerShell窗口(这次无需管理员权限),输入以下命令:
wsl --set-default-version 2
这个命令会告诉系统,未来新安装的任何Linux发行版,默认都使用WSL2架构。你可以通过wsl -l -v命令来查看当前已安装的发行版及其使用的WSL版本。
2. 获取与安装Ubuntu 24.04 LTS
有了WSL2的基础,我们现在可以安装Linux发行版了。Ubuntu因其广泛的社区支持和良好的软件生态,成为大多数开发者的首选。Ubuntu 24.04 LTS是当前最新的长期支持版本,提供了更稳定的软件包和更新的系统组件。
2.1 手动下载发行版镜像
微软商店(Microsoft Store)提供了在线安装Ubuntu的便捷途径,但其下载速度同样受限于网络。对于追求效率和稳定性的我们,手动下载安装包是更优的选择。
微软官方为WSL提供了独立的发行版包下载链接。你可以访问其官方文档页面,找到Ubuntu 24.04 LTS的下载项。你会得到一个后缀为.AppxBundle的文件,例如Ubuntu_2404.0.5.0_x64.appxbundle。
关键加速步骤:同样地,将这个文件的下载链接复制到下载工具(如迅雷)中。利用下载工具的多线程和资源嗅探能力,通常能将下载时间从数小时缩短到几分钟。这是搭建环境中提升效率最显著的一环。
2.2 安装与初始配置
下载完成后,我们得到一个.AppxBundle文件。为了便于操作,我们可以将其后缀直接改为.zip,然后使用任意解压工具(如7-Zip、Bandizip)进行解压。解压后,你可能会发现里面还有一个或多个.appx文件,找到对应x64架构的那个(如Ubuntu_2404.0.5.0_x64.appx),再次将其重命名为.zip并解压。
最终,你会得到一个包含可执行文件的文件夹,例如Ubuntu_2404.0.5.0_x64。我建议将这个文件夹移动到非系统盘(如D盘),因为WSL子系统所有的文件都将存储在这里,随着你安装的软件和数据集增多,它可能会占用数十GB的空间。
进入该文件夹,双击运行ubuntu2404.exe(或类似名称的可执行文件)。一个终端窗口将会弹出,系统开始进行最后的安装和初始化。这个过程会持续几分钟,你需要:
- 等待初始化完成。
- 根据提示,输入你想要的用户名(建议使用英文,不要包含空格或特殊字符)。
- 设置并确认你的密码(输入时不会显示字符,这是正常的)。
安装完成后,这个终端就是你的Ubuntu命令行界面了。为了后续安装软件的便利,我们首先切换到root用户,并更新系统软件源。
# 切换到root用户,需要输入刚才你设置的密码
sudo su -
# 更新软件包列表
apt update && apt upgrade -y
# 安装一些常用的基础工具
apt install -y wget curl git net-tools
现在,你的Ubuntu 24.04 LTS已经在WSL2中准备就绪。你可以通过cat /etc/os-release命令来确认系统版本。
3. 配置GPU支持与CUDA环境
AI模型微调的核心动力来自于GPU的并行计算能力。让WSL2中的Ubuntu识别并使用宿主Windows的NVIDIA显卡,是搭建环境中最关键的一步。幸运的是,NVIDIA官方提供了对WSL2的良好支持。
3.1 在Windows端安装显卡驱动
这是最重要且唯一需要在Windows端进行的操作。你不需要在Ubuntu内部安装任何显卡驱动。
- 访问NVIDIA官方网站的驱动下载页面。
- 选择你的显卡产品系列、型号以及操作系统(选择 Windows 11)。
- 下载类型选择 “Game Ready Driver (GRD)” 或 “Studio Driver” 均可,但请务必确保下载的是标准版Windows驱动,而不是为数据中心准备的版本。
- 下载完成后,在Windows中运行安装程序。在安装类型中,选择“自定义”安装,然后勾选“执行清洁安装”,并务必确保“适用于Linux的Windows子系统”这个组件被选中(默认通常是选中的)。
- 完成安装并重启Windows系统。
3.2 在WSL2中安装CUDA Toolkit
重启后,再次启动你的Ubuntu终端。CUDA Toolkit是NVIDIA提供的并行计算平台和编程模型,PyTorch等框架依赖它来调用GPU进行计算。
NVIDIA为WSL2提供了专门的CUDA仓库,安装非常简便。我们以目前主流的CUDA 12.x版本为例。
# 首先,添加NVIDIA的CUDA仓库密钥和仓库地址
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /"
# 更新软件包列表并安装CUDA Toolkit
sudo apt update
sudo apt install -y cuda-toolkit-12-8
安装完成后,需要将CUDA的路径添加到环境变量中,以便系统能够找到相关的命令和库文件。
# 编辑当前用户的bash配置文件
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
# 使配置立即生效
source ~/.bashrc
现在,让我们验证CUDA是否安装成功,并确认GPU可以被WSL2识别。
# 检查CUDA编译器版本
nvcc --version
# 运行NVIDIA系统管理界面工具,这是最重要的验证命令
nvidia-smi
如果一切顺利,nvidia-smi命令会输出一个表格,显示你的GPU型号、驱动版本、CUDA版本以及当前的GPU使用情况(内存、利用率等)。看到这个界面,就意味着你的WSL2已经成功挂载了宿主机的NVIDIA GPU,可以用于加速计算了。
提示:
nvidia-smi显示的“CUDA Version”指的是驱动支持的最高CUDA版本,而nvcc --version显示的是你实际安装的CUDA Toolkit版本。只要后者不高于前者,就是兼容的。
4. 搭建Python与PyTorch开发环境
有了可用的GPU,接下来我们需要一个隔离、干净的Python环境来安装AI框架。Anaconda(或更轻量化的Miniconda)是管理Python环境和包依赖的绝佳工具。
4.1 安装Miniconda
相比于完整的Anaconda,Miniconda只包含conda包管理器和Python,更加轻量。我们通过脚本安装它。
# 下载最新的Miniconda安装脚本(Linux版)
cd /tmp
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 运行安装脚本
bash Miniconda3-latest-Linux-x86_64.sh
安装过程中,你会看到许可协议,按回车键浏览,然后输入yes同意。接下来会询问安装路径,直接回车使用默认路径(/home/你的用户名/miniconda3)即可。最后,安装程序会问你是否要初始化conda,选择yes。这样,每次打开终端,conda的基础环境就会自动激活。
安装完成后,关闭当前终端,再重新打开一个新的Ubuntu终端,或者执行source ~/.bashrc来加载conda的初始化脚本。输入conda --version,如果显示版本号,则说明安装成功。
4.2 创建虚拟环境并安装PyTorch
为每个项目创建独立的虚拟环境是一个好习惯,可以避免包版本冲突。我们为AI微调创建一个专门的环境。
# 创建一个名为‘pt27’的虚拟环境,并指定Python 3.12
conda create -n pt27 python=3.12 -y
# 激活这个环境
conda activate pt27
激活后,你的命令行提示符前面会出现(pt27),表示你正在这个虚拟环境中操作。现在,我们来安装PyTorch 2.7。
访问PyTorch官网的“Get Started”页面,选择对应的配置可以生成安装命令。根据我们之前安装的CUDA 12.8,正确的pip安装命令如下:
# 使用PyTorch官方索引安装PyTorch 2.7 + CUDA 12.8
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
这个命令会从PyTorch的CUDA 12.8专用仓库下载预编译的轮子(wheel),安装速度较快。安装完成后,让我们进入Python交互界面进行最终验证。
# 启动Python
python
# 在Python交互界面中执行以下命令
import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA是否可用: {torch.cuda.is_available()}")
print(f"可用的GPU数量: {torch.cuda.device_count()}")
print(f"当前GPU名称: {torch.cuda.get_device_name(0)}")
# 进行一个简单的张量计算测试,验证GPU是否真的在工作
x = torch.randn(3, 3).cuda() # 将张量放到GPU上
y = x * 2
print(f"计算完成,结果在GPU上: {y.device}")
如果输出显示CUDA可用,GPU数量为1,并且能成功在GPU上进行计算,那么恭喜你,一个功能完整的AI模型微调本地环境已经全部搭建完毕!你可以在这个pt27环境中安装其他需要的机器学习库,如transformers, datasets, accelerate等,开始你的AI探索之旅了。
5. 高效工作流与实用技巧
环境搭建好了,如何高效地在其中工作呢?WSL2提供了一些强大的特性,能让你的开发体验更加顺畅。
5.1 文件系统互访
WSL2的一个巨大优势是它与Windows宿主机之间无缝的文件系统访问。
- 在Windows中访问Linux文件:你可以在文件资源管理器的地址栏直接输入
\\wsl$,回车后就能看到所有已安装的WSL发行版,进入即可像操作本地文件夹一样浏览和编辑Linux系统中的文件。 - 在Linux中访问Windows文件:在Ubuntu终端中,Windows的各个磁盘挂载在
/mnt/目录下。例如,你的C盘就在/mnt/c/,D盘在/mnt/d/。你可以直接使用Linux命令(如cp,ls)来操作这些文件。
最佳实践:建议将大型数据集、代码仓库等放在Windows分区(如D盘),然后在WSL中通过/mnt/d/路径来访问。这样既可以利用Windows下图形化工具管理的便利,又能在Linux环境中进行计算。
5.2 配置开发工具
你完全可以使用Windows上强大的IDE(如VSCode、PyCharm)来开发WSL中的项目。
以VSCode为例:
- 在Windows上安装VSCode。
- 安装官方扩展“Remote - WSL”。
- 在Ubuntu终端中,进入你的项目目录,输入
code .。 - VSCode会自动启动(或打开新窗口),并提示你安装必要的组件到WSL中。安装完成后,整个VSCode的编辑、调试、终端功能都将完全运行在WSL环境里,享受Linux的工具链和库,同时拥有Windows IDE的出色体验。
5.3 网络与性能调优
WSL2使用虚拟化网络,默认情况下拥有独立的IP地址。你可以通过ifconfig命令查看。Windows和WSL2之间可以通过这个IP直接通信,这对于一些需要网络交互的服务(如Jupyter Notebook)非常有用。
默认情况下,WSL2会动态分配内存。如果你进行大规模训练,可以手动限制其最大内存使用量,避免影响宿主系统。在Windows用户目录(C:\Users\你的用户名\)下创建或编辑一个名为.wslconfig的文件,内容如下:
[wsl2]
memory=32GB # 设置最大内存为32GB,请根据你的物理内存调整
processors=8 # 设置可用的CPU核心数
localhostForwarding=true
保存后,在PowerShell中执行wsl --shutdown关闭WSL,下次启动时配置就会生效。
5.4 环境备份与迁移
随着你在环境中安装的软件越来越多,定期备份是个好习惯。WSL2允许你将整个发行版导出为一个压缩文件。
# 在Windows PowerShell中执行
# 列出所有发行版
wsl -l -v
# 导出指定的发行版(例如Ubuntu-24.04)到一个文件
wsl --export Ubuntu-24.04 D:\backup\ubuntu_wsl_backup.tar
如果需要在新机器上恢复,或者想复制一份环境,可以使用--import命令。
掌握了这些技巧,你的WSL2+Ubuntu+PyTorch环境就不再只是一个实验品,而是一个可以投入实际学习和项目开发的强大工作站。从环境搭建到高效使用,每一步的自主掌控,正是技术探索乐趣的一部分。
更多推荐
所有评论(0)