Modèle / jeu de données
InternLM/lmdeploy avatar
InternLM/lmdeploy

LMDeploy : compresser et servir des LLM avec deux moteurs

InternLM/lmdeploy offre une implémentation open source exploitable en conditions réelles avec une structure réutilisable.

8 071 étoiles748 forksPythonApache-2.0

En bref

De quoi s’agit-il ?
Un aperçu de la boîte à outils LMDeploy, de ses deux moteurs d'inférence, des modèles pris en charge et des affirmations de son README concernant les performances et la quantification.
À qui s’adresse-t-il ?
internlm-lmdeploy convient aux lecteurs qui ont précisément besoin des fonctions décrites dans son README. Il ne convient pas de lui attribuer une capacité absente du dépôt.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Objectif et fonctionnalités principales de la boîte à outils

LMDeploy est une boîte à outils Python pour compresser, déployer et servir de grands modèles de langage, développée par les équipes MMRazor et MMDeploy. Le README énumère quatre fonctionnalités principales : inférence efficace, quantification efficace, serveur de distribution pour services multi-modèles et compatibilité avec plusieurs techniques d'optimisation. L'inférence efficace proviendrait du traitement par lots persistant, du cache KV bloqué, de la division et fusion dynamiques, du parallélisme tensoriel et de noyaux CUDA haute performance. La prise en charge de la quantification inclut la quantification des poids uniquement et KV, avec l'affirmation que l'inférence 4 bits est 2,4 fois plus rapide que FP16. Le serveur de distribution est décrit comme facilitant le déploiement de services multi-modèles sur plusieurs machines et cartes. La fonctionnalité de compatibilité signifie que KV Cache Quant, AWQ et le cache de préfixe automatique peuvent être utilisés ensemble.

Deux moteurs d'inférence

Le projet maintient deux moteurs d'inférence avec des objectifs différents. TurboMind est décrit comme cherchant une optimisation ultime des performances d'inférence, tandis que le moteur PyTorch est développé entièrement en Python pour abaisser la barrière pour les développeurs et permettre une expérimentation rapide. Le README note que les deux moteurs diffèrent dans les types de modèles pris en charge et les types de données d'inférence, et il pointe vers un tableau qui répertorie les capacités de chaque moteur. Le README ne fournit pas de comparaison directe des performances ou des fonctionnalités des moteurs dans le texte, il faudrait donc consulter ce tableau pour plus de détails.

Familles de modèles prises en charge

Le README contient un long tableau de grands modèles de langage et de modèles de langage vision pris en charge. Parmi les LLM figurent Llama 1 à 3.2, InternLM2 et 3, Qwen1.5 à Qwen3, Code Llama, ChatGLM, DeepSeek V2 et V3, Mixtral, Gemma, Phi-3 et Phi-4, MiniCPM, gpt-oss, et GLM-4.7 et GLM-5. La liste VLM comprend LLaVA, Qwen2-VL à Qwen3-VL, DeepSeek-VL, InternVL et InternVL2/3, CogVLM, MiniCPM-V, Phi-3 vision, GLM-4V, Molmo, Gemma3 et Llama4. La liste est exhaustive, mais le README ne spécifie pas la version exacte de chaque modèle ni la compatibilité du moteur d'inférence pour chaque entrée.

Installation et inférence par lots hors ligne

L'installation recommandée se fait via pip dans un environnement conda avec Python 3.10 à 3.13. Les commandes d'exemple créent un environnement conda nommé lmdeploy avec Python 3.12, puis installent lmdeploy avec pip. Le README note qu'à partir de v0.13.0, les wheels par défaut publiés sur PyPI sont construits contre CUDA 12.8, donc une simple installation pip suffit pour les configurations typiques, y compris la série GeForce RTX 50. Pour l'inférence hors ligne, le README montre un extrait Python qui crée un pipeline pour le modèle internlm/internlm3-8b-instruct et passe une liste de prompts. Il explique également que les modèles sont téléchargés depuis Hugging Face par défaut, et que définir les variables d'environnement LMDEPLOY_USE_MODELSCOPE=True ou LMDEPLOY_USE_OPENMIND_HUB=True permet de passer à ces hubs après avoir installé les paquets respectifs.

Affirmations de performance dans le README

Le README fait plusieurs affirmations de performance spécifiques. Il dit que LMDeploy offre jusqu'à 1,8 fois plus de débit de requêtes que vLLM, et que l'inférence 4 bits est 2,4 fois plus rapide que FP16. Il cite également une image de benchmark, mais le texte ne contient pas les détails de l'image. Dans la section des nouvelles, il y a d'autres affirmations : par exemple, que TurboMind prend en charge MXFP4 sur les GPU NVIDIA à partir de V100, atteignant 1,5 fois les performances de vLLM sur H800 pour les modèles gpt-oss, et que PyTorchEngine est 1,3 fois plus rapide sur Llama3-8B avec des graphes CUDA. Ce sont toutes des affirmations du projet, et le README ne fournit pas la méthodologie ou la configuration matérielle utilisée pour ces comparaisons.

Gouvernance du projet et licence

Le projet est hébergé sur GitHub sous l'organisation InternLM, avec 7 992 étoiles et 723 forks au moment de la rédaction. Le README énumère les directives de contribution et remercie FasterTransformer, llm-awq, vLLM et DeepSpeed-MII comme projets connexes. Il comprend également des informations de citation, avec une référence à un article pour TurboMind. Le projet est publié sous la licence Apache 2.0. La licence accorde une licence de droit d'auteur perpétuelle, mondiale, non exclusive, gratuite et sans redevance pour reproduire, préparer des œuvres dérivées, afficher, exécuter, sous-licencier et distribuer l'œuvre. Elle comprend également une licence de brevet, mais ne fournit aucune obligation de garantie ou de support ; le texte de la licence lui-même ne dit rien sur la posture de sécurité ou la préparation à la production.

Lire les limites de internlm-lmdeploy

Le README de internlm-lmdeploy décrit des commandes, des fichiers et des composants précis, mais il ne transforme pas ces indications en garantie universelle. Pour une équipe, le point important est de relier chaque promesse au chemin concret que le dépôt documente. Une fonction annoncée dans une liste ne doit pas être confondue avec un comportement vérifié dans toutes les configurations. Les éléments absents du texte restent non documentés, notamment lorsqu il s agit de sécurité, de disponibilité ou de capacité à grande échelle.

La vérification doit conserver les repères propres à internlm-lmdeploy. Il faut reprendre les noms de fichiers, les options et les commandes montrés dans le README, puis observer la sortie correspondante dans l environnement réellement visé. Cette démarche permet de distinguer un exemple, une intégration prévue et une hypothèse de l utilisateur. Elle est particulièrement utile pour internlm-lmdeploy, car ses usages dépendent de versions, de modèles, de sources, de composants ou de données que le README identifie lui-même.

Conclusion éditoriale

internlm-lmdeploy convient aux lecteurs qui ont précisément besoin des fonctions décrites dans son README. Il ne convient pas de lui attribuer une capacité absente du dépôt. Avant l adoption, exécutez la commande ou ouvrez le fichier propre à internlm-lmdeploy mentionné dans les sections, puis contrôlez la sortie, les dépendances et la limite explicitement documentée.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté