Pular para o conteúdo

LMDeploy - Compressão e Serviço de LLM

LMDeploy - Compressão e Serviço de LLM

LMDeploy (do ecossistema InternLM/OpenMMLab) é um toolkit para compressão, quantização e serviço de grandes modelos de linguagem. Seu motor TurboMind de alto desempenho oferece throughput forte via batching persistente, cache KV bloqueado e kernels CUDA otimizados, e também oferece um backend PyTorch. Suporta quantização de peso AWQ de 4-bit e quantização de cache KV, servidor API compatível com OpenAI e modelos vision-language (VLMs).

Instalação

MétodoComando
pippip install lmdeploy
Com extras CUDApip install lmdeploy[all]
Dockerdocker run --gpus all openmmlab/lmdeploy:latest
RequisitosGPU NVIDIA + CUDA
Verificarlmdeploy --version

Inferência Rápida (CLI)

# Bate-papo interativo no terminal (motor TurboMind)
lmdeploy chat internlm/internlm2_5-7b-chat

# Inferência em lote/pipeline em Python (abaixo)

Pipeline Python

from lmdeploy import pipeline

pipe = pipeline("internlm/internlm2_5-7b-chat")
resp = pipe(["Explique RAG em uma sentença."])
print(resp[0].text)
ChamadaDescrição
pipeline(model)Carregue um modelo com o motor padrão (TurboMind)
pipe([prompts])Inferência em lote
GenerationConfig(...)Parâmetros de amostragem (temperature, top_p, max_new_tokens)
TurbomindEngineConfig(...)Ajuste de motor (tp, cache, session len)

Servindo uma API

# Servidor compatível com OpenAI na porta 23333
lmdeploy serve api_server internlm/internlm2_5-7b-chat --server-port 23333

# Consulte
curl http://localhost:23333/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"internlm2_5-7b-chat","messages":[{"role":"user","content":"hi"}]}'
ComandoDescrição
lmdeploy serve api_server MODELInicie o servidor compatível com OpenAI
lmdeploy serve gradio MODELInicie a web UI Gradio
--server-portPorta da API
--tp NTensor parallelism entre N GPUs
--session-len NComprimento de contexto máximo

Quantização (AWQ)

# Quantização de peso AWQ de 4-bit apenas
lmdeploy lite auto_awq internlm/internlm2_5-7b-chat \
  --work-dir internlm2_5-7b-chat-4bit

# Sirva o modelo quantizado
lmdeploy serve api_server internlm2_5-7b-chat-4bit --model-format awq
ComandoDescrição
lmdeploy lite auto_awq MODELProduza um modelo AWQ de 4-bit
lmdeploy lite calibrate MODELPasso de calibração
--model-format awqSirva um modelo quantizado AWQ
Quant de cache KV--quant-policy 4 ou 8 para cache KV INT4/INT8

Configuração de Motor

from lmdeploy import pipeline, TurbomindEngineConfig
pipe = pipeline("internlm/internlm2_5-7b-chat",
    backend_config=TurbomindEngineConfig(
        tp=2, session_len=8192, cache_max_entry_count=0.8, quant_policy=8))
OpçãoEfeito
tpGPUs tensor-paralelos
session_lenComprimento de contexto
cache_max_entry_countFração de VRAM para cache KV
quant_policyQuantização de cache KV (4/8)

Modelos Vision-Language

CapacidadeNota
Suporte VLMSirva modelos como InternVL, LLaVA, Qwen-VL
Mesma APIMensagens multimodais via servidor compatível com OpenAI

LMDeploy vs Outros Motores

AspectoLMDeployvLLMAphrodite
MotorTurboMind + PyTorchPagedAttentionSeparação vLLM
QuantizaçãoAWQ + quant de cache KVCrescenteFormatos mais amplos
Suporte VLMForteSimSim
Melhor paraAlto-throughput + AWQ + VLMsServiço padrãoFormatos de quant comunitários

Recursos