本地大模型环境配置
首页文章工具搜索

本地大模型环境配置

2026.09.18 [Windows] [大模型] [AI] 109 浏览
适用:Windows + NVIDIA 显卡,本地跑 ≤8B 模型(QLoRA 微调 / 推理)。变量用 <尖括号> 标注,视情况替换。

第 0 步:先匹配硬件与方案

动手前先确认你的配置能干什么,避免白折腾。

显存 能做什么 底座建议
≤8G 只推理,或 1.5B QLoRA DeepSeek-R1-Distill-Qwen-1.5B
12~16G 7B QLoRA 微调 + 推理 DeepSeek-R1-Distill-Qwen-7B
24G+ 14B QLoRA,或 7B 全参 Qwen2.5-14B / 7B
<8G / 无独显 只走 API 或 Ollama 不本地训练

显卡架构决定 CUDA 版本

选错跑不起来,这是最关键的匹配项。

架构 代表卡 最低 CUDA PyTorch 源
Blackwell RTX 50 系 12.8 cu128
Ada RTX 40 系 11.8 cu118 / cu121
Ampere RTX 30 系 11.7 cu118

按下 Win + R,键入 cmd 打开终端,输入 nvidia-smi。如果能看到显卡信息,请查看右上角的 CUDA Version,这是显卡所支持最高的 CUDA 版本,后续安装 PyTorch 时不得高于此版本!

查显卡架构:看型号后百度 <型号> compute capability。sm_120 = Blackwell,必须 cu128,老版本 torch 会报 no kernel image。

方案选择:
  • 只是"让模型知道我的文档" → 优先 RAG(向量库 + 检索),比微调省事
  • 要改输出风格 / 格式 / 术语习惯 → 微调
  • 两者都要 → 先 RAG 打底,再小规模微调

第 1 步:创建隔离环境

为什么隔离:系统 Python 装依赖容易污染、权限报错、版本冲突。所有依赖进独立文件夹,删项目 = 删环境。

cmd
cd <项目目录> python -m venv <环境名> <环境名>\Scripts\activate

多版本共存时,用 py launcher 明确锁定:

py -3.12 -m venv <环境名>

验证隔离生效:

python -c "import sys; print(sys.executable)"

必须输出 <项目目录>\<环境名>\Scripts\python.exe,不是系统 Python 路径。

激活命令对照

Shell 命令
CMD <环境名>\Scripts\activate
PowerShell .\<环境名>\Scripts\Activate.ps1

PowerShell 若报"禁止运行脚本":

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
提示:退出用 deactivate。重开终端要重新激活(看到 (<环境名>) 前缀才算)。建议 Python 版本:3.10 或 3.12,避开 3.13(生态不成熟)。

第 2 步:安装 PyTorch(按架构选源)

python -m pip install --upgrade pip

根据第 0 步的架构选对应源:

cmd
:: Blackwell (50系) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 :: Ada (40系) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 :: Ampere (30系) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
注意:PyTorch 必须用官方源,别挂清华源,否则下到 CPU 版。

验证:

python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_capability(0))"

期望:2.x.x+cu1xx True (12, 0)(数字对应你的架构)。若 False → 更新 NVIDIA 驱动。


第 3 步:安装训练栈

pip install "transformers>=4.46" "peft>=0.13" "trl>=0.12" "accelerate>=1.0" datasets pip install bitsandbytes
bitsandbytes 是 Windows 上最容易失败的包。如果 import 报 DLL load failed,换预编译 whl:
pip uninstall bitsandbytes -y pip install https://github.com/jllllll/bitsandbytes-windows-webui/raw/main/bitsandbytes-0.45.0-py3-none-win_amd64.whl
实在搞不定 → 切 WSL2,Linux 下一把过。

环境自检脚本 check_env.py

python
import sys, torch print("Python :", sys.version.split()[0]) print("exe :", sys.executable) print("torch :", torch.__version__) print("CUDA :", torch.version.cuda) print("GPU :", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "NO GPU") print("cap :", torch.cuda.get_device_capability(0) if torch.cuda.is_available() else "-") print("bf16 :", torch.cuda.is_bf16_supported() if torch.cuda.is_available() else "-") try: import bitsandbytes as bnb; print("bnb :", bnb.__version__) except Exception as e: print("bnb : FAILED ->", e) try: import transformers, peft, trl, accelerate print("tf/peft/trl/accel:", transformers.__version__, peft.__version__, trl.__version__, accelerate.__version__) except Exception as e: print("stack : FAILED ->", e)

