# viiwork：让老旧AMD显卡变身LLM推理集群的负载均衡神器

> viiwork是一个专为AMD Radeon VII等老旧显卡设计的LLM推理负载均衡器，能将多张16GB HBM2显存的显卡组成集群，提供OpenAI兼容的API接口，让 legacy hardware 焕发新生。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-05T17:43:43.000Z
- 最近活动: 2026-04-05T17:51:17.662Z
- 热度: 154.9
- 关键词: viiwork, AMD, Radeon VII, LLM推理, 负载均衡, ROCm, llama.cpp, GPU集群, 开源, Mesh集群
- 页面链接: https://www.zingnex.cn/forum/thread/viiwork-amdllm
- Canonical: https://www.zingnex.cn/forum/thread/viiwork-amdllm
- Markdown 来源: ingested_event

---

## 引言：老旧显卡的第二春

在AI算力需求爆炸式增长的今天，NVIDIA显卡几乎垄断了数据中心和AI训练市场。然而，对于预算有限的开发者或拥有老旧硬件的用户来说，是否有办法让这些"过气"的显卡继续发挥价值？

viiwork项目给出了一个令人惊喜的答案。这个开源项目专为AMD Radeon VII、Instinct MI50/MI60等gfx906架构显卡设计，通过负载均衡技术将多张16GB HBM2显存的显卡组成LLM推理集群，提供与OpenAI兼容的API接口。正如项目作者所言："这些二手市场上便宜的老显卡，在LLM推理这种内存带宽密集型任务中，依然能打出超出其身价的表现。"

## 背景故事：岳母车库里的50张显卡

viiwork的诞生源于一个有趣的真实场景：项目作者在岳母的车库里放着50张Radeon VII显卡，想要让它们物尽其用。Radeon VII、Instinct MI50/MI60都是gfx906架构的显卡，配备16GB HBM2显存（MI60为32GB），拥有1TB/s的内存带宽。虽然这些显卡在发布时定位高端，但现在已经沦为"legacy hardware"。

然而，LLM推理任务的特点是内存带宽往往是瓶颈而非计算能力。这意味着，只要显存足够，这些老显卡仍然能够胜任大语言模型的推理工作。viiwork正是基于这一洞察，将这些老旧但性能不俗的显卡重新利用起来。

## 核心架构：多节点Mesh集群

viiwork的设计目标是让任何规模的硬件都能发挥作用——从桌面上的单张旧游戏显卡，到工作站里的几张Radeon Pro VII，再到机架上的数十张Instinct MI50。

### 单机多模型部署

在单台主机上，viiwork可以运行多个llama-server实例，每个实例绑定不同的GPU组，暴露不同的端口。例如，在拥有10张GPU的主机上可以这样分配：

- 4张GPU在8080端口运行Gemma-4-26B-A4B-IT（快速MoE推理，仅4B活跃参数）
- 4张GPU在8081端口运行Qwen3-32B（通用推理）
- 2张GPU在8082端口运行Gemma-4-E4B-IT（轻量级/多模态任务）

### Mesh集群模式

更强大的功能是Mesh模式。多个viiwork节点可以组成一个集群，任何节点都可以作为入口点。当客户端查询`/v1/models`时，会显示所有节点上的模型；请求会根据模型名称自动路由到正确的节点。

```yaml
peers:
  hosts:
    - 192.168.1.10:8080
    - 192.168.1.11:8080
  poll_interval: 10s
  timeout: 3s
```

如果某个节点宕机，它会自动被跳过；当节点恢复时，又会被自动重新加入集群。这种设计让集群具有高可用性和弹性。

## 智能模型推荐："I'm Feeling Lucky"模式

viiwork提供了一个有趣的交互式设置脚本`setup-node.sh`，其中包含"I'm Feeling Lucky"模式。用户只需输入类别代码，脚本就会自动发现适合当前硬件的热门模型：

- `0` — 任意类别（随机惊喜）
- `0c` — 编程模型
- `0r` — 推理模型
- `0v` — 视觉/多模态模型
- `0w` — 写作/聊天模型
- `0l` — 多语言模型
- `0a` — Agent模型

脚本会结合llmfit的硬件感知评分（如果已安装）或HuggingFace API作为后备，自动挑选多样化的模型组合并分配GPU资源。这种"一键部署"的体验大大降低了使用门槛。

## 成本追踪：实时电费监控

对于大规模部署，电费是一个不可忽视的成本因素。viiwork集成了Nord Pool现货电价追踪功能，可以实时监控每个节点的电费消耗。

用户只需从ENTSO-E透明度平台获取API密钥，并在`.env`文件中配置，仪表盘就会显示：

- 每个节点的实时成本速率（欧元/小时）
- 每日累计成本
- 集群总成本

这对于需要长期运行的推理服务来说，是一个实用的成本管理工具。

## Pipeline功能：多步骤LLM链

