오프라인 추론
오프라인 추론 (Offline Inference)
vLLM을 처음 배우는 분이라면 '모델을 서버 없이 그냥 파이썬에서 실행해볼 수는 없을까' 궁금할 거예요. 바로 그걸 해주는 게 LLM 클래스예요. LLM 클래스는 별도의 모델 추론 서버 없이 모델과 상호작용하는, 즉 오프라인 추론을 위한 주된 파이썬 인터페이스예요.
사용법
이 예제의 첫 번째 스크립트는 vLLM의 가장 기본적인 사용법을 보여줘요. 파이썬과 vLLM이 처음이라면 여기서 시작하는 게 좋아요.
python examples/basic/offline_inference/basic.py
나머지 스크립트들은 argument parser를 포함하는데, LLM과 호환되는 어떤 인자든 전달할 수 있어요. --help로 모든 사용 가능한 인자 목록을 확인해보세요.
python examples/basic/offline_inference/classify.py
python examples/basic/offline_inference/embed.py
python examples/basic/offline_inference/score.py
chat과 generate 스크립트는 sampling parameters(max_tokens, temperature, top_p, top_k)도 받아요.
python examples/basic/offline_inference/chat.py
python examples/basic/offline_inference/generate.py
기능
인자 전달을 지원하는 스크립트에서는 다음 기능들을 실험해볼 수 있어요.
기본 생성 설정 (Default generation config)
--generation-config 인자는 LLM.get_default_sampling_params()를 호출할 때 생성 설정을 어디서 로드할지를 지정해요. auto로 설정하면 모델 경로에서 생성 설정을 로드하고, 폴더 경로로 설정하면 지정한 폴더 경로에서 로드해요. 제공하지 않으면 vLLM 기본값이 사용돼요.
생성 설정에 max_new_tokens가 지정되면, 모든 요청의 출력 토큰 수에 대한 서버 차원의 상한이 돼요.
다음 인자로 직접 시도해보세요.
--generation-config auto
양자화 (Quantization)
GGUF
vLLM은 GGUF로 양자화된 모델을 지원해요.
HuggingFace에서 직접 로드하려면 repo_id:quant_type 형식으로 시도해보세요.
--model unsloth/Qwen3-0.6B-GGUF:Q4_K_M --tokenizer Qwen/Qwen3-0.6B
CPU 오프로드 (CPU offload)
--cpu-offload-gb 인자는 GPU 메모리 크기를 가상으로 늘리는 방법으로 볼 수 있어요. 예를 들어 24GB GPU 하나를 쓰면서 이 값을 10으로 설정하면, 가상으로는 34GB GPU라고 생각하면 돼요. 그러면 BF16 가중치(최소 26GB GPU 메모리 필요)의 13B 모델을 로드할 수 있어요. 모델의 일부가 각 모델 forward pass 때마다 CPU 메모리에서 GPU 메모리로 그때그때 로드되므로, 빠른 CPU-GPU 상호연결(interconnect)이 필요하다는 점을 기억하세요.
다음 인자들로 시도해보세요.
--model meta-llama/Llama-2-13b-chat-hf --cpu-offload-gb 10