在WSL中构建基本的大模型开发环境

文章目录

    • [📖 目录导读](#📖 目录导读)
    • [第一部分:为什么选择 WSL?](#第一部分:为什么选择 WSL?)
      • [1.1 什么是 WSL?](#1.1 什么是 WSL?)
      • [1.2 核心优势](#1.2 核心优势)
    • [第二部分:WSL 基础环境搭建](#第二部分:WSL 基础环境搭建)
      • [2.1 安装 WSL2](#2.1 安装 WSL2)
      • [2.2 进入wsl的方式](#2.2 进入wsl的方式)
      • [2.3 更换国内镜像源(加速下载)](#2.3 更换国内镜像源(加速下载))
      • [2.4 Linux下载/安装内容的目录建议](#2.4 Linux下载/安装内容的目录建议)
    • [第三部分:构建 Python 核心生态(Conda + Jupyter)](#第三部分:构建 Python 核心生态(Conda + Jupyter))
      • [3.1 选型建议:Anaconda vs Miniconda](#3.1 选型建议:Anaconda vs Miniconda)
      • [3.2 安装 Miniconda](#3.2 安装 Miniconda)
      • [3.3 创建大模型专属环境](#3.3 创建大模型专属环境)
      • [3.4 配置 Jupyter Lab](#3.4 配置 Jupyter Lab)
    • 第四部分:安装pytorch

在当今 AI 爆发的时代,大模型应用开发已成为技术热点。对于 Windows 用户而言,直接在 Windows 上配置深度学习环境往往面临依赖冲突、路径兼容性等"深坑"。

WSL (Windows Subsystem for Linux) 的出现完美解决了这一痛点。它让我们既能享受 Windows 的图形界面便利,又能拥有原生 Linux 的强大开发生态。

本文将带你从零开始,在 WSL 中搭建一套基础的大模型开发环境(Conda + Python + Jupyter),助你快速开启 AI 之旅。


📖 目录导读

WSL开发环境

  1. 基础认知 什么是WSL
    为什么选WSL
  2. 环境准备 安装WSL2
    配置Ubuntu
  3. 核心工具链 Miniconda安装
    Python环境管理
    Jupyter Lab配置
    Pytorch安装

第一部分:为什么选择 WSL?

1.1 什么是 WSL?

WSL 是微软推出的"Windows 子系统 Linux"。简单来说,它允许你在 Windows 电脑上运行一个完整的 Linux 系统(如 Ubuntu),而无需安装双系统或笨重的虚拟机。

1.2 核心优势

  • 原生体验:直接调用 GPU 硬件,性能损耗极低(WSL2)。
  • 生态兼容:完美支持绝大多数 AI 框架(PyTorch, TensorFlow, Hugging Face)。
  • 文件互通:Windows 和 Linux 文件系统可以无缝互相访问。

第二部分:WSL 基础环境搭建

2.1 安装 WSL2

现在的 Windows 10/11 安装 WSL 非常简单。

步骤0:检查必要设置

先检查 WSL 基础功能是否生效,避免「组件未装」导致发行版无法启动:

管理员身份打开 PowerShell,执行:

java 复制代码
# 检查WSL功能是否启用
dism.exe /online /get-features /format:table | findstr "Microsoft-Windows-Subsystem-Linux VirtualMachinePlatform"

若两项不是都为enabled,需要手动启用:

java 复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

然后重启电脑。

步骤 1:开启功能

管理员身份打开 PowerShell,依次输入并执行以下命令:

建议在执行install阶段打开代理,否则下载安装会非常慢。

powershell 复制代码
# 列出可安装的发行版
wsl --list --online
# 安装需要的版本
wsl --install <指定linux系统及版本>

安装后会让你输入用户名及密码

2.2 进入wsl的方式

安装好WSL Linux后,可通过命令行、Windows Terminal、开始菜单等多种方式快速进入,首次启动需完成用户名/密码初始化,以下是具体步骤与常用技巧。

  1. 命令行快速进入(CMD/PowerShell/Windows Terminal)
    • 打开终端,输入 wsl 直接进入默认发行版(若仅装Ubuntu,即为它)。
    • 多发行版时指定进入:wsl -d Ubuntu-22.04(把"Ubuntu-22.04"换成你的实际版本名,可用 wsl -l -v 查看)。
    • 进入用户主目录:wsl ~
    • 以root身份进入:wsl -u root(用于系统级操作)。
  2. Windows Terminal(推荐,体验最佳)
    • 安装后打开,顶部下拉菜单直接选"Ubuntu-22.04"等对应版本,一键进入。
    • 可在设置中把Ubuntu设为默认启动项,打开即进入。
  3. 开始菜单快捷启动
    • 点击Windows开始菜单,搜索"Ubuntu",点击对应图标(如"Ubuntu 22.04 LTS"),自动打开终端并进入。
  4. 文件资源管理器进入
    • 打开资源管理器,地址栏输入 \\wsl$,找到Ubuntu发行版目录,右键"在终端中打开",直接进入该目录的WSL环境。

2.3 更换国内镜像源(加速下载)

默认的 Ubuntu 软件源在国外,下载速度较慢。我们需要将其替换为国内镜像(如清华源或阿里源)。

bash 复制代码
# 代码用途:备份原文件并替换为清华源(以Ubuntu 22.04为例)
# 1. 备份源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 2. 修改源列表(使用sed命令批量替换)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# 3. 更新软件列表
sudo apt update

代码解读sed 是流编辑器,用于文本替换;apt update 会根据新的源地址刷新软件列表,确保后续安装能找到软件包。

2.4 Linux下载/安装内容的目录建议

Linux 有严格的文件系统规范(FHS 标准),不同类型的文件建议放在对应目录,避免混乱:

内容类型 推荐目录 说明
临时下载的文件(安装包、压缩包等) ~/Downloads/ 主目录下的下载文件夹(用户专属,权限可控,临时文件优先放这里); 也可直接放 ~ 下,但建议归类。
个人自用程序/脚本 ~/bin/~/scripts/ 自定义可执行文件目录(需把 ~/bin 加入 PATH,执行 echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc && source ~/.bashrc 生效)。
系统级软件(通过包管理器安装) /usr/ - /usr/bin/:系统可执行程序(如 python3git); - /usr/lib/:软件库文件; - /usr/share/:软件共享资源(文档、配置模板)。
手动编译/安装的软件(非包管理器) /usr/local/ 区别于系统默认软件,比如手动编译的 nginx 建议装到 /usr/local/nginx/,避免覆盖系统文件。
系统配置文件 /etc/ 全局配置(如 /etc/nginx//etc/profile);用户级配置放 ~/.config/(如 ~/.config/git/)。
数据文件/日志 - /var/lib/:软件运行数据(如数据库); - /var/log/:系统/软件日志; - 用户级日志放 ~/.log/
临时文件 /tmp/ 系统临时目录(重启会清空,不建议存重要文件);用户临时文件可放 ~/tmp/

实操建议:

  1. 个人文件优先放主目录 :下载的安装包、自己写的脚本、项目代码等,都先放在 ~ 下的子目录(如 ~/Downloads/~/projects/),权限足够且易管理;

  2. 避免直接装到 /root/ :除非是 root 专属软件,否则普通用户软件装到 /usr/local/ 或用户主目录;

  3. 手动安装软件的规范 :比如编译安装 nodejs,建议:

    bash 复制代码
    # 下载源码到 ~/Downloads/
    cd ~/Downloads
    wget https://nodejs.org/dist/v20.10.0/node-v20.10.0.tar.gz
    tar -xzf node-v20.10.0.tar.gz
    cd node-v20.10.0
    # 配置安装路径为 /usr/local
    ./configure --prefix=/usr/local
    make && sudo make install
  4. WSL 特殊注意 :WSL 中 ~ 对应 Windows 路径 \\wsl$\Ubuntu-22.04\home\用户名\,Windows 下可直接访问,方便跨系统传文件。


第三部分:构建 Python 核心生态(Conda + Jupyter)

在大模型开发中,我们通常需要管理多个不同版本的 Python 环境(例如:一个跑 Llama 3,一个跑 Stable Diffusion)。Conda 是最佳的解决方案。

3.1 选型建议:Anaconda vs Miniconda

特性 Anaconda Miniconda 建议
体积 庞大 (3GB+) 轻量 (100MB+) 推荐 Miniconda
预装包 预装数百个科学计算包 仅包含 Conda 和 Python 按需安装,更清爽
适用场景 数据科学初学者 开发者、服务器环境 避免环境臃肿

3.2 安装 Miniconda

步骤

在 WSL 终端中执行:

bash 复制代码
# 创建并进入进入目录
mkdir ~/Downloads/
cd ~/Downloads/
# 下载脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 授予可执行权限
chmod +x Miniconda3-latest-Linux-x86_64.sh
# 运行安装脚本
./Miniconda3-latest-Linux-x86_64.sh

后面就是按照它的提示操作:


安装并初始化结束之后,关闭terminal,再重新打开(让环境变量生效)。

3.3 创建大模型专属环境

我们将创建一个名为 llm-dev 的环境,指定 Python 版本为 3.10(目前 AI 库兼容性最好的版本之一)。

bash 复制代码
# 代码用途:创建虚拟环境
conda create -n llm-dev python=3.10 -y

# 代码用途:激活环境
conda activate llm-dev

代码解读

  • -n llm-dev:指定环境名称。
  • python=3.10:指定 Python 版本。
  • conda activate:切换到该环境,终端前缀会变成 (llm-dev)

3.4 配置 Jupyter Lab

Jupyter Lab 是交互式开发的利器,非常适合调试大模型代码。

步骤 1:安装 Jupyter

确保在 llm-dev 环境下:

bash 复制代码
pip install jupyterlab

步骤 2:运行与访问

在 WSL 中启动 Jupyter,通常需要允许其在浏览器中访问。

bash 复制代码
# 代码用途:启动 Jupyter Lab,不自动打开浏览器
jupyter lab --no-browser --ip=0.0.0.0 --allow-root

输出结果示例

终端会显示类似 http://127.0.0.1:8888/lab?token=xxxx... 的链接。
操作 :按住 Ctrl 点击该链接,或者复制到 Windows 浏览器中打开,即可看到开发界面。

第四部分:安装pytorch

  • 查看CUDA版本:
bash 复制代码
nvidia-smi

第一行的cuda version就是cuda的版本

  • 官方源解析环境较慢,libmamba 求解器能大幅提速:
bash 复制代码
# 官方源解析环境较慢,libmamba 求解器能大幅提速
conda install -n base conda-libmamba-solver -y
conda config --set solver libmamba
  • 安装cuda:
bash 复制代码
# 推荐安装CUDA 12.1(适配绝大多数NVIDIA显卡,兼容性最好)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
相关推荐
zly35002 小时前
在 CentOS 系统中,重启某一个网卡
linux·运维·centos
阿正的梦工坊2 小时前
WebArena:一个真实的网页环境,用于构建更强大的自主智能体
人工智能·深度学习·机器学习·大模型·llm
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之paste命令(实操篇)
linux·运维·服务器·笔记·microsoft
a_eastern2 小时前
linux electron-forge离线打包关键配置
android·linux·electron
CheungChunChiu2 小时前
Linux 图形栈全景解析:从 OpenGL 到 DRM/KMS 的完整链路
linux·运维·服务器·opengl
潇I洒2 小时前
[Linux] Ubuntu中设置查看MySQL连接日志
linux·mysql·ubuntu
白书宇2 小时前
【STM32实战】从零开始写Linux 0.12内核 第1个实验安装IAR 8.5
linux·c语言·驱动开发·stm32·单片机·嵌入式硬件
looking_for__2 小时前
【Linux】动静态库
linux
27669582922 小时前
京东最新滑块 分析
linux·前端·javascript·h5st·京东滑块·京东m端滑块·京东逆向