Python-библиотека, которая ограничивает генерацию LLM, чтобы результат соответствовал заданному типу, регулярному выражению, JSON Schema или грамматике.
mlc-ai/xgrammar
Быстрая и гибкая библиотека для генерации структурированного вывода LLM с ограничением результата до JSON, regex или пользовательских контекстно-свободных грамматик.
- Звёзды
- 1,967
- Форки
- 241
- Открытые issues
- 130
- Последний коммит
- 3 дня назад
Что это?
XGrammar — библиотека с открытым исходным кодом для генерации структурированного вывода с помощью больших языковых моделей. Она использует constrained decoding, чтобы генерируемый результат соответствовал заданной структуре: например, JSON, регулярному выражению или произвольной контекстно-свободной грамматике. Это решает распространённую проблему, когда вывод LLM не удаётся разобрать или он не соответствует ожидаемой схеме.
Проект стремится свести накладные расходы constrained decoding к минимуму и сообщает о почти нулевых накладных расходах при генерации JSON. Библиотека рассчитана на работу в Linux, macOS и Windows, а также на CPU, GPU NVIDIA и AMD, Apple Silicon и TPU. Доступны биндинги для Python, C++, JavaScript и Swift.
XGrammar предназначена для встраивания в движки инференса. Она интегрирована в такие проекты, как vLLM, SGLang, TensorRT-LLM и MLC-LLM, и устанавливается с помощью pip.
Ключевые возможности
- 01Ограничивает вывод до JSON, regex или пользовательских контекстно-свободных грамматик.
- 02Стремится обеспечить почти нулевые накладные расходы при генерации JSON.
- 03Работает в Linux, macOS и Windows на CPU, GPU NVIDIA и AMD, Apple Silicon и TPU.
- 04Предоставляет API для Python, C++, JavaScript и Swift.
- 05Устанавливается через pip; для Apple Silicon доступен дополнительный пакет Metal.
Сценарии использования
- Заставить движок обслуживания LLM возвращать валидный JSON для последующего разбора.
- Ограничить вывод модели регулярным выражением или грамматикой для вызовов инструментов либо аргументов функций.
- Добавить поддержку структурированного вывода в собственный стек инференса LLM.
Быстрый старт
- 1
Установить XGrammar из PyPI
pip install xgrammar - 2
Установить с поддержкой Metal для Apple Silicon (необязательно)
pip install "xgrammar[metal]" - 3
Импортировать XGrammar в код Python
import xgrammar as xgr
Что важно знать
- Большая часть сведений об использовании находится во внешней документации, а не в самом README.
Темы
Частые вопросы
- Что такое xgrammar?
- Быстрая и гибкая библиотека для генерации структурированного вывода LLM с ограничением результата до JSON, regex или пользовательских контекстно-свободных грамматик. XGrammar — библиотека с открытым исходным кодом для генерации структурированного вывода с помощью больших языковых моделей. Она использует constrained decoding, чтобы генерируемый результат соответствовал заданной структуре: например, JSON, регулярному выражению или произвольной контекстно-свободной грамматике. Это решает распространённую проблему, когда вывод LLM не удаётся разобрать или он не соответствует ожидаемой схеме.
- xgrammar можно использовать бесплатно? Какая у него лицензия?
- xgrammar распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- xgrammar всё ещё поддерживается?
- Активно поддерживается. Последний коммит в xgrammar — 18 окт. 2026 г..
- Для чего можно использовать xgrammar?
- Заставить движок обслуживания LLM возвращать валидный JSON для последующего разбора. Ограничить вывод модели регулярным выражением или грамматикой для вызовов инструментов либо аргументов функций. Добавить поддержку структурированного вывода в собственный стек инференса LLM.
- Как установить xgrammar?
- Установить XGrammar из PyPI: pip install xgrammar Установить с поддержкой Metal для Apple Silicon (необязательно): pip install "xgrammar[metal]" Импортировать XGrammar в код Python: import xgrammar as xgr
- Где скачать xgrammar?
- Исходный код и инструкции по установке — на GitHub: https://github.com/mlc-ai/xgrammar
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Ray — единый фреймворк для масштабирования приложений на Python и ИИ: от ноутбука до кластера, с распределённой средой выполнения и библиотеками для ИИ.
Компактное, удобное для чтения представление данных JSON, которое сокращает расход токенов при передаче структурированных данных в промпты LLM.
Оптимизированная для GPU библиотека и эталонные скрипты для обучения крупных трансформерных моделей с многомерным параллелизмом.
Open-source toolkit для оптимизации и развертывания моделей deep learning для инференса на процессорах, GPU и NPU Intel.
Библиотека для обмена данными между GPU при dispatch и combine в MoE с expert parallelism: поддерживает FP8, NVLink и RDMA для обучения и инференса.