Windows 11 本地大模型训练与 API 服务部署全攻略:专为 Windows 优化的端到端实现方案
·

本地部署大模型训练及API服务方案(基于Windows 11)
在Windows 11系统中部署大模型并进行API服务发布,其核心流程与Linux环境相似,但需特别注意Windows平台特有的环境配置、依赖安装及权限管理等关键环节。以下是专为Windows 11优化的详细部署指南。
摘要
本文详细介绍了在Windows 11系统下部署大模型训练及API服务的完整方案。针对Windows平台特性,重点对比了WSL2(推荐)和原生Windows两种部署路径,提供详细的WSL2环境配置指南、GPU驱动安装说明及CUDA环境搭建步骤。文章包含Python环境配置、模型训练/微调示例代码,并特别说明Windows平台下的API服务封装技巧和网络暴露配置方法。通过清晰的流程图和步骤说明,帮助开发者在Windows 11上实现与Linux环境相近的大模型部署体验,同时规避平台特有的兼容性问题。
🗺️ Windows 11部署流程图
一、Windows 11环境准备(关键差异)
1.1 两种部署路径选择
| 方案 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| WSL2 + Ubuntu | 兼容性最好,几乎与Linux环境一致 | 需要额外安装WSL2 | ⭐⭐⭐⭐⭐(强烈推荐) |
| 原生Windows | 无需额外环境 | 部分依赖库兼容性问题 | ⭐⭐⭐(仅测试用) |
强烈建议使用WSL2方案,可避免90%的依赖问题。
1.2 WSL2环境安装步骤
步骤1:启用WSL2功能
# 以管理员身份打开PowerShell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启电脑后,设置WSL2为默认版本
wsl --set-default-version 2
步骤2:安装Ubuntu发行版
- 打开Microsoft Store,搜索"Ubuntu 22.04 LTS"并安装
- 或使用命令:
wsl --install -d Ubuntu-22.04 - 首次启动会提示创建用户名和密码
步骤3:验证WSL2环境
# 在Ubuntu终端中
uname -a # 应显示Linux内核
lsb_release -a # 查看Ubuntu版本
1.3 原生Windows环境准备(备选)
如果坚持使用原生Windows:
- 安装Python 3.10+(从官网下载安装包)
- 安装CUDA Toolkit for Windows(注意版本匹配)
- 安装Visual Studio Build Tools(部分库需要编译)
二、GPU驱动与CUDA配置(Windows特有)
2.1 安装NVIDIA驱动
- 访问NVIDIA官网下载Windows版驱动
- 安装后验证:打开任务管理器 → 性能 → GPU,应显示正常
2.2 WSL2中的GPU支持
# 在Windows PowerShell中安装WSL2 CUDA驱动
# 访问NVIDIA官网下载WSL CUDA驱动(注意与Windows驱动版本匹配)
# 安装后,在WSL2中验证:
nvidia-smi # 应显示GPU信息
2.3 原生Windows的CUDA安装
- 下载CUDA Toolkit for Windows安装包
- 安装时选择"自定义",勾选所有组件
- 验证:
nvcc --version应显示版本号
三、Python环境搭建(WSL2方案)
以下步骤均在WSL2的Ubuntu终端中执行:
3.1 安装Miniconda(推荐)
# 下载并安装Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 按照提示完成安装,重启终端后激活conda
source ~/.bashrc
# 创建专用环境
conda create -n llm_train python=3.10
conda activate llm_train
3.2 安装PyTorch(关键步骤)
# 根据CUDA版本选择(假设CUDA 12.1)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# 验证安装
python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"
# 应输出True和您的GPU型号
3.3 安装训练框架
pip install transformers accelerate datasets peft
# 可选:安装其他工具
pip install jupyter notebook gradio
四、模型训练/微调(WSL2环境)
这部分与Linux环境完全一致,以下为关键代码示例:
4.1 数据准备
# 在WSL2中,数据文件可以放在Windows目录
# WSL2会自动挂载Windows盘符到/mnt/下
# 例如:/mnt/c/Users/YourName/Documents/data.jsonl
4.2 LoRA微调示例
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig, get_peft_model
import torch
# 加载模型(首次会下载到WSL2文件系统)
model_name = "Qwen/Qwen2-7B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto"
)
# LoRA配置
lora_config = LoraConfig(
r=8,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.1,
)
model = get_peft_model(model, lora_config)
# 训练代码(简化示例)
# ... 准备数据、配置训练参数、开始训练
# 保存模型
model.save_pretrained("./lora_adapter")
Windows特有注意:
- 模型文件默认下载到WSL2文件系统(
~/.cache/huggingface) - 如需在Windows中访问,可通过
\\wsl$\Ubuntu\home\username访问(需开启WSL2网络发现)
五、API服务封装(Windows兼容性处理)
5.1 方案选择
| 方案 | 适用场景 | Windows兼容性 |
|---|---|---|
| 在WSL2中运行API | 推荐方案 | 完美兼容 |
| 在原生Windows运行 | 备选 | 可能遇到端口绑定问题 |
5.2 WSL2中部署FastAPI服务
# 在WSL2环境中安装FastAPI
pip install fastapi uvicorn
# 创建app.py(内容与Linux版本相同)
启动服务(关键:监听0.0.0.0):
uvicorn app:app --host 0.0.0.0 --port 8000
5.3 从Windows访问WSL2服务
WSL2会自动创建虚拟网络,从Windows访问:
- 在Windows浏览器输入:
http://localhost:8000 - 或使用WSL2的IP:
http://<wsl-ip>:8000(可通过wsl hostname -I获取)
5.4 原生Windows部署(备选)
如果必须在原生Windows运行API:
# 在Windows PowerShell中
pip install fastapi uvicorn
# 启动时可能遇到端口占用问题,需要管理员权限
uvicorn app:app --host 0.0.0.0 --port 8000
六、网络暴露(Windows特有配置)
6.1 Windows防火墙配置
# 以管理员身份打开PowerShell
# 开放端口(如果使用原生Windows方案)
New-NetFirewallRule -DisplayName "LLM API" -Direction Inbound -LocalPort 8000 -Protocol TCP -Action Allow
6.2 端口转发(路由器配置)
- 登录路由器管理界面(通常192.168.1.1)
- 找到"端口转发"或"虚拟服务器"设置
- 添加规则:外部端口 → 内网IP:8000
- 注意:如果服务在WSL2中,内网IP应为Windows主机的IP
6.3 内网穿透工具(推荐测试)
在Windows中安装ngrok:
# 下载ngrok for Windows
# 注册账号获取authtoken
ngrok config add-authtoken YOUR_TOKEN
ngrok http 8000 # 会生成公网地址
6.4 WSL2网络注意事项
WSL2使用NAT网络,从外部访问时:
- 需要配置Windows主机的端口转发到WSL2
- 或使用
netsh interface portproxy命令:
# 将Windows8000端口转发到WSL2的8000
netsh interface portproxy add v4tov4 listenport=8000 listenaddress=0.0.0.0 connectport=8000 connectaddress=(wsl hostname -I)
七、完整测试流程(Windows验证)
7.1 本地测试
# 在Windows PowerShell中测试
curl.exe -X POST "http://localhost:8000/generate" `
-H "Content-Type: application/json" `
-d '{"prompt": "你好"}'
7.2 局域网测试
- 在另一台电脑访问:
http://<windows-ip>:8000 - 确保Windows防火墙允许入站连接
7.3 公网测试
- 通过ngrok生成的地址测试
- 或通过路由器端口转发后的公网IP测试
八、Windows特有问题与解决方案
问题1:WSL2中GPU不可用
- 检查Windows NVIDIA驱动版本
- 更新WSL2 CUDA驱动:
wsl --update - 重启WSL2:
wsl --shutdown→wsl
问题2:权限不足
- 在WSL2中,使用
sudo执行需要权限的命令 - 在Windows中,以管理员身份运行PowerShell
问题3:文件路径问题
- WSL2访问Windows文件:
/mnt/c/Users/... - Windows访问WSL2文件:
\\wsl$\Ubuntu\...
问题4:端口被占用
# 查看端口占用
netstat -ano | findstr :8000
# 结束进程
taskkill /pid <PID> /f
💡 关键总结
- 强烈推荐WSL2方案:可避免绝大多数兼容性问题
- 注意网络配置:WSL2的NAT网络需要额外端口转发
- 权限管理:Windows的UAC和防火墙可能阻止访问
- 备份重要文件:模型权重建议备份到Windows目录或云存储
- 从简单开始:先用小模型测试完整流程
🚀 Windows快速启动清单
- ✅ 启用WSL2并安装Ubuntu
- ✅ 安装NVIDIA驱动和WSL CUDA驱动
- ✅ 在WSL2中安装conda和PyTorch
- ✅ 下载并测试小模型推理
- ✅ 封装FastAPI服务并启动
- ✅ 从Windows浏览器访问localhost:8000测试
- ✅ 配置端口转发或使用ngrok
- ✅ 外部网络测试成功
最终建议:虽然Windows 11可以完成部署,但生产环境仍建议使用Linux服务器。Windows方案更适合开发测试和学习。如果遇到具体错误,可根据错误信息搜索Windows特定的解决方案,或考虑迁移到WSL2环境。
如果您在某个具体步骤遇到问题,可以提供错误信息,我可以给出针对性的Windows解决方案。
更多推荐

所有评论(0)