从零到一:在Windows系统上本地部署Qwen2.5-1.5B轻量级大语言模型

随着大语言模型(LLM)技术的飞速发展,如何在个人电脑上高效、低成本地运行一个功能强大的模型,已成为开发者和技术爱好者探索的热点。相较于动辄需要数十GB显存的庞然大物,轻量级模型如Qwen2.5-1.5B凭借其优秀的性能与较低的硬件门槛,成为了入门和本地实验的理想选择。本文将手把手带你完成在Windows系统上,利用Python生态,从环境配置到成功运行Qwen2.5-1.5B模型的完整流程,让你轻松开启本地AI应用开发之旅。

一、搭建稳固的Python开发环境

一个独立、干净的Python环境是进行任何机器学习项目的基础,它能有效避免不同项目间的包版本冲突。在Windows上,我们通常使用Miniconda或Anaconda来管理虚拟环境。成功安装Miniconda后,你可能会发现终端(如CMD或PowerShell)的提示符前没有显示当前激活的环境名。为了让环境标识更清晰,需要进行一些终端配置。

这里,我们需要对终端进行配置,以确保能正确识别并显示Conda环境。具体操作如下:

先运行一下

再重启终端,可能会报错:“无法加载文件 C:\Users\username\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。”

此时管理员身份打开Powershell,运行

输入y确认修改。在vscode中重启终端即可。

最后的效果

完成此配置后,重新打开终端,你就能在路径前看到类似(base)的环境标识了。接下来,我们将创建一个专用于本项目的虚拟环境。

二、配置CUDA与核心依赖库

要让模型在GPU上运行,CUDA工具包是必不可少的。首先,我们需要确认显卡支持的CUDA最高版本。在Windows系统中,可以通过NVIDIA控制面板或命令行工具轻松查看。

运行以下命令查看显卡驱动支持的CUDA版本:

nvidia-smi

输出结果中的“12.5”表示当前驱动最高支持CUDA 12.5版本。根据这个信息,我们去NVIDIA官网下载并安装对应版本的CUDA Toolkit。安装过程较为直观,选择自定义安装时,确保勾选CUDA开发组件。

安装完成后,我们开始为项目创建虚拟环境并安装核心的深度学习框架。PyTorch是目前最流行的框架之一,对Python开发者极为友好。我们将创建一个名为qwen_env的Python 3.9环境,并安装适配我们CUDA版本的PyTorch。

创建环境并安装PyTorch:

1️⃣ 安装 Python 环境

建议使用 Python 3.10+

2️⃣ 安装 PyTorch(CUDA 12.1)

如果你之前能在 4060 上跑 PyTorch,可以跳过这步。

安装命令示例(请根据你的CUDA版本在PyTorch官网获取最新命令):

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

为了验证PyTorch是否正确安装并能识别GPU,运行一个简单的测试脚本:

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

✅ 如果安装成功,你应该能看到类似以下的输出,表明GPU(CUDA)已就绪:

TrueNVIDIA GeForce RTX 4060

3️⃣ 接下来,安装运行Qwen模型所需的其他Python依赖库,如transformers, accelerate, sentencepiece等:

pip install transformers datasets peft bitsandbytes accelerate sentencepiece

这些库构成了现代NLP开发的基石。transformers库由Hugging Face维护,提供了数千个预训练模型的统一接口,极大地简化了模型加载和使用的过程,其设计思想也影响了其他领域的开源库生态。

  • transformers:Hugging Face 模型框架

  • datasets:加载和处理数据

  • peft:参数高效微调(LoRA、QLoRA)

  • bitsandbytes:低比特量化支持(4bit/8bit)

  • accelerate:自动多设备调度

  • sentencepiece:部分 tokenizer(如 LLaMA、Qwen)依赖

三、获取与下载Qwen2.5-1.5B模型

模型本身存储在模型仓库中。Hugging Face Hub 可以看作是机器学习界的“GitHub”,它托管了海量的开源模型、数据集和演示应用。要下载模型,首先需要注册一个Hugging Face账号。

登录后,进入账号设置页面,创建一个具有读取权限的访问令牌(Access Token),这是安全下载模型所必需的凭证。

在创建令牌的页面,按照下图所示进行选择,为其命名并设置权限:

创建成功后,务必复制并妥善保存这个令牌码,它只会显示一次。

有了令牌,我们就可以在代码中通过Hugging Face的huggingface_hub库来下载模型了。将模型下载到本地指定目录,方便后续离线调用。

使用Python脚本下载模型:

# 安装 huggingface 命令行工具

# 登录(如果模型需要授权)

之后把上面的第一步的token码填上去

# 一键下载整个模型目录

这个过程可能需要一些时间,取决于你的网络速度。下载完成后,你将在本地拥有完整的Qwen2.5-1.5B模型文件,包括模型权重、配置文件、分词器等。

四、编写代码调用本地模型进行推理

万事俱备,只欠东风。现在我们来编写一个简单的Python脚本,加载刚刚下载的本地模型,并让它与我们对话。首先,确认一下关键库的版本,以确保兼容性。

检查核心库版本:

