Niko1221/Strata · 上手攻略


§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 模型结构核对):

  1. 专家 offloading:模型有 24,576 个 MoE 专家,每写一个 token 只需 10 个。Strata 把"最常被点名的几千个"放显卡,其余放内存;CPU 与 GPU 并行处理(README §How does it work)。这一思路本身不是首创——Oflight 的文章把同思路称为 "MoE expert offloading"——但 Strata 的实现把"学习哪些专家热门"做成在线自适应,并把 29 GB 的"查找表"放 SSD。
  2. 投机解码(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 的字面叙述。
  3. OpenAI / Anthropic 兼容 API:在 127.0.0.1:8080 起服务,提供 /v1/chat/completions、/v1/messages(Anthropic 兼容),所有现有 coding agent / IDE 插件都可对接。
  4. 可选图像输入:装时可选 VISION,模型原生多模态;CPU encoder(VISION=cpu)和 GPU encoder 两种路径。
  5. 多卡 / 多平台:单卡、双卡层分割(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. 首次启动机器会卡死 1–3 分钟:要把 35–55 GB 加载到内存并锁定部分内存给显卡。⚠️ 不要关掉窗口;第二次启动明显快。仍然死超过 10 分钟,重启 + 关浏览器(浏览器吃很多 RAM)+ 换更小量化(Q2_0 / IQ2_XS)。
  2. Windows 8 GB / 16 GB 显卡不够:硬性 ≥12 GB VRAM;README 自家测试也是 RTX 5070 (12 GB)。低于此直接 START-HERE.bat 拒绝继续。
  3. RAM 比 VRAM 更关键:再大的显卡也省不了 RAM——Q3_S 需要 64 GB RAM 才能"勉强其它什么都不开";48 GB RAM 只能跑 Q2_0 / IQ2_XS。Coder 是唯一能在 32 GB RAM 跑的版本(29.6 GB shard 1)。
  4. 下载 ≈70 GB + SSD 必选:首装约 70 GB 模型文件 + 准备好的 pack + MTP 层;HDD 首次极慢。README 强调 SSD。
  5. 上下文扩展是实验性的:262K 之后用 YaRN + covering factor;320K 实测"在 300K 埋针找针"正确率 10/50/90%(v0.1.30 release notes);可靠性不要赌。
  6. Docker 看不到 cgroup 内存上限:setup.py 读宿主机 RAM,不读容器 limit;要在容器跑 < 宿主 RAM 的量化,必须显式 -e LOW_RAM=on,且 LOW_RAM 只支持单卡。
  7. AMD 路径少一半能力:HIP 编译不带图像编码器,多卡需手写 config;docs/AMD_HIP.md 注明 experimental。
  8. API "key" 不验签:设 --api-key 仅是占位校验,不鉴权,别误把 8080 暴露公网当认证用。
  9. 多卡"层分割"非数据并行:每卡只持有自己的层;prompt 走流水线而非并行;适合"显卡速度不对称"或"凑显存",不适合"两卡当两卡用"。
  10. 第三方模型许可 ≠ 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):

未独立验证 / 标注存疑 ⚠️:

  1. 性能数字(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。
  2. Coder 量化"91% SWE-bench Verified / 99% LiveCodeBench"是 ISTA-DASLab 自己在 HF 模型卡的声称,未独立复现。
  3. AMD RDNA4(gfx1201)支持来自 #178 PR,标 experimental;多卡 + 图像 + AMD 三者叠加未覆盖。
  4. "Experimental speed projection" 控制向量开启后对输出质量的影响——README 明示默认关、需先读 docs,未实测。
  5. 上下文超过 262K(384K/512K YaRN)只在 v0.1.30 用 320K 内的"找针"测试;真实长文档可靠度未保证。
  6. /v1/messages Anthropic 兼容端点的具体字段映射(tool_use、thinking 块等)README 未给细节;接 Claude Code 实际跑通需自测。
  7. MTP 头 4B 参数:NVIDIA NeMo AutoModel 文档说"not loaded",Strata README 又把投机解码描述为"猜 + 验"——两者口径未对齐,可能是不同 stage 的事实,但本文未独立核实 Strata 是否真在加载 MTP。
  8. 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,需要你本机验证"。