Home
Login

LMDeploy ist ein Toolkit zum Komprimieren, Bereitstellen und Servieren von großen Sprachmodellen.

Apache-2.0Python 6.6kInternLM Last Updated: 2025-06-19

LMDeploy Projekt – Detaillierte Vorstellung

Projektübersicht

LMDeploy ist ein Toolkit zur Komprimierung, Bereitstellung und zum Servieren großer Sprachmodelle (LLMs), das von den Teams MMRazor und MMDeploy entwickelt wurde. Das Projekt konzentriert sich auf die Bereitstellung effizienter Inferenz-, Bereitstellungs- und Servicelösungen für große Sprachmodelle (LLMs) und visuell-sprachliche Modelle (VLMs).

Kernfunktionen

1. Effiziente Inferenz (Efficient Inference)

Der Anfragedurchsatz von LMDeploy ist 1,8-mal höher als bei vLLM, durch die Einführung von Schlüsselmerkmalen wie Continuous Batching, Chunked KV-Cache, dynamische Segmentierungsfusion, Tensorparallelität und hochleistungsfähige CUDA-Kernel.

2. Effektive Quantisierung (Effective Quantization)

LMDeploy unterstützt Gewichtungsquantisierung und k/v-Quantisierung. Die 4-Bit-Inferenzleistung ist 2,4-mal höher als bei FP16. Die Quantisierungsqualität wurde durch OpenCompass-Bewertungen bestätigt.

3. Mühelose Verteilte Dienste (Effortless Distribution Server)

Durch die Nutzung von Anforderungsverteilungsdiensten ermöglicht LMDeploy die einfache und effiziente Bereitstellung von Multi-Modell-Diensten auf mehreren Maschinen und Karten.

4. Interaktiver Inferenzmodus (Interactive Inference Mode)

Durch das Cachen der Aufmerksamkeit (k/v) während mehrfacher Dialogrunden merkt sich die Engine den Gesprächsverlauf, wodurch die wiederholte Verarbeitung historischer Sitzungen vermieden wird.

5. Ausgezeichnete Kompatibilität (Excellent Compatibility)

LMDeploy unterstützt die gleichzeitige Verwendung von KV Cache-Quantisierung, AWQ und automatischem Präfix-Caching.

Duale Engine-Architektur

LMDeploy hat zwei Inferenz-Engines entwickelt:

TurboMind Engine

  • Fokus: Ultimative Optimierung der Inferenzleistung
  • Merkmale: Hochoptimierte C++/CUDA-Implementierung, speziell für Produktionsumgebungen entwickelt

PyTorch Engine

  • Fokus: Reine Python-Entwicklung, die die Einstiegshürde für Entwickler senkt
  • Merkmale: Ermöglicht schnelles Experimentieren mit neuen Funktionen und Technologien, ist leicht erweiterbar und anpassbar

Die beiden Engines unterscheiden sich in den unterstützten Modelltypen und Inferenzdatentypen. Benutzer können je nach Bedarf die passende Engine auswählen.

Unterstützte Modelle

LMDeploy unterstützt eine breite Palette von Modelltypen:

Große Sprachmodelle (LLMs)

  • InternLM-Serie (InternLM, InternLM2, InternLM2.5, InternLM3)
  • Llama-Serie (Llama2, Llama3, Llama3.1)
  • Qwen-Serie (Qwen1.5, Qwen1.5-MOE usw.)
  • Baichuan2-Serie
  • Mistral, Mixtral
  • DeepSeek-Serie
  • Gemma
  • Code Llama
  • Weitere Modelle werden fortlaufend hinzugefügt

Visuell-Sprachliche Modelle (VLMs)

  • InternVL-Serie
  • InternLM-XComposer-Serie
  • LLaVA-Serie
  • CogVLM-Serie
  • Mini-InternVL
  • DeepSeek-VL
  • Weitere Multimodale Modelle

Installationsmethoden

Schnelle Installation

Es wird empfohlen, die Installation mit pip in einer Conda-Umgebung durchzuführen (unterstützt Python 3.8-3.12):

conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy

Hinweise

  • Standardmäßig basieren die vorkompilierten Pakete auf CUDA 12 (ab Version v0.3.0)
  • Installation auf CUDA 11+ Plattformen wird unterstützt
  • Unterstützung für die Erstellung aus dem Quellcode

Schnellstartbeispiele

Grundlegende Inferenz

import lmdeploy
with lmdeploy.pipeline("internlm/internlm3-8b-instruct") as pipe:
    response = pipe(["Hi, pls intro yourself", "Shanghai is"])
    print(response)

Multimodale Inferenz

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)

Unterstützung für Modellquellen

LMDeploy unterstützt mehrere Modellbibliotheken:

  1. HuggingFace (Standard)
  2. ModelScope: Setzen Sie die Umgebungsvariable LMDEPLOY_USE_MODELSCOPE=True
  3. openMind Hub: Setzen Sie die Umgebungsvariable LMDEPLOY_USE_OPENMIND_HUB=True

Anwendungsfälle

  1. Produktionsumgebungsbereitstellung: LLM-Dienste mit hohem Durchsatz
  2. Forschungs- und Entwicklungsexperimente: Schnelle Validierung neuer Modelle und Algorithmen
  3. Ressourcenbeschränkte Umgebungen: Reduzierung des Ressourcenbedarfs durch Quantisierungstechniken
  4. Multimodale Anwendungen: Effiziente Inferenz von visuell-sprachlichen Modellen
  5. Edge-Geräte: Unterstützung für NVIDIA Jetson und andere Plattformen

Ökosystemintegration

LMDeploy ist tief in mehrere Open-Source-Projekte integriert:

  • OpenAOE: Nahtlose Integration von LMDeploy-Diensten
  • Swift: Als Standard-VLM-Inferenzbeschleuniger
  • BentoML: Bereitstellung von Bereitstellungsbeispielprojekten
  • Jetson-Plattform: Spezielle Anpassung an Edge-Geräte

Zusammenfassung

LMDeploy ist ein leistungsstarkes und leistungsstarkes Toolkit zur Bereitstellung großer Sprachmodelle, das für verschiedene Szenarien von Forschungs- und Entwicklungsexperimenten bis hin zur Produktionsbereitstellung geeignet ist. Seine Dual-Engine-Architektur, fortschrittliche Quantisierungstechniken und breite Modellunterstützung machen es zu einem wichtigen Werkzeug für KI-Anwendungsentwickler. Ob Produktionsumgebungen, die höchste Leistung anstreben, oder Forschungsszenarien, die eine schnelle Iteration erfordern, LMDeploy bietet die passende Lösung.