vLLM이란?

URL 복사

vLLM, 즉 가상 대규모 언어 모델(Virtual Large Language Model)은 vLLM 커뮤니티에 의해 유지 관리되는 오픈소스 코드 라이브러리입니다. vLLM은 대규모 언어 모델(Large Language Model, LLM)이 계산을 더욱 효율적이고 대규모로 수행할 수 있도록 돕습니다.

구체적으로 설명하면 vLLM은 GPU 메모리를 더욱 효율적으로 활용하여 생성형 AI 애플리케이션의 출력을 가속화하는 추론 서버입니다. 

Red Hat AI 살펴보기

vLLM의 가치를 이해하려면 추론 서버가 하는 일과 LLM의 기본 작동 메커니즘을 이해하는 것이 중요합니다. 그러면 vLLM이 기존 언어 모델의 성능을 개선하는 데 어떻게 기여하는지 더 잘 이해할 수 있습니다.

추론 서버란?

추론 서버는 AI 모델이 이전 학습 내용을 바탕으로 새로운 결론을 내리도록 돕는 소프트웨어입니다. 추론 서버는 머신 러닝 모델을 통해 입력 요청을 제공하며 출력을 반환합니다.

추론은 근거를 기반으로 결론을 내리는 것입니다. 친구네 집 거실에 불이 켜져 있지만 친구는 보이지 않는다면 입증할 만한 확실한 근거는 없어도 그들이 집에 있다고 추론할 수 있습니다.

일종의 소프트웨어인 언어 모델 역시 단어나 문구의 의미에 대한 확실한 근거가 없기 때문에 학습한 내용을 근거로 활용합니다. 언어 모델은 데이터를 기반으로 한 일련의 계산을 통해 결론을 생성합니다. 불이 꺼져 있으면 친구가 집에 없다고 추론하는 것과 같습니다.

AI 추론에 대해 자세히 알아보기

수학을 활용하여 결론을 내리는 LLM

LLM은 학습 과정에서 수학적 계산을 통해 학습합니다. LLM은 일련의 확률 계산(수학)을 수행하여 답변(추론)을 생성합니다.

LLM이 사람의 요청을 이해할 수 있으려면 각 단어가 서로 관련된 방식과 단어 간에 연관을 짓는 방법을 이해해야 합니다. 사람처럼 의미를 학습하고 단어를 사용하여 추론하는 대신, LLM은 수학을 사용하여 '추론'합니다.

LLM은 매일 수백만 명의 사용자에게 답변하면서 대량의 계산을 수행합니다. 애플리케이션이 실행 중인 동안 이 모든 계산을 한 번에 처리하는 것은 부담스러울 수 있습니다. 이는 (전통적으로) LLM 실행에 필요한 처리 능력이 상당량의 메모리를 빠르게 소모할 수 있기 때문입니다.

Red Hat의 AI 솔루션: 오픈소스로 AI 모델 개발, 배포, 운영하기

Efficient Memory Management for Large Language Model Serving with PagedAttention(PagedAttention을 사용한 대규모 언어 모델의 효율적인 메모리 관리)이라는 획기적인 연구에서 기존 LLM 메모리 관리 시스템이 다소 비효율적인 방식으로 계산을 체계화한다고 지적되었습니다. PagedAttention은 운영 체제 내의 페이징 시스템과 가상 메모리에서 영감을 얻은 vLLM을 통해 도입된 메모리 관리 기법입니다.

이 연구는 키 값(KV) 캐시(LLM의 단기 메모리)가 처리 중에 어떻게 감소하고 증가하는지 확인하고 더욱 안정적인 방식으로 공간과 컴퓨팅 성능을 관리하기 위한 솔루션으로 vLLM을 제시합니다.

기본적으로, vLLM은 사용자 응답을 연속적으로 '배치 처리'하여 KV 캐시가 바로가기(shortcut)를 만들도록 안내하는 일련의 지침입니다.

계속하기 전에 먼저 KV 캐시와 연속적 배치 처리가 무엇인지 정의해 보겠습니다.

KV 캐시란?

