분산 추론(distributed inference)이란?

URL 복사

분산 추론은 추론 작업을 상호 연결된 일련의 기기에 분배하여 AI 모델이 더 효율적으로 워크로드를 처리할 수 있도록 하는 것을 말합니다. “백지장도 맞들면 낫다”라는 속담을 소프트웨어 분야에 적용한 것과 같습니다. 

분산 추론은 물리 서버 및 클라우드 서버를 포함해 여러 하드웨어에 요청을 분할하는 시스템을 지원합니다. 그러면 각 추론 서버가 할당된 몫을 병렬로 처리하여 결과물을 생성합니다. 이를 통해 탄력적이고 관찰 가능한 시스템을 구축하여 일관되고 확장 가능한 AI 기반의 서비스를 제공할 수 있습니다.

Red Hat AI 살펴보기

디너 파티에 비유

10명이 모이는 디너 파티를 연다고 상상해 보세요. 모든 참석자에게 애피타이저, 샐러드, 메인 코스, 디저트까지 4개 코스를 대접하려고 합니다. 하지만 음식을 준비할 수 있는 시간은 2시간뿐입니다. 혼자서 이 일을 다 해내는 것은 불가능합니다. 만일 그렇게 한다면 최종 결과물(음식의 질)이 떨어지거나 속도가 느려질 것입니다. 

이 문제를 해결하기 위해 친구에게 도움을 청해서 각자의 솜씨에 따라 코스를 맡깁니다. 예를 들어 요리를 자주 하지 않는 친구는 샐러드를 맡고 요리 학교를 졸업한 친구는 복잡한 메인 코스를 맡는 식입니다. 각 사람의 스킬을 활용하고 개별 작업을 동시에 진행하여 제 시간에 맛있는 요리를 완성할 수 있습니다.

이 디너 파티의 비유에서 친구들의 협업은 분산 추론이고, 각 코스는 요청이며, 각 친구는 서로 다른 유형의 추론 서버를 의미합니다. 

분산 추론의 속도와 스케일, 비용 절감 효과

AI 모델이 정교해짐에 따라 그 스케일도 커지고 있습니다. 예를 들어 대규모 언어 모델(Large Language Model, LLM)은 수천억 개의 매개변수를 포함할 수 있습니다. 매개변수는 LLM이 언어를 이해하는 데 필수적이며, 매개변수가 많은 모델일수록 더 복잡한 태스크를 더욱 정확하게 수행할 수 있습니다. 

몇몇 AI 모델(예: 6,710억 개의 매개변수를 사용하는 DeepSeek)은 너무나 커서 하나의 그래픽 처리 장치(Graphics Processing Unit, GPU)만으로는 감당하기 어렵습니다. 이러한 모델을 가동하려면 분산 추론과 같은 개입이 필요합니다. 

모델의 매개 변수가 증가하면 하드웨어 리소스의 필요성도 커집니다.

이러한 거대 모델을 저장하고 추론을 위한 계산을 수행하려면 대량의 메모리와 높은 처리 능력이 필요합니다. 이 문제를 해결하기 위해 선택할 수 있는 방법은 다음과 같습니다.

  • 서버에 GPU를 추가하여 기존 컴퓨터의 처리 능력을 키우는 방법.  GPU가 늘어나면 처리 능력도 커지는 건 맞지만 GPU를 추가하려면 많은 돈이 듭니다. 또한 여기에는 단일 장애 지점이 만들어질 우려가 있습니다. 즉, 하나의 인스턴스(추론 애플리케이션의 사본)에 장애가 발생하는 경우 전체 시스템에 영향을 줄 수 있습니다.
  • 모델 양자화를 통해 모델을 경량화하는 방법. 이는 모델의 매개변수를 단순화하는 최적화 기법입니다. 즉, 모델의 수치 정밀도를 낮춰서 전체 모델 크기를 줄입니다. 모델 양자화는 분산 추론보다 구현이 덜 복잡하기 때문에 대규모 모델의 처리를 최적화하려는 경우에 첫 번째로 권장되는 전략입니다.
  • 분산 추론을 통해 더욱 협업적인 워크로드 분배를 촉진하여 기존 하드웨어의 효율성을 높이는 방법. 이 접근 방식은 엔터프라이즈 차원의 요구 사항을 충족하는 데 필요한 속도와 안정성, 스케일을 제공합니다. 모델 양자화를 기본 전략으로 하여 분산 추론을 추가적으로 활용할 수 있습니다. 

추론 서버는 AI 모델이 이전 학습 내용을 바탕으로 새로운 결론을 내리도록 돕는 기본 소프트웨어입니다. 추론 서버는 검색 쿼리 또는 프롬프트와 같은 입력 요청을 머신 러닝 모델에 전달하고 그 결과를 반환합니다.

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

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