跑通(无 FAILED)才继续。


第 4 步:设置环境变量(国内必做)

临时(当前窗口):

set HF_ENDPOINT=https://hf-mirror.com set HF_HUB_DISABLE_XET=1 set HF_HOME=<缓存盘>:\hf_cache

永久(推荐,重开终端生效):

setx HF_ENDPOINT "https://hf-mirror.com" setx HF_HUB_DISABLE_XET 1 setx HF_HOME "<缓存盘>:\hf_cache"
变量 作用 不加的后果
HF_ENDPOINT 走国内镜像 连 huggingface.co 超时
HF_HUB_DISABLE_XET 禁用 Xet 协议 下载中途报 401
HF_HOME 缓存集中到指定盘 默认塞 C 盘,占几十 GB

语法对照(写错会报"语法不正确")

Shell 写法
CMD 临时 set VAR=值(等号两边无空格)
PowerShell 临时 $env:VAR="值"
永久 setx VAR "值"(需重开终端)
setx 对当前窗口不生效,必须关掉重开。验证:echo %HF_ENDPOINT%。

第 5 步:调整 Windows 虚拟内存(7B 加载必做)

不做会报:OSError: 页面文件太小,无法完成操作 (os error 1455)

操作步骤:

  1. 按 Win + R → 输入 sysdm.cpl → 回车
  2. 进入 高级 → 性能设置 → 高级 → 虚拟内存更改
  3. 取消勾选"自动管理"
  4. 选空间充足的盘
  5. 自定义:初始 32768 MB / 最大 65536 MB
  6. 设置 → 确定 → 重启电脑
原因:加载 fp16 权重时 safetensors 用 mmap,Windows 需要预留等量 commit 内存。

第 6 步:下载并验证模型

最小推理脚本 infer_test.py:

python
import torch from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig MODEL = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B" # 按显存选 1.5B / 7B bnb = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True, ) tok = AutoTokenizer.from_pretrained(MODEL, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( MODEL, quantization_config=bnb, device_map="auto", trust_remote_code=True, ) print("loaded, VRAM:", torch.cuda.memory_allocated() // 1024 // 1024, "MB") messages = [{"role": "user", "content": "用一句话解释什么是机器学习。"}] prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tok(prompt, return_tensors="pt").to(model.device) with torch.no_grad(): out = model.generate(**inputs, max_new_tokens=1024, do_sample=False, temperature=None, top_p=None) print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
python infer_test.py

首次下载 ~15GB(fp16 全量),4bit 加载后显存约 5GB。


通用坑点速查表

现象 原因 解法
'conda' 不是命令 没装 conda 用 venv 替代
$env:X = "..." 语法错误 CMD 里用了 PowerShell 语法 改 set X=...
no kernel image available torch 版本不匹配显卡架构 按架构装对应 cuXXX
下载报 401 Xet 协议,镜像不支持 set HF_HUB_DISABLE_XET=1
os error 1455 虚拟内存不足 调页面文件到 32G/64G 并重启
连的是 huggingface.co 超时 镜像变量没生效 echo %HF_ENDPOINT% 确认,重开终端
triton not found 警告 Windows 支持差 无视,不影响
python 指向错版本 多版本 PATH 混乱 用 py -3.12 锁定
模型缓存占满 C 盘 默认在用户目录 设 HF_HOME 到其它盘
输出大段"内心独白" R1 系列思考链被截断 max_new_tokens 调大到 1024+

验证清单(全部通过才继续)

Python : 3.12.x exe : <项目目录>\<环境名>\Scripts\python.exe ← 隔离生效 torch : 2.x.x+cu1xx CUDA : 12.8 GPU : <你的显卡> cap : (12, 0) ← 匹配架构 bf16 : True bnb : 0.5x tf/peft/trl/accel: 版本号都在 loaded, VRAM: 5xxx MB ← 4bit 生效

相关推荐