系统环境
操作系统:Ubuntu 26.04 (本来想在deepin系统上折腾的,但是有些包需要通过源码进行编译,所以还是选择了Ubuntu,因为这个系统更好下载各种缺少的包)
显卡:AMD Radeon RX 7900 XTX (24G显存)
内存:32G
本次安装的大模型: Qwen3.6-35B-A3B
与一般的安装方式不同之处
本次安装借助MIMO这个本地AI助手,可以极大化解安装困难,让小白也能自己搞定。
安装新系统后,先安装MIMO
在终端中运行命令:
bash
curl -fsSL https://mimo.xiaomi.com/install | bash
若是全新安装的系统会提示你缺少curl,你按提示先安装curl,然后重复上面的安装命令
bash
sudo apt install curl
做国内本地化处理
请在桌面建立一个文件夹,在文件夹中点右键,启动终端。然后输入mimo,启动mimo软件,第一次启动时会问你是否信任当前文件夹,你直接回车选择信任即可。接下来很多工作都交给mimo处理。
在国内,跨国下载软件几乎不可能,如果不能科学上网,就需要作本地化优化,尽量把软件源改成国内源。
在mimo中输入如下的指令,一般都能顺利完成。
bash
我的操作系统是ubuntu 26.04 ,当前网络环境为中国国内,检查下apt源是否为国内源,若不是,修改为阿里源,若需要输入密码,你弹出窗口,我输入密码后,你继续完成处理。最后报告结果。
在这个过程中,MIMO会弹出窗口引导你输入密码,你输入开机密码即可。后续操作MIMO给你完成。
开始安装大模型
诀窍:不要直接在mimo中输入你的想法,先借助其他AI(如KIMI),给你写个AI指令。
打开KIMI网页版,微信登陆后,在对话框中输入:
bash
请搜索下最新信息然后回答我,Linux平台下,7900 XTX显卡,如何才能做到运行Qwen3.6-35B-A3B的效能最好?具体点,例如应该使用哪种软件
KIMI搜索后,会告诉你最优路线,你再给KIMI回个话:
bash
很好,我接受你的建议,现在给我是写个AI指令,我让本地AI助手开始配置。需要注意的是,我的网络环境为中国大陆境内,安装软件/升级组件时要优先使用国内源。在执行过程中,若遇到一些无法成功下载的软件包,请暂停,并给出完整下载链接,我用迅雷等软件完成下载后,放在指定文件夹下,然后继续执行。
然后KIMI会给你可用的AI指令,你再把这个指令发给mimo。接下来,mimo就会跑一阵子就卡住,你根据实际情况,完成交互,最终就可以顺利利用AMD Radeon RX 7900 XTX显卡驱动本地AI大模型。
你还可以让AI给你做好开机启动等工作,再写个控制脚本,并要求他给你做好安全控制。
最后,让AI助手mimo写了个本地部署指南,把中途遇到的问题都写出来了,你可以在让AI助手执行安装时,参考下这个记录。
Qwen3.6-35B-A3B 本地部署完全指南
适用环境
- 操作系统:Ubuntu 26.04 LTS
- GPU:AMD Radeon RX 7900 XTX (24GB VRAM, RDNA3, gfx1100)
- 软件栈:ROCm 7.13 + llama.cpp (HIP后端)
- 模型:Qwen3.6-35B-A3B (MoE, 35B总参数/3B激活)
- 部署时间:约 2-4 小时(首次)
目录
一、硬件与系统准备
1.1 确认硬件兼容性
bash
# 检查GPU是否被系统识别
lspci | grep -i vga | grep -i amd
# 预期:VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XTX]
1.2 系统更新
bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git curl wget python3 bc net-tools iproute2 ufw openssl
1.3 确认内核版本
Ubuntu 26.04 LTS 默认内核应 ≥ 6.11,ROCm 7.13 需要较新的内核支持。
bash
uname -r
# 预期:6.11.x 或更高
二、ROCm安装与配置
2.1 安装ROCm
bash
# 下载AMDGPU安装器(如本地已有deb包可直接安装)
wget https://repo.radeon.com/amdgpu-install/latest/ubuntu/noble/amdgpu-install_7.13.60200-1_all.deb
# 安装
sudo apt install ./amdgpu-install_*.deb
# 执行安装
sudo amdgpu-install --usecase=rocm,opencl,hip --accept-eula
本地文件替代 :如
/home/you_PC_name(改成你自己的计算机名)/下载下已有amdgpu-install_*.deb:
bashcd /home/you_PC_name(改成你自己的计算机名)/下载 sudo apt install ./amdgpu-install_*.deb sudo amdgpu-install --usecase=rocm,opencl,hip --accept-eula
2.2 配置用户权限
bash
sudo usermod -aG render,video $USER
# 重新登录使权限生效
2.3 验证ROCm安装
bash
rocminfo | grep -E "Name:|gfx" | head -5
rocm-smi --showproductname
rocm-smi --showmeminfo vram
hipconfig --version
which hipcc
groups $USER # 确认包含 render 和 video
预期输出:
Name: gfx1100
Name: AMD Radeon RX 7900 XTX
HIP version: 7.13.99004-xxxx
三、编译依赖安装(关键步骤)
这一步在实际部署中最容易遗漏。 ROCm 7.13 的默认安装不包含编译llama.cpp所需的cmake配置文件,必须额外安装以下包。
3.1 安装cmake
bash
# 方式1:从已下载的二进制包安装
cd /tmp
tar -xzf /home/you_PC_name(改成你自己的计算机名)/下载/cmake-3.31.3-linux-x86_64.tar.gz
export PATH="/tmp/cmake-3.31.3-linux-x86_64/bin:$PATH"
cmake --version # 验证:3.31.3
# 方式2:在线下载
wget https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-linux-x86_64.tar.gz
tar -xzf cmake-3.31.6-linux-x86_64.tar.gz
export PATH="$(pwd)/cmake-3.31.6-linux-x86_64/bin:$PATH"
3.2 安装HIP语言支持包(必须!)
bash
# 这个包提供 hip-lang-config.cmake,llama.cpp编译必需
sudo apt-get install -y amdrocm-runtime-dev7.13
# 验证
ls /opt/rocm/core-7.13/lib/cmake/hip-lang/hip-lang-config.cmake
3.3 安装hipblas开发包(必须!)
bash
# 这个包提供 hipblas-config.cmake,llama.cpp编译必需
sudo apt-get install -y amdrocm-hipblas-common-dev7.13-gfx110x amdrocm-blas-dev7.13-gfx110x
# 验证
ls /opt/rocm/core-7.13/lib/cmake/hipblas/hipblas-config.cmake
如果没有安装这两个包,cmake配置时会报错:
The ROCm root directory does not contain the HIP runtime CMake packageCould not find a package configuration file provided by "hipblas"
四、llama.cpp编译
4.1 获取源码
bash
cd ~
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
本地文件替代 :如
/home/you_PC_name(改成你自己的计算机名)/下载下已有llama.cpp-b9963.tar.gz:
bashcd ~ tar -xzf "/home/you_PC_name(改成你自己的计算机名)/下载/llama.cpp-b9963.tar.gz" mv llama.cpp-b9963 llama.cpp cd ~/llama.cpp
4.2 使用HIP后端编译(针对RDNA3)
bash
# 确保cmake在PATH中
export PATH="/tmp/cmake-3.31.3-linux-x86_64/bin:$PATH"
# 配置
HIPCXX="$(hipconfig -l)/clang" \
HIP_PATH="$(hipconfig -R)" \
cmake -B build \
-DGGML_HIP=ON \
-DAMDGPU_TARGETS=gfx1100 \
-DCMAKE_BUILD_TYPE=Release
# 编译(使用所有CPU核心)
cmake --build build --config Release -j$(nproc)
编译时间:约 5-15 分钟
4.3 验证编译结果
bash
ls -la ~/llama.cpp/build/bin/llama-server
ls -la ~/llama.cpp/build/bin/llama-cli
五、模型下载与放置
5.1 模型选择
| 量化版本 | 文件大小 | 适用VRAM | 推荐度 |
|---|---|---|---|
| Q4_K_M(当前使用) | ~20GB | 24GB | 推荐 |
| Q4_K_S | ~20GB | 24GB | 推荐 |
| IQ4_NL_XL | ~17GB | 24GB | VRAM紧张时 |
5.2 下载模型
bash
# 创建模型目录
mkdir -p ~/models/qwen3.6-35b-a3b
# 下载Q4_K_S量化版
huggingface-cli download bartowski/Qwen3.6-35B-A3B-UD-Q4_K_S-GGUF \
--local-dir ~/models/qwen3.6-35b-a3b \
--local-dir-use-symlinks False
本地文件替代 :如
/home/you_PC_name(改成你自己的计算机名)/下载下已有模型文件:
bashmkdir -p ~/models/qwen3.6-35b-a3b cp /home/you_PC_name(改成你自己的计算机名)/下载/Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf \ ~/models/qwen3.6-35b-a3b/
六、基础推理测试
bash
cd ~/llama.cpp
export LD_LIBRARY_PATH="$PWD/build/bin:/opt/rocm/core-7.13/lib:$LD_LIBRARY_PATH"
./build/bin/llama-cli \
-m ~/models/qwen3.6-35b-a3b/Qwen3.6-35B-A3B-UD-Q4_K_S.gguf \
-ngl 999 \
--flash-attn on \
--cache-type-k q4_0 \
--cache-type-v q4_0 \
-c 8192 \
-p "What is 2+2?" \
-n 64 \
--no-display-prompt
注意 :
--flash-attn必须显式指定on/off/auto,不能只写-fa。新版llama.cpp已不支持-fa直接跟值。
预期性能:生成速度约 100-110 tok/s
七、局域网API服务配置
7.1 生成API Key
bash
API_KEY="sk-llama-$(openssl rand -hex 16)"
echo "$API_KEY" > ~/.llama_api_key
chmod 600 ~/.llama_api_key
7.2 创建启动脚本
bash
mkdir -p ~/scripts
cat > ~/scripts/start-llama-lan.sh << 'EOF'
#!/bin/bash
LAN_IP=$(ip -4 addr show | grep "inet " | grep -v "127.0.0.1" | grep -v "docker" | grep -v "virbr" | awk '{print $2}' | cut -d/ -f1 | head -1)
LAN_IP=${LAN_IP:-"127.0.0.1"}
API_KEY=$(cat ~/.llama_api_key 2>/dev/null || echo "")
MODEL_PATH="$HOME/models/qwen3.6-35b-a3b/Qwen3.6-35B-A3B-UD-Q4_K_S.gguf"
echo " llama-server: http://${LAN_IP}:8080"
cd ~/llama.cpp
export LD_LIBRARY_PATH="$PWD/build/bin:/opt/rocm/core-7.13/lib:$LD_LIBRARY_PATH"
exec ./build/bin/llama-server \
--model "$MODEL_PATH" \
--host "$LAN_IP" \
--port 8080 \
--api-key "$API_KEY" \
--n-gpu-layers 999 \
--flash-attn on \
--cache-type-k q4_0 \
--cache-type-v q4_0 \
--ctx-size 131072 \
-b 512 \
-ub 512 \
--reasoning on \
--reasoning-format none \
--no-webui
EOF
chmod +x ~/scripts/start-llama-lan.sh
关键参数说明:
--reasoning on:启用Qwen3.6思考模式--reasoning-format none:将thinking内容放回message.content,兼容标准API客户端--ctx-size 131072:128K上下文(需配合KV cache量化)--no-webui:关闭Web界面,减少攻击面LD_LIBRARY_PATH:systemd环境下必须设置,否则找不到共享库
7.3 配置防火墙(仅允许局域网)
bash
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
LAN_IP=$(ip -4 addr show | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}' | cut -d/ -f1 | head -1)
LAN_SUBNET=$(echo $LAN_IP | sed 's/\.[0-9]*$/.0\/24/')
sudo ufw allow from $LAN_SUBNET to any port 8080 proto tcp comment 'llama-server LAN'
echo "y" | sudo ufw enable
7.4 创建systemd服务
bash
USERNAME=$(whoami)
sudo tee /etc/systemd/system/llama-qwen36-lan.service > /dev/null << EOF
[Unit]
Description=llama.cpp Qwen3.6-35B-A3B Server (LAN Only)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=$USERNAME
WorkingDirectory=/home/$USERNAME
Environment="HIP_VISIBLE_DEVICES=0"
ExecStart=/home/$USERNAME/scripts/start-llama-lan.sh
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable llama-qwen36-lan.service
sudo systemctl start llama-qwen36-lan.service
7.5 验证服务
bash
systemctl status llama-qwen36-lan.service --no-pager
curl http://<局域网IP>:8080/health
# 预期:{"status":"ok"}
八、上下文长度优化
8.1 最大化上下文至128K
在24GB VRAM下,使用KV cache q4_0量化,Qwen3.6-35B-A3B可支持131072 tokens (128K)上下文。
验证方法 :在启动脚本中设置 --ctx-size 131072,确认服务能正常加载。
8.2 VRAM占用参考
| 配置 | VRAM占用 |
|---|---|
| ctx-size 8192, parallel 4 | ~21.8 GB |
| ctx-size 131072, parallel 4 (无mmproj) | ~22.9 GB |
| ctx-size 131072, parallel 4 (含mmproj) | ~24.2 GB |
8.3 如遇OOM
降低 --ctx-size,例如改为 65536 或 32768。
九、多模态功能配置
多模态(
--mmproj)与MTP投机解码不兼容。当前基线模式可直接启用。
9.1 下载mmproj文件
bash
mkdir -p ~/下载/mmproj
# mmproj文件通常与视觉版模型配套,约860MB-2GB
9.2 修改启动脚本启用多模态
在启动脚本中添加 --mmproj 参数:
bash
# 在 ~/scripts/start-llama-lan.sh 的 exec 命令中添加:
# --mmproj ~/下载/mmproj/mmproj-Qwen3.6-35B-A3B-BF16.gguf \
9.3 VRAM注意
启用mmproj后,VRAM占用会增加约1-2GB。在128K上下文下,总占用约24.2GB,接近24GB上限。如遇OOM,需降低 --ctx-size。
十、客户端接入指南
10.1 通用配置
Base URL: http://<服务器局域网IP>:8080/v1
API Key: <来自 ~/.llama_api_key>
模型: qwen3.6-35b-a3b
10.2 MIMO
设置 → AI服务 → 自定义OpenAI API → 填入上述配置
10.3 TRAE
设置 → 模型 → 添加自定义模型 → API地址填 http://<IP>:8080/v1/chat/completions
10.4 Python调用
python
from openai import OpenAI
client = OpenAI(
base_url="http://<服务器IP>:8080/v1",
api_key="<API_KEY>"
)
response = client.chat.completions.create(
model="qwen3.6-35b-a3b",
messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)
10.5 多模态调用
bash
BASE64=$(base64 -w0 image.jpg)
curl -H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d "{
\"model\":\"qwen3.6-35b-a3b\",
\"messages\":[{\"role\":\"user\",\"content\":[
{\"type\":\"text\",\"text\":\"描述这张图片\"},
{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/jpeg;base64,$BASE64\"}}
]}]
}" \
http://<IP>:8080/v1/chat/completions
十一、常见问题排查
问题1:cmake找不到
原因 :系统未安装cmake
解决:从二进制包安装或在线下载,参见第三章
问题2:hip-lang-config.cmake缺失
原因 :未安装 amdrocm-runtime-dev7.13
解决 :sudo apt-get install -y amdrocm-runtime-dev7.13
问题3:hipblasConfig.cmake缺失
原因 :未安装hipblas开发包
解决 :sudo apt-get install -y amdrocm-hipblas-common-dev7.13-gfx110x amdrocm-blas-dev7.13-gfx110x
问题4:libhipblas.so.3找不到
原因 :动态库路径未设置
解决 :启动脚本中添加 export LD_LIBRARY_PATH="$PWD/build/bin:/opt/rocm/core-7.13/lib:$LD_LIBRARY_PATH"
问题5:systemd服务启动失败(exit code 127)
原因 :systemd环境中没有LD_LIBRARY_PATH
解决 :在启动脚本中设置 export LD_LIBRARY_PATH=...
问题6:MTP启动报错 "model doesn't contain MTP layers"
原因 :当前模型不包含MTP层
解决 :使用不带 --spec-type draft-mtp 的基线模式
问题7:WorkBuddy报错 "Cannot read properties of undefined (reading 'type')"
原因 :Qwen3.6的thinking模式产生非标准的 reasoning_content 字段
解决 :启动参数添加 --reasoning-format none
问题8:模型输出全是 > 空行
原因 :Qwen3.6思考模型的thinking tokens,思考过程会占满token限制
解决 :增加 --max_tokens 或使用 --reasoning off 禁用思考
问题9:上下文设为128K后OOM
原因 :VRAM不足(24GB上限)
解决 :降低 --ctx-size(如65536),或使用更小的量化版本
问题10:流式输出没有128K上下文
实际上下文已设置为128K :流式和非流式共用同一个 --ctx-size 配置,无需额外设置。
附录:文件清单
安装后关键路径
| 路径 | 说明 |
|---|---|
~/llama.cpp/build/bin/llama-server |
推理服务主程序 |
~/llama.cpp/build/bin/llama-cli |
命令行推理工具 |
~/models/qwen3.6-35b-a3b/ |
模型存放目录 |
~/下载/mmproj/ |
mmproj投影文件目录 |
~/scripts/start-llama-lan.sh |
局域网启动脚本 |
~/.llama_api_key |
API Key文件 |
/etc/systemd/system/llama-qwen36-lan.service |
systemd服务配置 |
~/桌面/控制AI大模型/ |
桌面控制脚本 |
桌面快捷方式
| 文件 | 功能 |
|---|---|
| 启动-llama服务.desktop | 启动服务 |
| 停止-llama服务.desktop | 停止服务 |
| 查看-服务状态.desktop | 查看状态和日志 |
| 设置-开机启动.desktop | 启用开机自启 |
| 取消-开机启动.desktop | 禁用开机自启 |
当前运行配置
| 参数 | 值 |
|---|---|
| GPU | AMD RX 7900 XTX (gfx1100) |
| ROCm | 7.13.99 |
| llama.cpp | b9963 |
| 模型 | Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-Q4_K_M |
| mmproj | mmproj-Qwen3.6-35B-A3B-BF16 |
| 上下文 | 131072 (128K) |
| KV Cache | q4_0 量化 |
| Flash Attention | 启用 |
| Thinking模式 | 启用 (reasoning-format none) |
| API认证 | 启用 |
| VRAM占用 | ~24.2 GB / 24 GB |
| 生成速度 | ~105 tok/s |
文档版本 :v1.1(基于实际部署经验修订)
生成时间 :2026-07-12
适用环境:Ubuntu 26.04 LTS + AMD RX 7900 XTX + ROCm 7.13 + llama.cpp b9963