AI 기술 구현의 4가지 핵심 고려 사항

분산 추론은 AI 워크로드 처리를 위한 두뇌 역할을 하는 하나의 지능형 코디네이터를 AI 모델에 제공하는 방식으로 작동합니다. 위에서 본 디너 파티의 비유처럼, 새로운 요청이 들어오면 분산 추론은 이를 분석하고 하드웨어 시스템에서 해당 작업을 처리하기에 가장 적합한 부분으로 라우팅합니다. 

거대한 모델 크기, 너무 많은 사용자, 대기 시간 문제는 모두 성능을 떨어뜨릴 수 있는 요인입니다. 분산 추론은 병목을 유발하는 문제에 따라 다음과 같이 다양한 전략을 사용합니다.

  • 모델 분할. 모델이 너무 커서 하나의 GPU로 처리하기 어려운 경우, 분산 추론은 모델 병렬 처리(model parallelism)를 통해 모델을 여러 GPU에 나누어서 분산 처리합니다.
  • 데이터 분할. 여러 사용자의 요청을 동시에 처리하기 위해 데이터 병렬 처리(data parallelism)와 지능형 부하 분산을 통해 입력 데이터를 여러 서버에 나누어서 분산 처리합니다. 이를 통해 동시에 여러 개의 요청을 효율적으로 관리할 수 있습니다.
  • 추론 프로세스 분할. 분산 추론은 전체 워크플로우를 최적화하기 위해 프로세스 분리(process disaggregation)를 활용합니다. 이는 추론 응답을 생성하는 두 가지 계산 단계(프리필 및 디코드)를 분리하여 각각 별도의 환경에서 실행하는 것을 의미합니다.

지능형 추론 스케줄링

분산 추론에는 태스크를 완료하기 위해 정보를 조정하고 전송하는 방법을 이해하는 컨트롤 플레인 또는 스케줄러가 필요합니다. 지능형 스케줄링은 이러한 조정을 수행하기 위해 분산 추론 시스템 내에서 지속적으로 실행되는 프로세스로, 

일종의 프로젝트 관리자와도 같습니다. 지능형 스케줄링은 단순히 요청을 다음 서버로 전송하는 것이 아니라 다음 사항을 고려합니다.

  • 요청에 대해 관련 캐시된 정보를 이미 갖고 있는 서버
  • 요청을 처리할 능력을 갖춘 서버
  • 요청하는 태스크를 완료하기에 가장 적합한 서버

지능형 스케줄링은 소프트웨어 알고리즘을 통해 구현되며, 추론 중에 작동하여 데이터 흐름을 최적화합니다.

프리필 및 디코드 단계 분리

쿼리에 대한 응답을 생성하려면 프리필과 디코드라는 두 가지 단계가 필요합니다. 분산 시스템은 사용자 쿼리를 두 단계로 분리하여 가장 적합한 하드웨어에 각 단계를 할당할 수 있어 효율성 개선을 돕습니다. 

  • 프리필(또는 KV 캐시 프리필)은 모델이 사용자의 프롬프트를 처리하는 초기 단계이자 계산량이 많은 단계입니다. 모델이 사용자의 쿼리를 '읽고' 그 내용을 '이해'하는 단계로 생각할 수 있습니다. 

  • 디코드는 프리필의 후속 단계로, 모델이 토큰별로 응답을 생성하기 때문에 대량의 메모리가 필요합니다. 이 단계에서 모델은 KV 캐시에 접근하여 쿼리와 관련이 있다고 판단되는 저장된 정보를 수집합니다. 

프리필 단계와 디코드 단계를 분리하면 시스템이 리소스를 더욱 효율적으로 스케줄링할 수 있습니다. 이 모든 부분이 전체적으로 원활하게 작동하도록 하는 데 필요한 것이 KV 캐시입니다.

KV 캐시란?

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

캐시는 단기 메모리 스토리지를 의미합니다. PC를 생각하면 이해하기 쉽습니다. PC 실행 속도가 느리면 캐시를 지우고 여유 공간을 확보해서 처리 성능과 속도를 높일 수 있습니다.

모델은 KV 캐시를 사용해서 직전에 생성한 단어를 기억하고 이를 통해 더 맥락에 맞는 다음 단어를 선택할 수 있어 궁극적으로 처리 속도를 높일 수 있습니다. KV 캐시가 없다면 모델은 쿼리를 한 단어씩 재처리해야 합니다. 

KV 캐시 내에서 효율성을 높이는 것이 vLLM의 주된 임무입니다. 

