엔진 인자
엔진 인자 (Engine Arguments)
엔진 인자는 vLLM 엔진의 동작을 제어하는 가장 핵심적인 설정 수단이에요. "엔진"이라고 하면 거창해 보이지만, 쉽게 말해 vLLM이 모델을 어떻게 로드하고 추론을 어떻게 수행할지를 결정하는 스위치들이라고 생각하면 돼요. 이 페이지에서는 엔진 인자가 무엇이고, 어떻게 전달되는지, 그리고 어떤 범주로 나뉘는지를 정리할게요.
엔진 인자는 어디에 쓰이나요?
엔진 인자는 사용하는 방식에 따라 두 가지 경로로 들어가요.
- 온라인 서빙(online serving) —
vllm serve명령어의 인자로 전달됩니다. - 오프라인 추론(offline inference) —
LLM클래스의 인자로 전달됩니다.
즉, 터미널에서 서버를 띄우든 Python 코드로 직접 추론을 하든, 같은 인자 체계가 그대로 적용되는 거예요.
잠깐, 이 인자들은 어디서 정의되나요?
엔진 인자 클래스인 EngineArgs와 AsyncEngineArgs는 사실 vllm.config에 정의된 여러 설정 클래스들을 조합한 것이에요. 개발자 문서가 필요하다면 이 설정 클래스들을 보는 게 좋은데, 그 이유는 타입·기본값·docstring의 **진짜 기준(source of truth)**이 바로 그 클래스들이기 때문이에요. 엔진 인자 클래스는 이 클래스들을 하나로 묶어 CLI/API로 노출하는 얇은 껍질 같은 역할을 하죠.
JSON 형태의 CLI 인자 전달
CLI에서 JSON 구조의 인자를 넘길 때 두 가지 방식은 동일한 결과를 만듭니다.
# 방식 1: 점(dot) 표기법으로 하나씩
--json-arg.key1 value1 --json-arg.key2.key3 value2
# 방식 2: JSON 문자열 통째로
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'
추가로, 리스트 요소는 + 기호로 개별 전달할 수 있어요.
# 방식 1: + 로 개별 요소 추가
--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
# 방식 2: JSON 배열로 통째로
--json-arg '{"key4": ["value3", "value4", "value5"]}'
이 두 예시 모두 최종적으로 key4가 ["value3", "value4", "value5"]인 동일한 설정이 됩니다. CLI에서 반복해서 값을 늘려야 할 때 유용하죠.
주요 엔진 인자 살펴보기
엔진 인자는 설정 클래스별로 묶여 있어요. 그중 일부를 살펴보면 이렇습니다.
기본 엔진 인자
| 인자 | 설명 | 기본값 |
|---|---|---|
--disable-log-stats |
통계 로깅을 끕니다. | False |
--aggregate-engine-logging |
데이터 병렬 처리 시 엔진별 통계 대신 집계(aggregate) 통계를 로그로 남깁니다. | False |
--fail-on-environ-validation / --no-fail-on-environ-validation |
설정 시 환경 검증이 실패하면 엔진이 오류를 일으킵니다. | False |
ModelConfig — 모델 설정
모델 자체에 대한 설정이에요.
| 인자 | 설명 | 기본값 |
|---|---|---|
--model |
사용할 Hugging Face 모델의 이름 또는 경로예요. served_model_name이 지정되지 않았을 때 메트릭 출력의 model_name 태그 내용으로도 쓰입니다. |
Qwen/Qwen3-0.6B |
--runner |
사용할 모델 러너 종류. 선택지는 auto, draft, generate, pooling. 같은 모델이 여러 유형에 쓰일 수 있어도 vLLM 인스턴스 하나는 러너 하나만 지원해요. |
auto |
--convert |
vllm.model_executor.models.adapters에 정의된 어댑터로 모델을 변환해요. 가장 흔한 용도는 텍스트 생성 모델을 pooling 태스크에 쓰도록 변환하는 것이에요. 선택지는 auto, classify, embed, none. |
auto |
--tokenizer |
사용할 Hugging Face 토크나이저의 이름 또는 경로. 미지정 시 모델 이름/경로를 사용해요. | — |
--tokenizer-mode |
토크나이저 모드. 선택지는 auto, deepseek_v32, hf, mistral, slow. auto는 Mistral 모델에서 가능하면 mistral_common 토크나이저를, 아니면 hf를 사용해요. hf는 가능하면 fast 토크나이저, slow는 항상 slow 토크나이저를 씁니다. 플러그인으로 커스텀 값도 지원돼요. |
auto |
--trust-remote-code / --no-trust-remote-code |
모델과 토크나이저 다운로드 시 원격 코드(예: HuggingFace)를 신뢰합니다. | False |
--dtype |
모델 가중치와 활성화 값의 데이터 타입. 선택지는 auto, bfloat16, float, float16, float32, half. auto는 ... |
auto |
이 외에도 병렬 처리(ParallelConfig), 스케줄러(SchedulerConfig), 캐시(CacheConfig) 등 다양한 설정 클래스가 있으며, 각각 tensor_parallel_size, max_num_seqs, gpu_memory_utilization 같은 중요한 인자를 제공해요. 전체 목록은 공식 문서의 엔진 인자 레퍼런스와 vllm.config 설정 클래스를 참고하세요.