LMDeploy - ضغط و خدمة LLM
LMDeploy (من نظام InternLM/OpenMMLab) هي مجموعة أدوات لـ ضغط وتكميم وخدمة نماذج اللغة الكبيرة. محرك TurboMind عالي الأداء الخاص بها يوفر إنتاجية قوية عبر batching دائم و KV cache محظور وأنواى CUDA محسّنة وتوفر أيضًا واجهة خلفية PyTorch. يدعم تكميم وزن AWQ 4-بت و KV-cache quantization وخادم API متوافق مع OpenAI ونماذج رؤية اللغة (VLMs).
التثبيت
| الطريقة | الأمر |
|---|
| pip | pip install lmdeploy |
| مع إضافات CUDA | pip install lmdeploy[all] |
| Docker | docker run --gpus all openmmlab/lmdeploy:latest |
| المتطلبات | NVIDIA GPU + CUDA |
| التحقق | lmdeploy --version |
استدلال سريع (واجهة سطر أوامس)
# دردشة تفاعلية في المحطة الطرفية (محرك TurboMind)
lmdeploy chat internlm/internlm2_5-7b-chat
# استدلال Batch/pipeline في Python (أدناه)
خط أنابيب Python
from lmdeploy import pipeline
pipe = pipeline("internlm/internlm2_5-7b-chat")
resp = pipe(["Explain RAG in one sentence."])
print(resp[0].text)
| الاستدعاء | الوصف |
|---|
pipeline(model) | تحميل نموذج مع المحرك الافتراضي (TurboMind) |
pipe([prompts]) | استدلال الدفعات |
GenerationConfig(...) | معاملات العينات (درجة الحرارة و top_p و max_new_tokens) |
TurbomindEngineConfig(...) | ضبط المحرك (tp و cache و session len) |
خدمة API
# خادم متوافق مع OpenAI على المنفذ 23333
lmdeploy serve api_server internlm/internlm2_5-7b-chat --server-port 23333
# الاستعلام عنها
curl http://localhost:23333/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"internlm2_5-7b-chat","messages":[{"role":"user","content":"hi"}]}'
| الأمر | الوصف |
|---|
lmdeploy serve api_server MODEL | بدء خادم متوافق مع OpenAI |
lmdeploy serve gradio MODEL | إطلاق واجهة ويب Gradio |
--server-port | منفذ API |
--tp N | tensor parallelism عبر N GPUs |
--session-len N | أقصى طول سياق |
التكميم (AWQ)
# تكميم وزن AWQ 4-بت فقط
lmdeploy lite auto_awq internlm/internlm2_5-7b-chat \
--work-dir internlm2_5-7b-chat-4bit
# خدمة النموذج المكمم
lmdeploy serve api_server internlm2_5-7b-chat-4bit --model-format awq
| الأمر | الوصف |
|---|
lmdeploy lite auto_awq MODEL | إنتاج نموذج AWQ 4-بت |
lmdeploy lite calibrate MODEL | خطوة المعايرة |
--model-format awq | خدمة نموذج مكمم AWQ |
| كميم KV-cache | --quant-policy 4 أو 8 لـ INT4/INT8 KV cache |
تكوين المحرك
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))
| الخيار | التأثير |
|---|
tp | GPUs tensor-parallel |
session_len | طول السياق |
cache_max_entry_count | جزء من VRAM لـ KV cache |
quant_policy | تكميم KV cache (4/8) |
نماذج رؤية اللغة
| الإمكانية | ملاحظة |
|---|
| دعم VLM | خدمة نماذج مثل InternVL و LLaVA و Qwen-VL |
| نفس API | رسائل متعددة الوسائط عبر خادم متوافق مع OpenAI |
LMDeploy مقابل المحركات الأخرى
| الجانب | LMDeploy | vLLM | Aphrodite |
|---|
| المحرك | TurboMind + PyTorch | PagedAttention | vLLM fork |
| التكميم | AWQ + KV cache quant | متزايد | تنسيقات الأوسع |
| دعم VLM | قوي | نعم | نعم |
| الأفضل لـ | إنتاجية عالية + AWQ + VLMs | خدمة معيارية | تنسيقات تكميم المجتمع |
موارد