vLLM은 GPU가 태스크를 분산하고 병렬로 함께 작업하도록 돕는 소프트웨어 '두뇌'입니다. vLLM은 사용자 응답을 지속적으로 배치 처리하여 KV 캐시가 지름길을 만들도록 유도하는 일련의 지침 역할을 합니다.

vLLM을 사용한 모델 병렬 처리

모델의 크기가 너무 커서 GPU로 처리할 수 없는 경우 텐서 병렬 처리, 파이프라인 병렬 처리, 전문가 혼합(Mixture of Experts, MoE) 중 하나를 사용하거나 이 세 가지를 모두 조합하여 사용할 수 있습니다.

텐서 병렬 처리. 일련의 GPU는 하나의 대형 태스크를 작고 동일한 부분들로 나눠서 처리합니다. 이 경우 vLLM은 일종의 코디네이터로서 시스템의 모든 구성 요소가 서로 동기화된 상태를 유지하는 데 필요한 지속적인 커뮤니케이션을 조정합니다. 

파이프라인 병렬 처리. 파이프라인 병렬 처리는 공장의 조립 라인과 마찬가지로 하나의 태스크를 순차적인 단계로 나눕니다. 태스크가 완료될 때까지 하나의 단계에서 다음 단계로 이동하면서 처리가 진행됩니다. 파이프라인 병렬 처리를 사용하면 복수의 서버를 연결하여 하나의 메모리 저장소에 로드하기에는 너무 큰 단일 모델을 실행할 수 있습니다. 이 경우 vLLM은 단계를 분석하고 각 단계가 완료될 때마다 태스크가 하나의 서버에서 다음 서버로 이동하도록 하여 가상의 조립 라인을 관리합니다.

전문가 혼합(MoE). 이 맥락에서 '전문가'는 모델에서 특정 유형의 입력을 처리하도록 학습된 특별한 부분을 지칭합니다. 이 아키텍처 내에서는 게이팅 네트워크(gating network)라는 요소를 통해 모델에서 가장 처리 능력이 뛰어난 부분으로 태스크를 라우팅하여 더 정확한 결과를 더 빠르게 제공하도록 합니다. vLLM의 내장형 게이팅 네트워크는 각 요청이 들어올 때마다 이를 읽고 모델에서 해당 요청을 처리할 수 있는 부분을 활성화하여 이러한 작업을 조율합니다. 

vLLM을 사용한 데이터 병렬 처리.

다수의 사용자를 동시에 처리해야 할 경우 데이터 병렬 처리 기법을 사용할 수 있습니다. 데이터 병렬 처리란 모델 대신 입력 데이터(워크로드 요청)를 분할하는 것을 말합니다. 

데이터 병렬 처리는 다수의 태스크를 처리하는 작업을 여러 서버에 분산하는 컴퓨팅 기법입니다. 그 작동 방식은 각 GPU에 모델의 사본을 배치한 후 태스크를 여러 서버에 나누어서 요청을 병렬로 실행하는 것입니다.

AI 애플리케이션에서 1,000명의 사용자가 동시에 LLM에 질의한다고 상상해 보세요. 데이터 병렬 처리는 서버 10대에 LLM의 사본을 배치한 다음 각 서버에 100개의 요청을 할당하여 효율적인 처리를 돕습니다. 애플리케이션은 워크로드를 여러 개의 작은 배치로 분할하여 지연을 최소화하면서 더 많은 요청을 처리할 수 있습니다. 

vLLM은 더욱 빠르고 효율적인 처리를 돕는 환경을 조성하여 성능을 높이는 전문가로서 MoE에 참여할 수 있습니다. 

vLLM에 대해 자세히 알아보기

llm-d란?

llm-d는 분산형 대규모 언어 모델을 위한 오픈소스 프레임워크입니다. 오픈소스 프레임워크는 모두에게 공개된 사전 작성된 코드와 툴 모음으로, 개발자는 자유롭게 이를 사용하고 수정하거나 배포할 수 있습니다.

llm-d는 잘 정의된 경로를 표준화하여 분산 추론을 대규모로 구축하기 위한 청사진을 제공합니다. 이는 레이아웃, 커뮤니케이션 기법, 학습 매뉴얼을 제공하여 조직이 분산 아키텍처를 구축할 때 따를 수 있는 단계별 가이드 역할을 합니다.

기업은 수동적이고 파편화된 프로세스를 통합되고 잘 정의된 경로로 대체하여 더욱 신속한 배포와 확장을 통해 파일럿부터 프로덕션 단계까지 걸리는 시간을 단축할 수 있습니다. 

