← 최신 논문
🤖 machine learning

FlashTrie: A GPU-Accelerated Constrained Beam Search for Generative Retrieval

FlashTrie는 비트 압축 트라이 레이아웃과 협력적 CUDA 커널을 채택하여 CPU 병목 현상을 제거함으로써 생성적 검색을 위한 제약된 빔 서치를 최적화하는 GPU 가속 시스템으로, 대규모 상업적 검색 애플리케이션에서 최대 24배의 속도 향상과 0.71%의 매출 증대를 달성했습니다.

원저자: Dakshitha Anandakumar, Anurag Mukkara, Wenxiang Hu, Jiusheng Chen, M Akash Kumar, Ting Ye, Qiang Lou, Jian Jiao

게시일 2026-07-14
📖 4 분 읽기☕ 가벼운 읽기

원저자: Dakshitha Anandakumar, Anurag Mukkara, Wenxiang Hu, Jiusheng Chen, M Akash Kumar, Ting Ye, Qiang Lou, Jian Jiao

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 방금 들은 질문을 바탕으로 비밀 코드(예: "DocID: 4592")의 목록을 작성하려고 노력하는 아주 똑똑한 로봇이라고 상상해 보세요. 하지만 함정이 하나 있습니다. 당신은 오직 8억 개의 유효한 항목이 들어 있는 거대하고 사전 승인된 전화부 속에 실제로 존재하는 코드만 작성할 수 있습니다. 만약 전화부에 없는 코드를 추측하면 실패하게 됩니다.

오랫동안 로봇들은 매우 빠르고 조직적인 사서(표준 컴퓨터 칩 또는 CPU에서 실행되는)에게 모든 추측치를 확인해 달라고 요청하며 이 작업을 수행해 왔습니다. 하지만 추측 리스트가 늘어남에 따라 사서는 과부하 상태에 빠졌습니다. 전화부를 확인하는 과정이 교통 체증처럼 변해 속도를 늦추게 된 것입니다. 로봇은 자신의 추측이 허용되는지 확인하기 위해 한 단계씩 줄을 서서 기다려야 했습니다.

여기 FlashTrie가 등장합니다. Microsoft와 Nvidia의 연구진은 사서를 해고하고, 8억 개의 항목이 담긴 전화부 전체를 로봇의 초고속 고성능 메모리(GPU)로 직접 옮기기로 결정했습니다. 하지만 그들은 단순히 책을 옮긴 것이 아니라, 그 구조를 새로 만들었습니다.

"비트 패킹(Bit-Packed)" 전화부의 마법

기존의 전화부를 모든 책이 넓고 빈 공간이 많은 큰 방에 보관되어 있는 거대한 도서관이라고 생각해 보세요. FlashTrie는 이 책들을 압축합니다. 이들은 "비트 압축(bit compression)"이라는 영리한 기술을 사용하여 정보를 꽉 짜내어, 마치 여행 가방을 효율적으로 싸는 것처럼 8억 개의 키워드를 단 3.1 GB의 공간 안에 밀어 넣습니다. 이 용량은 로봇의 고속 메모리 안에 완전히 들어갈 만큼 작기 때문에, 느린 외부 하드 드라이브에서 페이지를 가져오느라 기다릴 필요가 없습니다.

협력적인 댄스

기존 시스템에서는 로봇이 추측을 하고, 사서에게 확인을 요청하고, 답변을 기다린 다음, 다시 다른 추측을 하고 이를 반복했습니다. 이는 외롭고 순차적인 과정이었습니다.

FlashTrie는 게임의 판도를 바꿉니다. 이 시스템은 **512명의 무용수(스레드)**가 완벽한 싱크로 맞춰 함께 춤을 추는 거대한 댄스 플로어와 같은 "협력적 CUDA 커널(cooperative CUDA kernel)"을 사용합니다.

  • 확장(The Expansion): 한 사람이 하나의 추측을 확인하는 대신, 수백 명의 무용수가 동시에 수천 개의 추측을 확인합니다.
  • 검증(The Validation): 이들은 "병렬 이진 탐색(parallel binary search)"(무언가를 찾는 매우 빠른 방법)을 사용하여 추측이 전화부와 일치하는지 확인합니다.
  • 가지치기(The Pruning): 만약 추측이 잘못되었다면 즉시 버립니다. 만약 올바르다면 유지합니다.

