☰
WSL安装Ollama部署Qwen
2026/10/3 7:34:20 网站建设 项目流程

部署过程博客:

Windows 手搓 WSL + Ollama + Qwen2.5 + OpenClaw 全记录

最后总结:WSL2 + Ollama 本地部署 Qwen3-4B 踩坑笔记

环境:Windows + WSL2 (Ubuntu 22.04),6GB 显存笔记本(RedmiG)
目标:在 WSL 里用 Ollama 跑本地 GGUF 模型,替换掉效果很差的 Qwen2.5-0.5B

一、整体流程概览

WSL2 里装 Ollama → 下载 GGUF 模型 → 写 Modelfile → ollama create → ollama run

核心结论先行:

  • 模型别贪大,也别太小:0.5B 会复读、能力弱;6GB 显存选4B 的 Q4_K_M最平衡
  • GGUF 只需要下一个量化文件,不用全下
  • Modelfile 必须有 TEMPLATE 和 stop,否则模型会无限复读
  • 模型名不能带点号,否则invalid model name

二、踩过的坑(按发生顺序)

坑 1:.sh脚本 Permission denied

从网上下载的脚本默认没有执行权限,./xxx.sh会报:

bash: ./ollama-modelscope-install.sh: Permission denied

原因:文件权限是-rw-r--r--,没有x(执行位)。

解决:

chmod+x xxx.sh# 加执行权限./xxx.sh# 再运行# 或者不改权限,直接:bashxxx.sh

安全提示:跑陌生脚本前先less xxx.sh看一眼内容,尤其是用 root 跑的时候。

坑 2:cp复制文件夹报错

cpQwen2.5-0.5B-Instruct-GGUF/ /home/vscode_workspace/models/# cp: -r not specified; omitting directory

原因:cp默认只复制文件,复制目录必须加-r。

解决:

cp-r源目录/ 目标目录/# 递归cp-a源目录/ 目标目录/# 归档模式,保留权限时间,更推荐cp-av源目录/ 目标目录/# 带过程输出

坑 3:ollama create报invalid model name

echo"FROM ./Qwen2.5-0.5B-Instruct">Modelfile ollama create my-qwen2.5-0.5B-Instruct-fModelfile# Error: 400 Bad Request: invalid model name

原因有两层:

  1. FROM指向的是文件夹名,不是 GGUF 文件。Ollama 找不到文件,就把它当模型名解析。
  2. 模型名里带点号.等字符,不符合命名规则。

解决:

# FROM 必须指向具体的 .gguf 文件 FROM ./Qwen3-4B-Q4_K_M.gguf
# 模型名只用字母、数字、连字符、下划线ollama create qwen3-4b-fModelfile

坑 4:下的是 HuggingFace 原生格式,不是 GGUF

截图里看到config.json、model.safetensors、tokenizer.json等文件——这是 Transformers 格式,Ollama 不认。Ollama 只吃.gguf。

解决:重新下GGUF 版(文件名后缀是.gguf),或者用官方版:

ollama run qwen2.5:7b# 官方已配好模板参数

坑 5:模型无限复读(重点坑)

问一句,模型把同一段自我介绍复读 5 遍停不下来。

原因:

  • 模型太小(0.5B)本身容易复读
  • Modelfile 缺 TEMPLATE,模型不知道一轮对话在哪结束
  • 缺 stop 停止符
  • 输入里本身就有大量重复内容,模型跟着模仿

解决:

  • 换大一点的模型(≥ 4B)
  • Modelfile 里补上TEMPLATE+stop+repeat_penalty
  • 输入别塞重复段落

三、模型与量化选择

3.1 模型大小怎么选

显存推荐模型说明
6GBQwen3-4B / Qwen2.5-7B4B 最稳,7B 可跑
8GB+Qwen2.5-7B / Qwen2.5-Coder-7B甜点区
12GB+14B 级质量更好

0.5B 只适合学习/测试,别指望它答对逻辑题,还容易复读。

3.2 量化等级怎么选(以 4B 为例)

量化权重体积预计显存占用评价
Q2_K~1.6GB~2.5GB质量太差,不推荐
Q3_K_M~2.0GB~3GB省显存,质量下降可感
Q4_K_M~2.5GB~3-4GB⭐ 6GB 显存最佳平衡
Q5_K_M~2.9GB~4GB质量稍好,余量变小
Q6_K~3.3GB~5GB6GB 下偏紧
Q8_0~4.3GB>6GB基本超显存
FP16~8GB远超跑不动

结论:6GB 显存,只下Q4_K_M这一个文件就够了。其他量化是互斥的备选,不用全下。


四、完整部署指令

4.1 确认 / 安装 Ollama

ollama--version# 有输出说明已装ollama list# 看现有模型

4.2 下载 GGUF 模型

用 ModelScope 下载(国内快):

modelscope download--model=xxx/yyy-GGUF-_dir./Qwen3-4B-GGUF--revision某版本

或从 HuggingFace / 其他源下Qwen3-4B-Q4_K_M.gguf。

4.3 把模型放到 Linux 原生路径

# 从 /mnt/d 复制到 /home,性能好、权限清晰cp-a/mnt/d/code/Qwen3-4B-GGUF/ ~/models/cd~/models/Qwen3-4B-GGUFls-lh*.gguf# 确认只有 Q4_K_M 那个

强烈建议:模型、代码放/home/用户名/,别放/mnt/c、/mnt/d。

4.4 写 Modelfile

nanoModelfile

内容见下一节。

4.5 创建并运行

ollama create qwen3-4b-fModelfile ollama run qwen3-4b

4.6 常用管理命令

ollama list# 列出模型ollamarmqwen3-4b# 删除模型(不动 GGUF 原文件)ollama show qwen3-4b# 看模型信息ollama run qwen3-4b--verbose# 带性能信息运行

五、Modelfile 编写(核心)

Ollama官方说明

5.1 完整模板(Qwen 系通用)

FROM ./Qwen3-4B-Q4_K_M.gguf TEMPLATE """{{ if .System }}<|im_start|>system {{ .System }}<|im_end|> {{ end }}{{ if .Prompt }}<|im_start|>user {{ .Prompt }}<|im_end|> {{ end }}<|im_start|>assistant {{ .Response }}<|im_end|> """ SYSTEM """你是一个乐于助人的中文助手。回答简洁、准确、有条理,不要重复用户的话。""" PARAMETER stop "<|im_start|>" PARAMETER stop "<|im_end|>" PARAMETER temperature 0.7 PARAMETER top_p 0.8 PARAMETER top_k 20 PARAMETER repeat_penalty 1.1 PARAMETER repeat_last_n 64 PARAMETER num_predict 1024 PARAMETER num_ctx 8192

5.2 每个指令的作用

指令作用关键点
FROM指定 GGUF 权重必须指向具体.gguf文件,路径相对 Modelfile
TEMPLATE对话模板防复读的核心,Qwen 用<|im_start|>格式
SYSTEM人设提示词加"不要重复用户的话"能缓解复读
stop停止符必须设,遇到就停,防无限生成
temperature采样温度别设 0,0.7 左右;太低反而易循环
top_p/top_k采样范围0.8 / 20 比较稳
repeat_penalty重复惩罚1.1~1.3,太高会胡言乱语
repeat_last_n惩罚回看长度64 够用
num_predict单次最大生成 token防无限写,512~1024
num_ctx上下文窗口越大越吃显存,显存紧就降到 4096

5.3 显存紧张时怎么调

PARAMETER num_ctx 4096 # 从 8192 降下来,省 KV Cache 显存 PARAMETER num_predict 512 # 缩短最大输出

或运行时临时覆盖:

ollama run qwen3-4b--parameternum_ctx4096--parameterrepeat_penalty1.2

六、做成快捷启动脚本

6.1 建文件夹 + 脚本

mkdir-p~/launchers&&cd~/launcherscat>qwen.sh<<'EOF' #!/bin/bash exec ollama run qwen3-4b "$@" EOFchmod+x qwen.sh

以后运行:

~/launchers/qwen.sh

6.2 加进 PATH,全局可用

echo'export PATH="$HOME/launchers:$PATH"'>>~/.bashrcsource~/.bashrc

之后任意目录直接敲qwen.sh。

6.3 更省事的 alias 方案

echo'alias qwen="ollama run qwen3-4b"'>>~/.bashrcsource~/.bashrc

以后敲qwen即可。


七、测试与验证

启动后测这几类题,重点看还复不复读:

  1. 你好,请用一句话介绍你自己。(防复读验证)
  2. 中国的首都是哪里?(基本常识)
  3. 请只回答两个字:你好。(指令遵循)
  4. 笼子里有鸡兔共 35 个头,94 只脚,各几只?(应用题)
  5. 多轮:先说"我叫小明",再问"我叫什么?"(上下文记忆)

判断标准:

  • ✅ 一问一答、不复读、简单常识对 = 部署成功
  • ⚠️ 复杂推理/长记忆差 = 正常,4B 就这水平
  • ❌ 还复读 = 回头查 TEMPLATE 和 stop

八、经验总结(一句话版)

问题一句话解法
脚本跑不了chmod +x或bash 脚本
cp目录报错加-r/-a
invalid model nameFROM 指向.gguf文件;模型名别带点号
Ollama 不认模型必须是 GGUF,不是 safetensors
无限复读TEMPLATE + stop + repeat_penalty,或换 ≥4B
显存不够降 num_ctx、用更低量化、别跑超显存模型
模型名找不到先ollama list抄准
路径选择放/home,别放/mnt/c、/mnt/d

最终推荐配置(6GB 显存):Qwen3-4B 的Q4_K_M.gguf+ 上面的 Modelfile + 模型名qwen3-4b。这套能稳定跑、不复读、质量足够日常使用。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询