LM Warden

О чем спрашивают перед установкой.

Что такое LM Warden?

Это система управления движками инференса на вашем собственном оборудовании: vLLM и llama.cpp на сервере Linux с GPU NVIDIA или MLX и llama.cpp в бета-версии приложения для Mac с Apple silicon. Вы скачиваете модель с Hugging Face, загружаете ее на свой GPU, создаете ключ API и обращаетесь к модели через OpenAI-совместимый эндпоинт /v1. В браузерной консоли можно загружать и выгружать модели, смотреть журналы движка в реальном времени, проверять модели в чате, следить за статистикой GPU и токенов; у каждого ключа API есть своя страница. LM Warden не ускоряет модели и не изменяет движки. Он добавляет то, чего в самом движке нет.

На каких GPU и операционных системах он работает?

Linux и macOS. В Linux — GPU NVIDIA на компьютере x86_64. Минимальное поколение — Turing (sm_75, поколение RTX 20-й серии): базовый образ поставляется с CUDA 13, в которой прекращена поддержка Maxwell, Pascal и Volta, поэтому GTX 1080 Ti, Titan X или V100 работать не будут. Поддерживаются поколения от Turing до Blackwell, включая Ada, Hopper и RTX 50-й серии. В macOS — Apple silicon (M1 или новее) через отдельное приложение для Mac в статусе бета-версии: нативное приложение в строке меню для macOS 14 или новее, которое запускает модели через MLX и сборку llama.cpp для Metal, предоставляет тот же OpenAI-совместимый API и показывает ту же консоль в собственном окне. Скачать его можно по адресу lmwarden.com/download/mac (около 110 МБ, с файлом SHA-256). Приложение подписано ad-hoc и не прошло нотаризацию Apple, поэтому при первом запуске разрешите его в разделе «Системные настройки → Конфиденциальность и безопасность → Все равно открыть» (в macOS 14 можно также щелкнуть правой кнопкой мыши → «Открыть»); по умолчанию оно доступно только по loopback-адресу и не обновляется автоматически. Следующей будет Windows: мы над ней работаем, сроков пока нет. Поддержки ROCm, GPU Intel и работы на CPU в этом выпуске нет; AMD Radeon и GPU Intel в планах, а что появится первым, зависит от отзывов в GitHub Discussions проекта. Несколько GPU в одном сервере Linux поддерживаются, а разделение одной модели между несколькими компьютерами — нет.

Будет ли работать мой существующий клиент OpenAI?