KV는 키 값(Key Value)을 의미합니다. 키 값은 LLM이 단어 또는 문구의 의미를 형성하는 방식을 나타냅니다. 메뉴판 품목의 키 값을 처리하는 경우를 예시로 들겠습니다. 프렌치프라이(키)의 가격은 3.99달러(값)로 책정되어 있습니다. 계산원이 프렌치프라이 주문을 등록하면 해당 '키'의 계산된 '값'은 3.99달러입니다. LLM은 각 키(또는 토큰)에 해당하는 값을 캐시에 저장한다는 점에서 이와 유사하게 키 값을 처리합니다.

캐시는 단기 메모리 스토리지를 의미합니다. 개인용 컴퓨터를 상상해 보세요. 속도가 느려지면 보통 '캐시 삭제'를 통해 여유 공간을 만들어서 처리 속도와 성능을 높이죠.

연속적 배치 처리란?

연속적 배치 처리는 전반적인 처리 효율을 개선하기 위해 여러 쿼리를 동시에 처리하는 데 사용되는 기법입니다.

가령 챗봇이 분당 수천 개의 쿼리를 수신하고 있는데 그 쿼리 중 대부분이 "인도의 수도가 어디야?", "아일랜드의 수도가 어디야?"처럼 비슷한 경우를 상상해 보겠습니다. 두 쿼리는 공통적으로 '수도가 어디야'라는 부분을 포함하고 있습니다. 이 부분은 LLM이 의미를 얻기 위해 수많은 계산을 해야 하는 토큰(단어) 문자열입니다.

vLLM을 사용하면 챗봇은 이 토큰 문자열('수도가 어디야')을 단기 메모리(KV 캐시)에 저장하고 번역 요청을 두 개 대신 하나만 보낼 수 있습니다.

즉, vLLM은 새로운 응답을 생성하는 대신 KV 캐시에 메모리를 저장하고 이전에 수행한 계산과 유사한 새 쿼리에 대한 바로가기를 만들 수 있습니다. 유사한 쿼리의 계산을 개별적으로 처리하는 대신 배치 처리하면 처리량을 개선하고 메모리 할당을 최적화할 수 있습니다. 

시장에서는 LLM 기반 애플리케이션에 필요한 하드웨어에 매우 높은 가격이 책정됩니다. 이런 상황에서 조직은 vLLM을 사용하여 '더 적은 비용으로 더 많은 효과'를 누릴 수 있습니다.

비용 효율적이고 신뢰할 수 있는 LLM 서비스를 구축하려면 상당한 수준의 컴퓨팅 성능, 에너지 리소스, 전문적인 운영 기술이 필요합니다. 이러한 문제로 인해 많은 조직이 사용자 정의되고 즉시 배포 가능하며 보안이 강화된 AI가 제공하는 이점을 누리지 못하고 있습니다.

vLLM과 그 기반이 되는 알고리즘인 PagedAttention은 AI 워크로드를 지원하는 데 필요한 하드웨어를 더욱 효율적으로 활용하여 이러한 문제를 해결하는 것을 목표로 합니다.

vLLM의 이점

vLLM을 LLM용 추론 서버로 사용하면 다음과 같은 이점이 있습니다.

더 빠른 응답 시간: 일부 계산을 기준으로, vLLM은 LLM에 사용되는 인기 오픈소스 라이브러리인 Hugging Face Transformers와 비교하여 최대 24배 더 높은 처리량(LLM이 처리할 수 있는 데이터의 양)을 제공합니다.

하드웨어 비용 감소: 리소스를 더욱 효율적으로 사용하기 때문에 LLM 처리에 필요한 GPU 성능이 줄어듭니다.

확장성: vLLM은 가상 메모리를 구성하여 GPU가 사용자의 동시 요청을 더 많이 처리할 수 있도록 합니다.

데이터 프라이버시: vLLM을 통해 LLM을 자체 호스팅하는 경우 ChatGPT와 같은 제3사 LLM 서비스 또는 애플리케이션을 사용하는 것에 비해 데이터 프라이버시와 데이터 사용을 더 적극적으로 제어할 수 있습니다.

