dynamo

LLM FrameworksCLIRust

★ 8,044주당 +58조회 4

무엇인가

Dynamo는 추론 엔진을 대체하지 않고 그 위에 놓이는 분산 서빙 오케스트레이션 계층이다. 단일 GPU 최적화가 끝난 지점에서 시작해 클러스터 단위 조정을 맡는다. 대상 워크로드는 LLM, reasoning, 멀티모달, 비디오 생성이다. 코어는 Rust로, 확장 지점은 Python으로 작성된다.

어떻게 동작하나

요청은 두 가지 경로로 들어온다. Dynamo 네이티브 경로는 client → Frontend → Router → workers 순서다. Kubernetes Gateway API 경로는 client → Gateway → EPP → Frontend 사이드카 → workers 순서다. 두 경로 모두 OpenAI 호환 API를 노출하고 /openapi.json에서 OpenAPI 3 스펙을 내보낸다. 컴포넌트 간 통신은 TCP를 쓰고, Kubernetes에서는 CRD와 EndpointSlice가 서비스 디스커버리를 담당한다. Router는 KV 캐시 위치를 인식해 같은 프리픽스의 prefill 재계산을 피한다. prefill과 decode는 분리 배치되어 각각 독립적으로 확장된다. KV 캐시는 여러 계층에 걸쳐 저장되며 S3·Azure Blob 같은 스토리지 계층까지 내려간다.

무엇과 다른가

SGLang, TensorRT-LLM, vLLM은 단일 GPU나 단일 노드 안에서 처리량을 최적화한다. Dynamo는 이 엔진들을 백엔드로 두고 노드 간 조정을 그 위에서 처리한다. 단일 모델을 단일 GPU에서 돌리는 구성에서는 엔진만으로 충분하다.

어떻게 쓰나

배포 경로는 컨테이너, PyPI, Kubernetes 세 가지다. 컨테이너 이미지는 tensorrtllm-runtime:1.4.2와 vllm-runtime:1.4.2가 있다. PyPI 경로는 uv로 설치한 뒤 프론트엔드와 워커를 각각 띄운다. 프로덕션 다중 노드는 Dynamo Platform을 설치하고 매니페스트 하나로 배포하며, recipes/에 모델별 레시피가 있다. 1.0의 DGDR(베타)은 모델·하드웨어·SLA를 YAML 하나에 적으면 AISimulate 성능 모델이 후보 구성을 추정하고 Planner가 토폴로지를 정한다. 벤치마크는 AIPerf로 수행한다.

전제와 한계

전제는 다중 GPU 또는 다중 노드 환경이다. TensorRT-LLM 백엔드는 pip에 --extra-index-url https://pypi.nvidia.com 지정을 요구한다. KV 인식 라우팅은 NATS 없이 동작하고, 외부 서비스는 대부분의 배포에서 선택 사항이다. DGDR은 베타 단계다. 요청 단위로 우선순위·예상 출력 길이·투기적 prefill 힌트와 세션 메타데이터를 전달할 수 있고, LangChain과 NeMo Agent Toolkit 연동이 있다.

유사 도구