XGrammar-2: Efficient Dynamic Structured Generation Engine for Agentic LLMs
XGrammar-2 는 동적 에이전트 LLM 워크로드를 위해 설계된 고효율 구조화 생성 엔진으로, 태그 트리거 구조 전환 및 교차 문법 캐시 재사용을 통해 기존 시스템 대비 6 배 이상 빠른 컴파일과 거의 제로에 가까운 엔드투엔드 오버헤드를 달성합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 AI(셰프) 가 되어 매우 엄격한 레시피를 따르려 한다고 상상해 보세요. 때로는 레시피가 단순합니다: "샌드위치를 만드세요." 하지만 AI 에이전트 세계에서는 레시피가 종종 복잡하고 끊임없이 변하는 일련의 지시사항입니다: "문장을 작성한 후, 날씨 도구를 호출하기 위해 JSON 코드 블록으로 전환하고, 다시 문장 작성으로 돌아간 다음, 데이터베이스 쿼리를 위한 특정 형식으로 전환하세요."
문제는 전통적인 "주방"(AI 엔진) 은 하나의 고정된 레시피를 따르는 데는 뛰어나지만, 레시피가 실시간으로 변경되거나 셰프가 수십 가지의 복잡한 형식 사이를 즉시 전환해야 할 때는 어려움을 겪는다는 점입니다. 종종 요리를 시작하기 전에 레시피 책 전체를 처음부터 다시 써야 하므로 모든 것이 느려집니다.
XGrammar-2는 이러한 혼란스럽고 역동적인 요리 시나리오를 위해 특별히 설계된 새롭고 초고효율의 주방 엔진입니다. 간단한 비유를 들어 작동 방식을 설명해 보겠습니다:
1. "마법 스위치"(TagDispatch)
문제: "STOP'이라는 단어가 나타날 때까지 정상적으로 작성하되, 그다음 수학 모드로 전환했다가 다시 돌아오라"는 레시피를 상상해 보세요. 구식 방법으로 이를 수행하는 것은 모든 가능한 단어가 다른 페이지로 이어지는 거대하고 엉킨 설명서를 작성하려는 것과 같습니다. 이는 지저분해지고 방대해집니다.
XGrammar-2 의 해결책: 그들은 TagDispatch라는 기능을 도입했습니다. 이를 마법 스위치나 교통 신호등으로 생각하세요.
- AI 는 정상적으로 작성합니다 (초록불).
- 특정 트리거(예:
<function=weather>태그) 가 나타나는 순간, 신호등은 즉시 빨간불로 바뀌고 엔진은 정확히 어떤 "하위 레시피"(날씨용 JSON 형식) 로 전환해야 하는지 파악합니다. - 해당 하위 레시피가 완료되면 신호등이 다시 초록불로 바뀌고 AI 는 정상 작성을 계속합니다.
- 왜 멋진가요: 거대하고 혼란스러운 설명서를 작성하는 대신, 엔진은 교통 신호등만 따릅니다. 이는 자유로운 텍스트와 엄격한 코드 사이의 전환을 즉각적이고 쉽게 만듭니다.
2. "공유 라이브러리"(Cross-Grammar Cache)
문제: 100 가지 다른 요리를 하고 있다고 상상해 보세요. 90 가지 요리는 정확히 같은 "양파 다지기" 단계를 사용하지만, 구식 엔진은 모든 요리를 완전히 새로운 작업으로 취급합니다. 이는 모든 요리마다 양파 다지는 법을 처음부터 다시 배우는 것입니다. 이는 시간 낭비입니다.
XGrammar-2 의 해결책: 그들은 공유 라이브러리(Cross-Grammar Cache)를 구축했습니다.
- 최종 요리 (전체 문법) 가 다르더라도 재료와 단계 (하위 구조) 는 종종 동일합니다.
- XGrammar-2 는 단계를 살펴봅니다. "아, 비슷한 요리를 위해 양파 다지는 법을 이미 알아냈구나"라고 생각하면 다시 계산하지 않습니다. 대신 라이브러리에서 미리 다진 양파를 가져옵니다.
- 왜 멋진가요: 엔진이 같은 계산을 반복하는 것을 막습니다. 전체 요청이 다르더라도 이미 수행한 "작업"을 재사용합니다.
3. "Just-in-Time" 셰프 (JIT 컴파일)
문제: 옛날에는 한 입도 요리하기 전에 엔진이 모든 요청에 대해 레시피 책 전체를 읽어야 했습니다. 레시피가 거대하다면 (500 가지 가능한 도구를 가진 도구 호출 요청처럼), 엔진은 요리가 시작되기 전까지 책 읽는 데 몇 초를 그냥 보내게 됩니다.
XGrammar-2 의 해결책: 그들은 Just-in-Time(JIT) 방식을 사용합니다.
- 먼저 책 전체를 읽는 대신, 셰프는 지금 필요한 페이지만 읽습니다.
- AI 가 처음 몇 단어를 생각하는 동안 ("prefill" 단계), 엔진은 조용히 레시피의 다음 몇 페이지를 준비합니다.
- 왜 멋진가요: 준비 시간을 숨깁니다. AI 가 다음 단어를 말 할 준비가 되면, 엔진은 이미 다음 단계를 준비해 둡니다. 이로 인해 복잡한 작업에서도 "첫 번째 단어"가 거의 즉시 나타납니다.
4. "압축된 지도"(Repetition State Compression)
문제: 일부 레시피에는 "이 동작을 1,000 번 반복하라"는 반복적인 단계가 있습니다. 구식 엔진은 각 단계마다 1,000 개의 별도 점을 그리는 지도를 그리려 합니다. 이 지도는 거대해지고 모든 것을 느리게 만듭니다.
XGrammar-2 의 해결책: 그들은 Repetition State Compression을 사용합니다.
- 1,000 개의 점을 그리는 대신, 하나의 큰 "루프" 화살표를 그리고 "여기를 1,000 번 돌아라"고 말합니다.
- 왜 멋진가요: AI 가 단계를 반복해야 하는 횟수에 상관없이 지도를 작고 간단하게 유지합니다. 이로 인해 엔진이 긴 목록이나 루프에 매몰되는 것을 방지합니다.
결과: 무엇을 발견했나요?
이 논문은 이 새로운 엔진을 현재 가장 좋은 방법들과 비교하여 테스트했습니다:
- 속도: 이전 엔진보다 레시피(문법) 를 6 배 더 빠르게 컴파일합니다.
- 효율성: AI 응답 시간에 거의 지연이 추가되지 않습니다. AI 가 그 존재조차 느끼지 못할 정도로 빠릅니다.
- 호환성: SGLang 및 vLLM 과 같은 인기 있는 AI 시스템과 원활하게 작동하며, 도구 호출이나 엄격한 응답 형식 따르기 같은 복잡한 작업을 문제없이 처리합니다.
요약하자면, XGrammar-2는 질문에 답하기 전에 모든 책을 다시 정리해야 하는 느리고 경직된 사서에서, 정답이 어디에 있는지 정확히 알고 이전 지식을 재사용하며 리듬을 잃지 않고 즉각적으로 주제를 전환하는 초고속 유연한 비서로 AI 의 두뇌를 업그레이드하는 것과 같습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.