FASTDECODE: High-Throughput GPU-Efficient LLM Serving using Heterogeneous Pipelines

논문 링크

Q : 이 논문을 아주 자세하게 읽고 논문의 강점과 독창적인 지점을 설명해주고 핵심 알고리즘을 예시 입력을 들어서 전체적인 과정을 설명해줘 추가적으로 논문의 한계점에 대해서도 알려줘

A :

논문의 강점과 독창적인 지점

이 논문은 대규모 언어 모델(LLM) 서빙을 위해 FASTDECODE라는 새로운 시스템을 제안합니다. 주요 강점과 독창성은 다음과 같습니다:

  1. 메모리-계산 분리 아키텍처:
    • LLM의 중요한 구성요소인 KV-Cache를 GPU가 아닌 CPU에서 처리하도록 설계했습니다.
    • CPU는 메모리 대역폭 측면에서 GPU와 비교적 유사한 성능을 제공하며, 이러한 설계는 메모리 전송 병목현상을 줄이고 GPU의 활용도를 극대화합니다.
  2. 이질적인 하드웨어 사용 최적화:
    • CPU와 GPU 간의 협력을 극대화하기 위해 작업 부하를 효율적으로 분산하고 일정을 조정하는 새로운 스케줄링 기법(sequence-level load-stabilizing schedule)을 도입했습니다.
  3. 확장성과 비용 효율성:
    • 분산 CPU 시스템을 활용해 KV-Cache를 효율적으로 관리함으로써 대규모 배치 크기에서도 높은 처리량을 유지합니다.
    • GPU 수요를 줄이는 동시에 성능을 향상시켜 비용 절감 효과를 제공합니다.
  4. 실험 기반 검증:
    • 제안된 시스템이 기존 최첨단 방법(vLLM 등)보다 1.88배에서 5.04배 더 높은 처리량을 제공함을 실험적으로 입증했습니다.

핵심 알고리즘 과정과 예시 입력 설명

FASTDECODE는 Transformer 모델을 S-Part(공유 계산)와 R-Part(자동회귀 계산)로 분할합니다.

알고리즘 요약:

  1. 분할:
    • R-Part: 메모리 집약적 작업(KV-Cache 관리). CPU에서 처리.
    • S-Part: 계산 집약적 작업. GPU에서 처리.
  2. 파이프라인 설계:
    • S-Worker는 GPU를 사용해 S-Part를 처리.
    • R-Worker는 CPU를 사용해 R-Part를 처리하며, S-Worker에서 전달받은 데이터를 기반으로 연산을 수행.
  3. 스케줄링:
    • 시퀀스 길이의 변동에 따라 CPU와 GPU 간 부하를 균형있게 분배.

예시:

입력: 문장 “Hello, world!”로 시작하는 텍스트 생성 요청.

  • S-Worker 단계:
    • Transformer 모델에서 “Hello, world!”의 마지막 토큰을 처리하여 Qi, Ki, Vi를 생성.
    • 생성된 데이터는 R-Worker로 전달.
  • R-Worker 단계:
    • Qi, Ki, Vi를 사용해 Attention 계산 수행.
    • 이전 KV-Cache를 업데이트하고 새로운 출력을 생성.
  • 출력:
    • R-Worker가 생성한 데이터를 S-Worker로 반환.
    • S-Worker는 다음 토큰을 생성.

한계점

  1. CPU 부하:
    • CPU가 R-Part를 처리하면서 다른 작업(토큰화, 배치 관리 등)과 경쟁하게 되어 병목현상이 발생할 가능성이 있음.
  2. 네트워크 통신 병목:
    • S-Worker와 R-Worker 간 데이터 전송은 높은 대역폭을 요구하며, 특히 대규모 모델에서는 네트워크 지연이 성능에 부정적 영향을 미칠 수 있음.
  3. 작은 모델에서의 비효율성:
    • R-Part와 S-Part 간 작업량 비율이 작은 모델에서는 GPU만 사용하는 접근법보다 효율성이 낮을 가능성이 있음.
  4. 초기 설정 복잡성:
    • 하드웨어 구성 및 성능 모델링이 정확해야 최적의 결과를 얻을 수 있어 초기 설정이 복잡할 수 있음.

Q : 논문의 핵심알고리즘을 예시를 들어 아주 자세하게 설명해주고 정리해 줘

A :

