Home
Login

LMDeploy é um kit de ferramentas para compactar, implantar e servir grandes modelos de linguagem.

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

LMDeploy - Apresentação Detalhada do Projeto

Visão Geral do Projeto

LMDeploy é um kit de ferramentas para compressão, implantação e serviço de grandes modelos de linguagem, desenvolvido pelas equipes MMRazor e MMDeploy. O projeto se concentra em fornecer soluções eficientes de inferência, implantação e serviço para grandes modelos de linguagem (LLM) e modelos de linguagem visual (VLM).

Principais Características

1. Inferência Eficiente (Efficient Inference)

O rendimento de requisições do LMDeploy é 1,8 vezes maior que o vLLM, através da introdução de características chave como processamento em lote persistente (continuous batching), cache KV fragmentado, fusão de divisão dinâmica, paralelismo de tensor, núcleos CUDA de alto desempenho, etc.

2. Quantização Eficaz (Effective Quantization)

LMDeploy suporta quantização de peso e quantização k/v, o desempenho de inferência de 4 bits é 2,4 vezes maior que o FP16, a qualidade da quantização foi confirmada pela avaliação OpenCompass.

3. Serviço de Distribuição Fácil (Effortless Distribution Server)

Utilizando o serviço de distribuição de requisições, o LMDeploy facilita a implantação eficiente de serviços multi-modelo em várias máquinas e placas.

4. Modo de Inferência Interativa (Interactive Inference Mode)

Ao armazenar em cache o k/v de atenção durante conversas de múltiplas rodadas, o motor lembra o histórico da conversa, evitando assim o processamento repetido de sessões históricas.

5. Excelente Compatibilidade (Excellent Compatibility)

LMDeploy suporta o uso simultâneo de quantização KV Cache, AWQ e cache de prefixo automático.

Arquitetura de Motor Duplo

LMDeploy desenvolveu dois motores de inferência:

Motor TurboMind

  • Foco: Busca pela otimização final do desempenho de inferência
  • Características: Implementação C++/CUDA altamente otimizada, projetada para ambientes de produção

Motor PyTorch

  • Foco: Desenvolvimento puramente em Python, reduzindo a barreira de entrada para desenvolvedores
  • Características: Facilita a experimentação rápida de novas funcionalidades e tecnologias, fácil de expandir e personalizar

Os dois motores diferem nos tipos de modelos suportados e nos tipos de dados de inferência, os usuários podem escolher o motor apropriado de acordo com suas necessidades reais.

Modelos Suportados

LMDeploy suporta uma ampla gama de tipos de modelos:

Grandes Modelos de Linguagem (LLMs)

  • Série InternLM (InternLM, InternLM2, InternLM2.5, InternLM3)
  • Série Llama (Llama2, Llama3, Llama3.1)
  • Série Qwen (Qwen1.5, Qwen1.5-MOE, etc.)
  • Série Baichuan2
  • Mistral, Mixtral
  • Série DeepSeek
  • Gemma
  • Code Llama
  • Mais modelos sendo adicionados continuamente

Modelos de Linguagem Visual (VLMs)

  • Série InternVL
  • Série InternLM-XComposer
  • Série LLaVA
  • Série CogVLM
  • Mini-InternVL
  • DeepSeek-VL
  • Mais modelos multimodais

Método de Instalação

Instalação Rápida

Recomenda-se usar o pip para instalar em um ambiente conda (suporta Python 3.8-3.12):

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

Notas

  • O pacote pré-construído padrão é compilado com base no CUDA 12 (a partir da versão v0.3.0)
  • Suporta instalação em plataformas CUDA 11+
  • Suporta construção a partir do código fonte

Exemplo de Uso Rápido

Inferência Básica

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

Inferência Multimodal

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)

Suporte à Fonte do Modelo

LMDeploy suporta várias bibliotecas de modelos:

  1. HuggingFace (padrão)
  2. ModelScope: Defina a variável de ambiente LMDEPLOY_USE_MODELSCOPE=True
  3. openMind Hub: Defina a variável de ambiente LMDEPLOY_USE_OPENMIND_HUB=True

Cenários de Aplicação

  1. Implantação em Ambiente de Produção: Serviço LLM de alto rendimento
  2. Experimentos de P&D: Validação rápida de novos modelos e algoritmos
  3. Ambientes com Recursos Limitados: Reduzir os requisitos de recursos por meio de técnicas de quantização
  4. Aplicações Multimodais: Inferência eficiente de modelos de linguagem visual
  5. Dispositivos de Borda: Suporte para plataformas como NVIDIA Jetson

Integração de Ecossistema

LMDeploy está profundamente integrado com vários projetos de código aberto:

  • OpenAOE: Integração perfeita com o serviço LMDeploy
  • Swift: Como acelerador de inferência VLM padrão
  • BentoML: Fornece projetos de exemplo de implantação
  • Plataforma Jetson: Adaptação especial para dispositivos de borda

Resumo

LMDeploy é um kit de ferramentas de implantação de grandes modelos de linguagem poderoso e de alto desempenho, adequado para vários cenários, desde experimentos de P&D até implantação em produção. Sua arquitetura de motor duplo, tecnologia de quantização avançada e amplo suporte a modelos o tornam uma ferramenta importante para desenvolvedores de aplicativos de IA. Seja buscando o desempenho máximo em um ambiente de produção ou precisando de iteração rápida em um cenário de P&D, o LMDeploy pode fornecer a solução certa.