WSL2部署通义千问1.8B轻量模型:Windows 11环境搭建+WebUI启动,实测教程

发布时间:2026/6/23 10:01:33

WSL2部署通义千问1.8B轻量模型:Windows 11环境搭建+WebUI启动,实测教程 WSL2部署通义千问1.8B轻量模型Windows 11环境搭建WebUI启动实测教程1. 前言为什么要在Windows上折腾WSL2和AI模型如果你和我一样主力电脑是Windows系统但又经常眼馋那些只能在Linux上跑的AI项目那今天这篇教程就是为你准备的。过去想在Windows上本地部署一个AI对话模型要么得装双系统要么得用虚拟机过程繁琐不说性能损耗还大。但现在情况不一样了。Windows 11自带的WSL2Windows Subsystem for Linux让这一切变得简单。它不是什么笨重的虚拟机而是一个深度集成在Windows里的Linux子系统。最棒的是它能直接调用你电脑里的NVIDIA显卡性能几乎没损失。今天我们要部署的通义千问1.5-1.8B-Chat-GPTQ-Int4是个特别适合个人玩家的轻量模型。1.8B参数不算大经过GPTQ-Int4量化后显存占用只要4GB左右这意味着大部分消费级显卡都能跑得动。而且它自带WebUI界面部署好了直接在浏览器里就能聊天跟用网页版一样方便。我花了一下午时间把整个流程从头到尾跑了一遍踩了几个小坑也找到了最顺滑的路径。下面我就把这份实测可用的教程分享给你从WSL2安装到模型启动每个步骤都有详细说明和截图。跟着做你也能在Windows 11上拥有自己的本地AI助手。2. 第一步安装和配置WSL2环境2.1 开启Windows的WSL功能WSL2功能默认是关闭的我们需要手动打开它。这个过程很简单就是几条命令的事。首先在Windows搜索栏里输入“PowerShell”找到“Windows PowerShell”一定要右键选择“以管理员身份运行”。这个很重要普通权限的PowerShell执行不了这些系统级命令。打开管理员PowerShell后依次输入并执行下面三条命令# 启用适用于Linux的Windows子系统 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 启用虚拟机平台功能这是WSL2需要的 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 将WSL默认版本设置为2 wsl --set-default-version 2执行完这些命令后系统会提示你需要重启电脑。别嫌麻烦重启一下能让所有更改生效避免后面步骤出问题。2.2 安装Ubuntu Linux发行版重启电脑后我们就可以安装Linux系统了。微软商店里提供了好几个Linux发行版我推荐用Ubuntu因为它的社区最活跃遇到问题容易找到解决方案。打开微软商店Microsoft Store在搜索框里输入“Ubuntu”。你会看到几个版本我建议选最新的长期支持版比如“Ubuntu 22.04 LTS”或“Ubuntu 24.04 LTS”。点击“获取”按钮等它下载安装完成。安装完成后在开始菜单里找到Ubuntu点击启动。第一次启动需要几分钟来初始化系统然后会提示你设置用户名和密码。这个用户名和密码就是你将来在Linux里执行管理员命令用sudo的时候需要输入的一定要记住。设置完成后你就拥有了一个完整的Ubuntu命令行环境。你可以在这里执行各种Linux命令就像在真正的Linux服务器上一样。2.3 优化WSL2的资源分配让AI跑得更快默认情况下WSL2可能不会充分利用你的电脑硬件。为了让后续的AI模型运行更流畅我们可以手动给它分配更多资源。在Windows的用户目录下通常是C:\Users\你的用户名\创建一个名为.wslconfig的文件。你可以用记事本创建然后用下面的内容填充[wsl2] # 分配给WSL2的最大内存根据你电脑的实际内存调整 # 比如你有16GB内存可以分8GB给WSL2 memory8GB # 分配给WSL2的CPU核心数 # 比如你的CPU有8个核心可以分4个给WSL2 processors4 # 启用本地主机转发这样在Windows浏览器里就能访问WSL2里的服务 localhostForwardingtrue保存文件后关闭所有Ubuntu窗口回到Windows的PowerShell这次不用管理员权限执行wsl --shutdown这个命令会关闭WSL2。等几秒钟后重新从开始菜单打开Ubuntu新的资源分配就生效了。3. 第二步配置GPU支持让AI能用上你的显卡3.1 在Windows里安装NVIDIA驱动这是最关键的一步。WSL2里的Linux系统想要调用GPU靠的是安装在Windows系统里的NVIDIA驱动。你不需要在Ubuntu里面单独装驱动这点很省心。打开浏览器访问NVIDIA官网的驱动下载页面选择你的显卡产品系列、型号操作系统选Windows 11下载类型选“Game Ready Driver”或“Studio Driver”都可以下载完成后运行安装程序建议选择“自定义安装”然后勾选“执行清洁安装”按照提示完成安装然后重启电脑3.2 在WSL2里安装CUDA工具包Windows的驱动装好后WSL2里的Ubuntu还需要一套工具来调用这些驱动这就是NVIDIA专门为WSL2提供的CUDA Toolkit。打开你的Ubuntu终端依次执行以下命令# 更新软件包列表 sudo apt update # 安装一些基础编译工具 sudo apt install -y build-essential # 下载并添加NVIDIA CUDA仓库的密钥 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 update # 安装CUDA ToolkitWSL2专用版本 sudo apt install -y cuda-toolkit-12-4安装过程可能需要一些时间取决于你的网速。完成后我们来验证一下GPU是否被正确识别nvidia-smi如果一切正常你会看到一个表格显示你的GPU型号、驱动版本、CUDA版本等信息。看到这个就说明GPU通道已经打通了WSL2里的Ubuntu现在可以调用你的显卡了。4. 第三步部署通义千问WebUI4.1 准备Python环境现在进入正题开始部署我们的AI模型。首先在Ubuntu里为项目创建一个独立的环境。# 进入家目录 cd ~ # 创建项目文件夹 mkdir qwen-webui cd qwen-webui接下来安装Miniconda这是一个轻量级的Python环境管理工具能帮我们创建独立的Python环境避免包冲突。# 下载Miniconda安装脚本 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 运行安装脚本 bash Miniconda3-latest-Linux-x86_64.sh安装过程中一直按回车阅读许可协议输入“yes”同意安装路径用默认的就行最后选择“yes”来初始化conda。安装完成后关闭当前终端重新打开一个新的Ubuntu终端这样conda命令才会生效。然后创建我们的项目环境# 创建名为qwen的Python 3.11环境 conda create -n qwen python3.11 -y # 激活这个环境 conda activate qwen看到命令行提示符前面变成(qwen)就说明你已经在这个独立环境里了。4.2 下载和配置通义千问模型根据镜像文档的说明我们需要先把模型文件复制到可写的目录。这是因为原始的模型目录可能是只读的无法创建必要的配置文件。# 创建模型目录 mkdir -p /root/qwen-1.8b-chat/model # 复制模型文件假设原始模型在默认位置 cp -r /root/ai-models/Qwen/Qwen1___5-1___8B-Chat-GPTQ-Int4/* /root/qwen-1.8b-chat/model/ # 进入模型目录 cd /root/qwen-1.8b-chat/model现在我们需要创建一个量化配置文件这是auto-gptq库需要的# 创建quantize_config.json文件 cat quantize_config.json EOF { bits: 4, group_size: 128, damp_percent: 0.01, desc_act: false, sym: true, true_sequential: true, model_name_or_path: null, model_file_base_name: model } EOF4.3 安装依赖并启动WebUI回到项目目录安装必要的Python包# 回到项目根目录 cd /root/qwen-1.8b-chat # 安装PyTorchCUDA 12.1版本 pip install torch2.8.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 安装其他依赖 pip install transformers4.47.0 pip install auto-gptq0.7.1 pip install gradio4.40.0现在创建一个简单的WebUI应用文件# 创建app.py文件 cat app.py EOF import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM import torch # 加载模型和分词器 print(正在加载模型...) tokenizer AutoTokenizer.from_pretrained(/root/qwen-1.8b-chat/model) model AutoModelForCausalLM.from_pretrained( /root/qwen-1.8b-chat/model, torch_dtypetorch.float16, device_mapauto, trust_remote_codeTrue ) print(模型加载完成) def chat(message, history, temperature0.7, max_tokens2048): # 构建对话历史 messages [] if history: for user_msg, assistant_msg in history: messages.append({role: user, content: user_msg}) messages.append({role: assistant, content: assistant_msg}) messages.append({role: user, content: message}) # 生成回复 inputs tokenizer.apply_chat_template( messages, tokenizeTrue, add_generation_promptTrue, return_tensorspt ).to(model.device) with torch.no_grad(): outputs model.generate( inputs, max_new_tokensmax_tokens, temperaturetemperature, do_sampleTrue, top_p0.9, pad_token_idtokenizer.eos_token_id ) response tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokensTrue) return response # 创建Gradio界面 with gr.Blocks(title通义千问1.8B Chat) as demo: gr.Markdown(# 通义千问1.8B-Chat-GPTQ-Int4 WebUI) gr.Markdown(这是一个轻量级的本地AI对话助手基于通义千问1.8B量化模型) chatbot gr.Chatbot(height400) msg gr.Textbox(label输入消息, placeholder在这里输入你的问题...) with gr.Row(): submit gr.Button(发送) clear gr.Button(清空对话) with gr.Accordion(高级参数, openFalse): temperature gr.Slider(minimum0.1, maximum2.0, value0.7, step0.1, label温度) max_tokens gr.Slider(minimum128, maximum4096, value2048, step128, label最大生成长度) def respond(message, chat_history, temp, max_len): bot_message chat(message, chat_history, temp, max_len) chat_history.append((message, bot_message)) return , chat_history msg.submit(respond, [msg, chatbot, temperature, max_tokens], [msg, chatbot]) submit.click(respond, [msg, chatbot, temperature, max_tokens], [msg, chatbot]) def clear_chat(): return [] clear.click(clear_chat, None, chatbot) if __name__ __main__: demo.launch(server_name0.0.0.0, server_port7860, shareFalse) EOF再创建一个启动脚本# 创建start.sh启动脚本 cat start.sh EOF #!/bin/bash source /opt/miniconda3/etc/profile.d/conda.sh conda activate torch28 cd /root/qwen-1.8b-chat exec python app.py EOF # 给启动脚本执行权限 chmod x start.sh现在可以启动WebUI了python app.py第一次启动需要加载模型大概需要6-8秒时间。加载完成后你会看到类似这样的输出Running on local URL: http://0.0.0.0:78605. 第四步在Windows浏览器中访问和使用5.1 访问WebUI界面最激动人心的时刻来了你不需要在Ubuntu里找浏览器。因为WSL2做了很好的网络集成这个服务虽然运行在Ubuntu里但你可以直接在Windows的浏览器中访问它。打开你的Chrome、Edge或其他浏览器在地址栏输入http://localhost:7860或者http://127.0.0.1:7860回车之后你应该就能看到通义千问的Web聊天界面了。界面很简洁左边是聊天区域右边可以调整参数。5.2 开始你的第一次AI对话现在你可以像使用任何聊天工具一样在输入框里向这个部署在你本地电脑上的AI模型提问了。让我给你几个测试建议简单问候输入“你好请介绍一下你自己”看看它的自我介绍知识问答问一些常识性问题比如“什么是机器学习”代码生成试试“用Python写一个快速排序算法”创意写作让它“写一首关于春天的诗”你会看到虽然这只是个1.8B的小模型但回答问题的质量相当不错响应速度也很快通常1-2秒就有回复。5.3 调整参数获得更好效果在界面右侧你可以调整两个重要参数温度Temperature控制回答的随机性0.1-0.3非常保守适合需要准确答案的场景如代码生成、数学计算0.4-0.7平衡模式适合日常对话推荐默认值0.70.8-1.2较有创意适合创意写作1.3-2.0非常随机适合实验性用途最大长度Max Tokens控制回答的长度默认2048如果你的显存较小比如只有4GB可以降低到1024或512如果遇到显存不足的错误首先尝试降低这个值5.4 使用Supervisor管理服务让WebUI一直运行如果你希望WebUI在后台一直运行即使关闭了终端窗口也不中断可以使用Supervisor来管理。首先安装Supervisorsudo apt update sudo apt install -y supervisor创建Supervisor配置文件sudo tee /etc/supervisor/conf.d/qwen-1.8b-chat.conf EOF [program:qwen-1.8b-chat] command/root/qwen-1.8b-chat/start.sh directory/root/qwen-1.8b-chat userroot autostarttrue autorestarttrue startretries3 stderr_logfile/root/qwen-1.8b-chat/logs/error.log stdout_logfile/root/qwen-1.8b-chat/logs/app.log environmentPATH/opt/miniconda3/envs/torch28/bin:%(ENV_PATH)s EOF创建日志目录mkdir -p /root/qwen-1.8b-chat/logs重新加载Supervisor配置并启动服务sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start qwen-1.8b-chat现在你可以用这些命令管理服务# 查看状态 sudo supervisorctl status qwen-1.8b-chat # 停止服务 sudo supervisorctl stop qwen-1.8b-chat # 重启服务 sudo supervisorctl restart qwen-1.8b-chat # 查看日志 sudo supervisorctl tail -f qwen-1.8b-chat6. 常见问题解决6.1 页面无法访问怎么办首先检查服务是否在运行sudo supervisorctl status qwen-1.8b-chat如果服务没运行启动它sudo supervisorctl start qwen-1.8b-chat检查端口是否被占用ss -tlnp | grep 7860如果7860端口被其他程序占用可以修改app.py中的端口号比如改成7861demo.launch(server_name0.0.0.0, server_port7861, shareFalse)6.2 显示“显存不足”错误如果遇到CUDA out of memory错误可以尝试降低最大生成长度在WebUI界面里把Max Tokens从2048降到1024或512检查GPU使用情况nvidia-smi看看是不是有其他程序占用了显存重启服务有时候只是临时问题sudo supervisorctl restart qwen-1.8b-chat6.3 生成速度很慢1.8B模型在消费级显卡上应该很快。如果感觉慢检查GPU是否正常工作nvidia-smi确认CUDA版本和驱动都正常首次运行有预热第一次生成会慢一些后面就快了检查CPU使用率如果CPU占用很高可能是其他程序影响了性能6.4 如何查看日志应用日志在tail -f /root/qwen-1.8b-chat/logs/app.log错误日志在tail -f /root/qwen-1.8b-chat/logs/error.logSupervisor日志sudo supervisorctl tail qwen-1.8b-chat7. 总结与后续探索走完这一整套流程你现在应该已经在Windows 11上成功部署了一个完全本地的AI对话应用。回顾一下我们主要做了三件事搭建WSL2环境在Windows里创建了一个Linux子系统配置GPU支持让WSL2能调用你的NVIDIA显卡部署WebUI应用安装Python环境下载模型启动聊天界面实际体验下来WSL2的便利性确实让人惊喜。你既不需要离开熟悉的Windows环境又能享受到Linux命令行的高效。对于开发和学习AI来说这种混合模式提供了极大的灵活性。通义千问1.5-1.8B这个版本在消费级显卡上运行速度很快响应迅速。虽然它的能力不能和那些百亿、千亿参数的大模型相比但对于简单的对话、文本理解和生成任务已经能提供相当不错的体验。特别适合用来学习AI模型部署和调用的基础知识做一些轻量级的原型测试在本地处理一些简单的文本任务作为个人学习助手如果你对这个部署满意还可以尝试更多玩法更换其他模型同样的方法可以部署其他开源模型集成到其他应用把这个本地API接入到你自己的项目中尝试不同参数调整温度、top-p等参数看看模型表现的变化添加系统提示词让模型扮演特定角色如代码助手、写作助手等整个部署过程中最可能出问题的就是GPU驱动和CUDA的配置。如果遇到问题记住先检查nvidia-smi命令是否能正常显示显卡信息这是所有后续步骤的基础。最后这个部署方案最大的优势就是“本地化”。所有的计算都在你自己的电脑上完成数据不会上传到任何服务器对于注重隐私的场景特别有用。而且一旦部署好你就可以随时使用不需要联网也不需要付费。希望这篇教程能帮你顺利在Windows上开启AI探索之旅。如果在部署过程中遇到任何问题欢迎在评论区留言讨论。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