논문의 핵심 알고리즘 FASTDECODE는 대규모 언어 모델(LLM)의 KV-Cache와 관련된 병목 현상을 해결하고, GPU의 활용도를 극대화하기 위해 설계되었습니다. 이 알고리즘을 예시를 통해 단계별로 설명하고 주요 개념을 정리하겠습니다.


핵심 알고리즘 설명: KV-Cache의 분리와 작업 분배

FASTDECODE는 LLM의 Transformer 구조를 두 부분으로 분리합니다.

  1. S-Part (Shared Computation):
    • 모델 가중치와 연관된 계산 작업(주로 Fully Connected Layers).
    • GPU에서 처리.
  2. R-Part (Recurrent Computation):
    • KV-Cache와 관련된 메모리 집중 작업(Attention Layers의 일부).
    • CPU에서 처리.

예시를 통한 단계별 과정:

문제 설정:

  • 사용자 입력: "Hello, world!"
  • 모델 출력: 다음 3개의 토큰을 생성.

단계 1: 첫 번째 입력 처리 (Prefilling)

  1. 입력 문장 "Hello, world!"를 Transformer의 S-Part로 보냅니다.
    • S-Part는 입력 토큰들을 Fully Connected Layers에서 처리하여 Qi, Ki, Vi를 생성.
  2. R-Part로 데이터(Qi, Ki, Vi)를 전달하여 Attention 연산 수행.
    • Attention 계산: [ A_i = \text{softmax}\left(Q_i \cdot K_j \, (j=1,…,i-1)\right) ]
    • 출력 벡터 생성: [ O_i = \sum_{j=1}^{i-1} A_{ij} \cdot V_j ]
  3. R-Part는 KV-Cache를 업데이트하고 결과를 S-Part로 반환.

결과:

  • Transformer는 "Hello, world!"의 마지막 토큰에 대해 연산을 완료하고 다음 단계로 넘어갑니다.

단계 2: 다음 토큰 생성 (Decoding)

  1. 새로운 입력: 모델은 "Hello, world!" 이후에 이어질 다음 토큰을 예측.
    • S-Part에서 새로운 입력(이전 출력 토큰)을 처리하여 새로운 Qi, Ki, Vi를 생성.
  2. R-Part에서 처리:
    • 이전 단계에서 저장된 KV-Cache와 함께 Attention 계산 수행.
    • 업데이트된 결과를 S-Part로 전달.
  3. 반복: 이 과정은 새로운 토큰이 생성될 때마다 반복.

FASTDECODE의 개선된 데이터 흐름:

  1. KV-Cache를 GPU에서 분리:
    • GPU 메모리에서 CPU 메모리로 KV-Cache를 이동하여 GPU 메모리 부담을 줄임.
  2. 데이터 전송 최적화:
    • GPU와 CPU 간에는 작은 Qi, Ki, Vi만 전송. (기존 KV-Cache 크기의 수백 배 이상 작음)
  3. 병렬 처리:
    • R-Worker(CPU)는 KV-Cache를 병렬로 관리하며, 작업 부하를 여러 CPU 노드로 분산.

주요 알고리즘 단계 요약

  1. 분리:
    • Transformer를 R-Part와 S-Part로 나누어 작업을 특성에 따라 CPU와 GPU에 배정.
  2. 파이프라인:
    • S-Part와 R-Part가 번갈아가며 작업하도록 2단계 파이프라인 설계.
    • 각 단계에서 GPU와 CPU가 동시에 작업을 수행하도록 설계.
  3. 스케줄링:
    • Sequence-Level Load-Stabilizing Schedule을 도입하여 CPU와 GPU 간 작업 부하를 균형 있게 분배.

알고리즘을 다시 정리한 작업 흐름

  1. S-Worker(GPU):
    • Fully Connected Layers(FCL) 계산을 수행.
    • Qi, Ki, Vi를 생성하고 R-Worker로 전달.
  2. R-Worker(CPU):
    • Attention 연산 및 KV-Cache 업데이트.
    • 새로운 출력을 생성하여 S-Worker로 반환.
  3. 반복:
    • 입력 길이(sequence length)가 늘어나더라도 KV-Cache를 효율적으로 관리하여 GPU 메모리를 절약하고 처리량을 극대화.

정리

FASTDECODE의 핵심은 KV-Cache를 CPU에서 처리함으로써 GPU 메모리를 해방시키고, GPU의 병렬 처리 성능을 최대한 활용하는 것입니다. 이를 통해 다음과 같은 결과를 얻습니다:

  • GPU 활용률 증가.
  • 처리량(Throughput) 최대 5배 향상.
  • 작업량이 변동되는 경우에도 안정적인 성능 유지.

