在Ubuntu 26.04版本上借助本地AI助手在AMD显卡基础上安装并运行Qwen3.6-35B-A3B,作为本地编程AI

系统环境

操作系统: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. 硬件与系统准备
  2. ROCm安装与配置
  3. 编译依赖安装(关键步骤)
  4. llama.cpp编译
  5. 模型下载与放置
  6. 基础推理测试
  7. 局域网API服务配置
  8. 上下文长度优化
  9. 多模态功能配置
  10. 客户端接入指南
  11. 常见问题排查

一、硬件与系统准备

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

bash 复制代码
cd /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 package
  • Could 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

bash 复制代码
cd ~
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(改成你自己的计算机名)/下载 下已有模型文件:

bash 复制代码
mkdir -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,例如改为 6553632768


九、多模态功能配置

多模态(--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

相关推荐
YOLO数据集集合1 小时前
多模态AI道路病害检测系统:YOLO+DeepSeek融合实战
人工智能·yolo·目标检测·计算机视觉·目标跟踪
程序员脚趾9 小时前
GPT-5.6 上线:当 GPT 与 Codex 走向融合,AI 正从“回答问题”走向“完成工作”
人工智能
thubier(段新建)9 小时前
owtb 3pl 面向城市配送物流企业需求V0.2
大数据·人工智能
Token炼金师9 小时前
模型的防线:Prompt 注入防御、越狱攻击与对齐、红队测试、价值观对齐、对抗样本鲁棒性、安全评测与边界 —— 模型安全六防
人工智能·红队测试·prompt 注入防御·越狱攻击与对齐·价值观对齐·对抗样本鲁棒性·安全评测与边界
sanzk10 小时前
firefly开发板ubuntu安装ros2下的micro-ROS Agent
linux·运维·ubuntu
嘘神秘用10 小时前
布:AI 驱动的 Redis 客户端,更快、更直观
数据库·人工智能·redis
黒亱中旳10 小时前
Java AI 框架三国杀:Solon AI vs Spring AI vs LangChain4j 深度对比
java·人工智能·spring
小和尚同志10 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
alxraves10 小时前
医用超声远程会诊系统:会诊平台的核心架构与功能解析
java·人工智能·架构