Requisitos: Anteriormente he desplegado el modelo deepseek-r1:32b con Ollama, que es muy cómodo y rápido, adecuado para un despliegue rápido personal. Si es un entorno de producción empresarial, ¿cómo debería desplegarse? Generalmente, se utilizan vllm y sglang para el despliegue, y este artículo utiliza vLLM para desplegar el modelo DeepSeek-R1.
Ollama vs. vLLM
Las diferencias son las siguientes:
| Dimensiones de contraste | Ollama | vLLM | | Posicionamiento del núcleo | Herramientas ligeras de localización para desarrolladores individuales y experimentos a pequeña escala | Marco de inferencia a nivel de producción, centrado en escenarios a nivel empresarial con alta concurrencia y baja latencia | | Requisitos de hardware | Soporta CPU y GPU, bajo footprint de memoria (usa el modelo de cuantización por defecto) | Hay que depender de las GPUs NVIDIA, que tienen un alto consumo de memoria | | Soporte para modelos | Biblioteca de modelos preentrenados integrada (soporta 1700+ modelos), descarga automática de versiones cuantitativas (principalmente int4) | La descarga manual del archivo original del modelo (por ejemplo, formato HuggingFace) soporta una gama más amplia de modelos | | Dificultad de despliegue | Instalación con un solo botón y uso listo para usar, sin necesidad de base de programación | Se requiere un entorno Python y un controlador CUDA, y se requiere experiencia técnica | | Características de rendimiento | La velocidad de inferencia única es rápida, pero la capacidad de procesamiento de concurrencia es débil | Alto rendimiento, soporte para procesamiento por lotes dinámico y miles de solicitudes concurrentes | | Gestión de recursos | Ajusta el uso de recursos de forma flexible y libera automáticamente la memoria de vídeo cuando esté inactivo | La ocupación de memoria de vídeo es fija y es necesario reservar recursos para hacer frente a las cargas máximas |
Una breve introducción a los vLLMs
vLLM es una biblioteca rápida y fácil de usar de inferencia y servicios LLM.
vLLM con nuevos algoritmos redefine el nivel tecnológico más reciente de los servicios LLM: . En comparación con HuggingFace Transformers, ofrece hasta 24 veces más rendimiento sin ningún cambio en la arquitectura del modelo. Reduciendo a la mitad la tasa de hash y aumentando el rendimiento diez veces, el estudio comparó el rendimiento de vLLM con la biblioteca LLM más popular, HuggingFace Transformers (HF), y la anterior Inferencia de Generación de Texto HuggingFace (TGI) con rendimiento SOTA. Además, el estudio dividió la configuración experimental en dos tipos: LLaMA-7B con GPU NVIDIA A10G como hardware; El otro es LLaMA-13B, con GPU NVIDIA A100 (40GB) en hardware. Muestrearon las longitudes de entrada/salida del conjunto de datos de ShareGPT. Los resultados mostraron que el rendimiento de vLLM fue 24 veces mayor que el HF y 3,5 veces mayor que TGI.
Documentación de vLLM:El inicio de sesión del hipervínculo es visible. Dirección del código fuente:El inicio de sesión del hipervínculo es visible. Pruebas de rendimiento:El inicio de sesión del hipervínculo es visible.
No tienes que entender la imagen, ¡la vaca ya está terminada!
Preparación ambiental
Compré los servicios de aplicaciones de alto rendimiento de Tencent Cloud y los configuré de la siguiente manera:
Ubuntu 20.04 Configuración del entorno: Ubuntu 20.04, Driver 525.105.17, Python 3.8, CUDA 12.0, cuDNN 8 Tipo de potencia de cálculo: GPU de dos tarjetas tipo básico - 2*16GB+ | 16+TFlops SP | CPU - 16 núcleos | RAM - 64GB
Instalar Conda
Crea un entorno de Python con Conda, pega el script directamente:
Despliega DeepSeek-R1 usando un vLLM
Crea un entorno Python con conda con el siguiente comando:
Instala vllm y modelscope con los siguientes comandos:
Descarga el modelo DeepSeek-R1 usando modelscope con el siguiente comando:
Referencia:El inicio de sesión del hipervínculo es visible.
Inicia el modelo deepseek usando el vllm con el siguiente comando:
Si te encuentras con "Bfloat16 solo está soportado en GPUs con capacidad de cálculo de al menos 8.0. Tu GPU Tesla T4 tiene capacidad de cálculo 7,5. Puedes usar float16 en su lugar estableciendo explícitamente la bandera 'dtype' en la línea de crédito, por ejemplo: --dtype=half." Advertencia, simplemente añade parámetros según la advertencia.
Comentario:
- --Tensor-Paralelo-tamaño y ajustes de conteo de GPU
- --gpu-utilización-memoria-controla el porcentaje de memoria utilizada
- --nombre-de-modelo-servido El nombre del modelo usado en la API
- --desactivar-log-requests deshabilita las solicitudes de registro
Documentación de instalación de GPU vLLM Linux:El inicio de sesión del hipervínculo es visible. Parámetros del motor:El inicio de sesión del hipervínculo es visible.
Consulta el estado de la GPU como se muestra a continuación:
Utiliza pruebas de Postman
Navegador abierto:http://ip:8000/ Documentación de la interfaz:http://ip:8000/docs
Llamada del cartero, como se muestra en la siguiente imagen:
Evaluación comparativa
Descarga el código de prueba con el siguiente comando:
El comando se ejecuta de la siguiente manera:
Resultado: Rendimiento: 2,45 solicitudes/s, 1569,60 tokens totales/s, 1255,68 tokens de salida/s
(Fin) |