mlc-ai/xgrammar

Fast, Flexible and Portable Structured Generation

XGrammar – LLM을 위한 구조화 생성 엔진

무엇인가요 – XGrammar은 대규모 언어 모델(LLM)이 주어진 구조(예: JSON, 정규 표현식, 사용자 정의 문맥 자유 문법 등)에 엄격히 부합하는 출력을 생성할 수 있도록 해주는 오픈소스 라이브러리입니다. 이는 제약 있는 디코딩을 통해 거의 지연 없이 100%의 구조적 정확성을 보장합니다.

왜 중요한가요 – 많은 AI 애플리케이션은 신뢰할 수 있고 기계가 읽을 수 있는 출력(예: JSON을 반환하는 API, 계획 템플릿을 따라야 하는 에이전트, 코드 스니펫을 생성하는 도구 등)이 필요합니다. 기존의 LLM 디코딩은 잘못된 형식의 텍스트를 생성할 수 있어, 후처리나 재시도가 필요합니다. XGrammar은 정확성 보장을 생성 단계로 이동시켜 시간을 절약하고 버그를 줄입니다.

주요 기능

  • 오버헤드 없는 JSON 생성 – 일반 텍스트 생성과 비교해 거의 '제로' 수준의 추가 비용으로 벤치마크됨.
  • 일반 CFG 지원 – 임의의 문맥 자유 문법을 제공 가능하며, 사용자 정의 형식, 정규 표현식 기반 제약, 도메인 특화 언어 구현이 가능합니다.
  • 크로스 플랫폼 및 크로스 하드웨어 – Linux, macOS, Windows에서 작동하며 CPU, NVIDIA/AMD GPU, Apple Silicon, TPU 등에서 실행 가능합니다.
  • 다중 언어 API – Python(주요 언어), C++, JavaScript, Swift에 공식 바인딩 제공.
  • 광범위한 모델 호환성 – Qwen, Llama, DeepSeek, Phi, Gemma 등 다양한 모델에서 테스트 완료.
  • 주요 추론 엔진과 즉시 통합 – vLLM, SGLang, TensorRT-LLM, MLC-LLM 등에서 기본 구조화 생성 백엔드로 사용됨.

일반적인 사용 사례

시나리오 XGrammar의 도움
JSON을 반환하는 API 서비스 별도의 검증기 없이 응답이 유효한 JSON임을 보장.
계획이나 스크립트를 따라야 하는 에이전트형 LLM 계획을 CFG로 인코딩하면, 모델은 문법적으로 올바른 계획만 출력 가능.
자유 형식 텍스트에서의 데이터 추출/변환 원하는 필드에 대한 정규 표현식 또는 문법을 정의하면 추출이 결정론적으로 이루어짐.
언어별 구문 규칙을 가진 코드 생성 언어 문법을 제공하면 모델이 괄호 불일치나 키워드 누락을 전혀 생성하지 않음.

빠른 시작 (Python)

pip install xgrammar            # 기본 설치
pip install "xgrammar[metal]"   # Apple Silicon용 옵션 Metal 지원
import xgrammar as xgr
# 예시: 고정 스키마를 가진 JSON 객체 생성
grammar = xgr.JSONGrammar({"name": "string", "age": "int"})
result = xgr.generate(model, grammar, prompt="사용자 프로필을 알려주세요")
print(result)  # 항상 유효한 JSON

자세한 문서, 설치 가이드, 코드 예제는 https://xgrammar.mlc.ai/docs/ 에 있습니다.

생태계 통합

  • vLLM, SGLang, TensorRT-LLM, MLC-LLM – 이 추론 런타임들의 기본 구조화 생성 백엔드로 XGrammar이 채택됨.
  • Rust 바인딩 – 커뮤니티 유지 관리 xgrammar-rs를 통해 Rust 프로젝트에 사용 가능.
  • 산업계 채택 – NVIDIA, Meta, Google, DeepSeek, Databricks, Modular, Perplexity 등 다양한 기업 제품에 통합됨.

릴리스 및 거버넌스

  • 릴리스는 GitHub에서 버전 관리되며 PyPI에 게시됨 (예: xgrammar==0.2.7).
  • CODE_OF_CONDUCT, CONTRIBUTING 가이드, GOVERNANCE.md를 포함한 오픈 거버넌스 모델을 따름. 유지보수자 및 의사결정 프로세스 명시.

라이선스

  • Apache License 2.0 – 자유로운 확장성과 상업적 이용에 적합한 오픈소스 라이선스.

커뮤니티 및 인용

  • 커뮤니티 – GitHub에서의 논의, DeepWiki 배지, 점점 늘어나는 협업자 목록.
  • 인용 – 연구에 사용할 경우, 2024년 ML Systems 논문과 2026년 ACM 컨퍼런스 논문을 인용하세요 (BibTeX는 README 참조).

XGrammar는 속도를 희생하지 않고 신뢰할 수 있는 구조화 출력이 필요한 LLM 기반 시스템을 구축하는 모든 사람에게 실용적인 도구입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트