More GPUs or a Smaller Cache? Tensor Parallelism versus KV Compression for Memory-Bound LLM Serving
이 논문은 메모리 제한적인 LLM 서빙에 있어 KV 압축이 텐서 병렬 처리보다 일관되게 더 우수한 비용 대비 용량 비율을 제공하며, 텐서 병렬 처리는 모델이 장치 메모리 한계를 초과할 때만 필요할 뿐 작은 모델의 지연 시간이나 비용 효율성을 개선하는 데는 실패한다는 점을 입증한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
대규모 언어 모델이 긴 대화를 유지하거나 방대한 문서를 처리하도록 요청받을 때, 모델은 단순하지만 고집스러운 물리적 한계인 메모리 문제에 직면합니다. 모델은 답변의 일관성을 유지하기 위해 자신이 말하고 들은 모든 내용을 '캐시'라고 불리는 컴퓨터 메모리의 특수 영역에 실행 기록으로 남겨두어야 합니다. 만약 대화가 너무 길어지거나 동시에 너무 많은 사람이 질문을 던지면, 이 캐시는 넘쳐흐르게 되고 시스템은 충돌합니다. 서비스를 계속 운영하기 위해 엔지니어들은 전통적으로 두 가지 뚜로 다른 전략에 의존해 왔습니다. 한 가지 접근 방식은 더 많은 컴퓨터 칩을 구매하여, 여러 개의 강력한 프로세서가 일제히 작동하며 메모리 부하를 분산시키는 것입니다. 다른 방식은 대화 자체의 메모리 점유율을 줄이는 것으로, 약간의 정밀도를 희생하더라도 데이터를 압축하는 영리한 수학적 기법을 사용하여 단일 칩에 맞도록 만드는 것입니다. 수년 동안 이 두 전문가 집단은 각자의 세계에서 활동하며, 자신들이 내놓은 해결책의 실제 비용을 서로 비교하는 일이 거의 없었습니다.
새로운 연구는 이 두 가지 접근 방식을 한자리에 모아, 시스템을 운영하는 사람들에게 실제로 어느 쪽이 더 저렴한지를 확인했습니다. 실제 하드웨어에 맞춰 조정된 시뮬레이션을 활용한 연구진은, 데이터를 압축하는 것이 더 나은 거래가 되는 지점, 즉 칩을 추가하는 것이 압축하는 것보다 더 유리해지는 임계점을 찾고자 했습니다. 그들은 인기 있는 오픈 소스 모델과 다양한 유형의 하이엔드 컴퓨터 칩을 사용하여 여러 구성을 테스트했으며, 생성된 백만 단어당 비용을 응답 속도와 함께 측정했습니다. 결과는 놀라웠습니다. 조사된 모든 시나리오에서 임계점은 존재하지 않았습니다. 모든 경우에 있어 데이터를 압축하는 것이 더 많은 하드웨어를 추가하는 것보다 훨씬 더 저렴했습니다. 메모리 완화가 더 많이 필요할수록 비용 격차는 더 커졌으며, 압축 방식은 단순히 칩을 더 사는 것보다 최대 거의 두 배에 달하는 절감 효과를 제공했습니다.
이 연구는 질문 자체가 이러한 시스템이 실패하는 방식에 대한 오해를 바탕으로 하고 있음을 밝혀냈습니다. 연구진은 작은 규모의 모델의 경우, 대화 길이만으로는 메모리 한계에 도달하는 경우가 드물다는 것을 발견했습니다. 표준적인 하이엔드 칩에서 실행되는 70억 개의 파라미터를 가진 모델은, 공간이 부족해지기 전에 가능한 최대 대화 길이를 충분히 감당할 수 있습니다. 진짜 장벽은 대화가 얼마나 긴가가 아니라, 모델 자체가 얼마나 큰가 하는 점입니다. 모델의 핵심 지침인 '가중치(weights)'가 단일 칩에 들어갈 만큼 충분히 작지 않다면, 압축은 아무런 도움이 되지 않습니다. 왜냐하면 압축은 대화 기록만을 줄일 뿐, 모델의 '뇌'를 줄이지는 못하기 때문입니다. 이런 경우, 칩을 추가하는 것은 선택의 문제가 아니라, 시스템을 작동시키기 위한 유일한 방법입니다. 이는 명확한 경계선을 만듭니다. 만약 모델이 하나의 칩에 들어갈 정도로 충분히 작다면, 압축이 더 우월하고 저렴한 옵션입니다. 반면 모델이 너무 크다면 칩을 추가하는 것이 필수적이며, 이 경우 압축은 하드웨어가 갖춰진 후 더 많은 사용자를 처리하기 위한 보조적인 도구가 됩니다.
연구진은 또한 이 두 전략이 구매하는 대상이 서로 다르다는 점을 발견했습니다. 칩을 추가하는 것은 시스템을 더 빠르게 만들어, 답변을 시작하는 시간과 각 단어를 생성하는 시간을 단축합니다. 그러나 데이터를 압축하는 것은 컴퓨터가 압축된 정보를 해제하기 위해 더 많이 작업해야 하고, 이제 처리할 수 있게 된 더 많은 사용자가 교통 체증을 유발하여 응답을 지연시키기 때문에 시스템을 더 느리게 만듭니다. 압축을 통해 하드웨어 비용 1달러당 약 16배 더 많은 동시 접속 사용자를 지원할 수 있는 반면, 칩을 추가하는 것은 훨씬 더 많은 비용을 들여도 그 용량을 아주 적은 폭으로만 늘릴 뿐입니다. 연구는 가장 효율적인 경로가 먼저 모델이 하나의 칩에 들어가는지 여부를 결정하는 것이라고 결론짓습니다. 만약 모델이 칩에 들어간다면, 더 많은 사람에게 저렴하게 서비스를 제공하기 위해 데이터를 압축하십시오. 만약 그렇지 않다면, 시스템을 실행 가능하게 만들기 위해 필요한 칩을 추가한 다음, 그 하드웨어가 지원할 수 있는 사용자 수를 극대화하기 위해 데이터를 압축하십시오. 두 방법의 비용이 같아지는 중간 지점이 있다는 생각은 이 시뮬레이션의 실제 세계에서는 존재하지 않습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.