(lora) PS C:\Users\64292\Desktop\大模型学习\xiaozhi\weitiao> pip list
Package            Version
------------------ ------------
accelerate         1.11.0
aiohappyeyeballs   2.6.1
aiohttp            3.13.1
aiosignal          1.4.0
anyio              4.11.0
async-timeout      5.0.1
attrs              25.4.0
bitsandbytes       0.48.1
certifi            2025.10.5
cffi               2.0.0
charset-normalizer 3.4.4
colorama           0.4.6
datasets           4.3.0
dill               0.4.0
docstring_parser   0.17.0
edge-tts           7.2.3
exceptiongroup     1.3.0
filelock           3.19.1
frozenlist         1.8.0
fsspec             2025.9.0
gensim             4.4.0
h11                0.16.0
httpcore           1.0.9
httpx              0.28.1
huggingface-hub    0.36.0
idna               3.11
Jinja2             3.1.6
llvmlite           0.45.1
markdown-it-py     4.0.0
MarkupSafe         2.1.5
mdurl              0.1.2
more-itertools     10.8.0
mpmath             1.3.0
multidict          6.7.0
multiprocess       0.70.16
networkx           3.3
numba              0.62.1
numpy              1.26.4
openai-whisper     20250625
packaging          25.0
pandas             2.3.3
peft               0.17.1
pillow             11.3.0
pip                25.2
propcache          0.4.1
psutil             7.1.1
pyarrow            22.0.0
pycparser          2.23
pydub              0.25.1
Pygments           2.19.2
python-dateutil    2.9.0.post0
pytz               2025.2
PyYAML             6.0.3
regex              2025.10.23
requests           2.32.5
rich               14.3.1
safetensors        0.6.2
scipy              1.15.3
sentencepiece      0.2.1
setuptools         80.9.0
six                1.17.0
smart_open         7.4.1
sniffio            1.3.1
sounddevice        0.5.3
soundfile          0.13.1
sympy              1.13.1
tabulate           0.9.0
tiktoken           0.12.0
tokenizers         0.22.1
torch              2.5.1+cu121
torchaudio         2.5.1+cu121
torchvision        0.20.1+cu121
tqdm               4.67.1
transformers       4.57.1
trl                0.11.4
typeguard          4.4.4
typing_extensions  4.15.0
tyro               1.0.5
tzdata             2025.2
urllib3            2.5.0
wheel              0.45.1
wrapt              2.0.0
xxhash             3.6.0
yarl               1.22.0
transformers       4.57.1
trl                0.11.4
typeguard          4.4.4
typing_extensions  4.15.0
tyro               1.0.5
tzdata             2025.2
urllib3            2.5.0
wheel              0.45.1
wrapt              2.0.0
xxhash             3.6.0
yarl               1.22.0

接下来,是激动人心的时刻——编写推理代码。这段代码展示了如何加载模型和分词器,构建一个对话提示,并生成回复。这种模式与使用云API类似,但所有计算都在本地完成,数据隐私得到充分保障。

示例推理代码:

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# ① 模型路径(改成你的本地路径)
model_dir = r"C:\Users\64292\Desktop\大模型学习\xiaozhi\weitiao\Qwen2.5-1.5B-Instruct"
# ② 加载模型与分词器
print(" 正在加载模型,请稍候...")
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_dir,
    torch_dtype=torch.float16,
    device_map="cuda" if torch.cuda.is_available() else "cpu"
)
print("✅ 模型加载完成!现在可以开始对话啦(输入 exit 退出)\n")
# ③ 系统提示词(控制整体语气与风格)
system_prompt = (
    "你是一个指令解析器。请把【用户指令】转换成 JSON,只能输出 JSON,不要输出任何解释或多余文字。"
)
chat_history = f"系统:{system_prompt}\n"
# ④ 对话循环
while True:
    user_input = input(" 你:").strip()
    if user_input.lower() in ["exit", "quit", "q"]:
        print(" 再见!")
        break
    # 构建输入上下文
    chat_history += f"用户:{user_input}\nAI:"
    # 编码输入
    inputs = tokenizer(chat_history, return_tensors="pt").to(model.device)
    # 生成回答
    outputs = model.generate(
        **inputs,
        max_new_tokens=256,
        temperature=0.7,
        top_p=0.9,
        do_sample=True,
        pad_token_id=tokenizer.eos_token_id
    )
    # 解码输出
    reply = tokenizer.decode(outputs[0], skip_special_tokens=True)
    new_text = reply[len(chat_history):].strip()
    # (可选)进一步裁剪过长回答,只保留前几句
    if "。" in new_text and len(new_text) > 50:
        new_text = new_text.split("。")[0] + "。"
    print(f" Qwen:{new_text}\n")
    # 更新上下文
    chat_history += new_text + "\n"

运行上述脚本,如果你的环境配置一切正确,你将看到模型思考后生成的回答。第一次运行可能会稍慢,因为需要将模型加载到GPU内存中。

运行结果示例:

恭喜!至此,你已经成功在本地Windows电脑上部署并运行了Qwen2.5-1.5B大语言模型。这个过程不仅适用于Qwen,其方法论也通用於其他基于Transformer架构的开源模型,如LLaMA、ChatGLM等。掌握本地部署能力,为你后续进行模型微调、开发私有AI应用或深入研究模型原理打下了坚实的基础。无论是想结合JavaScript/TypeScript构建Web AI应用,还是探索更底层的C++推理优化,这都将是你的第一步。未来,你可以尝试使用更高效的推理后端(如vLLM、llama.cpp),或者为这个模型连接本地知识库,创造属于你自己的智能助手[AFFILIATE_SLOT_2]。

conda init,
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned,
conda create -n lora python=3.10 conda activate lora
pip install huggingface_hub
huggingface-cli login
huggingface-cli download Qwen/Qwen2.5-1.5B-Instruct --local-dir ./Qwen2.5-1.5B-Instruct
posted on 2026-02-26 14:38  blfbuaa  阅读(728)  评论(0)    收藏  举报