Требования: Ранее я развертывал модель deepseek-r1:32b с Ollama, которая очень удобна и быстра, подходит для быстрого личного развертывания. Если это корпоративная производственная среда, как её следует внедрять? Обычно для развертывания используются vllm и sglang, и в этой статье используется vLLM для развертывания модели DeepSeek-R1.
Ollama против vLLM
Различия следующие:
| Контрастные размеры | Оллама | vLLM | | Позиционирование ядра | Лёгкие инструменты локализации для отдельных разработчиков и небольших экспериментов | Фреймворк вывода на уровне производства, ориентированный на корпоративные сценарии с высокой параллелизмом и низкой задержкой | | Требования к аппаратному обеспечению | Поддерживает процессор и видеокарту, небольшой объем памяти (по умолчанию использует модель квантования) | Приходится полагаться на видеокарты NVIDIA, которые используют большую память | | Поддержка моделей | Встроенная библиотека предварительно обученных моделей (поддерживает 1700+ моделей), автоматическая загрузка количественных версий (в основном int4) | Ручная загрузка оригинального файла модели (например, формат HuggingFace) поддерживает более широкий спектр моделей | | Сложность развертывания | Установка с одной кнопкой и использование из коробки без необходимости программирования | Требуется среда Python и драйвер CUDA, а также технический опыт | | Характеристики характеристик | Скорость единого вывода высока, но способность к обработке параллелизма слаба | Высокая пропускная способность, поддержка динамической пакетной обработки и тысячи одновременных запросов | | Управление ресурсами | Гибко регулируйте использование ресурсов и автоматически освобождайте видеопамять в режиме простоя | Заполненность видеопамяти фиксирована, а ресурсы необходимо резервировать для работы с пиковыми нагрузками |
Краткое введение в vLLM
vLLM — это быстрая и простая в использовании библиотека выводов и сервисов LLM.
vLLM с новыми алгоритмами переопределяет новейший технологический уровень LLM-сервисов: . По сравнению с HuggingFace Transformers, он предлагает до 24 раза большую пропускную способность без изменений в архитектуре модели. Сократив хешрейт вдвое и увеличив пропускную способность в десять раз, исследование сравнило пропускную способность vLLM с самой популярной библиотекой LLM — HuggingFace Transformers (HF) и предыдущей HuggingFace Text Generation Inference (TGI) с пропускной способностью SOTA. Кроме того, экспериментальная система была разделена на два типа: LLaMA-7B с GPU NVIDIA A10G в качестве аппаратного обеспечения; Другой — LLaMA-13B с аппаратной картой NVIDIA A100 (40 ГБ). Они выбирали длины входа/вывода из набора данных ShareGPT. Результаты показали, что пропускная способность vLLM была в 24 раза выше, чем у HF, и в 3,5 раза выше, чем у TGI.
Документация vLLM:Вход по гиперссылке виден. Адрес исходного кода:Вход по гиперссылке виден. Тестирование производительности:Вход по гиперссылке виден.
Тебе не обязательно понимать картину, корова готова!
Подготовка к окружающей среде
Я приобрёл высокопроизводительные сервисы приложений Tencent Cloud и настроил их следующим образом:
Ubuntu 20.04 Конфигурация среды: Ubuntu 20.04, Драйвер 525.105.17, Python 3.8, CUDA 12.0, cuDNN 8 Тип вычислительной мощности: базовый тип видеокарты с двумя картами — 2*16GB+ | 16+TFlops SP | CPU — 16 ядер | ОЗУ — 64 ГБ
Установка Conda
Создайте среду на Python с помощью Conda, вставьте скрипт напрямую:
Развернуть DeepSeek-R1 с использованием vLLM
Создайте среду на Python с помощью Conda с помощью следующей команды:
Установите vllm и modelscope с помощью следующих команд:
Скачайте модель DeepSeek-R1 с помощью modelscope с помощью следующей команды:
Ссылка:Вход по гиперссылке виден.
Запустите модель deepseek с помощью vllm следующей командой:
Если вы столкнётесь с «Bfloat16 поддерживается только на GPU с вычислительными возможностями не ниже 8.0. Ваша видеокарта Tesla T4 имеет вычислительные возможности 7.5. Вы можете использовать float16, явно установив флаг 'dtype' в CLI, например: --dtype=half." Внимание, просто добавляйте параметры в соответствии с предупреждением.
Замечание:
- --тензорно-параллельный размер и настройки GPU
- --gpu-memory-utilization определяет процент используемой памяти
- --served-model-name Имя модели, используемое в API
- --disable-log-requests отключает запросы на логирование
Документация по установке видеокарты vLLM Linux:Вход по гиперссылке виден. Параметры двигателя:Вход по гиперссылке виден.
Посмотрите статус GPU, как показано ниже:
Используйте тесты Postman
Открытие браузера:http://ip:8000/ Документация по интерфейсу:http://ip:8000/docs
Вызов почтальона, как показано на следующем изображении:
Эталонное тестирование
Скачайте тестовый код со следующей командой:
Команда выполняется следующим образом:
Результат: пропускная способность: 2,45 запроса/с, 1569,60 токенов/с, 1255,68 токенов выхода
(Конец) |