跳到主要内容

Windows/WSL 环境 AI 开发指南

本指南将详细介绍如何在 Windows 环境下搭建 AI 开发环境,包括 Windows 原生环境、WSL2 环境和 Docker Desktop 环境三种方案。

概述​

Windows AI 开发方案对比​

方案优势劣势适用场景
Windows 原生性能最佳,无需虚拟化部分工具兼容性差轻量级开发,GPU密集型任务
WSL2Linux兼容性好,开发体验佳性能略有损失,配置复杂大多数AI开发场景
Docker Desktop环境隔离,易于管理资源占用大,配置复杂多项目开发,团队协作

推荐方案​

  • 新手入门: Windows 原生环境 + Ollama
  • 日常开发: WSL2 + CUDA + Docker
  • 生产部署: Docker Desktop + Kubernetes

方案一:Windows 原生开发环境​

1. 安装 NVIDIA 驱动​

下载驱动​

访问 NVIDIA 驱动下载页面

选择:

  • 产品类型:GeForce / RTX / Quadro / Tesla
  • 产品系列:根据显卡选择
  • 产品家族:具体型号
  • 操作系统:Windows 10/11 64-bit

安装驱动​

  1. 双击下载的 .exe 文件
  2. 选择"精简"安装(推荐)
  3. 完成后重启计算机

验证安装​

nvidia-smi

预期输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.129.03 Driver Version: 535.129.03 CUDA Version: 12.2 |
|-------------------------------+----------------------+----------------------+
| 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 GeForce ... Off | 00000000:01:00.0 On | N/A |
+-------------------------------+----------------------+----------------------+

2. 安装 CUDA Toolkit​

下载 CUDA​

访问 CUDA Toolkit 下载页面

选择:

  • Operating System: Windows
  • Architecture: x86_64
  • Version: 10/11
  • Installer Type: exe (local)

安装步骤​

  1. 运行安装程序
  2. 选择"精简"安装
  3. 安装路径使用默认值
  4. 完成后验证

验证安装​

nvcc --version

3. 安装 Python 环境​

方式一:Anaconda(推荐)​

下载 Anaconda

# 创建虚拟环境
conda create -n ai-dev python=3.10
conda activate ai-dev

# 安装常用库
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install transformers langchain openai

方式二:Python 官方版本​

下载 Python

# 安装虚拟环境工具
pip install virtualenv

# 创建虚拟环境
python -m venv ai-env
.\ai-env\Scripts\activate

# 安装依赖
pip install -r requirements.txt

4. 安装 Ollama(Windows 原生)​

下载安装​

访问 Ollama 官网

下载 Windows 安装包并安装

使用方法​

# 拉取模型
ollama pull llama2

# 运行模型
ollama run llama2

# API 调用
curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt": "你好"
}'

5. 安装向量数据库​

Milvus(使用 Docker Desktop)​

# docker-compose.yml
version: '3.5'

services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
volumes:
- ./volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd

minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- ./volumes/minio:/minio_data
command: minio server /minio_data

standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.3.3
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- ./volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
docker-compose up -d

方案二:WSL2 开发环境​

1. 启用 WSL2​

安装 WSL2​

# 以管理员身份运行 PowerShell
wsl --install

重启计算机后,WSL2 会自动安装 Ubuntu。

配置 WSL2​

# 设置 WSL2 为默认版本
wsl --set-default-version 2

# 查看已安装的发行版
wsl --list --verbose

# 设置默认发行版
wsl --set-default Ubuntu

2. 安装 NVIDIA CUDA on WSL​

安装 NVIDIA 驱动​

在 Windows 主机上安装 NVIDIA 驱动(支持 WSL2 的版本)。

在 WSL2 中安装 CUDA​

# 进入 WSL2
wsl

# 添加 NVIDIA 包仓库
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update

# 安装 CUDA Toolkit
sudo apt-get install -y cuda-toolkit-12-4

# 配置环境变量
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# 验证安装
nvidia-smi
nvcc --version

3. 配置 WSL2 开发环境​

安装开发工具​

# 更新系统
sudo apt-get update && sudo apt-get upgrade -y

# 安装基础工具
sudo apt-get install -y build-essential git curl wget vim

# 安装 Python
sudo apt-get install -y python3 python3-pip python3-venv

# 创建虚拟环境
python3 -m venv ~/ai-env
source ~/ai-env/bin/activate

# 安装 PyTorch
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

配置 Docker​

# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

# 启动 Docker 服务
sudo service docker start

# 验证安装
docker --version

4. 安装 Ollama on WSL2​

# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 启动服务
ollama serve &

# 拉取模型
ollama pull llama2

# 测试运行
ollama run llama2

5. 配置 VS Code 远程开发​

安装 VS Code 扩展​

在 Windows 上的 VS Code 中安装:

  • WSL 扩展
  • Python 扩展
  • Docker 扩展

连接 WSL2​

# 在 VS Code 中
# 按 F1,输入 "WSL: Connect to WSL"
# 或直接在 WSL 目录中打开
code .

6. WSL2 性能优化​

配置 .wslconfig​

在 Windows 用户目录下创建 .wslconfig 文件:

[wsl2]
memory=16GB
processors=8
swap=4GB
localhostForwarding=true

