Orthrus:基于双视图扩散的内存高效并行token生成
Orthrus 是一个双架构框架,它统一了大型语言模型 (LLM) 的精确生成保真度和扩散模型的快速并行token生成,官方实现了该框架及其模型checkpoint。
模型架构:
Orthrus 采用双架构,通过结合自回归和扩散视图实现并行token生成。它利用精确的跨模型共识机制,保证输出与原始基础模型的预测分布完全一致。
模型Zoo:
- 所有模型均基于 Qwen3 backbone,保证严格无损生成。
- 提供以下模型:
- Orthrus-Qwen3-1.7B:加速比 4.25×
- Orthrus-Qwen3-4B:加速比 5.20×
- Orthrus-Qwen3-8B:加速比 5.36×
- 模型可以在 HuggingFace 上找到:🤗 HuggingFace
安装:
uv pip install -e .
uv pip install ninja packaging
uv pip install flash-attn --no-build-isolation (或 pip install "flash-attn-4[cu13]" 如果您的设备支持)
建议使用 uv 进行快速依赖解析。
快速开始:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
model = AutoModelForCausalLM.from_pretrained(
"chiennv/Orthrus-Qwen3-8B",
dtype=torch.bfloat16, device_map="cuda",
attn_implementation="flash_attention_2", # options: sdpa | eager | flash_attention_4
trust_remote_code=True,
).eval()
tokenizer = AutoTokenizer.from_pretrained("chiennv/Orthrus-Qwen3-8B")
prompt = "Write a program to count the frequency of each word in a paragraph."
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,
streamer=TextStreamer(tokenizer, skip_prompt=True) # enable streaming generation
)
即将推出: 原生集成 vLLM 和 SGLang。
关键优势:
- 显著的推理加速: 打破了标准自回归解码的顺序瓶颈,在生成任务中实现高达 7.8 倍的加速。
- 严格无损生成: 采用精确的跨模型共识机制,保证输出与原始基础模型的预测分布完全一致。
- 零冗余内存开销: 自回归和扩散视图共享相同的 Key-Value (KV) 缓存,内存开销仅为 O(1)。
- 参数高效: 通过仅微调总参数的 16% 并保持基础 LLM 严格冻结,注入并行生成能力。
性能对比:
- Orthrus 优于 EAGLE-3 和 DFlash 等推测解码方法。
- 与扩散语言模型相比,Orthrus 解决了并行生成与顺序约束之间的矛盾,实现了并行生成保真度的新状态。
- 在 MATH-500 数据集上,Orthrus 在保证完全无损性能的情况下实现了约 6 倍的加速。
引用:
如果您在工作中发现此模型或架构有用,请引用以下论文:
@misc{vannguyen2026orthrusmemoryefficientparalleltoken,
title={Orthrus: Memory-Efficient Parallel Token Generation via Dual-View Diffusion},
author={