vLLM: развертывание больших языковых моделей на платформе Runpod
Это шаблон рабочего процесса для развертывания больших языковых моделей (LLM) с использованием vLLM на платформе Runpod. Он позволяет создать совместимый с OpenAI конечный сервер для обработки запросов к моделям с высокой производительностью, не заботясь об управлении инфраструктурой.
Проект будет полезен разработчикам, которые хотят быстро развернуть LLM для своих приложений, но не хотят углубляться в детали настройки серверов. В отличие от обычных образов vLLM, этот шаблон упрощает процесс развертывания и управления своими моделями, предоставляя готовые Docker-образы. Вместо этого, если тебе нужно просто балансировщик нагрузки, стоит обратить внимание на официальное vLLM-изображение.
Для запуска потребуется Docker, а также базовые навыки работы с командной строкой. Так как это решение предназначено для работы на платформе Runpod, наличие аккаунта на этой платформе обязательно. Проект находится на стадии активной разработки, поэтому рекомендуется следить за обновлениями и проверять совместимость моделей.
Проект **runpod-workers/worker-vllm** представляет собой серверный работник, который позволяет развертывать совместимые с OpenAI LLM (Large Language Model) конечные точки, используя движок vLLM на платформе Runpod. Это решение предоставляет возможность достаточно быстро и просто создавать серверные конечные точки для моделирования на основе LLM, доступных на Hugging Face.
Цели и функциональность
Основная задача этого проекта — дать возможность разработчикам развертывать LLM модели в безсерверной инфраструктуре с поддержкой API, совместимого с OpenAI. Работник vLLM предлагает гибкость в выборе моделей и их конфигурации через настройки окружения. Поддерживаются как предустановленные Docker-образы, так и возможность создания кастомных образов с моделями внутри.
Установка и настройка
Существует несколько способов развертывания рабочего процесса:
- Опция 1: Использовать предустановленный Docker-образ. Это самый рекомендуемый способ. Для развертывания достаточно следовать пошаговой инструкции на сайте Runpod.
- Опция 2: Создать свой Docker-образ с моделью внутри. Для этого потребуется предварительная настройка окружения и указание необходимых аргументов при сборке.
Пример команды для развертывания с предустановленным образом:
docker run -e MODEL_NAME="your_model" runpod/worker-v1-vllm:
Конфигурация
Работник vLLM настраивается с помощью переменных окружения. Основные параметры включают:
MODEL_NAME— путь к весам модели.HF_TOKEN— токен доступа Hugging Face для приватных моделей.MAX_MODEL_LEN— максимальная длина контекста для модели.QUANTIZATION— метод квантования.MAX_CONCURRENCY— максимальное количество одновременно обрабатываемых запросов.
Дополнительно, может быть использован конфигурационный файл config.yaml для более комплексной настройки.
Использование API
Рабочий процесс vLLM полностью совместим с API OpenAI, что позволяет заменять исходные вызовы API на вызовы, направленные на развернутую конечную точку в Runpod. Для этого нужно просто изменить несколько строк в коде и указать соответствующий URL и ключ API.
Пример использования:
client = OpenAI(api_key=os.environ.get("RUNPOD_API_KEY"), base_url="https://api.runpod.ai/v2//openai/v1")
Ограничения
Существуют определенные ограничения, о которых стоит помнить:
- Некоторые модели могут не запускаться из-за недостатка ресурсов GPU или неправильных параметров конфигурации.
- Модели, требующие токенов для доступа, должны быть настроены соответствующим образом.
- Отсутствуют очереди обработки для конечных точек нагрузки, что может приводить к ошибкам при попытке обработки запросов в момент, когда работники еще не готовы.
При диагностике проблем с запуском работник предоставляет сообщения об ошибках, которые могут помочь скорректировать параметры и добиться успешного старта.
Открыть на GitHub: runpod-workers/worker-vllm →
RepoRadar