NVIDIA Personal AI Router (PAIR) — это локальный маршрутизатор инференса (inference router) для группы совместимых компьютеров в одной сети. Он обнаруживает участвующие узлы, управляет поддерживаемыми движками инференса и предоставляет приложениям и агентам прокси-эндпоинты, совместимые с Ollama и OpenAI. Независимые запросы маршрутизируются на подходящие узлы с учётом доступности движка, доступности модели и текущей нагрузки.
PAIR полезен при параллельных локальных рабочих нагрузках — например, в мультиагентных приложениях. Промпты и ответы остаются в локальной сети при условии, что все настроенные клиенты, источники моделей, движки и узлы являются локальными.
|
Примечание
|
PAIR направляет каждый независимый запрос на один узел. Он не объединяет GPU-память, не превращает несколько GPU в единый логический, не распределяет одну модель между машинами и не разбивает выполняемый запрос инференса между узлами. |
Два спаренных компьютера: запросы поступают на один узел, выполняются на том, который лучше подходит для каждого конкретного запроса, и оба в режиме реального времени сообщают о загрузке GPU и памяти. Посмотреть полный ролик.
Что поддерживается
Операционные системы |
Windows 11; Linux; macOS |
Архитектуры |
x64 и arm64 на всех трёх. Windows on ARM — экспериментальная поддержка. |
Установщики |
Windows |
Смешанные узлы |
Узлы под управлением 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 уже обнаружил движок, установленный вами ранее, просто запустите его.
-
Добавьте модель. Нажмите Add model на той же карточке и скачайте модель. В данном примере используется
qwen4:12b; при желании замените её на любую другую.
-
Отправьте запрос. Есть два равнозначных варианта:
-
Пусть PAIR сам сгенерирует трафик. Нажмите Test в разделе Settings → Service — PAIR в течение минуты пропускает инференс через тот же путь, и вы можете наблюдать за появлением задач, не написав ни строчки кода.
-
-
Отправьте запрос вручную. Воспользуйтесь командой
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-код, который нужно ввести на приглашённой машине.
Руководство по началу работы подробно охватывает те же темы, а также спаривание, порты и подключение собственных приложений.
Удаление
Удаление 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, чтение в приведённом порядке позволит вам быстрее войти в курс дела. Каждый раздел предполагает знакомство с предыдущими.
-
Обзор — что делает PAIR и как устроены его компоненты. Начните отсюда, чтобы понимать терминологию всех остальных документов.
-
Начало работы — установка, спаривание двух машин, подготовка модели и отправка первого запроса. Этого документа достаточно большинству пользователей.
-
Управление движками — установка, запуск, остановка, обновление и удаление движков; что PAIR восстанавливает после завершения работы или перезапуска.
-
Терминальный интерфейс — те же задачи из терминала, для машин без графического окружения. Пропустите, если на всех ваших машинах есть рабочий стол.
-
Устранение неполадок — стоит просмотреть заранее, чтобы знать, где находится диагностика. Рядом — Известные проблемы с перечнем существенных ограничений, о которых мы уже знаем, и Сбор и санация журналов — о том, как подготовить журнал для передачи другим.
-
Архитектура — модель процессов, механизм маршрутизации запросов и границы доверия. Прочитайте перед внесением каких-либо изменений или если хотите понять, почему PAIR ведёт себя именно так.
-
Сборка и запуск — предварительные требования, сборка из исходников, запуск служб без настольного приложения и написание собственного клиента для JSON-RPC API.
-
Руководство для разработчиков — прочитайте перед тем, как вносить вклад в проект: где находится код, как изменение проходит через слои системы и какие соглашения приняты в проекте.
Справочники по компонентам — для тех, кто уже знает, что ищет:
-
Службы — фоновые службы и ссылки на справочную документацию по каждому компоненту
-
Настольное приложение — работа в приложении, его архитектура, контракты и документация CLI
Релизы
Список изменений в каждом выпуске смотрите на странице релизов.
Направление развития PAIR
У нас много идей о том, куда развивать PAIR, но никаких жёстких обязательств — какие из них и когда будут реализованы. Если у вас есть мысли о направлении продукта, что-то, что сделало бы его полезнее для вас, рабочий процесс, который пока не поддерживается, или сценарий использования, который мы не рассмотрели — мы хотим об этом услышать. Откройте задачу (issue) и начните разговор.
Маршрутизация — наиболее очевидный пример. Сейчас PAIR поставляется с единственной политикой планирования, которая сочетает очередь задач с грубым сглаженным сигналом загрузки GPU. Она не учитывает модель GPU, доступную память, «прогретость» модели или стоимость запроса — что делает её более подходящей для однородных машин, чем для сильно разнородного кластера. Сделать это умнее, а вероятно, и дать вам возможность выбирать политику — это то, чего мы хотим достичь, и именно ваши данные о том, какие из этих сигналов важны на вашем железе, помогут нам это сформировать.
Обратная связь от людей, запускающих PAIR на собственном оборудовании, ценнее для нас, чем любые планы, написанные заранее.
Участие в разработке и управление проектом
Поддержка
Публичные каналы поддержки и их область охвата описаны в SUPPORT.md.
Безопасность
PAIR включает локальные HTTP-эндпоинты, обнаружение узлов в локальной сети, PIN-основанную начальную процедуру установления доверия и сетевое взаимодействие внутри кластера. Прочитайте SECURITY.md перед развёртыванием в ненадёжной или общей сети. Не сообщайте об уязвимостях в публичных задачах (issues).
Лицензия
Данный проект распространяется под лицензией Apache 2.0. Сведения о сторонних зависимостях содержатся в Third-Party Software Notices. Движки инференса, модели и другое программное обеспечение, используемое вместе с PAIR, могут иметь собственные условия лицензирования.