NVIDIA PAIR: локальный маршрутизатор AI-инференса

NVIDIA Personal AI Router (PAIR) — это локальный маршрутизатор инференса (inference router) для группы совместимых компьютеров в одной сети. Он обнаруживает участвующие узлы, управляет поддерживаемыми движками инференса и предоставляет приложениям и агентам прокси-эндпоинты, совместимые с Ollama и OpenAI. Независимые запросы маршрутизируются на подходящие узлы с учётом доступности движка, доступности модели и текущей нагрузки.

PAIR полезен при параллельных локальных рабочих нагрузках — например, в мультиагентных приложениях. Промпты и ответы остаются в локальной сети при условии, что все настроенные клиенты, источники моделей, движки и узлы являются локальными.

Примечание

PAIR направляет каждый независимый запрос на один узел. Он не объединяет GPU-память, не превращает несколько GPU в единый логический, не распределяет одну модель между машинами и не разбивает выполняемый запрос инференса между узлами.

Два спаренных компьютера в интерфейсе PAIR: запросы поступают на один узел и маршрутизируются на оба, каждый сообщает о текущей загрузке GPU и памяти

Два спаренных компьютера: запросы поступают на один узел, выполняются на том, который лучше подходит для каждого конкретного запроса, и оба в режиме реального времени сообщают о загрузке GPU и памяти. Посмотреть полный ролик.

Что поддерживается

Операционные системы

Windows 11; Linux; macOS

Архитектуры

x64 и arm64 на всех трёх. Windows on ARM — экспериментальная поддержка.

Установщики

Windows .exe; Linux .deb; macOS .dmg. На других дистрибутивах Linux — сборка из исходников.

Смешанные узлы

Узлы под управлением Windows, Linux и macOS можно спаривать друг с другом

Движки инференса

Ollama и LM Studio

Наличие PAIR на машине не означает, что движок тоже будет работать. PAIR сам по себе запускается на любой поддерживаемой машине с Windows, Linux или macOS. Каждый движок предъявляет собственные требования к операционной системе, GPU и драйверам, а для загрузки каждой модели нужно достаточно памяти. То, будет ли конкретный движок с конкретной моделью работать на конкретной машине — вопрос взаимодействия этого движка и этой машины, поэтому перед тем как считать узел способным обслуживать модель, ознакомьтесь с документацией самого движка. Узел становится кандидатом для обработки запроса лишь тогда, когда на нём действительно запущен совместимый движок; при этом PAIR отдаёт предпочтение узлам, на которых модель уже загружена.

Быстрый старт

Скачайте готовую сборку и используйте настольное приложение — именно этот путь мы рекомендуем, и именно он описывается в данном руководстве. Сборка из исходников и терминальный интерфейс существуют по веским причинам — для тех, кто хочет изменить PAIR, и для машин без рабочего стола — но ни то ни другое не является обычным способом начать работу. Эти варианты описаны в Сборка и запуск PAIR из исходников и Терминальный интерфейс.

Скачать релиз

Официальный установщик подписан, разворачивает фоновые службы и настольное приложение одновременно, а на Windows также добавляет необходимые правила брандмауэра. Кроме того, он сообщает о выходе новых версий и устанавливает их с вашего согласия через Settings → Service. Самостоятельно собранная версия не подписана и не проверяет обновления — для обновления придётся заново подтянуть исходники и пересобрать.

Скачайте PAIR со страницы релизов на GitHub. В загрузках доступны:

  • установщик для Windows;

  • пакет Debian для Linux;

  • образ диска для macOS.

На Windows и macOS дважды щёлкните по загруженному файлу и следуйте стандартным шагам установщика — на macOS это означает перетаскивание NVIDIA Personal AI Router в папку Applications.

На Linux установите пакет из той директории, куда вы его скачали:

sudo apt install ./NVPAIR-Setup-*.deb

Если в этой директории хранится несколько пакетов PAIR, укажите полное имя нужного файла.

