이 논문은 최근 화두인 **거대 언어 모델 **(LLM, 예: 챗봇이나 AI 비서)을 다루고 있습니다. AI 모델을 더 가볍게 만들기 위해 '조각내기 (분해)' 기술을 쓰면 메모리는 아낄 수 있지만, 동시에 여러 AI 를 돌릴 때 속도가 너무 느려지는 문제가 있었습니다.
이 논문은 이 문제를 해결하기 위해 **DeInfer**라는 새로운 시스템을 제안합니다. 마치 무거운 짐을 나르다가 지친 팀원들을 위해, 짐을 더 효율적으로 나누어 나르는 새로운 '운송 규칙'을 만든 것과 같습니다.
1. 왜 문제가 생겼을까요? (배경)
AI 모델을 가볍게 만들기 위해 연구자들은 모델을 **저랭크 분해 **(Low-rank Decomposition)라는 기술로 '조각'냅니다.
비유: 거대한 100 페이지짜리 두꺼운 사전 (원래 모델) 을, 10 페이지짜리 요약본 두 권 (조각난 모델) 으로 바꾼다고 생각해보세요. 메모리 (책장) 는 훨씬 적게 차지하지만, 내용을 찾을 때 두 권의 책을 번갈아 보며 정보를 합쳐야 하므로 시간이 더 걸립니다.
문제는 **여러 대의 컴퓨터 **(GPU)입니다.
기존 방식의 문제: 여러 사람이 각자 요약본의 일부를 가지고 정보를 합치려 할 때, 서로에게 "내 정보랑 네 정보 합쳐줘!"라고 계속 연락을 주고받아야 합니다. 이 **연락 **(통신)이 너무 많아서, 컴퓨터들이 일을 하는 시간보다 서로 대화하는 시간이 더 길어집니다. 게다가 같은 일을 여러 사람이 중복해서 하기도 합니다.
2. 데인퍼 (DeInfer) 가 해결한 3 가지 문제
데인퍼는 이 비효율적인 상황을 세 가지 방법으로 해결했습니다.
① "연락"을 줄이는 새로운 운송 규칙 (효율적인 통신)
상황: 기존에는 정보를 합치는 과정에서 컴퓨터들 사이를 오가는 데이터 양이 너무 많았습니다.
데인퍼의 해결책: 정보를 합치는 시점을 **조각난 상태 **(저랭크 공간)로 앞당겼습니다.
비유: 원래는 "완성된 큰 상자"를 여러 대의 트럭에 나누어 실은 뒤, 목적지에서 다시 합치느라 트럭들이 계속 왕래해야 했습니다. 하지만 데인퍼는 "작은 부품"을 트럭에 싣는 순간, 그 작은 부품끼리 먼저 합쳐서 하나의 덩어리로 만든 뒤 목적지로 보냅니다.
결과: 트럭들이 오가는 횟수 (통신 비용) 가 78% 이상 줄어든 것입니다.
② "중복 작업" 제거 (불필요한 계산 방지)
상황: 조각난 모델을 여러 대의 GPU 에서 돌릴 때, 각 GPU 가 같은 정보를 가지고 있어도 똑같은 계산을 반복해서 하는 실수가 있었습니다.
데인퍼의 해결책: 각 GPU 가 자신의 일만 정확히 하고, 나머지는 다른 GPU 에게 맡기도록 작업을 재배치했습니다.
비유: 4 명이 함께 벽돌을 쌓는데, 원래는 4 명 모두 "벽돌을 들어올리는 동작"을 4 번씩 반복했습니다. 데인퍼는 "한 명만 들어올리고, 나머지는 그 위에 쌓는 역할"로 역할을 명확히 나누어 불필요한 힘 낭비를 없앴습니다.
③ "정해진 레시피" 사용 (CUDA Graph 최적화)
상황: AI 가 글을 생성할 때, 메모리 (KV 캐시) 의 크기가 계속 변합니다. 기존 시스템은 이 변하는 크기에 맞춰 매번 "새로운 작업 지시서"를 작성해야 해서 시간이 걸렸습니다.
데인퍼의 해결책: 메모리 크기가 변해도 **고정된 작업 지시서 **(CUDA Graph)를 사용할 수 있도록 메모리를 clever하게 재배치했습니다.
비유: 요리사가 매번 손님이 주문할 때마다 "오늘은 어떤 재료가 얼마나 들어갈지" 고민하며 레시피를 다시 쓰는 대신, 미리 준비된 표준 레시피를 그대로 따라 하면 훨씬 빠르게 요리를 할 수 있습니다.
3. 실험 결과: 얼마나 빨라졌나요?
연구진은 이 기술을 실제 AI 모델 (LLaMA-3-70B 등) 에 적용해 보았습니다.
속도 향상: 여러 대의 GPU 를 사용할 때, 기존 방식보다 최대 8.8 배까지 속도가 빨라졌습니다.
대기 시간 감소: 사용자가 질문을 하고 첫 답변을 받을 때까지 걸리는 시간이 80% 이상 줄어들었습니다.
확장성: AI 모델을 더 많이 조각낼수록 (압축 비율이 높을수록), 오히려 데인퍼의 성능이 더 좋아지는 놀라운 결과를 보였습니다.
4. 결론
**데인퍼 **(DeInfer)는 거대 AI 모델을 가볍게 만들 때 생기는 "속도 저하"라는 병목 현상을 해결한 고성능 엔진입니다.
핵심 메시지: "AI 를 가볍게 만드는 것 (분해) 만으로는 부족합니다. 그 가벼운 AI 를 여러 대의 컴퓨터에서 얼마나 효율적으로 함께 움직이게 하느냐가 중요합니다."
이 기술 덕분에 앞으로 더 크고 똑똑한 AI 모델도, 적은 메모리로 더 빠르게, 여러 사람이 동시에 사용할 수 있게 될 것입니다.
1. 문제 정의 (Problem Statement)
대형 언어 모델 (LLM) 의 배포 및 추론 시 메모리 풋프린트 (Memory Footprint) 를 줄이기 위해 모델 분해 (Model Decomposition, 예: 저랭크 분해) 기법이 널리 연구되고 있습니다. 그러나 기존 연구들은 주로 하류 작업 (Downstream tasks) 의 성능 향상에 집중했을 뿐, 분해된 모델을 병렬 추론 (Parallel Inference) 환경에서 확장할 때 발생하는 심각한 성능 저하 문제를 간과했습니다.
주요 문제는 다음과 같습니다:
통신 오버헤드 증가: 저랭크 분해로 인해 행렬 연산이 증가하고, 이로 인해 병렬 추론 시 reduce-sum 연산 (집계 통신) 의 횟수가 급격히 늘어납니다. 이는 대역폭과 지연 시간 측면에서 가장 비용이 큰 통신 원시 연산입니다.
중복 계산 (Duplicate Computation): 분해된 구조에서는 각 GPU 프로세스가 동일한 데이터를 가지게 되어, 불필요하게 자기 주의 (Self-attention) 계산을 중복 수행하게 됩니다.
CUDA Graph 비호환성: 분해된 모델은 KV 캐시 재구성 시 데이터의 모양 (Shape) 이 동적으로 변하기 때문에, 최신 추론 시스템에서 성능을 극대화하는 정적 계산 그래프 (CUDA Graph) 를 적용하기 어렵습니다.
2. 제안 방법 (Methodology: DeInfer)
이 논문은 분해된 LLM 의 병렬 추론 성능을 극대화하기 위해 DeInfer라는 고성능 추론 시스템을 제안합니다. DeInfer 는 다음과 같은 핵심 최적화 기법을 포함합니다.
가. 고효율 저랭크 통신 (Highly Efficient Low-rank Communication)
기존 방식: 분해된 행렬 (상향/하향 투영 행렬) 사이에서 매 단계마다 reduce-sum 통신을 수행하여 오버헤드가 큽니다.
DeInfer 방식: 계산 파이프라인을 재구성하여 저랭크 잠재 공간 (Low-rank latent space) 에서 통신을 수행합니다.
하향 투영 행렬 (Downward projection) 에 대해 All-Gather를 먼저 수행하여 모든 프로세스가 동일한 저랭크 데이터를 갖도록 합니다.
이후 각 프로세스가 자신의 상향 투영 행렬 조각 (Shard) 과 곱셈을 수행하여 자기 주의 또는 활성화 계산을 진행합니다.
효과: 불필요한 reduce-sum 통신을 제거하고, All-Gather로 대체하여 통신 대역폭을 획기적으로 줄입니다. (LLaMA-3-70B 기준 78% 대역폭 절감)
나. 페이지드 KV 캐시 및 CUDA Graph 통합 (Integrating Paged Cache and CUDA Graph)
문제: 분해된 모델은 KV 캐시 재구성 시 동적 Shape 을 가지므로 정적 그래프 (CUDA Graph) 를 사용할 수 없어 커널 시작 오버헤드가 발생합니다.
해결:
준비 단계 (Preparation Stage): 논리적 블록이 물리적으로 연속적인지 스캔하고, 재매핑 인덱스 리스트 (Remapping Index List) 를 생성합니다.
그래프 재생 단계 (Graph Replay Stage): 물리적으로 연속된 KV 캐시 블록을 버퍼에 복사하여 압축된 (Compact) KV 캐시를 만듭니다.
이 압축된 캐시는 고정된 메모리 주소를 가지므로, 동적 Shape 문제를 우회하여 CUDA Graph와 호환되도록 설계되었습니다. 이를 통해 커널 시작 오버헤드를 제거합니다.
다. 일반화 (Generalization)
DeInfer 는 행렬 분해의 수학적 원리 (비선형 연산이 없음) 에 기반하여, 다양한 압축 비율 (Layer 별 상이한 비율 포함) 과 다양한 모델 아키텍처 (MHA, GQA, GLU/Non-GLU 등) 를 지원합니다.
3. 주요 기여 (Key Contributions)
최초의 분해형 LLM 병렬 추론 시스템: 분해된 LLM 의 병렬 추론 성능 향상에 초점을 맞춘 최초의 시스템으로, 기존 vLLM 등의 최신 추론 프레임워크에 통합되었습니다.
병목 현상 해결: 통신 오버헤드, 중복 계산, 동적 Shape 문제로 인한 CUDA Graph 비호환성이라는 세 가지 핵심 병목 현상을 체계적으로 해결했습니다.
효율적인 통신 설계: 계산 파이프라인 재구성을 통해 통신 비용을 8090% 감소시키고, 중복 계산을 제거하여 연산 시간을 1030% 단축했습니다.
4. 실험 결과 (Results)
8 개의 NVIDIA A800 (80GB) 및 A6000 (48GB) GPU 클러스터에서 LLaMA-3-70B, LLaMA-65B, OPT-30B 모델을 대상으로 실험을 수행했습니다.
처리량 (Throughput):
NVLink 가 없는 환경에서 8 GPU 병렬화 시, 기존 방식 (Base) 대비 최대 6.59 배의 처리량 향상을 보였습니다.
NVLink 가 있는 환경에서도 1.49 배 ~ 1.88 배의 성능 향상을 기록했습니다.
압축 비율이 높아질수록 (60% 등) DeInfer 의 성능 이점이 더욱 커지는 것을 확인했습니다.
지연 시간 (Latency):
첫 번째 토큰 도착 시간 (TTFT) 은 최대 83% 감소했습니다.
토큰 간 지연 시간 (ITL) 은 최대 79% 감소했습니다.
확장성 (Scalability):
GPU 수 증가 및 압축 비율 증가에 따라 성능이 선형적으로 향상되는 우수한 확장성을 입증했습니다.
특히 NVLink 가 없는 환경에서 DeInfer 의 통신 최적화 효과가 두드러졌습니다.
CUDA Graph 효과:
NVLink 가 활성화되어 통신 병목이 해결된 환경에서는 CUDA Graph 지원으로 인해 추가적인 성능 향상 (커널 시작 오버헤드 제거) 을 얻었습니다.
5. 의의 및 결론 (Significance)
DeInfer 는 모델 분해 기법의 메모리 효율성 이점을 실제 병렬 추론 환경에서도 실현 가능하게 만드는 중요한 시스템입니다. 기존에는 분해된 모델이 병렬 처리 시 성능 저하로 인해 실제 배포에 어려움이 있었으나, DeInfer 는 이를 해결하여 대규모 분해형 LLM 의 실용적인 병렬 추론을 가능하게 합니다. 이는 메모리 제약이 있는 환경에서 고품질 LLM 을 효율적으로 서비스할 수 있는 새로운 길을 제시하며, 추론 시스템 최적화 분야에서 중요한 이정표가 됩니다.