viiwork的Pipeline功能允许将多个LLM步骤链式组合成虚拟模型。消费者只需调用虚拟模型名称（如`localize-fi`或`improve-en`），viiwork就会在后台执行跨一个或多个真实后端模型的提示序列。

目前包含两种Pipeline类型：

### 本地化Pipeline

将翻译、文化适配和质量检查整合到单个请求中。支持区域别名和每区域词汇表，适合需要将内容本地化为多种语言的场景。

### 文本改进Pipeline

先生成文本，然后重写以去除AI写作特征（"de-slop"）。这对于需要生成更自然、更像人类写作的内容非常有用。

每个步骤可以指定模型、Go模板提示和温度参数。步骤按顺序执行，每一步的输出作为下一步的输入。

## MCP服务器：与AI助手无缝集成

viiwork-mcp是一个MCP（Model Context Protocol）服务器，将viiwork集群作为工具暴露给任何兼容MCP的AI助手。这让AI编码工具可以将推理任务委托给本地托管的模型。

提供的工具包括：

- `query`：向本地模型发送提示
- `models`：列出集群上可用的模型
- `status`：获取集群健康状态、每GPU后端状态、正在进行的请求数

这种集成让开发者可以在使用Claude Code、Cursor等AI编码工具时，无缝切换到本地模型进行推理，既保证了数据隐私，又降低了API调用成本。

## 推荐模型与量化策略

viiwork针对16GB显存的Radeon VII进行了优化，所有推荐模型都能在考虑KV缓存和ROCm运行时开销后，完整载入约13GB的安全显存上限内。

### 编程模型

- **Qwen2.5-Coder-14B (Q6_K)**：约12.1GB，16GB显存内最佳质量编程模型
- **Devstral-Small-24B (Q3_K_M)**：约11.5GB，适合多文件前端任务和Agent工作流
- **DeepSeek-R1-Distill-Qwen-14B (Q4_K_M)**：约9GB，算法推理

### 文本生成与推理

- **Qwen3-32B (UD-Q2_K_XL)**：约12.8GB，通用推理，支持思考模式
- **Gemma-3-27B-IT (Q3_K_S)**：约12.2GB，事实摘要、结构化转散文
- **Mistral-Small-3.1-24B (IQ4_XS)**：约12.8GB，多语言文本生成

### Gemma 4系列

- **Gemma-4-26B-A4B-IT (UD-Q3_K_M)**：约12.5GB，MoE架构仅4B活跃参数，质量最佳
- **Gemma-4-E4B-IT (Q8_0)**：约8.2GB，8B多模态，近无损量化
- **Gemma-4-E2B-IT (Q8_0)**：约5GB，5B多模态，超轻量级

## 技术细节：ROCm兼容性与Docker构建

viiwork的Docker镜像将llama.cpp固定到特定发布标签，并针对gfx906兼容性修补了HIP FP8头文件。这是因为ROCm 6.2+为所有架构都包含了`<hip/hip_fp8.h>`，但gfx906没有FP8硬件支持，导致头文件编译失败。

主机要求很简单：

- 加载了`amdgpu`内核驱动的Linux（现代内核默认包含）
- 支持GPU设备访问的Docker（`/dev/kfd`、`/dev/dri`）
- 主机上无需安装ROCm

这种设计让用户可以快速部署，无需复杂的环境配置。

## 仪表盘与监控

viiwork提供了一个功能丰富的Web仪表盘，包含：

- 本地后端表格，显示每GPU状态、进行中的请求数、上下文使用量和RSS内存
- 实时进行中的请求计时器，显示token进度、上下文和内存使用
- 活动日志（最新优先），显示模型名称、完成时间和token计数
- 主机内存图表
- 实时GPU利用率和显存图表（1小时历史，SSE更新）
- 对等Mesh连接状态
- 功耗和电费成本

此外，还提供了一个轻量级聊天UI（`/chat`），方便快速与模型交互。

## 性能基准测试

viiwork包含多个基准测试脚本：

- `bench.sh`：压力基准测试，从1逐步增加到N并发，测量吞吐量和延迟
- `bench-sustained.sh`：持续负载基准测试，保持N个并发请求一段时间

这些工具帮助用户了解集群在不同负载下的表现，为容量规划提供数据支持。

## 总结：开源社区的创意与实用主义

viiwork是一个充满创意和实用主义精神的开源项目。它没有追求最新的硬件，而是充分挖掘老旧显卡的潜力，为预算有限但需要LLM推理能力的用户提供了一个可行的解决方案。

项目的Mesh集群设计、智能模型推荐、成本追踪和Pipeline功能，都显示出作者对实际使用场景的深入理解。对于那些拥有AMD老旧显卡或想要降低AI推理成本的用户来说，viiwork无疑是一个值得尝试的工具。

更重要的是，viiwork证明了开源社区的创新能力——即使是"岳母车库里的旧显卡"，也能在合适的软件支持下焕发新生，为AI民主化贡献一份力量。
