@malikwas1f: 哎呀哎呀,Beellama已经成功合并了Dflash+TurboQuant。这解锁了Q5量化。情况变得越来越好……
摘要
一个名为club-3090的GitHub仓库提供了在RTX 3090 GPU上本地运行大型语言模型的配方和配置,支持多种引擎和量化方法,如Dflash和TurboQuant,包括新解锁的Q5量化。
查看缓存全文
缓存时间: 2026/05/24 10:28
好吧好吧,Beellama 已经成功将 DFlash 和 TurboQuant 合并了。这下 Q5 量化也能用了。对于 3090 用户来说,好消息一个接一个。加入 3090 俱乐部吧,我们还有更多秘方在酝酿中 http://github.com/noonghunna/club-3090… — # noonghunna/club-3090 来源:https://github.com/noonghunna/club-3090 # club-3090 在 RTX 3090 上本地运行 LLM 的配方。 多引擎(vLLM、llama.cpp、ik_llama)、多模型、原生模型无关设计。如果你有一两块 RTX 3090,并希望在家中、家庭实验室或开发后端运行现代 LLM,这个仓库收集了可用的配置、补丁和基准测试。 — ## 快速开始 bash # 1. 克隆仓库 git clone https://github.com/noonghunna/club-3090.git cd club-3090 # 兼容性分析工具需要 PyYAML。Ubuntu LTS 通常自带 # python3-yaml;否则运行:python3 -m pip install pyyaml # 2. 选择/下载 + SHA 验证模型(交互式硬件感知选择器) # (询问你选择哪个模型,然后模型权重放在哪里 — 选择仓库默认路径、 # ~/models 或不同驱动器上的自定义路径。若要跳过提示: # `export MODEL_DIR=/mnt/your-drive/models` 并传入模型名称。参见 FAQ。) bash scripts/setup.sh # 或者通过脚本指定: # bash scripts/setup.sh qwen3.6-27b # 3. 选择配置并启动(交互式向导:询问模型 → GPU → 项目 VRAM 预算) bash scripts/launch.sh # 或者跳过向导: # bash scripts/launch.sh --variant llamacpp/default # 单卡聊天(推荐)— 无悬崖风险,200K @ -ub 512,约 51/60 TPS # bash scripts/launch.sh --variant ik-llama/iq4ks-mtp # 单卡最快 — 约 60/69 TPS,最省 VRAM(ik_llama IQK 量化) # bash scripts/launch.sh --variant llamacpp/mtp-vision # 单卡 49K + MTP + 视觉 # bash scripts/launch.sh --variant vllm/dual # 双卡 262K + 视觉(vLLM 单卡路径因 #167 受阻) # 或者部分标志(向导填充其余部分): # bash scripts/launch.sh --model qwen3.6-27b --gpus 0,1 # bash scripts/launch.sh --tp 2 --pp 1 # 覆盖 vLLM 并行度 # 查看所有变体: # bash scripts/switch.sh --list # 4. 健全性测试(启动器已打印此 curl) curl -sf http://localhost:8020/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"qwen3.6-27b-autoround","messages":[{"role":"user","content":"法国的首都是什么?"}],"max_tokens":200}' # 5. 运行标准基准测试 bash scripts/bench.sh # 6. 之后切换配置无需重新经过向导: bash scripts/switch.sh vllm/long-vision # 例如 # 7. 随着技术栈更新保持安装最新(Genesis 版本提升、 # 新的 compose 变体、vendored 补丁更新): bash scripts/update.sh launch.sh 会调用 switch.sh(关闭旧配置,启动新配置),然后调用 verify-full.sh,让你在将客户端指向它之前知道服务是否正常运行。查看 scripts/ 了解所有辅助脚本。 > ⚠️ 单卡长上下文注意事项: Cliff 2(在 >~50K 单提示时 GDN 预填充 OOM)在 24 GB 单卡 vLLM 上 仍存在。Genesis v7.72.2 PN59 原本是修复方案,但未在分块预填充中生效。解决方法: vllm/dual(TP=2 可避免)或 llamacpp/default(不同引擎,无悬崖问题)。完整诊断参见 docs/CLIFFS.md。 — ## 简述 —— 这是什么 - 两条互补路线 —— 根据你的工作负载选择: - 🏎 vLLM 双卡 = 最大吞吐量。最高 127 TPS 代码(DFlash)或 4 个并发流 @ 262K(turbo)。完整功能栈(视觉 · 工具 · MTP · 流式)。 - 🛡 llama.cpp 单卡 = 最大鲁棒性。单张 3090 上完整 200K 上下文(最大安全 —— 能干净填充并留有裕量;参见 CLIFFS)。经过压力测试:无预填充悬崖、25K 令牌工具返回正常、91K 针测试通过。约 51 / 60 TPS(Q4_K_M + MTP)—— 比 vLLM 双卡慢,但不会在真实工具使用代理中崩溃。 - 经过验证的 Docker Compose 配置,适用于两条路线 —— 在 localhost:8020 提供即用 OpenAI 兼容 API - 多引擎:vLLM(完整功能)、llama.cpp(最大上下文 + 鲁棒性)、ik_llama(最佳 GGUF 量化)。(已评估 SGLang —— 目前在 Ampere 上受阻;参见 docs/engines/SGLANG.md。) - 模型无关:目前为 Qwen3.6-27B 及其同类模型提供精选配置;随着添加新模型,结构可扩展 - 通用 pull(v0.8.0;v0.8.2 扩展)—— 评估任意 safetensors HF 仓库,得到诚实的单行适配结论(--recommend),当 pull 硬阻塞时,在同意的情况下发送脱敏诊断(--submit-last)。每个版本覆盖更广泛的架构。参见 docs/PULL.md 本地 AI 新手? → docs/LOCAL_AI_PRIMER.md —— 通俗英语:硬件 / 引擎 / 模型大小 / 量化如何配合。 初次接触? → docs/GETTING_STARTED.md —— 5 分钟从克隆到 curl。 已经在运行,想比较引擎? → docs/engines/ 选择引擎(vLLM / llama.cpp / ik_llama)? → docs/INFERENCE_ENGINES.md 对量化名称困惑(Q4_K_M vs IQ4_KS vs AWQ)? → docs/QUANTIZATION.md 硬件问题(4090、NVLink、功耗上限)? → docs/HARDWARE.md 不知道 TPS / KV / MTP 是什么意思? → docs/GLOSSARY.md — ## 选择路线 | 你的配置 | 从这里开始 | |—|—| | 1× RTX 3090 | docs/SINGLE_CARD.md —— 工作负载 → 配置 → 快速开始 | | 2× RTX 3090(PCIe / NVLink 自动检测) | docs/DUAL_CARD.md —— 工作负载 → 配置 → 快速开始 | | 3+ 张 GPU(任意型号 —— 4× 3090、8× A6000、混合) | docs/MULTI_CARD.md —— TP 扩展计算、从 dual.yml 推导、有效 TP 值 | | 支持列表中没有的模型 / 任意 HF safetensors 仓库 | docs/PULL.md —— 通用 pull 流程:对照 KV 数学评估,诚实地给出置信度 | | 考虑自托管 vs 云 API | docs/COMPARISONS.md —— 成本交叉点 + 各自优势场景 | 每个硬件页面列出了针对该卡数的每个受支持模型及其可用的 compose 配置、以及测得的 TPS 和按工作负载的陷阱。特定模型的深入分析(量化、Genesis 补丁、引擎内部)位于 models/<model>/ 下。 — ## 支持的模型 | 模型 | 状态 | 支持的卡数 | 引擎 | 亮点 | |—|—|—|—|—| | Qwen3.6-27B | 生产就绪 ⭐ | 1× / 2× 3090 | vLLM ✅ · llama.cpp ✅ · ik_llama ✅ | 视觉 · 工具 · MTP n=3 · 最高 262K 上下文 · vLLM 双卡 = 89/127 TPS · llama.cpp 单卡 = 200K 最大安全,无预填充悬崖 · ik_llama IQ4_KS = ~60/69 TPS(单卡最快) | | Gemma 4 31B | 生产就绪(仅双卡,Ampere 24 GB) | 仅 2× 3090 1 | vLLM ✅ · llama.cpp ❌ | 视觉 · 工具 · MTP n=3(Google 官方草稿模型)或 DFlash n=7(z-lab 草稿模型)· 最高 262K 上下文通过 INT8 PTH KV(PR #40391 (https://github.com/vllm-project/vllm/pull/40391) vendored)· MTP 双卡 = 106/141 TPS @ 32K,95/126 @ 262K · DFlash 双卡 = 105/177 TPS @ 32K(代码最优) | | Qwen3.6 35B-A3B ⭐ 新版 v0.7.3 | 预览(生产路线因 Genesis v7.73.x 阻塞) | 2× 3090 | vLLM ✅(预览)· llama.cpp ❌ | MoE(256 专家 × 8 活跃,约 3 B 活跃参数) · 视觉 · 工具 · 通过 vLLM PR #42521 (https://github.com/vllm-project/vllm/pull/42521) 的原生加载器 · 预览双卡 = 182/177 TPS @ 16K(无 MTP,无 TQ3,无 Genesis) | | Gemma 4 26B-A4B ⭐ 新版 v0.7.3 | 通过 AWQ 生产就绪(Intel AutoRound INT4 在 Ampere 上阻塞) | 2× 3090 | vLLM ✅(AWQ 覆盖)· llama.cpp ❌ | MoE(128 专家 × 8 活跃,约 4 B 活跃参数) · 视觉 · 工具 · AWQ 双卡 = 139/139 TPS @ 32K,CV 0.2% / 0.0% | 1 单卡在 Ampere 24 GB 上启动即 OOM,无论 KV 格式。单卡 Gemma 4 在 32 GB+ GPU 上可行(经 @apnar (https://github.com/noonghunna/club-3090/discussions/67#discussioncomment-16832042) 在 RTX 5090 32 GB 上验证)。更多模型即将到来 —— 它们会放在 models/<model>/ 下,采用相同的内部模式。 — ## 快速 TPS 一览 Qwen3.6-27B 按配置的 TPS 基准测试协议:3 次热身 + 5 次测量运行。参见 scripts/bench.sh 了解方法。每个配置的详细信息 + 逐次运行数字 + VRAM + AL/接受率: models/qwen3.6-27b/CHANGELOG.md。 — ## 基准测试 在你的机器上复现以上数字。所有基准测试针对当前正在运行的 compose(先通过 launch.sh 启动一个)。 吞吐量 (TPS) —— 规范叙述 + 代码基准(每个提示 3 次热身 + 5 次测量): bash bash scripts/bench.sh 行为质量 —— 工具调用正确性、指令遵循、结构化输出等,通过 benchlocal-cli: bash bash scripts/quality-test.sh # --medium:5 个包(默认,约 15-25 分钟,无需 Docker) bash scripts/quality-test.sh --quick # 2 个包(约 5-10 分钟,无需 Docker) bash scripts/quality-test.sh --full # 8 个包 / 150 个场景(约 25-40 分钟,需要 Docker) bash scripts/quality-test.sh --pack aider-polyglot-30 # 单个命名包 完整重测(一个模型,所有项目) —— 规范 5 步流水线(bench → verify-stress → quality-test --full → soak → aider-polyglot-30),每条腿约 1.75-2 小时。所有产物存放在 results/rebench/<model>/ 下: bash bash scripts/rebench-full.sh # 从 MODEL 自动标记 bash scripts/rebench-full.sh --tag qwen-int8 # 显式标记 bash scripts/rebench-full.sh --skip soak,aider # 跳过阶段(CSV) bash scripts/rebench-full.sh --resume # 恢复中断运行(跳过已完成步骤) # 端点优先模式(非 Docker 引擎:llama-swap、ramalama、原始 llama-server 等): bash scripts/rebench-full.sh \ --url http://HOST:PORT --model 'MODEL-NAME' --engine llama-cpp # vllm|llama-cpp|sglang|other 在不同的模型上运行两次 rebench-full.sh 以组装匹配配置的对比。完整测试流水线参考:docs/QUALITY_TEST.md。 — ## 诊断 报告 bug、共享跨平台数据或回复分类线程时,生成一份可直接粘贴的诊断报告 —— 它会捕获硬件、操作系统、GPU、容器运行时、技术栈版本以及正在运行的容器状态,格式为 markdown。默认会脱敏主目录路径、主机名、用户名和 HF 令牌,因此可以安全地粘贴到公共问题或讨论中。 bash # 快速报告(约 2 秒)—— 硬件 + 技术栈 + 启动日志要点 bash scripts/report.sh # 捕获到文件,准备粘贴到 GitHub issue/discussion bash scripts/report.sh > my-rig.md # 添加实时测试输出(根据线程需要选择): bash scripts/report.sh --verify # + verify-full.sh(约 1-2 分钟) bash scripts/report.sh --stress # + verify-stress.sh 7/7(约 5-10 分钟) bash scripts/report.sh --soak # + 持续浸泡(约 25 分钟)—— 捕捉 Cliff 2b bash scripts/report.sh --bench # + bench.sh TPS(约 3 分钟) bash scripts/report.sh --full # 全部四个 —— 规范“全项”跨平台测试(约 35 分钟) # 仅内部共享(禁用脱敏): bash scripts/report.sh --no-redact --soak 是独立的标志,因为一个配置可能通过 verify + stress + bench,但在多轮连续浸泡中失败(累计 ~25K 令牌时的 Cliff 2b)—— 浸泡是目前唯一能捕捉到这种代理工作负载失败模式的测试。参见 docs/CLIFFS.md。 — ## 仓库结构 club-3090/ ├── README.md 本文件 —— 从这里开始 ├── CHANGELOG.md 跨切变更(引擎版本提升、脚本更新) ├── LICENSE Apache-2.0 ├── docs/ │ ├── LOCAL_AI_PRIMER.md 通俗入门:硬件 / 引擎 / 大小 / 量化 │ ├── ARCHITECTURE.md 本技术栈对 24 GB 上 LLM 服务的思考方式 │ ├── HARDWARE.md Ampere SM 8.6+、NVLink 说明、24 GB 上限 │ ├── GLOSSARY.md 通俗定义(TPS / KV / MTP / TP 等) │ ├── UPSTREAM.md 我们依赖或提交的每个上游 issue/PR │ ├── CLIFFS.md 预填充悬崖的完整概述(根本原因 + 修复现状) │ ├── img/ 图表源文件(performance.svg、vram-budget-{single,dual,combined}.svg)+ PNG 导出 │ └── engines/ 跨模型引擎比较 + 每个引擎深入分析 │ ├── README.md 决策树、优缺点矩阵 │ ├── VLLM.md vLLM 通用文档 + 调优 │ ├── LLAMA_CPP.md llama.cpp 通用文档 + 262K 配方 │ ├── IK_LLAMA.md 高级量化引擎(IQK 量化、两阶段推测解码) │ └── SGLANG.md 受阻状态 + 观察列表 ├── models/ │ └── qwen3.6-27b/ 所有 Qwen3.6-27B 相关 │ ├── README.md 模型概述 + 变体 + 推荐 │ ├── INTERNALS.md 工程原理(Genesis、Marlin pad、DFlash、上游跟踪器) │ ├── CHANGELOG.md 模型特定按日期历史 │ ├── vllm/ │ │ ├── README.md "Qwen3.6-27B 的 vLLM 配方" │ │ ├── compose/ docker-compose 文件(单卡 + 双卡变体) │ │ └── patches/ tolist_cudagraph + Marlin pad README + Genesis 指针 │ ├── llama-cpp/ │ │ ├── README.md "Qwen3.6-27B 的 llama.cpp 配置" │ │ └── compose/single/ mtp.yml + mtp-vision.yml(单卡 MTP) │ ├── ik-llama/ │ │ └── compose/single/ iq4ks-mtp.yml + iq4ks-mtp-vision.yml + iq4ks-two-stage.yml(IQK 量化) │ └── sglang/ │ └── README.md 受阻状态 —— 什么能在此模型上解除阻塞 ├── scripts/ 共享的、模型感知的脚本 │ ├── setup.sh bash setup.sh → 预检 + 下载 + 验证 + Genesis │ ├── launch.sh 交互式向导:模型 → GPU → KV 投影 → 启动 compose + 验证 │ ├── switch.sh 无状态变体切换器(关闭旧的,启动新的) │ ├── update.sh 一键升级:git pull + 重新固定 Genesis + 重新 vendored 补丁 │ ├── health.sh 运行时健康探测(KV 百分比、MTP AL、近期 TPS、错误) │ ├── preflight.sh 可 source 的库:docker / GPU / 磁盘 / 仓库漂移 / Genesis 固定检查 │ ├── verify.sh 快速冒烟测试(通过 env 感知引擎) │ ├── verify-full.sh 快速功能测试(8 项检查,约 1-2 分钟) │ ├── verify-stress.sh 边界情况压力测试(长上下文阶梯 + 工具预填充 OOM,约 5-10 分钟) │ ├── soak-test.sh 运行时 VRAM 增长 / 多轮代理流量(约 10-30 分钟,可选) │ ├── bench.sh 标准 TPS 基准测试 │ └── report.sh 可直接粘贴的诊断报告(在报告 bug 或共享基准数字之前运行) └── tools/ └── charts/ 重新生成 docs/img/* SVG 和 PNG 导出(matplotlib) ├── gen-perf.py 性能柱状图(组合 + 单卡 + 双卡) └── gen-vram.py VRAM 堆叠柱状图(组合 + 单卡 + 双卡) — ## 你需要什么 | 对于本技术栈上的任何模型 | 说明 | |—|—| | 1× 或 2× NVIDIA RTX 3090(各 24 GB) | 更大的 Ampere/Ada 卡(4090、A6000)也可正常工作;更小的卡(12 GB)无法容纳 27B 级模型。 | | Linux(已在 Ubuntu 22.04+ 上测试) | macOS/Windows:vLLM 仅支持 Linux + CUDA。Llama.cpp 在 macOS/Windows 上可用,但配方假设 Linux 路径。 | | Docker + NVIDIA Container Toolkit | 用于 vLLM。Llama.cpp 无需 Docker 即可运行。 | | NVIDIA 驱动程序 580.x+ | 用于 vLLM 每日构建中的 CUDA 13 运行时。 | | 约 30 GB 空闲磁盘 | 每个模型。多个模型需要更多。 | vLLM 镜像固定位于 scripts/lib/profiles/engines/*.yml,由 scripts/launch.sh / scripts/switch.sh 导出为 VLLM_NIGHTLY_SHA。设置 VLLM_IMAGE 可覆盖完整镜像引用 —— 例如,固定特定上游每日构建,或在固定每日构建已被清除时运行当前镜像: bash VLLM_IMAGE=vllm/vllm-openai:latest bash scripts/launch.sh --variant vllm/dual 参见 docs/HARDWARE.md 了解硬件特定说明(PCIe vs NVLink、功耗等)。 — ## 组织结构 引擎和硬件是通用的 —— docs/ 中的文档适用于所有模型。vLLM 的工作方式与你是运行 Qwen、GLM 还是 Llama 无关;引擎文档一次覆盖。 模型是具体的 —— 在 models/<model>/ 下,你可以找到该模型的量化、特性、推荐配置以及引擎特定配方。添加新模型意味着添加一个新的子目录,采用相同的内部模式。 脚本是共享的但感知模型 —— bash scripts/setup.sh qwen3.6-27b 下载该
相似文章
@ProTekkFZS:在 3090 上用 Q4_K_M 3.6 35B、768k 上下文加 YaRN,爽到飞起
用户报告称,通过 llama.cpp 分支,在 RTX 3090 上成功以 Q4_K_M 量化运行 35B 参数 MoE 模型,上下文长达 768K,仅把 8 个专家卸载到 CPU,性能依旧可接受。
@no_stp_on_snek:turboquant+ 现已成为 LocalAI 的可切换后端,与 tinygrad 和 sglang 并列
LocalAI 新增 turboquant+ 后端,可在不升级硬件的情况下为 GGUF 模型提供更长上下文支持。
成功运行 MTP + TurboQuant — Qwen3.6-27B 在单 RTX 4090 上实现 262K 上下文 80+ token/秒
开发者通过将 MTP(多 Token 预测)与 TurboQuant 的无损 KV缓存压缩技术相结合,在单张 RTX 4090 上实现了 Qwen3.6-27B 模型在 262K 上下文下 80+ token/秒的推理速度,并分享了实现分支和技术细节。
@rumgewieselt:现在变得疯狂了……三块 1080 Ti(Pascal架构,33GB VRAM)Qwen 3.6 27B MTP 搭配 196K TurboQuant,持续 ~28-30 t/s
一位用户成功在三个 GTX 1080 Ti GPU 上对 27B 参数的 Qwen 模型进行本地推理,通过 TurboQuant 优化达到了约 28-30 tokens/秒的速度。
@bstnxbt:DFlash v0.1.4:为量化版 Qwen3 混合模型提供自定义 Metal 验证内核,并显著降低峰值内存占用……
DFlash v0.1.4 发布了面向量化版 Qwen3 混合模型的自定义 Metal 验证内核,在 M5 Max GPU 上可显著降低峰值内存占用,并在长上下文场景下实现 2.2 倍吞吐量提升。