Запуск

  • Откройте PAIR так же, как любое другое приложение: через меню «Пуск» на Windows, Launchpad или папку Applications на macOS, список приложений на Linux. На машине без графического окружения управляйте им через терминальный интерфейс — он запускает те же фоновые службы и предоставляет полноэкранный вид в терминале.

  • Дождитесь завершения запуска. Раздел Overview показывает данную машину, как только службы поднялись. Если экран остаётся на Loading…​, откройте Settings → Service и проверьте статус там.

  • Запустите движок. На карточке узла откройте Engine settings и нажмите Install рядом с Ollama или LM Studio. PAIR скачает и настроит движок самостоятельно — предварительно ничего устанавливать не нужно. Если PAIR уже обнаружил движок, установленный вами ранее, просто запустите его.

Диалог установки движков: Ollama скачивается с отображением прогресса
  • Добавьте модель. Нажмите Add model на той же карточке и скачайте модель. В данном примере используется qwen4:12b; при желании замените её на любую другую.

Карточка узла с раскрытым движком: одна модель загружается, рядом со списком кнопка Add model
  • Отправьте запрос. Есть два равнозначных варианта:

    • Пусть PAIR сам сгенерирует трафик. Нажмите Test в разделе Settings → Service — PAIR в течение минуты пропускает инференс через тот же путь, и вы можете наблюдать за появлением задач, не написав ни строчки кода.

Раздел Overview во время тестового прогона: задачи выполняются на обоих компьютерах кластера
  • Отправьте запрос вручную. Воспользуйтесь командой curl ниже. Задача появится в разделе Jobs с указанием узла, который её обработал.

При использовании Ollama на порту по умолчанию команда работает без изменений:

curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen4:12b","messages":[{"role":"user","content":"In one sentence, what does a router do?"}]}'

Ответ представляет собой стандартный JSON в формате OpenAI, сокращённо:

{
  "object": "chat.completion",
  "model": "qwen4:12b",
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "A router decides where each incoming message should go and forwards it there."
      },
      "finish_reason": "stop"
    }
  ]
}

Если вы изменили порт или используете LM Studio вместо Ollama, скопируйте URL из раздела Endpoints → API endpoints, а не предполагайте, что приведённый выше подойдёт.

Пока что работает одна машина. Чтобы маршрутизировать запросы между несколькими машинами, подключите вторую через Settings → Cluster и повторите на ней шаги с движком и моделью. Пригласившая машина показывает шестизначный PIN-код, который нужно ввести на приглашённой машине.

Шестизначный PIN для спаривания на пригласившей машине и модальное окно принятия приглашения на приглашённой

Руководство по началу работы подробно охватывает те же темы, а также спаривание, порты и подключение собственных приложений.

Удаление

Удаление PAIR и удаление ваших данных — это отдельные шаги; по умолчанию данные сохраняются.

Windows. Удалите через «Приложения и компоненты» или запись в меню «Пуск». Деинсталлятор остановит PAIR, удалит его правила брандмауэра и спросит, нужно ли удалить данные. Откажитесь — и они останутся; согласитесь — и они будут удалены.

Linux. sudo apt remove nvpair удаляет приложение, оставляя данные. Для удаления данных используйте sudo apt purge nvpair. Если нужно уточнить имя установленного пакета, выполните dpkg -l | grep -i pair.

macOS. Запустите деинсталлятор, поставляемый внутри пакета приложения. Он остановит PAIR, удалит правила брандмауэра, отменит регистрацию привилегированного вспомогательного процесса и затем удалит само приложение:

sudo "/Applications/PAIR.app/Contents/Resources/installer-tools/uninstall-macos.sh"

Добавьте --purge, чтобы также удалить данные. Если просто перетащить PAIR в корзину, привилегированный вспомогательный процесс останется зарегистрированным — поэтому используйте деинсталлятор.

Под «данными» подразумеваются настройки, журналы, идентификатор кластера и сертификаты, а также любые движки, установленные PAIR за вас. Веса моделей не затрагиваются — они хранятся в собственном хранилище движка, например в ~/.ollama, поэтому удаление PAIR не удаляет скачанные вами модели. Удалять модели нужно через сам движок или путём удаления его директории.

Чтобы очистить данные без удаления приложения, воспользуйтесь Settings → Service → Reset app data. Это удалит тот же набор — настройки, журналы, идентификатор кластера и сертификаты, а также установленные PAIR движки — и перезапустит приложение, как будто оно только что установлено. Библиотеки моделей при этом также не затрагиваются. Это самый быстрый способ начать с чистого листа после сломанного кластера или неудачной установки движка.

