chimeraforge
Chimeraforge
Локальный, не зависящий от модели планировщик развёртывания LLM. Он превращает вопросы «какая модель, квантование, GPU и бэкенд — сколько их, влезет ли, уложится ли в SLO, сколько будет стоить» в быстрый, честный, измеримый ответ — из вашего шелла, вашего Python или вашего ИИ-ассистента.
uvx chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB"Принцип доверия
Каждое число помечено как measured, estimated или unknown, и инструмент отказывается подделывать те, за которые не может поручиться. VRAM и KV-кэш вычисляются из реальной архитектуры модели (точно). Пропускная способность — это измеренное значение, когда оно доступно, в противном случае — явная оценка по пиковой пропускной способности памяти, которая никогда не выдаётся за реальные данные. Качество ниже встроенного корпуса сообщает unknown, а не выдуманную оценку. План с нулевым результатом называет конкретный гейт, отклонивший всех кандидатов, вместо общего «ничего не найдено». Никакой телеметрии, никаких обращений домой, работает в изолированной среде.
Дайте ему модель — класс размера, репозиторий Hugging Face, тег Ollama или ручные переопределения для невыпущенной модели — и он выполнит поиск по пространству (модель x квантование x бэкенд x количество GPU x тензорный/конвейерный параллелизм) с учётом VRAM, качества, задержки, стоимости, энергопотребления и опционального гейта безопасности, а затем вернёт самую дешёвую конфигурацию, удовлетворяющую вашему SLO.
12 команд, один инструмент: plan - suggest - measure - validate - catalog - safety - bench - eval - compare - refit - report - mcp.
Эмпирический корпус восходит к техническим отчётам TR108-TR137 (~204 000 реальных замеров на потребительских GPU). Полную историю изменений см. в CHANGELOG.
Related MCP server: infra-advisor-mcp
Установка
Попробуйте без установки:
uvx chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB"
pipx run chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB"Установите по-настоящему:
pip install chimeraforge # planner + model resolution (HF/Ollama) + suggest/measure/safety/bench
pip install chimeraforge[bench] # + GPU environment metadata for benchmarks (pynvml)
pip install chimeraforge[mcp] # + MCP server so Claude/GPT/Cursor can call the planner
pip install chimeraforge[eval] # + quality evaluation (BERTScore, ROUGE-L)
pip install chimeraforge[refit] # + coefficient refitting (numpy, scipy)
pip install chimeraforge[all] # everythingТребуется Python 3.10+. Базовая установка покрывает планировщик и команды, работающие с сетью (httpx — основная зависимость). plan / suggest / catalog работают полностью офлайн; bench / measure / safety требуют запущенного бэкенда (Ollama, vLLM или TGI). Windows / macOS / Linux.
Быстрый старт
# Plan a registry size class on your GPU
chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB" --request-rate 2.0
# Plan ANY model -- a Hugging Face repo or an Ollama tag
chimeraforge plan --model Qwen/Qwen2.5-7B-Instruct --hardware "RTX 4090 24GB"
chimeraforge plan --model ollama:qwen3:14b --ollama-url http://localhost:11434
# Split a model too big for one GPU across several (tensor parallelism)
chimeraforge plan --model meta-llama/Llama-3.3-70B-Instruct --hardware "H100 80GB" --tp 4
# Shrink the KV-cache, print the cost/latency/quality trade-off menu
chimeraforge plan --model-size 8b --hardware "RTX 4080 12GB" --kv-quant q8 --pareto
# Benchmark a live model and plan on the MEASURED numbers
chimeraforge plan --model qwen3:14b --measure
# Discover + rank what fits your GPU and budget
chimeraforge suggest --source ollama --hardware "RTX 4090 24GB" --budget 500MCP-сервер — дайте Claude / GPT / Cursor те же цифры
Подбор GPU — это именно та область, где ассистенты ошибаются: цены и характеристики оборудования на момент обучения модели, плюс подверженная ошибкам арифметика KV-кэша/батчинга по памяти. chimeraforge mcp запускает stdio MCP-сервер, чтобы ассистент вызывал настоящий планировщик на реальных данных, а не угадывал.
pip install "chimeraforge[mcp]"Claude Code:
claude mcp add --transport stdio chimeraforge -- uvx --from "chimeraforge[mcp]" chimeraforge mcpClaude Desktop / Cursor (добавьте в ваш MCP-конфигурационный файл):
{
"mcpServers": {
"chimeraforge": {
"command": "uvx",
"args": ["--from", "chimeraforge[mcp]", "chimeraforge", "mcp"]
}
}
}Флаг --from "chimeraforge[mcp]" подтягивает MCP SDK; uvx запускает сервер в изолированном окружении. Если вы уже выполнили pip install "chimeraforge[mcp]" в окружение, которое запускает ваш клиент, вы можете вместо этого использовать "command": "chimeraforge", "args": ["mcp"].
Предоставляет три инструмента: chimeraforge_plan (полный поиск по гейтам), chimeraforge_resolve_model (сопоставляет идентификатор модели с её реальными параметрами/архитектурой) и chimeraforge_list_hardware. Каждый результат несёт ту же атрибуцию measured / estimated / unknown, что и CLI, а описания инструментов подсказывают модели предпочитать их собственным знаниям. chimeraforge_plan также возвращает поле launch — команду запуска для рекомендуемой конфигурации, — чтобы ассистент мог ответить на вопрос «и как мне это запустить», не выдумывая флаги.
Команды
plan — прогнозирующий планировщик мощностей
chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB" --request-rate 2.0
chimeraforge plan --model Qwen/Qwen2.5-7B-Instruct --hardware "RTX 4090 24GB" # any HF repo
chimeraforge plan --model ollama:qwen3:14b --ollama-url http://localhost:11434 # any Ollama tag
chimeraforge plan --model meta-llama/Llama-3.3-70B-Instruct --hardware "H100 80GB" --tp 4 # multi-GPU
chimeraforge plan --model-size 3b --kv-quant q4 --pareto # smaller KV cache, trade-off menu
chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB" --launch # + the serve command to actually run it
chimeraforge plan --model-size 3b --workload agent --safety-target 0.85 --jsonПланирует любую модель: класс размера из реестра, HF-репозиторий (
org/name), тег Ollama или ручные переопределения (--params-b/--n-layers/...).Выполняет поиск по пространству (модель x квантование x бэкенд x N-реплик x батч/GPU) через конвейер из 5 гейтов: VRAM -> качество -> безопасность (опционально) -> задержка -> бюджет.
Моделирует реальную физику обслуживания: непрерывный батчинг (vLLM/TGI), разделение prefill/decode (TTFT + TPOT), конкурентность, ограниченную KV-кэшем, и учёт дисперсии в очередях (
--workload).Вмещает модели, слишком большие для одного GPU:
--tensor-parallel/--tp {N|auto}разделяет веса + KV между N GPU (в стиле Megatron, с моделированием коммуникаций);--pipeline-parallel/--pp {N|auto}вместо этого разбивает слои на N стадий (дешевле на медленных межсоединениях, требует батчинга для заполнения конвейера). Пока не комбинируются.Обслуживает то, что обслуживает бэкенд: GGUF-квантования предлагаются на Ollama; vLLM/TGI получают FP16 и FP8 (только на GPU с FP8-тензорными ядрами — Ada/Hopper/Blackwell/CDNA3). Планировщик больше не предлагает GGUF-чекпоинт на vLLM с ускорением llama.cpp в цене.
Квантование KV-кэша (
--kv-quant {fp16,q8,q4}) уменьшает кэш и повышает максимальную конкурентность — наибольший выигрыш при длинном контексте.Реалистичная стоимость (
--duty-cycle,--gpu-price-multiplier): заглавные цены $/1M-токенов рассчитаны на полностью загруженный парк. Вы также платите за зарезервированный запас и за каждый час простоя, поэтому эффективная цифра для 8B при 2 запросах/с составляет $2,71/1M при полной загрузке и $9,04/1M при 30%, против $0,92 при полной ёмкости. Цены на spot/reserved — это ваш ввод, а не встроенное предположение.Точка безубыточности «свой хостинг vs API» (
--compare-api): оценивает вашу нагрузку по ценам хостинговых API и сообщает месячный объём, при котором собственный хостинг начинает выигрывать. Цены — это снимок с датой и URL источника для каждого провайдера, помечается устаревшим после 90 дней — никогда не выдаётся за актуальное предложение, — а фронтирный API помечается как другой уровень качества, а не выдаётся за сопоставимый.Кэширование префиксов (
--prefix-cache-hit-rate): чат-боты и агентский трафик переиспользуют длинный системный промпт, поэтому большая часть prefill уже закэширована. При промпте 4k и 90% попаданий 8B-модель переходит с 166мс до 17мс TTFT. По умолчанию 0 и никогда не выводится автоматически, а KV, которую экономит общий префикс, намеренно не вычитается — занижение KV-кэша — это то, что превращает «влезает» в OOM.Модели рассуждений (
--reasoning-tokens N): скрытые токены мышления декодируются GPU и хранятся в KV, хотя вызывающий их не видит. Учёт только видимого вывода занижает декодирование на коэффициент рассуждений — 1000 скрытых токенов перевели план 8B-модели с 363мс до 6128мс p95 в нашей собственной проверке. По умолчанию 0 и никогда не выводится автоматически: это свойство вашей нагрузки, а не весов.Учёт формы внимания в KV: MLA (DeepSeek-V2/V3) кэширует сжатый латентный вектор, а не попарные K/V — оценка как GQA завышает кэш DeepSeek-V3 в 57 раз, — а модели со скользящим окном перестают наращивать кэш за пределами окна. Окно, чей паттерн слоёв не объявлен, не применяется, потому что занижение KV-кэша — это то, что превращает «влезает» в OOM.
С учётом Mixture-of-Experts: VRAM рассчитывается по общим параметрам (все эксперты остаются в памяти), а пропускная способность и TTFT используют активные параметры (токен читает только тех экспертов, к которым направляется). Рассмотрение MoE-модели как плотной занижает её пропускную способность в 3,6 раза на Mixtral-8x7B и ~в 18 раз на DeepSeek-V3. Активные счётчики выводятся из реальной геометрии экспертов модели и совпадают с опубликованными цифрами.
Энергопотребление (
--electricity-rate): ежемесячная стоимость кВт·ч,$/1M-токенов (+энергия)и ток/с-на-ватт, сообщаются отдельно (не включаются) от бюджетного гейта.Экспорт команды запуска (
--launch): генерирует командуvllm serve/ollama run/ TGIdocker runдля выигравшей конфигурации с заполненными длиной контекста, степенью TP/PP, размером батча и KV-dtype из плана — флаги, которые легко вычислить с ошибкой вручную. Он не выдумает то, что не может вывести: уровень GGUF-квантования становится примечанием запускать нативный эквивалентный чекпоинт, а не выдуманным флагом--quantization.Поатрибутная атрибуция (
measured/estimated/unknown); объясняет решающий гейт, когда ничего не подходит.Проверено на данных реестра: VRAM R^2=0,968, пропускная способность R^2=0,859, качество RMSE=0,062, задержка MAPE=1,05% (в 20,4 раза лучше аналитического M/D/1, TR133). Без ML — эмпирические таблицы поиска с интерполяцией из первых принципов (roofline для моделей вне реестра).
suggest — поиск и ранжирование моделей
chimeraforge suggest --source ollama --hardware "RTX 4090 24GB" --budget 500
chimeraforge suggest --source hf --hf-limit 8 --hardware "RTX 4080 12GB"
chimeraforge suggest --source catalog --hardware "RTX 4080 12GB" # offline, after `catalog --build`Извлекает кандидатов из живого Ollama (/api/tags), HF Hub (топ text-generation) и/или локального каталога; сопоставляет каждого с реальными параметрами/архитектурой, запускает тот же поиск по гейтам и показывает лучшую конфигурацию для каждой модели.
measure — бенчмарк вживую, планирование на реальных цифрах
chimeraforge measure --model qwen3:14b --ollama-url http://localhost:11434
chimeraforge plan --model qwen3:14b --measure # measure then plan in one stepТестирует живую модель (реальная пропускная способность N=1, время обслуживания, масштабирование конкурентности) и включает результаты в локальный корпус. plan / suggest затем автоматически предпочитают измеренные числа (атрибуция меняется на measured).
catalog — локальный каталог моделей
chimeraforge catalog --build # resolve a curated seed (+ --with-ollama) and cache specs
chimeraforge catalog # list the cached catalogСохраняет разрешённые спецификации, чтобы suggest --source catalog ранжировал проверенный набор полностью офлайн.
safety — живой экран отказов
chimeraforge safety --model llama3.2-3b --prompts harmful.txt --quant Q4_K_M --safety-target 0.85Там, где plan --safety-target принимает решение на основе встроенных данных TR134/TR142, safety измеряет: он прогоняет ваши пробные промпты через живую модель, классифицирует отказы (на основе правил — базовый уровень TR134 regex), сообщает измеренный уровень отказов по сравнению с данными встроенного гейта (ожидаемый, дрейф, уровень риска RTSI) и завершается с кодом 1 ниже --safety-target. Промпты предоставляете вы (--prompts, по одному на строку) — с пакетом не поставляется атакующий корпус; направьте его на HarmBench / AdvBench / ваш собственный набор. Требуется запущенный Ollama.
bench — живое тестирование вывода
chimeraforge bench --model llama3.2-3b --runs 5
chimeraforge bench --model llama3.2-3b --all-quants --context 512,1024,2048,4096 --json
chimeraforge bench --model llama3.2-3b --backend vllm --base-url http://localhost:8000Три профиля нагрузки (одиночный / пакетный / серверный-Пуассон); измеряет пропускную способность, TTFT и задержку с p50/p90/p95/p99; предупреждения о стабильности на основе CV; вывод в JSON.
eval — оценка качества
chimeraforge eval --task general_knowledge --json
chimeraforge eval --predictions preds.txt --references refs.txt --model llama3.2-3bМетрики: точное совпадение, ROUGE-L (запасной вариант LCS), BERTScore, когерентность -> композитный (0,2*EM + 0,3*ROUGE + 0,3*BERT + 0,2*когерентность). Уровни качества из TR125; 3 встроенные задачи (general_knowledge, summarization, code). Передайте --fp16-baseline, чтобы классифицировать уровень снижения.
compare — сравнение бенчмарк-прогонов
chimeraforge compare --baseline run1.json --candidate run2.json,run3.json --jsonСопоставляет конфигурации по (модель, бэкенд, квантование, нагрузка, длина контекста); вычисляет дельты пропускной способности/TTFT/длительности со сводкой улучшений/регрессий.
refit — обновление коэффициентов планировщика
chimeraforge refit --bench-dir ./results/ --output fitted_models.json --validateБайесовское смешивание (взвешивание по достоверности ключа), аппаратные смещения, переобучение степенного закона и набор из 10 проверок, которые блокируют запись (--validate).
report — создание отчётов
chimeraforge report --results-dir ./results/ --format markdown --output report.mdMarkdown (совместимый с GitHub) и автономный, XSS-безопасный HTML; статистический анализ (RMSE, MAE, MAPE, R^2) с таблицами процентилей по конфигурациям.
mcp — предоставление планировщика ИИ-ассистентам
chimeraforge mcpЗапускает описанный выше stdio MCP-сервер. Требует pip install "chimeraforge[mcp]".
Что моделируется
Параметр | Как вычисляется | Происхождение |
VRAM / KV-кэш | Из первых принципов на основе реальной архитектуры модели; KV-квантование и шардирование с учётом TP/PP | точное |
Макс. конкурентность | Последовательности, ограниченные KV-кэшем, на GPU | точное |
Пропускная способность (декодирование) | Измеренный поиск, иначе потолок по пропускной способности; кривая непрерывного батчинга; коммуникации TP / пузыри PP | измеренное / оценённое |
TTFT (prefill) | Ограничено вычислениями, GPU FP16 TFLOPS x MFU | оценённое |
Качество | Измеренный составной поиск, оценка по семейству моделей или неизвестно | измеренное / оценённое / неизвестное |
Стоимость | GPU $/час x размер флота ($/1M-токенов инвариантно к числу реплик) | точное |
Энергия | Ежемесячные кВт·ч на основе TDP, $/1M-токенов (+энергия), токенов/с на ватт | оценённое |
Безопасность | Поиск частоты отказов TR134/TR142 (опциональный шлюз) | измеренное / неизвестное |
Оборудование: 22 GPU — потребительские Ada + Blackwell (серии RTX 30/40/50), датацентровые (A100 40/80GB, H100, H200, B200, L4, T4) и AMD MI300X — каждая с VRAM, пропускной способностью, FP16 TFLOPS, TDP и интерконнектом (NVLink/Infinity Fabric/PCIe).
Известные ограничения (честно): спекулятивное декодирование пока не моделируется. Кэширование префиксов учитывает экономию на prefill, но не на KV (намеренно консервативно). Токены рассуждения моделируются, но их доля — ваш ввод (--reasoning-tokens), никогда не выводится. Для MoE активные и общие параметры моделируются, но экспертный параллелизм и дисбаланс нагрузки маршрутизации — нет. Покрытие квантования для vLLM/TGI — FP16 + FP8 (AWQ/GPTQ пока нет); качество FP8 оценивается, а не измеряется. Пропускная способность TP и PP — оценки на основе моделирования коммуникаций, не измеренные, и их нельзя комбинировать в одном плане. Очереди аналитические (с учётом дисперсии), а не дискретно-событийный симулятор. Встроенный корпус в основном подобран на одном стенде (RTX 4080 12GB); другие GPU масштабируются от пропускной способности/вычислений, пока вы не measure на своих. MCP-сервер только stdio (Claude Code/Desktop, локальный Cursor) — удалённого транспорта пока нет.
Что решило исследование
Фаза 2 (TR123-TR133, ~106 000 измерений) вылилась в фреймворк развёртывания на основе артефактов — те же правила, которые применяет планировщик:
Решение | Рекомендация | Доказательства |
Однопроцессный бэкенд | Ollama Q4_K_M | Наивысшая пропускная способность на доллар; качество в пределах -4.1 п.п. (TR123-TR125) |
Многопроцессный бэкенд (N>=4) | vLLM FP16 | Преимущество 2.25x за счёт непрерывного батчинга (TR130-TR132) |
Политика компиляции | Только prefill, Linux, Inductor+Triton | Ускорение 24-60%; сбои при декодировании 100% (TR126) |
Квантование | Q4_K_M по умолчанию; Q8_0 для критичного качества; никогда Q2_K | Универсальная оптимальная точка для 5 моделей (TR125) |
Бюджет контекста | Ollama для >4K токенов на 12 ГБ | Переполнение VRAM = обрывы в 25-105 раз (TR127) |
Планирование мощностей |
| Проверено R^2>=0.859; превосходит M/D/1 в 20.4 раза (TR133) |
Проверка безопасности |
| Частота отказов + риск RTSI на конфигурацию; отклоняет ячейки с коллапсом безопасности (TR134/TR142) |
Ключевые выводы (полные данные в TR): Rust превосходит Python в однопроцессном режиме (+15.2% пропускной способности, -58% TTFT, -67% памяти — TR112); двойной Ollama достигает почти идеального многопроцессного параллелизма (~99%) против 82.2% на одном экземпляре (TR110/TR113/TR114); непрерывный батчинг vLLM даёт преимущество 2.25x при N=8, с узким местом в пропускной способности памяти GPU, а не в стеке (TR130-TR132).
Полное исследование: docs/archive/technical_reports.md индексирует все 32 отчёта; полный архив с методологией и ссылками на сырые данные находится в outputs/publish_ready/reports/.
Как создаются числа
~204 000 первичных измерений в 32 технических отчётах (TR108-TR137 + происхождение безопасности TR142/TR146), на RTX 4080 Laptop (12 ГБ). Дедупликация: TR137/TR142 — синтезы уже учтённых данных.
Строгость: изоляция свежих процессов на каждый запуск (без смещения тёплого кэша), принудительные холодные старты, 3-5 запусков на конфигурацию для статистической уверенности, структурированное логирование JSON/CSV с полным происхождением. Каждое утверждение прослеживается до сырых данных, которые можно перезапустить.
Контекст программы: ChimeraForge — действующий CLI-срез родительской программы Banterhearts (~1 337 000 первичных + судейских измерений в 54 TR); исследования поверхности атак безопасности и стека обслуживания находятся в соседних репозиториях.
549 автоматических тестов (
pytest tests/) покрывают модели планировщика, поиск по шлюзам, резолвер, обнаружение, безопасность, бэкенды бенчмарков и MCP-сервер — не зависят от GPU, для основного набора не требуется живой бэкенд.
Воспроизведите любое число: найдите утверждение в отчёте в outputs/publish_ready/reports/, проследуйте по ссылке к папке данных, изучите CSV/JSON и перезапустите предоставленные скрипты или блокноты. См. docs/archive/methodology.md.
Структура репозитория
Путь | Содержимое |
| CLI |
| Бенчмаркинг, мониторинг, профилирование Python-агентов |
| Реализации Rust для одного и нескольких агентов (Tokio + 4 альтернативных рантайма) |
| Канонический архив TR (TR108-TR137) + синтезы — начните здесь для выводов |
| Руководства, справочник API и индекс технических отчётов — начните здесь для инструкций |
| Каркас воспроизведения, базовые линии и сырые артефакты бенчмарков |
Документация
docs/README.md— индекс документации и навигацияdocs/quick_start.md— первый запуск бенчмарка (Python + Rust)docs/API.md— справочник Python API для пакетаdocs/archive/technical_reports.md— индекс всех 32 технических отчётовdocs/archive/dual_ollama_setup.md— требуется для воспроизведения многопроцессных результатовdocs/archive/methodology.md/docs/archive/rust_vs_python.md— методология и полное сравнение языков
Вклад
Вклад приветствуется — см. CONTRIBUTING.md. Хорошие области: дополнительные конфигурации бенчмарков, новые стратегии оптимизации, больше моделей/оборудования, документация и инструменты анализа.
Лицензия
MIT — см. LICENSE.
Благодарности
Проведено в рамках исследовательской программы Banterhearts LLM Performance Research: Фаза 1 (TR108-TR122) установила методологию измерений и межъязыковое сравнение, Фаза 2 (TR123-TR133) создала фреймворк развёртывания и планировщик мощностей, а Фаза 3 (TR134-TR137) измерила стоимость безопасности оптимизации вывода — теперь это опциональный шлюз безопасности планировщика.
Репозиторий: https://github.com/Sahil170595/Chimeraforge - PyPI: https://pypi.org/project/chimeraforge/ - Статус: Бета, активно разрабатывается
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceGlobal price benchmarking for AI inference across 2,600+ SKUs from 47 vendors. Query live pricing, market indexes, and model specs via 8 tools. Free tier available.8121MIT
- AlicenseAqualityCmaintenanceEstimates GPU requirements, training/inference costs, and cloud-vs-on-prem TCO for AI workloads using deterministic calculators.121MIT
- AlicenseBqualityCmaintenancePredict the cost of an LLM call before you make it, and pick the cheapest model that still does the job, offline, from your editor.741Apache 2.0
- AlicenseAqualityAmaintenanceLive LLM API pricing: current token prices, model comparisons, cheapest-model lookups, and The LLM Price Index for 150+ models across 20+ providers, re-verified daily. No API key required.51MIT
Related MCP Connectors
Will this LLM fit on your GPU, multi-GPU rig or Mac? Exact VRAM & KV-cache math. Read-only.
Measured AI-inference-storage benchmarks with citations, article search, KV-cache ROI estimation.
Provision private AI model endpoints on dedicated GPUs (Llama, Qwen, Mistral). Pay per minute.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sahil170595/Chimeraforge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server