Q : 이 논문에서 제시한 결과를 자세하게 보고 다른 방법론에 비하여 특출난 점과 논문에서 제기하는 어떠한 방법이 이러한 결과를 도출하게 되었는지 논문에서 제시하는 이유와 너의 생각을 알려줘

A :

논문 결과 요약

이 논문에서는 FASTDECODE가 기존의 최첨단 방법론(vLLM, TensorRT-LLM 등)과 비교하여 다음과 같은 결과를 도출했다고 보고합니다:

  1. 처리량(Throughput) 개선:
    • LLaMA-7B 모델 기준으로, vLLM 대비 1.88배~5.04배 높은 처리량을 달성.
    • 특히 큰 배치 크기(예: 1024)에서 처리량이 월등히 증가.
  2. 지연 시간(Latency):
    • 배치 크기를 늘릴수록 지연 시간이 증가하지만, 동일 배치 크기에서 vLLM보다 낮은 평균 지연 시간.
    • KV-Cache 전송 및 CPU 작업 분리를 통해 고정적인 지연 시간 패턴을 유지.
  3. 확장성:
    • CPU 노드의 개수를 늘리며 선형적인 성능 확장을 달성.
    • GPU와 CPU 간 균형 잡힌 작업 분배를 통해 자원 활용도를 극대화.

다른 방법론 대비 특출난 점

1. KV-Cache 분리와 CPU 활용:

  • 기존 방법(vLLM, TensorRT-LLM 등)은 KV-Cache를 GPU 메모리에 저장하거나 PCIe를 통해 교환하여 처리.
  • FASTDECODE는 KV-Cache를 CPU 메모리에 완전히 옮겨 CPU에서 연산함으로써 GPU 메모리 부담을 제거.

2. 데이터 전송 최적화:

  • 기존 방법:
    • GPU와 CPU 간 KV-Cache 전체를 전송(매우 큰 데이터).
  • FASTDECODE:
    • GPU에서 생성된 Qi, Ki, Vi를 CPU로 전송(상대적으로 매우 작은 데이터).
    • 이로 인해 데이터 전송량 및 대기 시간을 대폭 감소.

3. 이질적 하드웨어 효율성 극대화:

  • GPU는 계산 집중 작업(S-Part)을 처리하고 CPU는 메모리 집중 작업(R-Part)을 처리.
  • 작업량의 불균형을 Sequence-Level Load-Stabilizing Schedule을 통해 개선.

논문에서 제기하는 결과의 이유

(1) KV-Cache를 GPU에서 분리:

  • KV-Cache는 메모리 요구량이 높아 GPU 메모리 병목의 주요 원인.
  • 이를 CPU 메모리로 이동하면 GPU는 모델 가중치 및 현재 작업에만 메모리를 사용하므로 더 많은 시퀀스를 병렬로 처리 가능.
  • 결과: GPU의 병렬 처리율 증가 → Throughput 개선.

(2) 데이터 전송 최소화:

  • GPU와 CPU 간 전송 데이터 크기를 KV-Cache 전체 대신 Qi, Ki, Vi로 제한.
  • PCIe 대역폭의 제약을 극복하여 병렬화와 확장성 극대화.
  • 결과: 대규모 배치 크기에서도 안정적 처리 가능.

(3) Sequence-Level Load-Stabilizing Schedule:

  • 시퀀스 길이에 따른 R-Part와 S-Part 간의 작업 불균형을 해결.
  • 짧은 시퀀스와 긴 시퀀스를 동시에 처리하여 CPU와 GPU의 유휴 시간을 최소화.
  • 결과: 처리량 개선 + 지연 시간 안정화.

나의 분석과 해석

(1) 결과의 합리성

논문에서 제시하는 결과는 FASTDECODE의 설계 방식에서 비롯된 기술적 이점으로 설명됩니다. 특히, KV-Cache 분리와 데이터 전송 최적화는 기존 시스템의 병목 현상을 제거하여 처리량을 개선합니다. 또한, CPU의 메모리 대역폭이 GPU만큼 크지 않지만, GPU 메모리 부담을 줄여 더 많은 시퀀스를 동시에 처리할 수 있는 점이 주요한 이유입니다.

(2) 한계와 실용성

