NInfer vs llama.cpp vs vLLM: RTX 5090에서 Qwen3.8-27B NVFP4의 품질 및 속도 비교
NInfer vs llama.cpp vs vLLM: quality + speed comparison for Qwen3.8-27B NVFP4 on RTX 5090
핵심 요약
RTX 5090 환경에서 Qwen3.8-27B 모델을 구동하기 위한 NInfer, llama.cpp, vLLM의 성능과 품질을 비교 분석했습니다.
- 성능 비교 — NInfer가 MTP3를 활용해 llama.cpp 대비 2~3배 빠른 디코딩 속도를 기록함.
- 품질 평가 — 모든 엔진에서 통계적으로 유의미한 품질 차이는 발견되지 않음.
- 기술적 한계 — NInfer는 json_mode를 지원하지 않으며, vLLM은 MTP 설정에 따라 성능이 갈림.
- 하드웨어 최적화 — RTX 5090 환경에서 NVFP4 양자화 모델을 활용한 효율적인 추론 서버 구축 방안 제시.
HVAC 업계 쪽 콘텐츠 인텔리전스 파이프라인(긴 문맥 검색이랑 구조화된 데이터 추출이 엄청 많음) 돌리려고 Qwen3.8-27B를 로컬 추론 서버로 굴리고 있어. 레딧에 다들 자기만의 커스텀 설정 올리는 거 보면서, 나도 RTX 5090 한 장에서 최적화하려고 테스트해 본 것들 공유 좀 하려고.
원래는 llama.cpp(Q5_K_M GGUF, q5_1 KV, 262K 컨텍스트, MTP) 썼는데, 이게 parallel=1로 제한돼서 동시 처리가 안 되더라고. 그래서 NVFP4 대체제로 vLLM이랑 NInfer 테스트해 봤고, 그냥 느낌적인 느낌 말고 제대로 품질 평가까지 돌려봤음.
하드웨어
- RTX 5090 32GB (eGPU, OCuLink Gen4 x4) (맞음, eGPU 독에 박혀 있음 😂 근데 이건 모델 로딩 속도에만 영향 주니까 상관없음)
- Ryzen 7 7840HS, 32 GB DDR5
- Ubuntu 26.04, nvidia driver 610.43.02 (open)
## 엔진 설정
| llama.cpp | vLLM | NInfer | |
|---|---|---|---|
| Quant | Q5_K_M GGUF | NVFP4 | NVFP4 |
| KV cache | q8_0 | FP8 | FP8 |
| Context | 196K | 262K | 240K |
| MTP | On (gate failed) | None | MTP3 (76% acceptance) |
| Concurrency | parallel=1 | Continuous batch | x2 lanes |
| VRAM | 31.6 GB | 29.6 GB | 30.5 GB |
평가 방식
실제 운영 중인 워크로드에서 가져온 6개 티어, 티어당 50개 항목으로 커스텀 하네스를 만들었음(그냥 흔한 벤치마크 아님):
-
관련성 분류 - 이 업계랑 관련 있는 내용인가? (이진 분류, 라벨링 된 딜 50개)
-
니들 검색(Needle retrieval) - 실제 업계 팟캐스트/영상 스크립트에 64K/128K/192K/240K 컨텍스트로 사실 관계 심어놓음
-
다중 스크립트 QA - 3~4개 스크립트를 이어 붙인 120K+ 토큰 분량에서 질문, 답 없는 질문도 섞음
-
사고 과정(Thinking)을 통한 추론 - 숫자/논리 문제, 사고 모드 켜고 greedy pass@1
-
구조화된 추출 - 커스텀 추출 프롬프트, json_mode (NInfer는 json_mode 지원 안 해서 뺌)


