Niko1221/Strata · 上手攻略
- 仓库:Niko1221/Strata
- 链接:https://github.com/Niko1221/Strata
- 分类:llm-infra · 本地推理引擎 · consumer GPU 部署
- 作者:spark
- 更新:2026-10-01
§0 元信息速览
- 类型:C++ 推理引擎(自研),嵌 llama.cpp / ggml(MIT),MIT 主许可
- 首发:2026 年(仓库最近提交 2026-09-30) · 当前版本:engine 0.1.30(README 引用 v0.1.10 演示视频,releases 末段是 0.1.30,README 末尾仍称 0.1.30 见
Updating段落)⚠️ README 与演示视频版本号不一致,但事实以 releases 页为准 - Stars:~2.7k(来自 repo_card 2026-10-01 采集) · 语言:C++ + Python 工具链
- 面向模型:Qwen3.8-Flash-Next(125B MoE,约 6B 激活 / token,262K 原生上下文,可 YaRN 扩到 1M,2026-08-26 由 Qwen 团队开源),以及 ISTA-DASLab 的 Coder 裁剪版、UkisAI 的 Swift 1.5
- 最低硬件:NVIDIA RTX 20/30/40/50 + ≥12 GB VRAM + 64 GB RAM(推荐) / 32 GB RAM(仅 Coder 量化) + ~80 GB SSD · Linux/Windows · 仅需自带 NVIDIA 驱动(580+,CUDA 13.0)
- 诚实标注 ⚠️:以下内容在本次抓取时未独立跑通——所有速度数字(93/74/2,170 tok/s 等)来自 README 自家基准;Coder "SWE-bench Verified 91% / LiveCodeBench 99%" 来自 ISTA-DASLab 模型卡声称;AMD RDNA4 实验性标记来自 setup
--backend hip;"Experimental speed projection" 默认关闭,未实测影响。所有命令、版本号来自 README 与 2026-09-30 releases 页,已 GitHub fetch 200 OK 核对。
§1 是什么 / 解决什么问题
Strata 是一个把 125B MoE 模型塞进消费级 PC 的本地推理引擎。它要解决的核心矛盾是:
一个 125B 总参数 / 180B 完整 checkpoint(≈354 GB BF16)的大模型,正常人跑不动;Strata 通过"专家 offloading + 投机解码 + 跨卡/跨设备分流",让一张 12 GB 的 RTX 5070 + 64 GB 内存就能跑出 60–95 tok/s 的写作速度(IQ3_S 量化的多轮对话场景,README 实测)。
关键设计(README 自述,结合 Qwen 模型结构核对):
- 专家 offloading:模型有 24,576 个 MoE 专家,每写一个 token 只需 10 个。Strata 把"最常被点名的几千个"放显卡,其余放内存;CPU 与 GPU 并行处理(README §How does it work)。这一思路本身不是首创——Oflight 的文章把同思路称为 "MoE expert offloading"——但 Strata 的实现把"学习哪些专家热门"做成在线自适应,并把 29 GB 的"查找表"放 SSD。
- 投机解码(MTP):模型自带 ~4B 参数的 Multi-Token Prediction 头做"猜",主模型"检查",一次 step 出多个 token;README 自称提速 1.6–1.8×。⚠️ MTP 头 4B 参数数字与 NVIDIA NeMo AutoModel 文档的描述("4B MTP head is not loaded")存在事实出入——Qwen 团队的"完整 checkpoint 180B"包含 MTP 头,Strata README 没明示是否加载;以下攻略仅采用 README 的字面叙述。
- OpenAI / Anthropic 兼容 API:在
127.0.0.1:8080起服务,提供/v1/chat/completions、/v1/messages(Anthropic 兼容),所有现有 coding agent / IDE 插件都可对接。 - 可选图像输入:装时可选 VISION,模型原生多模态;CPU encoder(
VISION=cpu)和 GPU encoder 两种路径。 - 多卡 / 多平台:单卡、双卡层分割(layer split)、AMD RDNA3/RDNA4(ROCm HIP 实验性,gfx1201 即 RX 9070/9070 XT、Radeon AI PRO R9700)。
它不是 llama.cpp 的简单封装——底层确实用了 llama.cpp/ggml(third_party/ggml),但 README §Credits 明确说思想来自 Splash、ninfer、HyperQwen,是自研调度层 + 投机解码 + 显存/内存/SSD 三级分流的组合,README §How it works 给的厨房比喻(counter/pantry)就是这套三级存储。⚠️ 该项目没有论文 README 链接以外的独立验证——所有性能数字均来自作者自测基线。
§2 快速安装
Windows(最省事)
:: 1. 下载并解压(或 git clone)
:: https://github.com/Niko1221/Strata/archive/refs/heads/main.zip
:: 2. 仅需保证已装 NVIDIA 驱动(580+)
:: 3. 双击 START-HERE.bat,回车接受推荐项:
:: 模型:Qwen3.8-Flash-Next
:: 量化:IQ2_XS(推荐,~39 GB) / 或 Q2_0 最快 / IQ3_S 质量最高
:: 上下文:默认(按显卡建议);384K、512K 为实验性
:: 图像:yes(如果要用图片输入)
:: 4. 首次会下载 ~70 GB 模型,可中断续传;浏览器自动打开 http://127.0.0.1:8080
:: 5. 下次启动只要再双击 START-HERE.bat,不会重新下载
Linux
git clone https://github.com/Niko1221/Strata.git
cd Strata
./setup.sh # 同样的菜单问答
Docker(Linux)
# 宿主机:NVIDIA Container Toolkit + 驱动 580+(CUDA 13.0)
docker build -t strata .
docker run --rm --gpus all -p 8080:8080 \
--ulimit memlock=-1 -v strata-data:/data strata
# 可选:-e MODEL=IQ2_XS -e FAMILY=qwen -e CONTEXT=32768 -e VISION=no
# 多卡:-e GPUS=0,2 -e LAYER_SPLIT=18
# LOW_RAM:-e LOW_RAM=on(容器看不到 cgroup 内存上限,需手动)
⚠️ Docker 默认构建 CUDA_ARCHITECTURES 覆盖 sm_86 (RTX 30) / sm_89 (RTX 40) / sm_120 (RTX 50) / sm_80 (A 系列);其它架构需要显式 --build-arg CUDA_ARCHITECTURES=<xx> 重建;Pascal 卡(sm_60)需自己编译,release 预编译包里不含。--build-arg BUILD_VISION=0 跳过图像编码器以减体积。
AMD Radeon(实验性,Linux)
./setup.sh --backend hip # 须无 NVIDIA 可用时 setup 才会自己选
# 显式指定卡:--gpu 0
# 多卡:手工写 layer split 配置(docs/AMD_HIP.md)
⚠️ AMD 仅单卡 + 无图像输入为官方支持路径;多卡需手写 config。
§3 核心用法
浏览器 / 终端聊天
浏览器:http://127.0.0.1:8080 → Chat / Monitor / About 三页
终端:.venv\Scripts\python chat.py (Linux: .venv/bin/python chat.py)
/think low 调整推理强度(off/low/medium/high)
/image <path> 图片输入
对接 coding agent(Claude Code / Codex / Cursor 等)
把任意"OpenAI-compatible" provider 指向:
base_url = http://127.0.0.1:8080/v1
api_key = <任意非空字符串>
model = <任意非空字符串>(Strata 不按名字路由)
Anthropic 兼容 API:http://127.0.0.1:8080/v1/messages(⚠️ 我没单独 fetch /v1/messages 的实现细节,本节按 README 叙述)。
局域网/手机访问
START-HERE.bat --setup --host 0.0.0.0 --api-key <secret>
⚠️ 暴露 8080 到公网前必须先设 --api-key;否则任何人都能调你的本地模型(README 警告)。
多卡调优
:: 双卡
START-HERE.bat --gpus 0,2 :: 持久记忆
START-HERE.bat --gpus all
START-HERE.bat --gpu 0 :: 临时仅 0 号卡
每卡需 RTX 20+ 且 ≥8 GB;跨卡"层分割"自动把层均分(docs/MULTI_GPU.md),prompt 在卡间流水线:RTX 5080 + RTX 3090 实测 prompt 读取 +18–20%(README)。
服务端省显存模式(v0.1.30 新增)
--idle-unload 600 :: 600 秒无请求自动卸载模型
POST /unload, POST /load :: 手动触发
--min-free-vram-mib N :: VRAM 不够 N MiB 时返回 503
--before-load "cmd" :: 加载前先跑一条命令(如卸载其它服务)
适合本地多模型切换场景:先把 Ollama / vLLM 的模型退掉,再让 Strata 起来。
性能自校准
START-HERE.bat --calibrate :: 5–10 分钟扫几组引擎设置;README 报告 Coder +7%
§4 典型适用场景
| 场景 | 适合度 | 说明 |
|---|---|---|
| 12–24 GB 显卡 + 64 GB RAM 的开发者本地 IDE 助手 | ⭐⭐⭐⭐⭐ | Claude Code / Cursor 直插 /v1 |
| 离线 / 内网 / 数据敏感(不外送 prompt) | ⭐⭐⭐⭐⭐ | 完全本地,OpenAI 兼容 API,API key 仅校验身份 |
| 长文档代码库 RAG(128K–262K 上下文) | ⭐⭐⭐⭐ | Q2_0 实测 32K prompt 15 秒,128K 仍 74 tok/s 写作 |
| 多轮对话 + 多会话并行 | ⭐⭐⭐⭐ | --conversation-cache-mib 8192 --conversation-cache-slots 4 0.1.30 新增,最多 4 个会话常驻 |
| 训练 / 微调 | ❌ | 纯推理引擎 |
| 单请求 < 1 秒延迟的实时交互 | ❌ | README 明示"一次一个请求",32K 首读 ~1 分钟 |
| 没有 NVIDIA 卡的 Windows 用户 | ❌ | AMD 仅 Linux 实验支持,Windows 路径无 AMD |
| < 32 GB RAM 的老机器 | ⚠️ | 仅 Coder 量化(IQ1_M, 29.6 GB shard 1)跑得动;其它量化 47–55 GB 不够 |
§5 坑与注意(≥6 条)
- 首次启动机器会卡死 1–3 分钟:要把 35–55 GB 加载到内存并锁定部分内存给显卡。⚠️ 不要关掉窗口;第二次启动明显快。仍然死超过 10 分钟,重启 + 关浏览器(浏览器吃很多 RAM)+ 换更小量化(Q2_0 / IQ2_XS)。
- Windows 8 GB / 16 GB 显卡不够:硬性 ≥12 GB VRAM;README 自家测试也是 RTX 5070 (12 GB)。低于此直接
START-HERE.bat拒绝继续。 - RAM 比 VRAM 更关键:再大的显卡也省不了 RAM——Q3_S 需要 64 GB RAM 才能"勉强其它什么都不开";48 GB RAM 只能跑 Q2_0 / IQ2_XS。Coder 是唯一能在 32 GB RAM 跑的版本(29.6 GB shard 1)。
- 下载 ≈70 GB + SSD 必选:首装约 70 GB 模型文件 + 准备好的 pack + MTP 层;HDD 首次极慢。README 强调 SSD。
- 上下文扩展是实验性的:262K 之后用 YaRN + covering factor;320K 实测"在 300K 埋针找针"正确率 10/50/90%(v0.1.30 release notes);可靠性不要赌。
- Docker 看不到 cgroup 内存上限:
setup.py读宿主机 RAM,不读容器 limit;要在容器跑 < 宿主 RAM 的量化,必须显式-e LOW_RAM=on,且LOW_RAM只支持单卡。 - AMD 路径少一半能力:HIP 编译不带图像编码器,多卡需手写 config;
docs/AMD_HIP.md注明 experimental。 - API "key" 不验签:设
--api-key仅是占位校验,不鉴权,别误把 8080 暴露公网当认证用。 - 多卡"层分割"非数据并行:每卡只持有自己的层;prompt 走流水线而非并行;适合"显卡速度不对称"或"凑显存",不适合"两卡当两卡用"。
- 第三方模型许可 ≠ Strata MIT:Coder / Swift 1.5 / Flash-Next Uncensored 各自有许可(Qwen Community License 1.0 / 各自 HF 卡许可),下游分发时需各自审查;Strata 本体是 MIT。
§6 与同类对比
| 引擎 | 定位 | 硬件门槛 | Strata 相对差异 |
|---|---|---|---|
| llama.cpp | 通用 GGUF 推理 | 任意(CPU/Apple Silicon/NVIDIA/AMD) | Strata 在 llama.cpp 之上加了 MoE 三级分流 + MTP 投机解码;通用性不如 llama.cpp,但对 Qwen3.8-Flash-Next 的 125B MoE 调得更激进 |
| Ollama | 通用本地服务 | 消费级 GPU/CPU | Ollama 1 行起服务;Strata 同样 1 行(START-HERE.bat),但 Strata 专门做了 MoE offload + 投机解码 + 多卡层分割 |
| vLLM | 生产级 serving | 数据中心 GPU(H100/A100) | vLLM 不适合 12 GB 显卡;Strata 反向 |
| LM Studio | 桌面 GUI 推理 | 消费级 GPU | LM Studio 也有 MoE offload,但截至 2026-10 公开资料未见 Qwen3.8-Flash-Next 的 125B 端到端 benchmark,且 LM Studio 不主打 MTP 投机解码 |
| SGLang / TensorRT-LLM | 推理优化框架 | 数据中心 GPU | 同上,硬件定位完全不同 |
| exllamav2 / tabbyAPI | 量化 + 投机解码 | 中高端 NVIDIA | 通用性更强,但都不专门为 Qwen3.8-Flash-Next 的 MoE + 51B n-gram 表 + MTP 头组合做端到端调优 |
⚠️ 同类对比的 "Strata 相对差异" 一栏来自 README 与官网描述整理,未做并行 benchmark,实际 token/s 取决于显卡型号、量化等级、上下文长度,请以你本机 --calibrate 为准。
§7 一句话推荐结论
如果你的硬件是 12 GB+ NVIDIA 显卡 + 64 GB RAM + ~80 GB SSD 的"游戏/开发 PC",并且想本地跑一个 125B MoE 多模态模型当 OpenAI/Anthropic 兼容 API 的开发后端——Strata 是 2026 年 10 月最省心的一键方案;任何其它组合(多数据中心卡 / 服务器 / Apple Silicon / 仅 CPU)都不在它的甜区,请改用 llama.cpp / vLLM / Ollama。
§8 来源与不确定项
已使用来源(fetch-verify-date 2026-09-30 / 2026-10-01):
- GitHub 仓库主页:https://github.com/Niko1221/Strata(200 OK)
- README raw:https://raw.githubusercontent.com/Niko1221/Strata/main/README.md(200 OK)
- Releases 页:https://github.com/Niko1221/Strata/releases(200 OK,最近版本 0.1.30)
- repo_card:
/shared/research-kb/organized/repo_cards/4087-niko1221-strata.md - 同类上下文:Oflight "Qwen3.8-Flash-Next Requirements"(2026-10 web_search 取回)、Project Monet 文章(2026-08-27)、NVIDIA NeMo AutoModel 文档
未独立验证 / 标注存疑 ⚠️:
- 性能数字(93/79/62/53/55 tok/s;2,170/2,090/1,750/1,620/2,180 prompt tok/s)全部为 README 作者自测(RTX 5070 12 GB + Ryzen 5 7600 + 64 GB RAM),未跑第三方 benchmark。
- Coder 量化"91% SWE-bench Verified / 99% LiveCodeBench"是 ISTA-DASLab 自己在 HF 模型卡的声称,未独立复现。
- AMD RDNA4(gfx1201)支持来自 #178 PR,标 experimental;多卡 + 图像 + AMD 三者叠加未覆盖。
- "Experimental speed projection" 控制向量开启后对输出质量的影响——README 明示默认关、需先读 docs,未实测。
- 上下文超过 262K(384K/512K YaRN)只在 v0.1.30 用 320K 内的"找针"测试;真实长文档可靠度未保证。
/v1/messagesAnthropic 兼容端点的具体字段映射(tool_use、thinking 块等)README 未给细节;接 Claude Code 实际跑通需自测。- MTP 头 4B 参数:NVIDIA NeMo AutoModel 文档说"not loaded",Strata README 又把投机解码描述为"猜 + 验"——两者口径未对齐,可能是不同 stage 的事实,但本文未独立核实 Strata 是否真在加载 MTP。
- Docker 中
setup.py不读 cgroup 内存这一说法只在 README 隐含("setup.py measures the host's RAM, not the container's limit"),已显式记入 §5 第 6 条。
总评:仓库活跃、最近提交 2026-09-30、文档密度高、所有命令在 README 与 releases 互相佐证;性能与"专家热门自适应"是作者自家叙事,未独立 benchmark 仍为最大不确定项——属"按 README 操作大概率能跑起来,但跑起来后能拿多少 tok/s、看 Coder 是否真值 91% SWE-bench,需要你本机验证"。