LMDeploy est une boîte à outils pour la compression, le déploiement et le service de grands modèles de langage, développée par les équipes MMRazor et MMDeploy. Ce projet se concentre sur la fourniture de solutions efficaces d'inférence, de déploiement et de service pour les grands modèles de langage (LLM) et les modèles vision-langage (VLM).
Le débit de requêtes de LMDeploy est 1,8 fois supérieur à celui de vLLM, grâce à l'introduction de fonctionnalités clés telles que le traitement par lots continu (continuous batching), le cache KV fragmenté, la fusion de segmentation dynamique, le parallélisme tensoriel et les noyaux CUDA haute performance.
LMDeploy prend en charge la quantification des poids et la quantification k/v, avec des performances d'inférence 4 bits 2,4 fois supérieures à celles de FP16. La qualité de la quantification a été confirmée par l'évaluation OpenCompass.
Grâce au service de distribution des requêtes, LMDeploy facilite le déploiement efficace de services multi-modèles sur plusieurs machines et cartes.
En mettant en cache les k/v de l'attention pendant les conversations à plusieurs tours, le moteur mémorise l'historique de la conversation, évitant ainsi le traitement répété des sessions précédentes.
LMDeploy prend en charge l'utilisation simultanée de la quantification KV Cache, AWQ et la mise en cache automatique des préfixes.
LMDeploy a développé deux moteurs d'inférence :
Les deux moteurs diffèrent en termes de types de modèles pris en charge et de types de données d'inférence. Les utilisateurs peuvent choisir le moteur approprié en fonction de leurs besoins réels.
LMDeploy prend en charge une large gamme de types de modèles :
Il est recommandé d'utiliser pip pour l'installation dans un environnement conda (prise en charge de 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 prend en charge plusieurs bibliothèques de modèles :
LMDEPLOY_USE_MODELSCOPE=True
LMDEPLOY_USE_OPENMIND_HUB=True
LMDeploy est profondément intégré à plusieurs projets open source :
LMDeploy est une boîte à outils de déploiement de grands modèles de langage puissante et performante, adaptée à divers scénarios, de l'expérimentation de R&D au déploiement en production. Son architecture à double moteur, sa technologie de quantification avancée et sa large prise en charge des modèles en font un outil important pour les développeurs d'applications d'IA. Que ce soit pour un environnement de production à la recherche de performances ultimes ou pour un scénario de R&D nécessitant une itération rapide, LMDeploy peut fournir la solution appropriée.