← 최신 논문
🤖 AI

Accelerating Constrained Decoding with Token Space Compression

본 논문은 제약된 디코딩의 계산 오버헤드를 크게 줄여 복잡한 문맥 자유 문법에 대한 전체 생성 시간을 최대 7.5 배 가속화하는 오프라인 토큰 공간 압축 기법인 CFGzip 을 소개합니다.

원저자: Michael Sullivan, Alexander Koller

게시일 2026-05-29
📖 4 분 읽기☕ 가벼운 읽기

원저자: Michael Sullivan, Alexander Koller

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

매우 재능이 있지만 약간 혼란스러운 요리사 (LLM) 가 거의 모든 요리를 할 수 있다고 상상해 보세요. 하지만 여러분은 매우 엄격하고 복잡한 레시피 (Context-Free Grammar 또는 CFG) 를 따르는 요리를 준비해달라고 요청합니다. 이는 특정 프로그래밍 언어나 정확한 데이터 형식과 같습니다.

요리사가 잘못된 재료를 추측하면 요리 전체가 망쳐집니다. 이를 방지하기 위해 여러분은 엄격한 문법 엔진 (수석 요리사나 식품 안전 검사관과 같은) 을 고용하여 요리사 옆에 서게 합니다. 요리사가 재료를 추가하기 전에 검사관은 전체 식료품 저장고를 확인하여 그 특정 재료가 레시피의 이 정확한 단계에서 허용되는지 점검합니다.

문제: "식료품 저장고"가 너무 큽니다

문제는 요리사의 식료품 저장고 (토크 어휘) 가 거대하여 수만 가지의 서로 다른 재료 (단어, 기호, 코드 조각) 를 포함하고 있다는 점입니다.

요리사가 하나의 재료를 추가할 때마다 검사관은 그 특정 항목이 유효한지 확인하기 위해 전체 식료품 저장고를 훑어봐야 합니다. 간단한 레시피 (JSON 데이터 등) 의 경우 이는 빠릅니다. 하지만 복잡한 레시피 (C++ 코드나 "Bython"이라는 가상의 언어 등) 의 경우 검사관이 압도당하게 됩니다. 너무 많은 가능성을 확인해야 하므로 요리 과정이 극적으로 느려집니다. 때로는 정상보다 2 배에서 10 배 더 오래 걸리기도 합니다. 이 논문은 이를 "해결하기 어려운 높은 오버헤드"라고 부릅니다.

해결책: CFGZIP ("그룹화" 트릭)

저자들은 CFGZIP이라는 새로운 도구를 소개합니다. CFGZIP 은 검사관으로 하여금 식료품 저장고의 모든 재료를 확인하게 하는 대신, 요리가 시작되기 전에 식료품 저장고를 재구성합니다.

다음은 유추입니다:

  1. 재료 그룹화: CFGZIP 은 식료품 저장고를 살펴보고 레시피의 목적상 많은 재료가 상호 교환 가능하다는 것을 깨닫습니다. 예를 들어, 특정 코드 레시피 부분에서 if, else, while이라는 단어들이 문법적으로 모두 같은 방식으로 작용할 수 있습니다. 또는 다른 맥락에서는 숫자 1, 2, 3 이 모두 유효한 자리표시자로 작용할 수 있습니다.
  2. "대표" 버킷 생성: CFGZIP 은 이러한 상호 교환 가능한 재료를 버킷으로 그룹화합니다. 각 버킷에서 하나의 "대표" 재료를 선택하여 (보통 가장 짧은 것) 전체 그룹을 대신하게 합니다.
  3. 새로운 워크플로우:
    • 요리 전 (오프라인): 시스템이 식료품 저장고를 이러한 버킷으로 분류하는 어려운 작업을 수행합니다. 이는 한 번만 수행되고 저장됩니다.
    • 요리 중 (추론): 요리사가 재료를 선택하면 시스템이 이를 버킷의 "대표" 재료로 빠르게 교체합니다. 검사관은 전체 식료품 저장고가 아닌 대표 재료만 레시피와 비교하여 확인하면 됩니다.
    • 결과: 검사관이 이제 거대한 원래 식료품 저장고가 아닌 작은 대표 목록만 확인하므로 과정이 놀라울 정도로 빨라집니다.

