Dynamo 소개
NVIDIA가 공개한 Dynamo는 멀티 노드 분산 환경에서 생성형 AI 및 추론 모델을 고성능으로 서빙하기 위한 프레임워크입니다. 기존 LLM 서빙 방식과 차별화된 GPU 활용 전략과 고속 데이터 전송, LLM-aware 요청 라우팅, KV 캐시 최적화 등의 기능을 제공합니다.
Dynamo는 Rust와 Python으로 개발된 오픈소스 추론 프레임워크로, LLM 모델을 고효율로 서빙할 수 있도록 설계되었습니다. 특히 TensorRT-LLM, vLLM, SGLang 등의 다양한 추론 엔진을 지원한다는 점에서 유연성과 확장성이 뛰어난 솔루션입니다. 다음과 같은 핵심 기능을 제공합니다:
-
분리된 Prefill & Decode 추론: GPU 사용률을 극대화하고 지연 시간을 줄입니다.
-
동적 GPU 스케줄링: 수요 변동에 맞춰 최적의 성능을 유지합니다.
-
LLM-aware 요청 라우팅: 불필요한 KV 캐시 재계산을 방지하여 속도를 향상합니다.
-
고속 데이터 전송(NIXL 활용): 추론 응답 시간을 최소화합니다.
-
KV 캐시 오프로딩: 여러 메모리 계층을 활용하여 시스템 처리량을 증가시킵니다.
이번에 공개한 Dynamo와 기존 LLM 서빙 프레임워크의 주요 특징들을 비교하면 다음과 같습니다:
비교 항목 | Dynamo | vLLM | TensorRT-LLM |
---|---|---|---|
추론 엔진 지원 | ![]() |
![]() |
![]() |
멀티 노드 지원 | ![]() |
![]() |
![]() |
KV 캐시 최적화 | ![]() |
![]() |
![]() |
GPU 스케줄링 | ![]() |
![]() |
![]() |
서빙 API | ![]() |
![]() |
![]() |
Dynamo는 단순한 vLLM이나 TensorRT-LLM 기반 서빙 솔루션과는 달리 멀티 노드 환경에서 확장성 있는 AI 추론을 지원하는 것이 가장 큰 특징입니다.
Dynamo의 주요 기능
멀티 백엔드 지원
Dynamo는 TensorRT-LLM, vLLM, SGLang 등 다양한 추론 엔진을 지원하여, 사용자가 원하는 환경에 맞게 조합하여 사용할 수 있습니다.
고성능 LLM 서빙
Rust 기반의 OpenAI 호환 HTTP API 서버를 제공하며, 요청 라우팅 및 로드 밸런싱을 지원합니다. 또한, 다중 LLM 엔진을 효율적으로 통합할 수 있습니다.
Docker 기반 손쉬운 배포
Docker Compose를 이용하여 쉽게 배포하고 관리할 수 있습니다.
설치 및 사용 방법
Dynamo는 Ubuntu 24.04 및 x86_64 CPU 환경에서 실행하는 것이 권장됩니다. 지원하는 CPU 및 GPU 환경 등은 지원 환경 매트릭스 문서에서 확인할 수 있습니다.
설치 방법
먼저 다음과 같은 명령어로 필요 의존성 및 패키지를 설치할 수 있습니다:
# Python 및 필요 의존성 설치
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -yq python3-dev python3-pip python3-venv libucx0
# 가상 환경 설정
python3 -m venv venv
source venv/bin/activate
# Dynamo 패키지 설치
pip install ai-dynamo[all]
참고: TensorRT-LLM을 사용하려면 별도 브랜치를 확인하세요.
LLM 실행 방법
Hugging Face의 모델을 로컬에서 실행하려면 dynamo run
명령어를 사용합니다:
dynamo run out=vllm deepseek-ai/DeepSeek-R1-Distill-Llama-8B
이후, 다음과 같이 예제를 실행합니다:
? User › Hello, how are you?
✔ User · Hello, how are you?
Okay, so I'm trying to figure out how to respond to the user's greeting...
LLM 서빙 방법
Dynamo는 간단한 설정으로 docker 기반의 로컬 및 분산 추론 서비스를 실행할 수 있습니다.
먼저, Dynamo 분산 런타임 서비스를 실행합니다:
docker compose -f deploy/docker-compose.yml up -d
다음으로 LLM 서빙을 실행합니다:
cd examples/llm
dynamo serve graphs.agg:Frontend -f configs/agg.yaml
실행한 다음, 로컬 서버로 API 요청을 보낼 수 있습니다:
curl localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Llama-8B",
"messages": [
{"role": "user", "content": "Hello, how are you?"}
],
"stream": false,
"max_tokens": 300
}' | jq
라이선스
Dynamo 프로젝트는 Apache License 2.0으로 공개 및 배포되고 있습니다.
NVIDIA Dynamo GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~