LMDeploy es un conjunto de herramientas para comprimir, desplegar y servir modelos de lenguaje grandes, desarrollado por los equipos de MMRazor y MMDeploy. Este proyecto se centra en proporcionar soluciones eficientes de inferencia, despliegue y servicio para modelos de lenguaje grandes (LLM) y modelos visuales-lingüísticos (VLM).
El rendimiento de solicitudes de LMDeploy es 1.8 veces mayor que el de vLLM, mediante la introducción de características clave como el procesamiento por lotes persistente (continuous batching), el almacenamiento en caché KV fragmentado, la fusión de segmentación dinámica, el paralelismo tensorial y los núcleos CUDA de alto rendimiento.
LMDeploy admite la cuantificación de pesos y la cuantificación k/v, con un rendimiento de inferencia de 4 bits 2.4 veces mayor que FP16. La calidad de la cuantificación ha sido confirmada mediante la evaluación de OpenCompass.
Utilizando el servicio de distribución de solicitudes, LMDeploy facilita el despliegue eficiente de servicios de múltiples modelos en múltiples máquinas y tarjetas.
Al almacenar en caché el k/v de la atención durante las conversaciones de múltiples rondas, el motor recuerda el historial de la conversación, evitando así el procesamiento repetido de las sesiones históricas.
LMDeploy admite el uso simultáneo de la cuantificación KV Cache, AWQ y el almacenamiento en caché automático de prefijos.
LMDeploy ha desarrollado dos motores de inferencia:
Los dos motores difieren en los tipos de modelos y los tipos de datos de inferencia que admiten, y los usuarios pueden elegir el motor adecuado según sus necesidades reales.
LMDeploy admite una amplia gama de tipos de modelos:
Se recomienda instalar con pip en un entorno conda (compatible con Python 3.8-3.12):
conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy
import lmdeploy
with lmdeploy.pipeline("internlm/internlm3-8b-instruct") as pipe:
response = pipe(["Hi, pls intro yourself", "Shanghai is"])
print(response)
from lmdeploy import pipeline
from lmdeploy.vl import load_image
pipe = pipeline('OpenGVLab/InternVL2-8B')
image = load_image('path/to/image.jpg')
response = pipe(('描述这张图片', image))
print(response)
LMDeploy admite múltiples bibliotecas de modelos:
LMDEPLOY_USE_MODELSCOPE=True
LMDEPLOY_USE_OPENMIND_HUB=True
LMDeploy está profundamente integrado con varios proyectos de código abierto:
LMDeploy es un conjunto de herramientas de despliegue de modelos de lenguaje grandes potente y de alto rendimiento, adecuado para una variedad de escenarios, desde la experimentación en I+D hasta el despliegue en producción. Su arquitectura de doble motor, sus avanzadas técnicas de cuantificación y su amplio soporte de modelos lo convierten en una herramienta importante para los desarrolladores de aplicaciones de IA. Ya sea que se busque el máximo rendimiento en un entorno de producción o se necesite una iteración rápida en un escenario de I+D, LMDeploy puede proporcionar la solución adecuada.