Если данная машина входит в кластер, не забудьте также разобраться с членством — иначе остальные узлы будут продолжать считать её участником. Есть два варианта:

  • Покинуть кластер с этой машины перед удалением: Settings → Cluster → Leave, или нажать L на вкладке Cluster терминального интерфейса.

  • Удалить узел с другой машины — любой участник может сделать это через Settings → Cluster, убрав этот узел из списка.

Второй вариант работает и постфактум, так что если вы забыли покинуть кластер заранее, ситуацию можно исправить.

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

Если вы только начинаете работу с PAIR, чтение в приведённом порядке позволит вам быстрее войти в курс дела. Каждый раздел предполагает знакомство с предыдущими.

  1. Обзор — что делает PAIR и как устроены его компоненты. Начните отсюда, чтобы понимать терминологию всех остальных документов.

  2. Начало работы — установка, спаривание двух машин, подготовка модели и отправка первого запроса. Этого документа достаточно большинству пользователей.

  3. Управление движками — установка, запуск, остановка, обновление и удаление движков; что PAIR восстанавливает после завершения работы или перезапуска.

  4. Терминальный интерфейс — те же задачи из терминала, для машин без графического окружения. Пропустите, если на всех ваших машинах есть рабочий стол.

  5. Устранение неполадок — стоит просмотреть заранее, чтобы знать, где находится диагностика. Рядом — Известные проблемы с перечнем существенных ограничений, о которых мы уже знаем, и Сбор и санация журналов — о том, как подготовить журнал для передачи другим.

  6. Архитектура — модель процессов, механизм маршрутизации запросов и границы доверия. Прочитайте перед внесением каких-либо изменений или если хотите понять, почему PAIR ведёт себя именно так.

  7. Сборка и запуск — предварительные требования, сборка из исходников, запуск служб без настольного приложения и написание собственного клиента для JSON-RPC API.

  8. Руководство для разработчиков — прочитайте перед тем, как вносить вклад в проект: где находится код, как изменение проходит через слои системы и какие соглашения приняты в проекте.

Справочники по компонентам — для тех, кто уже знает, что ищет:

  • Службы — фоновые службы и ссылки на справочную документацию по каждому компоненту

  • Настольное приложение — работа в приложении, его архитектура, контракты и документация CLI

Релизы

Список изменений в каждом выпуске смотрите на странице релизов.

Направление развития PAIR

У нас много идей о том, куда развивать PAIR, но никаких жёстких обязательств — какие из них и когда будут реализованы. Если у вас есть мысли о направлении продукта, что-то, что сделало бы его полезнее для вас, рабочий процесс, который пока не поддерживается, или сценарий использования, который мы не рассмотрели — мы хотим об этом услышать. Откройте задачу (issue) и начните разговор.

Маршрутизация — наиболее очевидный пример. Сейчас PAIR поставляется с единственной политикой планирования, которая сочетает очередь задач с грубым сглаженным сигналом загрузки GPU. Она не учитывает модель GPU, доступную память, «прогретость» модели или стоимость запроса — что делает её более подходящей для однородных машин, чем для сильно разнородного кластера. Сделать это умнее, а вероятно, и дать вам возможность выбирать политику — это то, чего мы хотим достичь, и именно ваши данные о том, какие из этих сигналов важны на вашем железе, помогут нам это сформировать.

Обратная связь от людей, запускающих PAIR на собственном оборудовании, ценнее для нас, чем любые планы, написанные заранее.

Участие в разработке и управление проектом

Поддержка

Публичные каналы поддержки и их область охвата описаны в SUPPORT.md.

Безопасность

PAIR включает локальные HTTP-эндпоинты, обнаружение узлов в локальной сети, PIN-основанную начальную процедуру установления доверия и сетевое взаимодействие внутри кластера. Прочитайте SECURITY.md перед развёртыванием в ненадёжной или общей сети. Не сообщайте об уязвимостях в публичных задачах (issues).

Лицензия

Данный проект распространяется под лицензией Apache 2.0. Сведения о сторонних зависимостях содержатся в Third-Party Software Notices. Движки инференса, модели и другое программное обеспечение, используемое вместе с PAIR, могут иметь собственные условия лицензирования.

© 2026 meganuke