Home
Login

vllm은 대규모 언어 모델을 빠르게 추론하기 위한 빠르고 사용하기 쉬운 라이브러리입니다.

Apache-2.0Python 49.6kvllm-project Last Updated: 2025-06-14

vLLM: 빠르고 사용하기 쉬운 LLM 추론 및 서비스 엔진

소개:

vLLM은 대규모 언어 모델(LLM) 추론 및 서비스를 위한 고처리량 및 효율적인 Python 라이브러리입니다. LLM 배포를 간소화하고 추론 속도를 크게 향상시키면서 비용을 절감하도록 설계되었습니다. vLLM은 뛰어난 성능을 위해 메모리 관리 및 스케줄링 최적화에 중점을 둡니다.

핵심 기능:

  • PagedAttention: vLLM의 핵심 혁신은 PagedAttention 알고리즘입니다. 기존의 어텐션 메커니즘은 각 토큰에 대해 이전의 모든 키와 값을 저장해야 하므로 특히 긴 시퀀스에서 막대한 메모리 점유율을 초래합니다. PagedAttention은 어텐션 키와 값을 운영 체제의 가상 메모리 페이징과 유사하게 페이지로 나눕니다. 이를 통해 vLLM은 어텐션 메모리를 동적으로 관리하고 공유하여 메모리 낭비를 크게 줄이고 더 긴 시퀀스와 더 큰 배치 크기를 지원할 수 있습니다.

  • 연속 배치 처리: vLLM은 연속 배치 처리를 지원합니다. 즉, 서로 다른 요청의 토큰을 동적으로 결합하여 하나의 배치로 처리할 수 있습니다. 이는 GPU 리소스를 최대한 활용하고 처리량을 향상시킵니다.

  • 효율적인 CUDA 커널: vLLM은 PagedAttention 및 기타 작업을 구현하기 위해 고도로 최적화된 CUDA 커널을 사용합니다. 이러한 커널은 GPU의 병렬 처리 능력을 최대한 활용하도록 세심하게 설계되었습니다.

  • 사용 용이성: vLLM은 기존 LLM 애플리케이션에 쉽게 통합할 수 있는 간단하고 사용하기 쉬운 Python API를 제공합니다. 또한 Hugging Face Transformers와 같은 여러 인기 있는 LLM 프레임워크를 지원합니다.

  • 다양한 모델 아키텍처 지원: vLLM은 다음과 같은 다양한 인기 LLM 아키텍처를 지원합니다.

    • Llama 2
    • Llama
    • Mistral
    • MPT
    • Falcon
    • GPT-2
    • GPT-J
    • GPTNeoX
    • 더 많은 모델이 추가될 예정입니다.
  • 분산 추론: vLLM은 분산 추론을 지원하여 여러 GPU에 걸쳐 LLM 추론을 확장할 수 있습니다.

  • 텐서 병렬 처리: 텐서 병렬 처리를 지원하여 분산 추론의 성능을 더욱 향상시킵니다.

  • 스트리밍 출력: vLLM은 스트리밍 출력을 지원하여 전체 시퀀스가 완료될 때까지 기다리지 않고 토큰이 생성될 때 즉시 수신할 수 있습니다.

  • OpenAI API 호환성: vLLM은 OpenAI API와 호환되는 서버를 제공하여 OpenAI에서 쉽게 마이그레이션하거나 통합할 수 있습니다.

주요 장점:

  • 더 높은 처리량: vLLM은 기존 LLM 추론 방법에 비해 처리량을 크게 향상시킬 수 있으며, 일반적으로 10배 이상 향상될 수 있습니다.
  • 더 낮은 지연 시간: vLLM은 지연 시간을 줄여 더 빠른 응답 시간을 제공할 수 있습니다.
  • 더 낮은 비용: GPU 활용률을 높임으로써 vLLM은 LLM 추론 비용을 줄일 수 있습니다.
  • 더 긴 시퀀스 지원: PagedAttention을 통해 vLLM은 메모리 부족 없이 더 긴 시퀀스를 처리할 수 있습니다.
  • 쉬운 배포: vLLM은 클라우드 서버, 로컬 머신 및 엣지 장치를 포함한 다양한 환경에 쉽게 배포할 수 있습니다.

설치:

pip를 사용하여 vLLM을 설치할 수 있습니다.

pip install vllm

빠른 시작:

다음은 vLLM을 사용하여 텍스트를 생성하는 간단한 예입니다.

from vllm import LLM, SamplingParams

# 모델 로드
llm = LLM(model="facebook/opt-125m")

# 샘플링 파라미터 정의
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=256)

# 텍스트 생성
prompts = ["Hello, my name is", "The capital of France is"]
outputs = llm.generate(prompts, sampling_params)

# 출력 인쇄
for output in outputs:
    print(output.prompt)
    print(output.outputs[0].text)

사용 사례:

vLLM은 다음을 포함한 다양한 LLM 애플리케이션에 적합합니다.

  • 챗봇: 복잡한 대화를 처리할 수 있는 고성능 챗봇을 구축합니다.
  • 텍스트 생성: 콘텐츠 생성, 코드 생성 및 요약과 같은 다양한 목적을 위해 고품질 텍스트를 생성합니다.
  • 기계 번역: 빠르고 정확한 기계 번역 서비스를 제공합니다.
  • 질의 응답: 복잡한 질문에 답변할 수 있는 질의 응답 시스템을 구축합니다.
  • 코드 완성: 빠르고 정확한 코드 완성 제안을 제공합니다.

기여:

vLLM은 오픈 소스 프로젝트이며 커뮤니티 기여를 환영합니다. 문제 제출, 기능 요청 또는 풀 요청 제출을 통해 참여할 수 있습니다.

요약:

vLLM은 뛰어난 성능, 사용 용이성 및 유연성을 제공하는 강력한 LLM 추론 및 서비스 엔진입니다. 챗봇을 구축하든, 텍스트를 생성하든, 다른 LLM 작업을 수행하든 vLLM은 효율성을 높이고 비용을 절감하는 데 도움이 될 수 있습니다. PagedAttention 메커니즘은 핵심 혁신으로, 긴 시퀀스를 처리하고 높은 처리량을 달성할 수 있도록 합니다. vLLM을 사용해 보고 LLM 워크플로를 어떻게 개선하는지 확인하는 것이 좋습니다.

모든 자세한 내용은 공식 웹사이트에 게시된 내용을 기준으로 합니다 (https://github.com/vllm-project/vllm)