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 기반 시스템을 구축하는 모든 사람에게 실용적인 도구입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트