논문에서 다루지 않은 몇 가지 추가적인 측면도 고려할 필요가 있습니다:

  • 고성능 네트워크 의존성: GPU와 CPU 간 데이터 전송이 Infiniband와 같은 고성능 네트워크에 의존.
  • 작은 모델에서의 효율성: R-Part와 S-Part 간 부하 차이가 작으면 기존 방법론보다 효율성이 낮아질 가능성.
  • 비용-효율성 평가: CPU 클러스터 추가 사용으로 인한 비용 대비 성능 효율성에 대한 심층적 분석 필요.

종합 정리

논문의 FASTDECODE는 기존 LLM 서빙 시스템의 병목 문제를 창의적으로 해결하며 다음과 같은 결과를 도출:

  • GPU 메모리 부담 감소: KV-Cache를 CPU로 옮기면서 처리량 극대화.
  • 네트워크 병목 최소화: 전송 데이터 크기 최적화.
  • GPU와 CPU 간 협력 최적화: 작업 부하를 균형있게 분배하여 지연 시간 안정화.

이러한 혁신적인 접근 방식은 대규모 LLM의 실제 서빙 환경에서 매우 실용적일 가능성이 높으며, 특히 클라우드 기반 LLM 서빙에서 비용 절감과 처리량 증가라는 두 마리 토끼를 잡을 수 있는 잠재력을 제공합니다.

Q : 이 논문의 입력데이터와 추론 과정에 대해서 예시를 들어 아주 자세하게 설명해 주겠니? 추가적으로 모델아키텍처의 구성 및 모델을 구성하는 연산과 메모리 요구량 컴퓨팅 요구량 대해서도 설명해줘

A :

입력 데이터와 추론 과정

이 논문은 대규모 언어 모델(LLM)의 추론 과정에서 효율성을 극대화하는 시스템인 FASTDECODE를 제안합니다. 아래는 입력 데이터와 추론 과정의 예를 들어 자세히 설명합니다.


입력 데이터 예시

입력 데이터는 텍스트 생성과 같은 자연어 처리 작업에서 사용됩니다. 예를 들어:

  • 사용자 입력(prompt): “Once upon a time, in a small village,”
  • 목표: 문장의 다음 10개의 단어를 생성.

추론 과정 단계별 설명

1. Prefilling (초기화):
  • 입력된 문장을 Transformer 모델로 전달.
  • 모델의 Fully Connected Layers(S-Part)에서 각 토큰의 특징 벡터(embeddings)를 계산.
  • 계산 결과:
    • Qi, Ki, Vi: Attention 연산에 필요한 쿼리, 키, 값 벡터.
  • Qi, Ki, Vi는 CPU(R-Worker)로 전달되어 KV-Cache를 초기화.
2. Decoding (생성 과정):
  • 새로운 토큰을 하나씩 생성.
  • 매 생성 단계:
    1. GPU에서 S-Part 연산:
      • 최신 입력 토큰을 처리하여 Qi, Ki, Vi를 생성.
    2. CPU에서 R-Part 연산:
      • 이전 단계에서 저장된 KV-Cache(Ki, Vi)와 현재 Qi를 사용하여 Attention 연산 수행: [ A_i = \text{softmax}\left(Q_i \cdot K_j \, (j=1,…,i-1)\right) ]
      • 결과로 새로운 Oi 생성: [ O_i = \sum_{j=1}^{i-1} A_{ij} \cdot V_j ]
      • Oi를 GPU로 다시 전달.
    3. 다음 토큰 예측:
      • Oi는 GPU에서 Fully Connected Layer를 거쳐 다음 토큰 확률 분포로 변환.
      • 확률이 가장 높은 토큰을 선택하여 생성.
  • 반복: 목표 단어 개수(10개)가 생성될 때까지 위 과정을 반복.

모델 아키텍처 구성

1. Transformer 기본 구조

FASTDECODE가 사용하는 모델은 Transformer 기반으로 구성되며, 주요 구성 요소는 다음과 같습니다:

  • 입력 임베딩(Input Embedding):
    • 각 입력 토큰을 고차원 벡터로 변환.
  • Attention Layer (R-Part):
    • 쿼리(Qi), 키(Ki), 값(Vi) 벡터 간의 점곱(dot product) 연산으로 관심도를 계산.
  • Fully Connected Layers (S-Part):
    • Attention 결과(Oi)를 여러 선형 변환으로 처리.

2. KV-Cache의 역할

  • Attention Layer에서 생성된 Ki, Vi 벡터를 저장하여 이후 단계에서 재사용.
  • 추론 과정에서 모든 이전 토큰과의 상호작용을 효율적으로 계산하기 위한 메모리 최적화 기법.

모델 구성의 연산, 메모리 및 컴퓨팅 요구량

