Skip to main content
Glama

Chimeraforge

PyPI version Python CI License: MIT

Локальный, не зависящий от модели планировщик развёртывания 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 500

MCP-сервер — дайте 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 mcp

Claude 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 / TGI docker 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.md

Markdown (совместимый с 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)

Планирование мощностей

chimeraforge plan

Проверено R^2>=0.859; превосходит M/D/1 в 20.4 раза (TR133)

Проверка безопасности

plan --safety-target (опционально)

Частота отказов + риск 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.

Структура репозитория

Путь

Содержимое

src/chimeraforge/

CLI chimeraforge + планировщик мощностей (pip-пакет)

src/python/banterhearts/

Бенчмаркинг, мониторинг, профилирование Python-агентов

src/rust/

Реализации Rust для одного и нескольких агентов (Tokio + 4 альтернативных рантайма)

outputs/publish_ready/reports/

Канонический архив TR (TR108-TR137) + синтезы — начните здесь для выводов

docs/

Руководства, справочник API и индекс технических отчётов — начните здесь для инструкций

experiments/, data/, benchmarks/

Каркас воспроизведения, базовые линии и сырые артефакты бенчмарков

Документация

Вклад

Вклад приветствуется — см. 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/ - Статус: Бета, активно разрабатывается

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
24dResponse time
4dRelease cycle
37Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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