Вимоги: Раніше я розгортав модель deepseek-r1:32b з Ollama, яка дуже зручна і швидка, підходить для особистого швидкого розгортання. Якщо це корпоративне виробниче середовище, як його слід розгортати? Зазвичай для розгортання використовуються vllm і sglang, а в цій статті використовується vLLM для розгортання моделі DeepSeek-R1.
Ollama проти vLLM
Відмінності такі:
| Контрастні розміри | Оллама | vLLM | | Позиціонування ядра | Легкі інструменти локалізації для окремих розробників і малих експериментів | Фреймворк виведення на рівні виробництва, орієнтований на корпоративні сценарії з високою паралелізацією та низькою затримкою | | Апаратні вимоги | Підтримує процесор і GPU, невеликий обсяг пам'яті (за замовчуванням використовує модель квантування) | Потрібно покладатися на відеокарти 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 GPU (40GB) на апаратному забезпеченні. Вони брали довжини введення/виведення з набору даних 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 Тип обчислювальної потужності: базовий тип GPU з двома картами — 2*16GB+ | 16+TFlops SP | CPU - 16 ядер | ОПЕРАТИВНА ПАМ'ять — 64GB
Встановити 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 count-count
- --gpu-memory-utilization контролює відсоток використаної пам'яті
- --served-model-name Ім'я моделі, що використовується в API
- --disable-log-requests вимикає запити на логування
Документація з встановлення відеокарти vLLM Linux:Вхід за гіперпосиланням видно. Параметри двигуна:Вхід за гіперпосиланням видно.
Ознайомтеся зі статусом відеокарти, як показано нижче:
Використовуйте тести Postman
Відкриття браузера:http://ip:8000/ Документація інтерфейсу:http://ip:8000/docs
Листоноша виклик, як показано на наступному зображенні:
Бенчмаркінг
Завантажте тестовий код за допомогою наступної команди:
Команда виконується наступним чином:
Результат: пропускна здатність: 2,45 запитів/с, 1569,60 загальна кількість токенів/с, 1255,68 вихідних токенів/с
(Кінець) |