1. 연산 요구량 (Computational Requirements)

  • Attention 연산:
    • 각 토큰에서 이전 토큰들과의 점곱 계산.
    • 계산 복잡도: (\mathcal{O}(S^2 \cdot d)), (S)는 시퀀스 길이, (d)는 특징 벡터 크기.
  • Fully Connected Layers:
    • 특징 벡터의 선형 변환.
    • 계산 복잡도: (\mathcal{O}(S \cdot d^2)).

2. 메모리 요구량

  • KV-Cache:
    • 각 토큰의 KiVi 저장.
    • 메모리 크기: (2 \cdot S \cdot d \cdot b) (초기화 단계 이후 점점 증가).
    • 여기서 (b)는 배치 크기.

3. 컴퓨팅 요구량

  • GPU:
    • Fully Connected Layers(S-Part)의 연산을 처리.
    • 고도 병렬화된 연산 처리로 높은 FLOPs(Floating Point Operations per Second) 제공.
  • CPU:
    • Attention Layer(R-Part)와 KV-Cache 관리.
    • 메모리 접근 및 연산이 주를 이룸(메모리 대역폭 의존).

FASTDECODE의 주요 특성

  1. GPU 메모리 절약:
    • KV-Cache를 CPU 메모리에 저장하여 GPU 메모리 여유를 확보.
    • GPU는 Fully Connected Layers 연산에만 집중.
  2. 이질적 하드웨어의 효율적 활용:
    • GPU는 계산 집약적 작업(S-Part)을, CPU는 메모리 집약적 작업(R-Part)을 분리 처리.
    • 데이터 전송량 최소화를 위한 Qi, Ki, Vi만 전송.

결론

FASTDECODE는 LLM 추론에서 GPU와 CPU의 강점을 최적으로 결합한 아키텍처로, 메모리와 계산 병목을 해결합니다. 입력 데이터는 간단한 텍스트 문장이며, 이를 기반으로 GPU와 CPU가 협력하여 높은 처리량과 효율성을 달성합니다. 이러한 설계는 기존 방법론 대비 명확한 이점을 제공합니다.

Q : 이 논문의 한계를 극복하기 위한 방법으로 어떤 연구흐름이 있는지 정리해서 자세하게 설명해 줘

A :

이 논문의 한계를 극복하기 위한 연구 흐름은 FASTDECODE가 가진 제약점을 기반으로 새로운 설계 및 기술 개발을 통해 발전할 수 있습니다. 아래는 주요 한계와 이를 극복하기 위한 연구 흐름을 정리한 내용입니다.


1. 네트워크 통신 병목 문제

한계:

  • GPU와 CPU 간 데이터 전송은 고성능 네트워크(Infiniband 등)에 의존.
  • 데이터 전송 지연(latency) 및 대역폭 제한이 성능 병목으로 작용.

해결 방안과 연구 흐름:

  1. CXL(Compute Express Link) 활용:
    • CXL은 GPU와 CPU 간 저지연(high-bandwidth, low-latency)의 메모리 공유를 가능하게 하는 최신 기술.
    • 연구 흐름: CXL 기반 메모리 풀을 활용하여 KV-Cache를 GPU 메모리와 유사한 속도로 접근.
  2. 압축 및 양자화(Compression and Quantization):
    • GPU와 CPU 간 데이터 전송 시 Qi, Ki, Vi 벡터를 더 작게 압축하거나 양자화.
    • 연구 흐름: 네트워크 전송을 위한 최적의 실시간 압축 알고리즘 및 양자화 기술 개발.
  3. 전송 병렬화 및 비동기화:
    • S-Worker와 R-Worker 간 통신을 비동기 방식으로 설계하여 GPU 대기 시간을 최소화.
    • 연구 흐름: 데이터 전송을 연산과 겹치게 하여 통신 오버헤드를 상쇄하는 스케줄링 알고리즘.

2. 작은 모델에서의 비효율성

한계:

  • R-Part와 S-Part 간 작업량 차이가 작은 모델에서는 FASTDECODE의 이점이 줄어듦.
  • CPU의 계산 부담이 상대적으로 커져 효율이 떨어질 수 있음.