오픈소스 혁신: 커뮤니티가 vLLM 유지 관리에 개입하여 코드를 지속적으로 개선할 수 있습니다. 사용자가 코드에 액세스하고 코드를 수정할 수 있는 방식이 투명하게 공개되기 때문에 개발자가 자유롭게 요구 사항을 충족하며 vLLM을 사용할 수 있습니다. 

PagedAttention은 vLLM에서 파생된 주요 알고리즘입니다. 그러나 vLLM은 PagedAttention 외에도 다양한 기능을 제공합니다. vLLM을 통해 다음과 같은 성능 최적화 기능을 추가로 사용할 수 있습니다.

  • PyTorch 컴파일/CUDA 그래프로 GPU 메모리 최적화
  • 양자화(Quantization)로 모델 실행에 필요한 메모리 공간 절약
  • 텐서 병렬 처리로 여러 GPU에 처리 작업 분할
  • 추측 디코딩(Speculative Decoding)으로 작은 모델을 사용하여 토큰을 예측하고 더 방대한 모델을 사용하여 해당 예측을 검증하는 방식으로 텍스트 생성 속도 향상
  • 플래시 어텐션(Flash Attention)으로 트랜스포머 모델의 효율성 개선

vLLM의 인기가 높아지는 데는 최적화 기능 외에 유연성도 한 몫을 하고 있습니다. vLLM은 소규모 언어 모델과 대규모 언어 모델 모두에서 원활하게 작동하고 널리 사용되는 모델 및 프레임워크와 통합됩니다. 마지막으로, vLLM은 오픈소스 특성을 기반으로 코드의 투명성, 사용자 정의, 더욱 빠른 버그 수정을 지원합니다. 

LoRA와 QLoRA는 사용자가 비용과 컴퓨팅 리소스를 최적화하는 데 도움이 되는 리소스 효율적인 미세 조정(fine-tuning) 기술입니다.

 Red Hat® AI 포트폴리오는 오픈소스 혁신을 통해 광범위한 엔터프라이즈 AI의 요구 사항을 충족하며, vLLM은 그중에서 핵심적인 툴입니다.

vLLM은 Red Hat® OpenShift® AI와 함께 제공되는 여러 추론 런타임 중 하나입니다.

OpenShift AI는 유연하고 확장 가능한 MLOps 플랫폼으로, AI 지원 애플리케이션을 빌드, 배포, 관리할 수 있는 툴을 제공합니다. OpenShift AI는 온프레미스 및 퍼블릭 클라우드에서 AI/ML 실험 및 모델의 전체 라이프사이클을 지원합니다.

Red Hat OpenShift AI에 대해 자세히 알아보기

Red Hat의 AI 솔루션: 오픈소스로 AI 모델 개발, 배포, 운영하기

Red Hat의 오픈소스 플랫폼으로 AI 모델과 애플리케이션을 손쉽게 개발, 배포, 모니터링하세요. 확장성과 보안성을 갖춘 AI 인프라로 더 효율적인 AI 운영을 지원합니다.

추가 자료

머신러닝 운영(MLOps) 가속화 방법과 AI/ML 혁신 촉진

Red Hat OpenShift는 인공지능, 머신러닝 및 AI 기반 지능형 애플리케이션을 빠르게 제공하며, 기업 혁신을 위한 플랫폼입니다. MLOps를 가속화하는 방법을 알아보세요.

인공지능(AI) 및 머신러닝(ML) 활용사례와 비즈니스 최적화 전략

AI(인공지능)와 ML(머신러닝)을 활용한 머신러닝 적용 사례와 인공지능 최신 기술 사례를 통해 비즈니스 프로세스와 워크로드를 최적화하는 방법과 해결 전략을 살펴보세요

LLMOps(대규모 언어 모델 운영)란? 개념과 운영 방법 알아보기

LLMOps는 대규모 언어 모델을 배포, 관리, 최적화하여 안정성과 성능을 최대화하는 운영 방식입니다. 모델 개발, 모니터링, 유지보수 과정에서 자동화와 최적화를 적용합니다

AI/ML 리소스

주요 제품

  • Red Hat OpenShift AI

    모델 및 AI 지원 애플리케이션을 신속하게 개발, 교육, 제공 및 모니터링할 수 있는 툴을 제공하는 인공 지능(AI) 플랫폼입니다.

관련 기사