[experimental]
autoMemoryReclaim=gradual

重启 WSL2​

wsl --shutdown
wsl

方案三:Docker Desktop 开发环境​

1. 安装 Docker Desktop​

下载安装​

访问 Docker Desktop 下载页面

下载 Windows 版本并安装。

配置 Docker Desktop​

  1. 启用 WSL2 后端
  2. 配置资源限制
  3. 启用 GPU 支持

2. 配置 GPU 支持​

安装 NVIDIA Container Toolkit​

# 在 PowerShell 中运行
docker run --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi

3. 创建 AI 开发容器​

Dockerfile​

FROM nvidia/cuda:12.4.0-devel-ubuntu22.04

# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai

# 安装系统依赖
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-venv \
git \
curl \
wget \
vim \
&& rm -rf /var/lib/apt/lists/*

# 安装 Python 包
RUN pip3 install --no-cache-dir \
torch \
torchvision \
torchaudio \
transformers \
langchain \
openai \
jupyter

# 设置工作目录
WORKDIR /workspace

# 暴露端口
EXPOSE 8888 6006

# 启动 Jupyter
CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root"]

docker-compose.yml​

version: '3.8'

services:
ai-dev:
build: .
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- ./workspace:/workspace
- ./data:/data
ports:
- "8888:8888"
- "6006:6006"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]

运行容器​

docker-compose up -d
docker-compose exec ai-dev bash

常见问题​

1. WSL2 中 GPU 无法识别​

问题: nvidia-smi 命令失败

解决方案:

# 检查 Windows 驱动版本
# 确保安装了支持 WSL2 的驱动

# 在 WSL2 中检查
ls -la /usr/lib/wsl/lib/

# 添加库路径
echo 'export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

2. Docker Desktop GPU 支持问题​

问题: 容器无法访问 GPU

解决方案:

# 检查 Docker Desktop 设置
# Settings -> Resources -> WSL Integration
# 启用对应的 WSL 发行版

# 重启 Docker Desktop
# 然后测试
docker run --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi

3. WSL2 内存不足​

问题: WSL2 占用过多内存

解决方案:

创建或编辑 %USERPROFILE%\.wslconfig:

[wsl2]
memory=8GB
swap=2GB

重启 WSL2:

wsl --shutdown
wsl

4. 文件系统性能问题​

问题: WSL2 访问 Windows 文件系统慢

解决方案:

# 将项目放在 WSL2 文件系统中
cd ~/
mkdir projects
cd projects

# 而不是
cd /mnt/c/Users/YourName/projects

5. 网络连接问题​

问题: WSL2 无法访问 Windows 服务

解决方案:

# 获取 Windows 主机 IP
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'

# 使用该 IP 访问 Windows 服务
# 例如:http://172.x.x.x:11434

最佳实践​

1. 环境选择​

  • 轻量级开发: Windows 原生环境
  • 日常开发: WSL2 + VS Code
  • 团队协作: Docker Desktop + Docker Compose

2. 性能优化​

  • 使用 WSL2 文件系统而非 Windows 文件系统
  • 合理配置 WSL2 资源限制
  • 使用 Docker 数据卷而非挂载目录

3. 开发流程​

  1. 在 WSL2 中开发代码
  2. 使用 VS Code 远程连接
  3. 使用 Docker 进行测试
  4. 使用 Git 进行版本控制

4. 工具推荐​

  • IDE: VS Code + WSL 扩展
  • 终端: Windows Terminal
  • 版本控制: Git for Windows
  • 容器管理: Docker Desktop
  • 数据库管理: DBeaver

快速开始示例​

Windows 原生环境快速开始​

# 1. 安装 Ollama
# 下载并安装:https://ollama.com/download

# 2. 拉取模型
ollama pull llama2

# 3. 测试运行
ollama run llama2

# 4. Python 调用
pip install ollama
python -c "import ollama; print(ollama.chat(model='llama2', messages=[{'role': 'user', 'content': '你好'}]))"

WSL2 环境快速开始​

# 1. 进入 WSL2
wsl

# 2. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 3. 安装 Python 环境
python3 -m venv ~/ai-env
source ~/ai-env/bin/activate
pip install langchain openai

# 4. 创建测试脚本
cat > test_rag.py << 'EOF'
from langchain.llms import Ollama
from langchain.prompts import PromptTemplate

llm = Ollama(model="llama2")

prompt = PromptTemplate.from_template("请用一句话介绍{topic}")
chain = prompt | llm

result = chain.invoke({"topic": "Python"})
print(result)
EOF

python test_rag.py

Docker Desktop 快速开始​

# 1. 创建项目目录
mkdir ai-project
cd ai-project

# 2. 创建 docker-compose.yml
# (使用上面的配置)

# 3. 启动服务
docker-compose up -d

# 4. 进入容器
docker-compose exec ai-dev bash

# 5. 在容器中开发
python -c "import torch; print(torch.cuda.is_available())"

参考资料​

官方文档​

相关教程​


提示

Windows 环境下的 AI 开发已经非常成熟,推荐使用 WSL2 获得最佳的 Linux 兼容性和开发体验。

信息

本指南提供了三种 Windows AI 开发方案,请根据实际需求选择合适的方案。WSL2 是目前最推荐的方案。