해결 방안과 연구 흐름:

  1. 작은 모델 최적화 알고리즘:
    • 작은 모델에서는 R-Part를 GPU로 다시 통합하거나, CPU 내에서도 병렬화를 극대화.
    • 연구 흐름: 모델 크기에 따라 CPU와 GPU 간 R-Part와 S-Part를 동적으로 재배치하는 알고리즘.
  2. 경량 모델용 FPGA 활용:
    • FPGA(Field-Programmable Gate Array)를 활용하여 KV-Cache 연산을 가속화.
    • 연구 흐름: FPGA를 R-Worker로 활용하는 하드웨어 설계 및 메모리 최적화 연구.
  3. 모델 아키텍처 변경:
    • Attention 연산의 비용을 줄이기 위해 Longformer 또는 Sliding Window Attention과 같은 구조 도입.
    • 연구 흐름: Attention 연산의 효율성을 높이는 새로운 Transformer 아키텍처 개발.

3. CPU 자원의 과도한 사용

한계:

  • CPU가 R-Part와 KV-Cache 관리에 많은 리소스를 소비.
  • CPU 사용이 제한적인 환경에서는 시스템 효율성이 떨어질 수 있음.

해결 방안과 연구 흐름:

  1. CPU 최적화:
    • R-Worker에서 FP16 연산, SIMD 명령어, 또는 AVX-512 등을 활용한 고성능 계산 수행.
    • 연구 흐름: CPU에서의 저비용 고성능 Attention 연산 알고리즘 개발.
  2. 다양한 하드웨어 자원 활용:
    • GPU, CPU 외에도 저비용 가속기(Domain-Specific Accelerators) 활용.
    • 연구 흐름: TPU나 ASIC(Application-Specific Integrated Circuit)을 KV-Cache 관리에 적용.
  3. 동적 CPU 자원 관리:
    • CPU 자원을 동적으로 할당하여 R-Worker가 특정 시점에서만 필요한 만큼만 계산 수행.
    • 연구 흐름: CPU 워크로드 예측 모델 및 동적 스케줄링 알고리즘 개발.

4. 배치 크기 증가로 인한 지연 시간 증가

한계:

  • 배치 크기를 늘리면 처리량은 증가하지만, 지연 시간이 커져 실시간 응답이 필요한 애플리케이션에 적합하지 않을 수 있음.

해결 방안과 연구 흐름:

  1. 지연 시간-처리량 균형 최적화:
    • 동적 배치 크기 조정(Dynamic Batching)을 통해 실시간 요청과 대규모 처리량 요구를 균형 있게 유지.
    • 연구 흐름: 실시간 및 비실시간 요청을 혼합 처리할 수 있는 배치 스케줄링 알고리즘 개발.
  2. Speculative Decoding:
    • 예측 기반 토큰 생성으로 일부 연산을 미리 수행하여 응답 속도 향상.
    • 연구 흐름: 토큰 예측 정확도를 높이기 위한 알고리즘 및 추론 파이프라인 설계.
  3. 하이브리드 배치 처리:
    • 긴 시퀀스와 짧은 시퀀스를 동시에 처리하여 전체 지연 시간을 균형 있게 분산.
    • 연구 흐름: 시퀀스 길이에 따른 배치 분할 및 혼합 스케줄링 연구.

5. 확장성 한계

한계:

  • FASTDECODE는 GPU와 CPU의 추가 확장을 통해 성능을 높일 수 있지만, 노드 간 네트워크 병목이 확장성을 제한.

해결 방안과 연구 흐름:

  1. 분산 아키텍처 최적화:
    • 노드 간 통신 병목을 줄이기 위해 P2P 네트워크 및 RDMA(Remote Direct Memory Access) 활용.
    • 연구 흐름: 노드 간 최적의 데이터 이동 경로 설계 및 데이터 배치 알고리즘.
  2. 다중 GPU 활용:
    • GPU를 S-Worker뿐 아니라 R-Worker에서도 활용해 계산 분산.
    • 연구 흐름: 다중 GPU 간 작업 분배 알고리즘과 상호 연결 최적화.
  3. 확장 가능한 KV-Cache 저장소:
    • 클라우드 기반 분산 메모리 시스템을 활용하여 KV-Cache를 확장 가능하도록 설계.
    • 연구 흐름: 클라우드 네이티브 환경에 적합한 메모리 분산 알고리즘.

종합 정리

FASTDECODE는 LLM 추론에서 획기적인 개선을 보여주지만, 일부 한계가 존재합니다. 이를 극복하기 위한 연구 흐름은 하드웨어 자원 활용 최적화, 새로운 알고리즘 개발, 그리고 지연 시간 및 처리량 최적화에 초점이 맞춰져 있습니다. 특히, 하드웨어와 소프트웨어의 통합 설계를 통해 이 시스템의 확장성과 효율성을 더욱 높일 수 있습니다.