모든 일이 (데이터를 가져오기 위해) 메인 컴퓨터(CPU)와 대화하기 위해 멈출 필요 없이 댄스 플로어(GPU) 위에서 일어나기 때문에 과정이 믿을 수 없을 정도로 빨라집니다.

결과: 속도와 지능

연구진은 8억 개의 키워드 라이브러리를 대상으로 테스트를 진행했습니다.

  • 속도: 추측의 수("빔 폭", beam width)를 1,000까지 늘렸을 때, 기존 CPU 시스템은 약 **46 밀리초(ms)**가 걸렸고 리스트가 늘어남에 따라 더 느려졌습니다. 반면 FlashTrie는 시간을 3 밀리초 미만으로 유지했습니다(구체적으로 평균은 1.91 ms였고, 가장 느린 상위 1%도 3.31 ms 미만이었습니다).
  • 성능 향상: 이는 FlashTrie가 고도로 최적화된 CPU 버전보다 최대 24배 더 빠름을 의미합니다.
  • 품질: 결정적으로, 빨라졌다고 해서 정확도가 떨어지는 것은 아니었습니다. FlashTrie는 느린 시스템만큼이나 많은 정확한 코드를 찾아냈습니다. 사실, FlashTrie는 매우 빠르기 때문에 시간 제한을 어기지 않으면서도 기존의 200개 대신 600개의 추측을 확인할 수 있었습니다.

실질적인 영향: 돈 테스트

연구진은 단순히 실험실에서만 테스트하지 않았습니다. 그들은 실제 상용 검색 엔진(당신이 인터넷에서 무언가를 찾을 때 사용하는 것과 같은 종류)에서 FlashTrie를 테스트했습니다. 그들은 여러 국가에서 16일 동안 실험을 수행했습니다.

  • 검색 엔진이 더 많은 추측을 확인하도록 FlashTrie를 사용함으로써, 더 나은 광고를 보여주었습니다.
  • 이는 광고 수익(매출)의 0.71% 증가로 이어졌습니다.
  • 또한 영어 쿼리에 대해서는 클릭률이 0.17%, 비영어 쿼리에 대해서는 0.20% 증가했습니다.
  • 중요한 점은, 광고의 품질이 떨어지지 않았다는 것입니다. "결함률(defect rate, 잘못된 광고가 노출되는 비율)"은 동일하게 유지되었습니다.

FlashTrie가 아닌 것

이 논문이 여기서 작동하지 않거나 필요하지 않다고 명시한 부분들을 주목하는 것이 중요합니다. 연구진은 기존 방식의 "포인터 기반(pointer-based)" 라이브러리를 GPU에서 사용하는 것은 너무 혼란을 주고 무용수들의 속도를 늦히기 때문에 명시적으로 배제했습니다. 또한, 데이터 구조를 재설계(예: "선형 조사(Linear-probe)" 방식)하지 않고 단순히 기존 시스템을 GPU로 옮기기만 하는 것은 그들의 새로운 방식보다 71배에서 209배 더 느릴 것임을 보여주었습니다. 속도 향상은 단순히 더 빠른 하드웨어를 사용했기 때문이 아니라, 전화부와 댄스를 설계하는 특정한 디자인 덕분입니다.

결론

FlashTrie는 속도와 정확성 사이에서 하나를 선택할 필요가 없다는 것을 증명합니다. "전화부"를 저장하는 방식과 "확인"이 일어나는 방식을 재설계함으로써, 그들은 느리고 순차적인 병목 현상을 번개처럼 빠른 병렬 파티로 바꾸었습니다. 이를 통해 로봇은 실시간 인터넷 검색에 필요한 엄격한 시간 제한을 준수하면서도, 더 크게 생각하고(더 많은 옵션 확인) 더 빠르게 생각할 수 있게 되었습니다. 이 시스템의 코드는 검토 과정이 끝난 후 공개될 예정이므로, 다른 이들도 이 새로운 검색 방식을 시도해 볼 수 있습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →