오프라인 추론하기

오프라인 추론하기

오프라인 추론은 vLLM의 LLM 클래스를 파이썬 코드 안에서 직접 쓰는 방식이에요. 별도 서버 없이 모델을 로드하고, 그 자리에서 추론을 실행해요.

출처: https://docs.vllm.ai/en/latest/serving/offline_inference

기본 사용법

가장 간단한 예시는 facebook/opt-125m 모델을 HuggingFace에서 내려받아 기본 설정으로 실행하는 거예요.

from vllm import LLM

# vLLM 엔진 초기화
llm = LLM(model="facebook/opt-125m")

LLM 인스턴스가 모델과 추론 엔진을 준비하면, 그 위에서 모델 타입에 맞는 API로 추론을 수행해요. 사용 가능한 API는 모델 타입에 따라 달라요.

  • 생성형(Generative) 모델: logprob을 출력하고, 그 logprob에서 샘플링해 최종 텍스트를 만들어요.
  • 풀링(Pooling) 모델: 히든 스테이트를 직접 출력해요.

어떤 작업에 어울리나요

배치로 많은 문장을 처리한다든지, 파이썬 파이프라인 안에 추론을 내장하고 싶다면 오프라인 방식이 자연스러워요. HTTP를 띄울 필요 없이 같은 프로세스에서 모델을 다루고 싶을 때 쓰면 돼요.

Ray Data LLM API

대규모 데이터셋을 GPU 효율적으로 처리해야 한다면 Ray Data LLM API를 쓸 수도 있어요. vLLM을 엔진으로 쓰면서 스트리밍 실행, 자동 샤딩·로드밸런싱·오토스케일링, 연속 배치, 텐서·파이프라인 병렬성 같은 기능이 추가로 들어와요.

import ray  # ray>=2.44.1 필요
from ray.data.llm import vLLMEngineProcessorConfig, build_llm_processor

config = vLLMEngineProcessorConfig(model_source="unsloth/Llama-3.2-1B-Instruct")
processor = build_llm_processor(config)
ds = ray.data.from_items(["An old silent pond..."])
ds = processor(ds)
ds.write_parquet("local:///tmp/data/")

메모리를 넘는 데이터셋도 스트리밍으로 처리하고, 여러 GPU에 자동으로 분산돼요.

더 알아보기

  • 서버로 띄우는 법은 «OpenAI 호환 서버로 서빙하기»를 보세요.
  • 생성 옵션은 «생성 파라미터 다루기»에서 다뤄요.