설치는 Helm 차트를 기반으로 하며 친숙하고 사용자 정의 가능한 절차를 제공합니다. 빠른 시작 커맨드라인 인터페이스(Command-line Interface, CLI)는 종속성, 선행조건, 관측성 기능을 포함하여 간단한 배포를 지원합니다.

llm-d는 확장 가능하고 vLLM과 상호 운용 가능하도록 설계되었으며, Red Hat® OpenShift®를 포함해 모든 쿠버네티스 클러스터에서 실행됩니다. 

llm-d 시작하기

분산 추론은 AI 시스템의 처리 속도와 확장성을 높이지만, 이러한 태스크를 완료하기 위해 복잡한 조정 과정을 필요로 합니다. 분산 추론을 도입할 때 다음 문제를 염두에 두어야 합니다.

대기 시간과 대역폭 

분산 처리는 서로 다른 위치에 있는 복수의 서버와 기기에 모델을 분산하고 요청을 처리합니다. 즉, 사용자에게 결과를 제공하기 위해 정보와 데이터가 긴 경로를 이동해야 합니다. 서버 간 네트워크 연결이 느리거나 혼잡한 경우 꽉 막힌 도로에 갇힌 것처럼 프로세스가 지연됩니다. 

비효율적인 리소스 할당 

서버 간 추론 분산이 균형을 이루도록 하여 서버에 과부하가 걸리거나 서버가 사용되지 않는 상황을 방지하는 것이 중요합니다.

장애 복구 

연극에서 만일의 경우를 위해 대역 배우가 대기하는 것처럼 백업 계획을 마련해야 합니다. 분산 시스템에서는 언제든지 연결이 끊기거나 서버에 장애가 발생하거나 데이터센터가 오프라인 상태로 될 가능성이 있습니다. 시스템의 특정 부분이 다운되더라도 다른 부분을 통해 시스템이 정상적으로 가동되도록 할 수 있어야 합니다. 

디버깅 및 문제 해결의 복잡성 

분산 추론에서 사용되는 것처럼 서버를 서로 연결하면 단절된 경우보다 더 빠르고 효율적으로 작업할 수 있습니다. 그러나 이처럼 상호 연결되어 있으면 문제의 근본 원인을 찾기가 더 까다롭다는 단점이 있습니다. 마치 두통을 유발하는 원인을 진단하기 어려운 것과 비슷합니다.

동기화 오버헤드 

300명이 참여하는 영상 회의를 한다고 상상해 보세요. 동영상과 오디오를 실시간으로 전송하기 위해서는 시스템이 평소보다 더 많은 일을 해야 합니다. 누군가의 동영상이 정지되거나 음성이 지연되는 경우가 발생할 수 있습니다. 동기화된 조정을 위해서는 많은 일을 처리해야 하므로 처리 능력이 우수한 인프라가 필요합니다.

모델 관리 및 배포 

모델을 업데이트하려고 하나요? 분산 추론을 사용하는 경우 그러한 변경을 배포하기 위해서는 전략과 함께 전문가를 통한 신중한 오케스트레이션이 필요합니다. 이는 복잡할 뿐만 아니라 많은 시간이 소요될 수 있습니다.

비용 관리 

분산 시스템의 비용 아키텍처는 하나의 컴퓨터를 사용할 때보다 훨씬 더 복잡합니다. 이 비용은 사용 패턴, 위치 간 데이터 전송, 확장 요구 사항에 따라 지속적으로 변동될 수 있습니다. 최상의 성능, 탄력성, 효율적인 비용 관리를 도모하기 위해서는 메트릭 기반 접근 방식을 확립하는 것이 중요합니다.

보안 

여러 위치에 서버를 분산 배치하려면 각 위치를 보호하기 위한 장치를 마련해야 합니다. 커뮤니케이션을 암호화하고 액세스 제어를 관리하고 공격으로부터 보호할 수 있어야 하며, 이 모든 것에는 전문 지식이 필요합니다. 

AI 보안이란?

분산 추론을 사용하면 광범위한 애플리케이션에 LLM을 적용할 수 있습니다. 이는 하나의 하드웨어에서 모델을 실행할 경우에 감수해야 하는 크기 및 속도 제한 사항이 줄어들기 때문입니다. 따라서 분산 추론은 대기 시간(지연)을 줄이고 대역폭(처리 능력)을 늘려서 기존 인프라에서 다양한 활용 사례를 지원할 수 있습니다. 

일관되고 예측 가능한 성능

기존의 AI 추론은 투명성이 부족한 일명 '블랙박스'여서 응답 시간을 예측하기 어렵고 사용자 경험이 만족스럽지 않을 가능성이 있었습니다. 분산 추론을 사용하면 지능형 스케줄링을 통해 들어오는 요청을 분석한 다음 최적의 하드웨어로 라우팅하므로 더욱 신뢰할 수 있고 안정적인 사용자 경험을 제공할 수 있습니다.

비용 관리

비용은 분산 추론에서 문제가 될 수도 있지만 그와 반대로 이점이 될 수도 있습니다. 모델의 크기가 커짐에 따라 GPU와 같은 고가의 하드웨어 가속기를 사용해야 할 필요성도 커집니다. 분산 추론은 적절하게 관리하기만 한다면 하드웨어를 최대한 효율적으로 사용하여 비용을 줄이는 데 도움이 될 수 있습니다. 

향상된 관측성

생성형 AI 모델이 파일럿에서 프로덕션 단계로 옮겨 가면서 AI 서비스의 상태, 성능 및 비용을 모니터링하는 것이 새로운 과제로 떠올랐습니다. 분산 추론은 토큰 처리부터 대기 시간, 처리량에 이르기까지 AI 워크로드를 선제적으로 모니터링할 수 있는, 매우 투명한 시스템을 제공합니다. 이러한 가시성을 바탕으로 효과적으로 병목을 파악하고 문제를 해결하여 예측 가능한 성능을 유지하고 비용을 통제할 수 있습니다. 

개인정보 보호 규정 

일반 데이터 보호 규정(General Data Protection Regulation, GDPR) 및 캘리포니아 소비자 개인정보 보호법(California Consumer Privacy Act, CCPA)과 같은 데이터 프라이버시 법률은 개인 데이터의 수집 및 전송에 엄격한 규칙을 적용합니다. 분산 추론은 데이터를 로컬로 처리하고 데이터에서 민감하지 않은 부분만 중앙 서버로 전송함으로써 이러한 규정을 준수합니다. 이를 통해 특정 지리적 관할 구역 내에 개인 데이터를 보존하여 데이터 주권을 지지합니다. 

데이터 지역성  

분산 추론은 추론 프로세스(계산)를 다수의 서버로 보내지만 데이터는 로컬에 그대로 유지됩니다. 데이터를 먼 곳에 있는 서버에 전송하는 대신 원래 생성된 위치에서 처리하므로 애플리케이션이 더 빠르게 작업할 수 있습니다. 

Red Hat AI는 오픈소스 기술을 사용하여 대규모 엔터프라이즈 AI의 요구 사항을 충족하는 제품으로 구성된 플랫폼입니다. 분산 추론은 Red Hat 포트폴리오에서 핵심적인 기술입니다.

Red Hat AI의 일부인 Red Hat OpenShift AI는 엔터프라이즈급 vLLM 버전을 사용하는 분산 서빙을 통해 추론 비용을 효과적으로 관리하도록 돕습니다. 이 솔루션은 고급 툴링을 사용하여 배포를 자동화하고 모델, 툴, 리소스에 대한 셀프 서비스 액세스를 제공하여 운영상의 복잡성을 줄입니다.

모든 Red Hat AI 제품은 유연성과 일관성을 제공하여 모든 하드웨어 플랫폼과 하이브리드 클라우드 환경에서 AI 모델을 규모에 맞게 구축, 배포하고 실행할 수 있도록 합니다.

Red Hat AI 살펴보기

기사

AI 추론이란?

AI 추론은 AI 모델이 데이터를 기반으로 답변을 제공하는 것을 말합니다. 머신 러닝 기술의 복잡한 프로세스 중 마지막 단계입니다.

Red Hat과 함께하는 AI 여정: 조직의 AI 여정을 위한 전문성, 교육 및 지원

Red Hat만의 AI 포트폴리오를 살펴보세요. Red Hat AI를 통해 인공지능(AI)을 활용하여 비즈니스 및 IT 목표를 달성할 수 있습니다.

추가 자료

MCP(Model Context Protocol)란?

MCP(Model Context Protocol)가 AI 애플리케이션을 외부 데이터 소스에 연결함으로써 더욱 스마트한 워크플로우를 구축하는 데 어떻게 도움이 되는지 알아보세요.

AIOps 설명

AIOps(IT 운영을 위한 AI)는 머신 러닝과 기타 고급 AI 기술로 IT 운영을 자동화하는 방식입니다.

AI 보안이란?

AI 보안은 AI 워크로드를 취약하게 만들거나, 데이터를 변조하거나, 민감한 정보를 탈취하는 것을 목적으로 하는 악의적인 공격으로부터 AI 애플리케이션을 방어합니다.

AI/ML 리소스

관련 기사