News Feed

연속 배칭이 여는 전례 없는 대규모 언어 모델 처리량

컨텐츠 정보

  • 조회 381

본문

연속 배칭은 대규모 언어 모델(LLM) 세계의 터보차저와 같다. 그래픽 처리 장치(GPU)를 쉬지 않고 가동시켜 최대 20배 빠른 결과를 만들어낸다.

연속 배칭(Continuous Batching) 또는 통합 배치 스케줄링(Unified Batch Scheduling)은 GPU의 ‘두뇌 창고 관리자’로서, 정보를 효율적으로 정리해 낭비를 제거하고 성능 도약의 기반을 마련하는 역할을 한다.

그러나 완벽히 정리된 창고라도 물류 시스템이 느리면 아무 소용이 없다. 아무리 공간이 넓어도 트럭이 교통체증에 갇히면 제때 배송할 수 없다. 여기서 등장하는 것이 연속 배칭이다. PagedAttention이 처리 용량을 제공했다면, 연속 배칭은 그 성능을 폭발적으로 가속하는 엔진이다.

기존 배칭 방식의 한계

여러 사용자의 요청을 동시에 처리하기 위해 LLM 시스템은 요청을 묶어 한 번에 처리한다. 하지만 언어의 비예측적이고 자유로운 특성 때문에 이 방식은 금세 한계에 부딪힌다. 예를 들어 카페에서 친구들과 함께 주문했다고 생각해보자. 바리스타가 “모든 음료를 한 번에 만들겠지만, 마지막 주문이 끝날 때까지 아무 것도 드릴 수 없다”고 말한다면, 단순한 에스프레소를 주문한 사람도 복잡한 카라멜 마키아토가 완성될 때까지 기다려야 한다.

이것이 바로 전통적 배칭의 근본적 결함, 즉 라인 헤드 블로킹(Head-of-Line Blocking)이다. 배치 전체가 가장 느린 요청에 발목 잡히는 구조다. 여기에 다음과 같은 문제도 더해진다.

  • 전력 낭비 : 요청이 일찍 끝나도 배치를 떠날 수 없어 GPU가 놀고 있게 된다.
  • 비유연한 워크플로 : 새로운 요청은 현재 배치가 완전히 끝날 때까지 대기해야 한다.

결과적으로 고가의 GPU는 작업보다 대기에 더 많은 시간을 소비한다.

연속 배칭 : 끊임없이 흐르는 컨베이어 벨트

해결책은 단순하다. ‘모두 기다리는’ 구조를 버리고 동적 처리 모델로 전환하는 것이다. 연속 배칭, 즉 토큰 단위 스케줄링은 느린 커피숍을 고속 초밥 컨베이어 벨트로 바꾸는 개념이다. 고정된 요청 묶음을 한 번에 처리하는 대신, 모든 활성 요청에 대해 한 번에 한 토큰씩 연산을 수행한다.

핵심 동작은 다음과 같다.

  • 마이크로 스텝 처리 : GPU는 모든 활성 시퀀스의 디코딩 단계를 한 번 수행한 뒤 즉시 큐를 재평가한다.
  • 즉각 교체 : 요청이 완료되면 즉시 배치에서 빠지고, 그 자리에 다음 요청이 바로 들어온다.
  • GPU 최대 활용 : 유휴 시간이 사라지고 연산이 끊임없이 이어진다.

이 방식은 낭비된 사이클을 순수한 처리량(Throughput)으로 전환한다. 실제로는 기존 방식 대비 최대 20배 성능 향상이라는 패러다임 전환을 이끌어낸다.

PagedAttention과 연속 배칭의 완벽한 조합

요청이 지속적으로 추가·제거되는 환경에서 메모리를 어떻게 관리할까? 바로 이 지점에서 PagedAttention이 진가를 발휘한다. 연속 배칭의 동적 워크로드를 처리하기 위해서는 유연한 메모리 관리가 필수적이며, PagedAttention은 이를 완벽히 지원한다.

  • 즉시 메모리 할당 및 해제 : PagedAttention의 블록 기반 메모리 시스템은 요청이 들어오고 나가는 순간 작은 블록 단위로 메모리를 관리한다.
  • 메모리 효율성 극대화 : 덕분에 더 많은 시퀀스를 동일한 GPU 메모리에 탑재할 수 있어, 컨베이어 벨트의 폭과 길이를 동시에 확장한다.

두 기술을 결합하면 2~4배 높은 처리량을 달성할 수 있으며, 이는 기존 최고 수준의 서빙 프레임워크를 능가한다.

성능 엔진의 미세 조정

시스템은 단일 모드에 고정되지 않는다. 설정값을 조정해 처리량·응답성·균형성을 맞출 수 있다.

  • 최대 처리량 우선 : max_num_seqs 값을 높이면 동시에 더 많은 시퀀스를 처리해 초당 토큰 수를 극대화한다. 다만 지연 시간 변동이 다소 커질 수 있다.
  • 즉각 응답 우선 : max_wait_ms 값을 거의 0으로 설정하면 단일 사용자 요청을 우선 처리해 저지연 대화형 응답을 제공한다.
  • 균형 조정 : 메모리 블록 크기를 너무 작게 하면 오버헤드가 증가하지만, 너무 크게 하면 낭비가 생긴다. 중간값이 최적이다.

이처럼 토큰 단위 스케줄링을 정교하게 제어하면 하드웨어 성능을 최대한 활용할 수 있다. 이는 대규모 언어 모델을 실제 서비스 환경에 배포할 때 핵심 요소이며, 효율성을 극대화하는 길이다.

요약

  • PagedAttention : 효율적인 메모리 관리
  • Continuous Batch Scheduling : 효율적인 요청 처리 및 동적 배칭

생성형 인공지능(GenAI) 경쟁의 핵심은 단순히 더 큰 모델을 만드는 것이 아니라, 더 똑똑한 엔진으로 구동하는 것이다. 연속 배칭은 그중에서도 가장 정교하고 강력한 엔진이다
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.
Member Rank