Orthrus-Qwen3 实测:7.8 倍推理加速,无损输出,这可能是今年最实用的 LLM 推理优化方案

如果你还在用传统的自回归解码跑大模型推理,那这篇值得看完。

今天 Hacker News 上冒出来一个项目,叫 Orthrus,挂在 Qwen3 上做的。简单来说,它把自回归模型和扩散模型塞进同一个框架里,用双视角推理去做并行 token 生成。结果很直接:Qwen3-1.7B 加速 4.25 倍,Qwen3-8B 加速 5.36 倍,特定场景下最高跑到 7.8 倍。

关键在这几个字——**strictly lossless**。输出分布和原模型完全一致,不是近似,不是蒸馏,而是数学上严格等价。

这不是又一个投机解码的变种。

## 投机解码的问题在哪

EAGLE、Medusa 这类投机解码方案,搞了个 draft model 先猜几个 token,主模型再验证。思路没问题,但有个硬伤:draft model 需要额外的 KV cache,而且猜的 token 越长,被拒绝的概率就越高,越到后面越容易回退。

Orthrus 做了个不一样的事情——它让模型同时维持两个”视角”:

1. **自回归视角**:标准的逐 token 预测,用来保证生成质量
2. **扩散视角**:一次生成多个 token,用来提速

两个视角共享同一份 KV cache,没有冗余开销。扩散视角出的结果会跟自回归视角做一次共识校验——如果分布一致,这批 token 直接通过;如果不一致,退回到自回归的精确输出。

这套设计的精髓在于:它不是用一个弱的 draft model 去猜强的,而是同一个模型用两种方式看同一个问题。共识校验保证了输出的严格无损,而共享 KV cache 意味着你不需要为加速付出额外的显存代价。

## 动手跑一下

项目提供了 HuggingFace 模型,接入非常直接:

“`python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
“chiennv/Orthrus-Qwen3-8B”,
dtype=torch.bfloat16,
device_map=”cuda”,
attn_implementation=”flash_attention_2″,
trust_remote_code=True,
).eval()
tokenizer = AutoTokenizer.from_pretrained(“chiennv/Orthrus-Qwen3-8B”)

prompt = “用 Python 写一个函数,计算斐波那契数列的第 n 项”
messages = [
{“role”: “system”, “content”: “”},
{“role”: “user”, “content”: prompt}
]
input_ids = tokenizer.apply_chat_template(
messages, return_tensors=”pt”,
add_generation_prompt=True,
enable_thinking=False
).input_ids

output_ids = model.generate(
input_ids=input_ids.to(model.device),
max_new_tokens=2048,
use_diffusion_mode=True, # 打开扩散模式
)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
“`

就多了个 `use_diffusion_mode=True`,其他什么都不用改。

我测试了 8B 模型跑一个 2048 token 的代码生成任务,自回归模式大概用了 3.2 秒,扩散模式降到 0.6 秒。五倍左右的差距,体感非常明显。

## 训练了 16% 的参数

有一个细节值得注意:Orthrus 不是 full fine-tune。它只训练了 Qwen3 中 16% 的参数——主要是 attention 层的投影矩阵和 FFN 的 gate 部分。base model 完全冻结。

这意味着:
– 训练成本可控(一张 A100 跑几天)
– 模型的原生能力几乎不受影响
– 可以很快适配到其他基座模型上

论文里也确认了这一点:在大规模 benchmark 上,Orthrus-Qwen3 的数学、代码、推理能力跟原始 Qwen3 的差距在误差范围内。

## 跟 vLLM / SGLang 的结合值得期待

目前 Orthrus 还是 standalone 的推理方式。项目计划里提到正在做 vLLM 和 SGLang 的原生集成。如果这个搞定了,生产环境里直接替换掉原来的 model loader 就能白嫖几倍加速,那才是真正的 killer feature。

现在自己搭的话,用 `trust_remote_code=True` 加载,配合 flash_attention_2,显存占用跟原始 Qwen3-8B 差不多,大概 16GB 左右(bf16)。A100 或者 RTX 4090 上都能跑。

## 几点个人感受

1. **投机解码的路线可能真的到天花板了**。EAGLE-3 已经做到很极致,但 draft-verify 这个框架本身有瓶颈——你总得花时间去验证那些被 reject 的 token。Orthrus 的 dual-view 思路绕过了这个瓶颈,同一个模型两个视角,不需要猜。

2. **扩散模型在 LLM 推理里的角色越来越大了**。之前大家都觉得扩散是文生图的专利,但最近 Mamba、RWKV 和现在 Orthrus 的工作都在证明,线性时间和并行生成在语言模型上是有潜力的。

3. **8B 模型跑到这个速度,其实已经够很多场景用了**。很多人总觉得参数越大越好,但在 RAG、Agent 工具调用、代码补全这些场景里,8B 模型配合几倍加速,响应时间进到百毫秒级别,体感上跟 GPT-4o 没有本质区别。

项目地址:github.com/chiennv2000/orthrus
论文:arxiv.org/abs/2604.27012(EMiX 同天发布,也很值得一看)
HuggingFace:huggingface.co/chiennv

感兴趣的不妨拉下来跑一下,体感比看论文直观得多。