이것이 중요한 이유

이 논문은 최상급 문법 엔진 (XGrammar2) 과 CFGZIP 을 함께 사용하면 막대한 속도 향상을 이룬다고 주장합니다:

  • 지연 시간 감소: 규칙을 확인하는 데 걸리는 시간이 10 배에서 100 배 (두 자릿수) 줄어듭니다.
  • 전체 속도 향상: 복잡한 작업의 경우 텍스트 생성 전체 과정이 7.5 배 빨라집니다.
  • 품질 손실 없음: 이는 "손실 없는" 압축입니다. 최종 출력물은 속도 향상 없이 얻은 결과와 바이트 단위로 완전히 동일합니다. 요리사는 여전히 정확히 같은 완벽한 요리를 만들어내지만, 훨씬 더 빠르게 도달했을 뿐입니다.

논문에서 나온 실제 결과

연구자들은 세 가지 다른 AI 모델 (Llama, Qwen, GPT) 과 네 가지 다른 작업에 대해 이를 테스트했습니다:

  1. JSON 및 XML: 표준 데이터 형식.
  2. C++: 복잡한 프로그래밍 언어.
  3. Bython: 가상의 제작된 프로그래밍 언어 (공백 대신 중괄호와 세미콜론을 사용하는 Python 과 유사).

결과:

  • 표준 형식 (JSON) 의 경우, 해당 규칙이 이미 단순하기 때문에 속도 향상은 좋지만 혁신적이지는 않았습니다.
  • 복잡하고 낯선 언어 (C++ 및 Bython 등) 의 경우 차이가 컸습니다. CFGZIP 없이는 문법 엔진이 너무 느려 AI 가 이러한 작업에 사실상 사용할 수 없게 되었습니다. CFGZIP 을 사용하면 AI 는 복잡하고 정확한 코드를 빠르게 생성할 수 있었습니다.
  • 흥미롭게도 AI 가 한 번도 본 적이 없는 "Bython" 작업의 경우, 이 제약 방법을 사용하면 AI 의 작동 코드 작성 능력이 2.3% 에서 46.9% 로 향상되었습니다 (하나의 모델 기준). 이는 작업이 어려울 때 엄격한 규칙이 AI 에게 도움이 된다는 것을 증명합니다.

함정 (한계점)

이 논문은 하나의 주요 한계를 지적합니다: 준비 시간.
식료품 저장고를 버킷으로 분류하는 작업 (오프라인 사전 계산) 은 시간이 걸립니다.

  • 일회성 빠른 작업으로 JSON 파일을 생성해야 하는 경우, 식료품 저장고를 분류하는 데 걸리는 시간이 단순히 작업을 수행하는 시간보다 더 길 수 있습니다.
  • 그러나 대규모 코드 생성을 수행하거나 동일한 복잡한 규칙을 반복적으로 사용하는 경우, 초기 설정 시간은 가치가 있습니다. 왜냐하면 요리 (생성) 가 훨씬 더 빨라지기 때문입니다.

요약

CFGZIP은 여러분이 도착하기 전에 거대한 도서관을 "주제 버킷"으로 재구성하는 똑똑한 사서와 같습니다. 올바른 책을 찾기 위해 모든 책을 검색하는 대신, 사서는 여러분을 "주제 버킷" 대표에게 안내할 뿐입니다. 이는 올바른 정보 (이 경우 올바른 코드 생성) 를 찾는 것을 단 하나의 책도 잃거나 이야기를 바꾸지 않고 극적으로 빠르게 만듭니다.

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

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

Digest 사용해 보기 →