Orthrus 소개
Orthrus는 자기회귀(Autoregressive) 대규모 언어 모델(LLM)의 정확한 생성 충실도와 디퓨전 모델(Diffusion Model)의 빠른 병렬 토큰 생성 능력을 한 모델 안에서 결합하기 위해 설계된 듀얼 뷰(Dual-View) 디퓨전 디코딩 프레임워크입니다. 기존 자기회귀 디코딩은 한 번의 forward pass 당 한 토큰만 생성하는 직렬적 병목을 가지고 있어 GPU 자원이 충분해도 처리량(throughput)을 끌어올리기 어려웠고, 반대로 디퓨전 언어 모델(dLLM)은 병렬 디코딩이 가능했지만 복잡한 추론(reasoning) 과제에서 조건부 드리프트(conditional drift)와 정확도 저하를 겪었습니다. Orthrus는 이 두 흐름을 화해시켜, strictly lossless 한 토큰 분포를 유지하면서도 최대 7.8배의 추론 가속을 달성합니다.
Orthrus 프로젝트는 Qwen3 백본 위에 두 가지 디코딩 뷰를 얹는 형태로 동작합니다. 자기회귀 뷰는 기존 LLM과 동일한 토큰별 확률 분포를 유지하고, 디퓨전 뷰는 마스킹된 다중 토큰을 한 번에 풀어내는 병렬 디코더 역할을 합니다. 두 뷰는 동일한 고품질 KV 캐시(Key-Value cache)를 공유하기 때문에, EAGLE-3나 DFlash 같은 추측 디코딩(speculative decoding) 방법이 별도의 드래프트 모델을 두는 것에 비해 메모리 오버헤드가 사실상 O(1) 수준으로 유지된다는 점이 특징입니다. 본 게시물에서는 Orthrus의 아키텍처와 학습 방식, 벤치마크 결과, 그리고 실제 추론 코드 사용법을 정리합니다.
Orthrus 프로젝트는 Chien Van Nguyen을 비롯하여 Adobe Research 소속의 Franck Dernoncourt와 Thien Huu Nguyen 등이 공저자로 참여한 arXiv 논문에 기반을 두고 있습니다. 또한, Hugging Face Hub 에서 1.7B, 4B, 8B 세 가지 크기의 사전 학습된 모델도 함께 제공합니다. 제공하는 모델들은 모두 베이스 Qwen3 모델을 동결한 상태에서 약 16%의 파라미터만 미세 조정(fine-tuning)하는 방식으로 학습되었습니다.
Orthrus의 듀얼뷰 디퓨전 아키텍처
Orthrus가 "두 머리를 가진 케르베로스의 형제" 라는 이름을 단 이유는 동일한 모델이 두 가지 디코딩 뷰를 자연스럽게 전환하기 때문입니다. 자기회귀 뷰는 토큰을 하나씩 생성하면서 정답 분포를 정의하고, 디퓨전 뷰는 여러 마스크 토큰을 병렬로 복원하면서 후보 묶음을 만들어 냅니다. 그리고 intra-model consensus 라는 검증 메커니즘이 두 뷰의 결과를 비교해, 자기회귀 분포와 정확히 일치하는 토큰들만 수용합니다. 이렇게 함으로써 디퓨전 뷰가 만들어 낸 가속은 활용하면서도 출력 토큰 분포는 베이스 LLM과 비트 단위로 동일하게 유지됩니다.
이 구조의 핵심 장점은 다음과 같이 정리할 수 있습니다.
- 상당한 추론 가속: 표준 자기회귀 디코딩의 직렬 병목을 깨고, 생성 작업에서 최대 7.8배 속도 향상을 달성합니다.
- 엄격한 무손실 생성: intra-model consensus 메커니즘으로 출력 분포가 베이스 모델과 정확히 일치하도록 보장합니다.
- 추가 메모리 오버헤드 거의 없음: 자기회귀 뷰와 디퓨전 뷰가 동일한 KV 캐시를 공유해, 캐시 측면 추가 비용이 O(1) 에 머무릅니다.
- 파라미터 효율적 학습: 베이스 LLM을 완전히 동결한 상태에서 전체 파라미터의 약 16%만 학습합니다.
Orthrus의 모델 카드와 벤치마크
공개된 모델은 모두 Qwen3 백본을 사용하고, 엄격한 무손실 생성(strictly lossless generation)을 보장합니다. HuggingFace에서 직접 받아 사용할 수 있습니다.
| 모델 | 베이스 모델 | HuggingFace | 평균 속도 향상 |
|---|---|---|---|
| Orthrus-Qwen3-1.7B | Qwen3-1.7B | chiennv/Orthrus-Qwen3-1.7B | 4.25× |
| Orthrus-Qwen3-4B | Qwen3-4.0B | chiennv/Orthrus-Qwen3-4B | 5.20× |
| Orthrus-Qwen3-8B | Qwen3-8.0B | chiennv/Orthrus-Qwen3-8B | 5.36× |
추측 디코딩(speculative decoding) 계열인 EAGLE-3, DFlash와 비교해, Orthrus는 두 뷰가 동일한 KV 캐시를 공유하므로 드래프트 모델 추가에 따른 메모리 비용이 없습니다. 그 결과 평균 수용 토큰 수(acceptance length)가 높아지고, 컨텍스트 길이가 길어질수록 처리량 저하가 둔화됩니다. DFlash가 긴 컨텍스트에서 급격히 떨어지는 것과 달리, Orthrus는 40K 컨텍스트에서도 처리량을 안정적으로 유지한다고 보고합니다.
수학 추론 벤치마크인 MATH-500에서는 Qwen3-8B 베이스 대비 약 6배의 속도 향상을 유지하면서도 정확도 손실이 발생하지 않습니다. 같은 자리에서 평가된 Fast-dLLM-v2 같은 디퓨전 변형은 속도는 빠르지만 정확도가 크게 하락하는데, Orthrus는 병렬 디코딩과 순차적 제약을 분리함으로써 이 트레이드오프를 우회합니다.
Orthrus의 설치와 사용 예시
설치는 uv를 사용한 가상환경 설정과 Flash-Attention 빌드가 필요합니다. CUDA 13 이상 GPU에서는 Flash-Attention 4 빌드를 사용할 수도 있습니다.
uv pip install -e .
uv pip install ninja packaging
uv pip install flash-attn --no-build-isolation
# 또는 CUDA 13 이상에서:
# uv pip install "flash-attn-4[cu13]"
추론은 Hugging Face Transformers와 동일한 인터페이스를 사용합니다. use_diffusion_mode=True 한 줄로 디퓨전 뷰의 병렬 디코딩이 활성화되며, 출력은 표준 TextStreamer로 스트리밍할 수 있습니다.
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",
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),
)
Apple Silicon 환경에서는 MLX 백엔드도 함께 제공됩니다. mlx==0.31.2, mlx-lm==0.31.3 조합에서 검증되었으며, model_mlx.load_model_and_tokenizer 와 mlx_generate 한 쌍으로 동일한 디퓨전 디코딩 흐름을 사용할 수 있습니다. 즉시 체험할 수 있는 Google Colab 노트북도 함께 공개되어 있고, vLLM, SGLang과의 네이티브 통합은 곧 추가될 예정으로 표시되어 있습니다.
Orthrus의 라이선스
Orthrus는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용·수정·재배포가 가능합니다. 모델 체크포인트도 동일한 조건으로 HuggingFace에 게시되어 있으므로, 사내 추론 서비스나 연구 프로젝트에 그대로 활용할 수 있습니다.
Orthrus 논문
Orthrus 프로젝트 GitHub 저장소
Orthrus 모델 다운로드
| Model | Base Model | HuggingFace | Avg. Speedup |
|---|---|---|---|
| Orthrus-Qwen3-1.7B | Qwen3-1.7B | 4.25× | |
| Orthrus-Qwen3-4B | Qwen3-4.0B | 5.20× | |
| Orthrus-Qwen3-8B | Qwen3-8.0B | 5.36× |
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()



