xGR: Efficient Generative Recommendation Serving at Scale
본 논문은 엄격한 저지연 제약 조건 하에서 현저히 높은 처리량을 달성하기 위해 통합된 단계별 연산, 조기 정렬 종료, 그리고 다단계 파이프라인 병렬화를 통해 생성형 추천 워크로드를 최적화하는 특화된 서빙 시스템인 xGR을 제시한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 수백만 명의 사람들에게 다음 읽을 책, 볼 영화, 혹은 살 제품을 제안하는 거대하고 빠른 디지털 도서관(추천 시스템)을 운영하고 있다고 상상해 보십시오. 수년 동안 이 도서관은 '필터링' 방식을 사용했습니다. 즉, 거대한 책 더미를 가져와 단계별로 나쁜 것들을 버린 뒤, 마지막에 짧은 목록을 보여주는 방식이었습니다.
최근에는 **생성형 추천(Generative Recommendation, GR)**이라는 새로운 방식이 등장했습니다. 이 방식은 필터링을 하는 대신, 당신의 전체 인생 이야기(클릭과 시청 기록)를 읽고 나서 당신만을 위한 완벽한 추천을 처음부터 직접 써 내려가는 창의적인 작가처럼 행동합니다.
문제는 이 새로운 '작가'가 동시에 수천 명의 사람들이 책을 요청할 때 매우 느리다는 점입니다. 논문은 이 작가가 혼잡한 시간대에도 땀 한 방으로 해결할 수 있을 만큼 충분히 빨라지도록 설계된 새로운 시스템인 xGR을 소개합니다.
xGR이 세 가지 골칫거리를 어떻게 해결하는지 쉬운 비유를 통해 설명해 드리겠습니다.
1. "공통된 이야기" 문제 (메모리 낭비 해결)
문제점: 128명의 서로 다른 사람들(빔, beams)이 모두 동일한 이야기의 다음 내용을 써달라고 작가에게 요청하고 있다고 상상해 보십시오. 기존 시스템에서는 작가가 이 이야기의 첫 1,000페이지를 각 사람을 위해 128번 따로 읽어야 했습니다. 이는 사서가 같은 책을 가져오기 위해 128번이나 똑같은 서가로 달려가서 통로를 막히게 하는 것과 같습니다.
xGR의 해결책: xGR은 모든 사람이 이야기의 동일한 앞부분을 읽고 있다는 사실을 깨닫습니다. xGR은 그 첫 부분을 단 한 번만 로드하는 **"공유 독서실(Shared Reading Room)"**을 만듭니다. 그런 다음, 각자에게 필요한 고유한 결말을 위한 별도의 작은 책상들을 배치합니다.
- 결과: 사서는 더 이상 왔다 갔다 하며 뛰어다니지 않습니다. 시스템은 엄청난 양의 메모리와 시간을 절약하여 더 많은 사람을 동시에 처리할 수 있게 합니다.
2. "정렬의 혼란" 문제 (검색 속도 저하 해결)
문제점: 최고의 추천을 찾기 위해 작가는 여러 가지 가능한 결말을 생성하고, 그중 최상위 항목을 뽑기 위해 정렬 과정을 거쳐야 합니다. 기존 방식에서 작가는 존재하지 않는 결말(예: 실제 제품이 아닌 "12345"라는 제목의 책)까지 포함하여 모든 가능한 결말을 생성한 뒤, 이를 버리는 데 시간을 낭비했습니다. 이는 마치 요리사가 1,000인분의 식사를 준비했는데, 알고 보니 500인분이 플라스틱으로 만들어져 있어서 결국 플라스틱을 치우는 데 시간을 쓰는 것과 같습니다.
xGR의 해결책:
- "유효 경로(Valid Path)" 필터: 작가가 요리를 시작하기 전에, xGR은 그들에게 오직 진짜 재료(실제 제품) 목록만을 제공합니다. 따라서 실수로 플라스틱 식사를 만들 일이 없습니다.
- "조기 종료(Early Stop)" 규칙: 작가는 식사를 정렬하기 시작합니다. 그러다 이미 찾아낸 가장 좋은 식사보다 확실히 품질이 떨어지는 식사를 발견하는 즉시, 해당 옵션에 대한 확인을 즉시 중단합니다. 나쁜 옵션들을 끝까지 정렬하며 시간을 낭비하지 않습니다.
- 결과: 요리사는 가짜 재료에 시간을 낭비하지 않으며, 나쁜 요리를 중간에 확인하는 일을 멈춥니다.
3. "조립 라인" 문제 (스케줄링 지연 해결)
문제점: 기존 시스템에서 매니저(스케줄러)는 재료를 준비하여 요리사에게 전달하고, 요리사가 끝날 때까지 기다렸다가 그 후에 다음 배치를 준비했습니다. 모두가 기다리며 서 있는 상태였습니다. 또한 주방이 너무 좁아서 여러 명의 요리사가 사용 가능함에도 불구하고 한 번에 한 명의 요리사만 일할 수 있었습니다.
xGR의 해결책: xGR은 주방을 고속 조립 라인으로 바꿉니다.
- 업무 중첩(Overlapping Work): 요리사가 현재의 요리를 만드는 동안, 매니저는 이미 다음 요리를 위한 재료를 준비하고 있습니다. 이 일들은 동시에 일어납니다.
- 다중 스트림 요리(Multi-Stream Cooking): 한 명의 요리사가 하나의 큰 주문을 처리하는 대신, xGR은 서로 부딪히지 않고 여러 명의 요리사가 동시에 다양한 주문의 각 부분을 요리할 수 있도록 업무를 분할합니다.
- 결과: 주방은 멈추지 않고 계속 돌아갑니다. 주문 사이에 대기 시간이 발생하지 않습니다.
핵심 요약
논문은 실제 대규모 이커머스 플랫폼의 데이터를 사용하여 xGR을 테스트했습니다. 연구 결과, 엄격한 시간 제한(시스템이 200밀리초 이내에 응답해야 하는 상황) 하에서 xGR은 기존의 가장 우수한 시스템들보다 최소 2.89배 더 빨랐습니다.
이는 컴퓨터 칩을 더 빠르게 만든 것이 아니라, 공통된 이야기 부분을 공유하고, 불가능한 옵션을 조기에 걸러내며, 주방 인력이 유휴 상태로 머물지 않도록 함으로써 업무 방식을 재구성하여 달성한 결과입니다. 이를 통해 시스템은 가장 붐비는 쇼핑 시간대에도 수억 명의 사용자에게 원활하게 서비스를 제공할 수 있습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.