Часто задаваемые вопросы
Матрица поддержки
Поддержка гибридного кластера
GPUStack поддерживает гетерогенные кластеры, включающие процессоры NVIDIA, AMD, Ascend NPU, Hygon DCU, Moore Threads, Iluvatar, MetaX, Cambricon и T-Head PPU, и работает на архитектурах AMD64 и ARM64.
Поддержка распределенного вывода
Несколько GPU на одном узле
- vLLM
- SGLang
- MindIE
Многоузловой мульти-GPU
- vLLM
- SGLang
- MindIE
Совет
Сопутствующая документация:
vLLM:Распределенный вывод и обслуживание
SGLang:Многоузловое развертывание
MindIE: Многоузловой вывод
Установка
Как я могу изменить зарегистрированное имя работника?
Вы можете установить для него собственное имя, используя флаг --worker-name при запуске GPUStack:
Как я могу изменить зарегистрированный IP-адрес рабочего?
Вы можете установить собственный IP-адрес, используя флаг --worker-ip при запуске GPUStack:
Где хранятся данные GPUStack?
При запуске контейнера GPUStack том Docker монтируется с использованием параметра --volume/-v. Путь к данным по умолчанию находится в каталоге данных Docker, в частности в подкаталоге томов, а путь по умолчанию:
Проверить это можно следующим способом:
Если вам нужно изменить его на собственный путь, измените конфигурацию монтирования при запуске контейнера. Например, чтобы смонтировать каталог хоста /data/gpustack:
Где хранятся файлы моделей?
При запуске контейнера GPUStack том Docker монтируется с использованием параметра --volume/-v. Путь к кэшу по умолчанию находится в каталоге данных Docker, в частности в подкаталоге томов, а путь по умолчанию:
Проверить это можно следующим способом:
Если вам нужно изменить его на собственный путь, измените конфигурацию монтирования при запуске контейнера.
Например, чтобы смонтировать каталог хоста /data/model-cache:
Управление моделями
Как я могу развернуть модель из Hugging Face?
Чтобы развернуть модели из Hugging Face, серверный узел и рабочие узлы, на которых запланированы экземпляры модели, должны иметь доступ к Hugging Face, или вы можете использовать зеркало.
Например, настройте зеркало hf-mirror.com:
Как я могу развернуть модель из локального пути?
При развертывании моделей из локального пути убедитесь, что путь к модели доступен целевым рабочим процессам.
Если модель хранится в конкретном работнике, вы можете использовать селектор исполнителя, чтобы развернуть модель для этого работника.
Другой вариант — смонтировать общее хранилище на нескольких узлах.
Файлы модели также должны быть смонтированы в контейнер, а каталог хоста и путь монтирования контейнера должны быть идентичными.
При развертывании моделей Safetensors из локального пути он должен указывать на абсолютный путь к каталогу модели, содержащему *.safetensors, config.json и другие файлы.
При развертывании моделей GGUF из локального пути путь должен указывать на абсолютный путь к файлу .gguf. Для файлов сегментированной модели используйте абсолютный путь к первому файлу .gguf (00001).
Что делать, если модель застряла в состоянии Pending?
Pending означает, что в настоящее время ни один работник не соответствует требованиям модели. Наведите указатель мыши на статус Pending, чтобы увидеть причину.
Сначала проверьте раздел Workers, чтобы убедиться, что статус работника — «Готов».
Далее, каждый бэкэнд имеет свою собственную логику обработки. Например, для vLLM:
vLLM требует, чтобы на всех графических процессорах было доступно более 90 % памяти по умолчанию (контролируется параметром --gpu-memory-utilization). Убедитесь, что имеется достаточно выделяемой памяти графического процессора, превышающей 90%. Обратите внимание: даже если другие модели находятся в состоянии Error или Downloading, память графического процессора уже выделена.
Если на всех графических процессорах доступно более 90 % доступной памяти, но по-прежнему отображается Pending, это указывает на недостаток памяти. Для моделей safetensors требуемую память графического процессора (ГБ) можно оценить как:
Если выделяемая память графического процессора составляет менее 90%, но вы уверены, что модель может работать с меньшим выделением, вы можете настроить параметр --gpu-memory-utilization. Например, добавьте --gpu-memory-utilization=0.5 в Edit Model → Advanced → Backend Parameters, чтобы выделить 50% памяти графического процессора.
Примечание: Если после запуска модели возникает ошибка и в журналах отображается CUDA: out of memory, это означает, что выделенной памяти графического процессора недостаточно. Вам нужно будет дополнительно настроить --gpu-memory-utilization, добавить больше ресурсов или развернуть модель меньшего размера.
Размер контекста модели также влияет на требуемую память графического процессора. Вы можете настроить параметр --max-model-len, чтобы установить меньший контекст. В GPUStack, если этот параметр не установлен, его значение по умолчанию — 8192. Если оно указано в параметрах серверной части, фактическая настройка вступит в силу.
При необходимости вы можете настроить его на меньший контекст, например --max-model-len=2048. Однако имейте в виду, что максимальное количество токенов для каждого запроса на вывод не может превышать значение --max-model-len. Поэтому установка очень маленького контекста может привести к усечению вывода.
Параметр --enforce-eager также помогает снизить использование памяти графического процессора. Однако этот параметр в vLLM заставляет модель выполняться в режиме активного выполнения, что означает, что операции выполняются немедленно по мере их вызова, а не откладываются для оптимизации при выполнении на основе графа (как при отложенном выполнении). Это может замедлить выполнение, но облегчить отладку. Однако это также может снизить производительность из-за отсутствия оптимизации, обеспечиваемой выполнением графа.
SGLang и MindIE следуют аналогичному процессу, отличаясь только своими параметрами. Дополнительную информацию см. в разделе Встроенные механизмы вывода.
Что делать, если модель застряла в состоянии Scheduled?
Попробуйте перезапустить контейнер GPUStack, в котором запланирована модель. Если проблема не устранена, проверьте журналы рабочих процессов здесь, чтобы проанализировать причину.
Что делать, если модель застряла в состоянии Error?
Наведите курсор на статус Error, чтобы увидеть причину. Если есть кнопка View More, нажмите ее, чтобы проверить сообщения об ошибках в журналах модели и проанализировать причину ошибки.
Почему модель не запускается при использовании пользовательской версии серверной части, основанной на официальном образе vLLM с PYPI_PACKAGES_INSTALL?
При развертывании модели с использованием пользовательской версии серверной части vLLM, основанной на официальном образе vLLM, модель может не запуститься, если PYPI_PACKAGES_INSTALL используется для установки дополнительных пакетов Python.
Вы можете увидеть ошибку, похожую на:
Это происходит потому, что контейнер запускается с пользовательской команды вместо точки входа изображения по умолчанию.
В Inference Backends → vLLM → Edit → Versions Config отредактируйте соответствующую версию и установите для Override Image Entrypoint значение:
Почему удаление модели не освобождает место на диске?
Это сделано для того, чтобы избежать повторной загрузки модели при повторном развертывании. Вам нужно очистить его в Model Files вручную.
Использование моделей
Как устранить ошибку: в одном запросе может быть предоставлено не более 1 изображения?
Это ограничение vLLM. При необходимости вы можете настроить параметр --limit-mm-per-prompt в Edit Model → Advanced → Backend Parameters. Например, --limit-mm-per-prompt={"image": 4} означает, что он поддерживает до 4 изображений на один запрос вывода, подробности см. здесь.
Управление GPUStack
Как использовать GPUStack через прокси?
Мы рекомендуем передавать стандартные переменные среды прокси-сервера при запуске GPUStack.
В следующем примере показано, как настроить GPUStack для пересылки всех запросов на целевой прокси, за исключением запросов на адреса, указанные в переменной среды NO_PROXY.
Примечание
- Замените IP-адрес/адрес прокси-сервера соответствующим образом.
- Если ваш прокси требует аутентификации, используйте формат
http://username:password@proxy-server:port. Имейте в виду, что для специальных символов в паролях может потребоваться кодирование URL.