Да. Шлюз на /v1/* совместим с OpenAI, поэтому SDK openai, LangChain, OpenWebUI и ваши собственные агенты работают без изменений — достаточно поменять base_url и ключ. GET /v1/models также сообщает max_model_len каждой модели, так что клиенту не нужно угадывать размер контекстного окна. Работает и Codex CLI, который поддерживает только OpenAI Responses API: POST /v1/responses преобразуется в Chat Completions для загруженной вами модели (без сохранения состояния и только локально: правила маршрутизатора не применяются).

Можно ли использовать его с Claude Code, не отказываясь от учетной записи Anthropic?

Да. Укажите в ANTHROPIC_BASE_URL адрес сервера LM Warden, оставайтесь в своей обычной учетной записи в claude и передайте ключ LM Warden в ANTHROPIC_CUSTOM_HEADERS как X-LMWarden-Key. Правило сопоставляет имя модели, которое запрашивает Claude Code, например claude-haiku*, с моделью, загруженной на ваши GPU; запросы ко всем остальным моделям и все остальные пути /v1 передаются в Anthropic байт в байт с вашими собственными учетными данными. Нужен Claude Code 2.1.227 или новее; по умолчанию функция выключена, и ничего не пересылается, пока ключ не помечен флагом «May relay to Anthropic». Более старые версии клиента могут работать в режиме «Только локально».

Видит ли Anthropic мой ключ LM Warden, а LM Warden — мои учетные данные Anthropic?

Anthropic никогда не видит ключ LM Warden: он передается в отдельном заголовке и удаляется до пересылки запроса. Ваши учетные данные Anthropic через LM Warden действительно проходят, потому что он должен их переслать, но только в Anthropic. Они никогда не передаются движку и не записываются в журнал, а из пересылаемых запросов ничего не сохраняется и не показывается в God mode.

Какие движки инференса он использует?

В Linux — официальные версии vLLM v0.32.0 и llama.cpp b11719; движок выбирается для каждой модели и запускается без изменений: без пропатченного образа, без форка, без подмены кода на лету (monkeypatching). Если выбрать файл .gguf, используется llama.cpp: благодаря квантованию GGUF он помещает большие модели на карты с меньшей памятью и продлевает жизнь старым GPU. TensorRT-LLM, SGLang и среда выполнения Ollama в поставку не входят; бета-версия для Mac запускает модели через MLX, свой движок по умолчанию, или через сборку llama.cpp для Metal для файлов .gguf; vLLM в ней нет.

Уходят ли какие-нибудь данные с моего компьютера?

Ничего не покидает сервер, пока вы не включите маршрутизатор Claude Code и не пометите ключ флагом «May relay to Anthropic». Тогда запросы с этого ключа к тем моделям Claude, которые ни одно правило не направляет на ваши GPU, уходят в Anthropic с учетными данными Anthropic самого пользователя — и больше ничего. Нет ни регистрации, ни проверки лицензии, ни аналитики. В остальном система обращается вовне, только когда вы сами это запрашиваете: к huggingface.co за весами (HF_HUB_OFFLINE=1 отключает и это), к Docker Hub, когда вы открываете выбор версии движка, и к реестру за образами выпуска; при установке без интернета или в изолированной сети вместо этого используется docker load.

Хранятся ли промпты и ответы?

По умолчанию нет. История запросов, на основе которой строятся графики и статистика по ключам, хранит только метаданные: столбца для текста промпта или ответа в ней нет. Сохранять содержимое могут две диагностические функции, и обе выключены, пока вы их не включите: God mode (VW_GODMODE_ENABLED) — просмотр трафика одного ключа в памяти с ограниченным объемом буфера — и журнал содержимого (VW_CONTENT_LOG_ENABLED), который записывает данные на диск только для указанных вами ключей (по идентификатору токена).

Как устроены ключи API для команды?

Каждое приложение или человек получает собственный ключ vw_ со своей страницей. Задайте приоритет от P0 до P9 (ожидающий запрос P9 всегда выполняется раньше P8), приостановите ключ — тогда его клиенты будут получать 403 token paused, а уже выполняющиеся запросы завершатся, — или выполните ротацию ключа с переходным периодом, в течение которого старый секрет продолжает работать. Запросы, токены промпта и токены ответа учитываются по ключу и IP-адресу клиента, а ожидание в очереди и задержка — по каждому ключу. Скрипты, CI и агенты, работающие с API управления, используют вместо пароля администратора отдельные административные токены vwa_.

Можно ли запустить несколько моделей на одном GPU?

Нет. Правило «одна загруженная модель на GPU» проверяется еще до запуска движка. Можно загрузить разные модели на разные карты одного сервера, а одну модель — разделить между несколькими картами с помощью тензорного параллелизма vLLM.

Что нужно для установки?

В Linux — сервер с Docker, Docker Compose v2.24 или новее, GPU NVIDIA, NVIDIA Container Toolkit и около 40 ГБ свободного места там, где Docker хранит образы. Установщик проверяет систему, позволяет выбрать GPU, генерирует секреты, скачивает образы выпуска и предлагает запустить сервисы. Затем мастер первого запуска в браузере попросит выбрать GPU, ввести токен Hugging Face и создать учетную запись администратора. На Mac с Apple silicon вместо этого достаточно скачать бета-версию приложения; см. раздел о Mac.

Сколько это стоит?

Нисколько. LM Warden распространяется по лицензии Apache-2.0. Это программа, которую вы запускаете сами, а не облачный API: оборудование, драйвер, диск и электричество — ваши, и когда оборудование уже куплено, каждый запрос обходится только в стоимость электроэнергии, а не в плату за токены.