ExLlamaV3 - استدلال LLM مكمم سريع على GPUs المستهلك
ExLlamaV3 هي مكتبة استدلال سريعة لتشغيل LLMs مكممة على GPUs NVIDIA الاستهلاكية. صيغة EXL3 الخاصة بها توفر تكميم متغير البت عالي الجودة — يمكنك استهداف متوسط bits-per-weight (مثل 3.0 و 4.25 و 6.0) للتبادل بين الجودة و VRAM بدقة — مما يتيح للنماذج الكبيرة الاحتواء على بطاقة 24GB واحدة مع الحفاظ على إنتاجية قوية. هو الخليفة لـ ExLlamaV2 ويُفضل من قبل مجتمع LLM المحلي لعصر النماذج الكبيرة في الذاكرة المحدودة.
التثبيت
| الطريقة | الأمر |
|---|
| pip (عجلة مُبنية مسبقاً) | pip install exllamav3 |
| من المصدر | git clone https://github.com/turboderp-org/exllamav3 && cd exllamav3 && pip install -e . |
| المتطلبات | NVIDIA GPU (Ampere+) و CUDA و PyTorch |
| التحقق | python -c "import exllamav3; print('ok')" |
صيغة EXL3
| المفهوم | المعنى |
|---|
| معدل البت المتغير | استهداف متوسط bits-per-weight (bpw)، مثل 2.5–8.0 |
| دقة لكل طبقة | يمكن للطبقات المختلفة استخدام دقة مختلفة |
| قرص جودة/الحجم | bpw أعلى = جودة أفضل و VRAM أكثر |
| المعايرة | يستخدم مجموعة بيانات المعايرة أثناء التكميم |
تكميم نموذج
# تحويل نموذج HF إلى EXL3 في ~4.0 bits per weight
python -m exllamav3.convert \
-i meta-llama/Llama-3.1-8B-Instruct \
-o Llama-3.1-8B-exl3-4.0bpw \
-b 4.0
| العلم | الوصف |
|---|
-i, --in_dir | نموذج HF المصدر |
-o, --out_dir | دليل إخراج EXL3 |
-b, --bits | استهداف متوسط bits per weight |
-hb, --head_bits | دقة رأس الإخراج |
-c, --cal_dir | بيانات معايرة مخصصة |
استدلال Python
from exllamav3 import Model, Config, Cache, Tokenizer, Generator
config = Config.from_directory("Llama-3.1-8B-exl3-4.0bpw")
model = Model.from_config(config)
cache = Cache(model, max_num_tokens=8192)
model.load()
tokenizer = Tokenizer.from_config(config)
generator = Generator(model=model, cache=cache, tokenizer=tokenizer)
output = generator.generate(prompt="Explain quantization briefly.",
max_new_tokens=200)
print(output)
| الكائن | الدور |
|---|
Config | يحمل إعدادات النموذج من دليل EXL3 |
Model | النموذج المكمم |
Cache | ذاكرة التخزين المؤقت KV (حجم = سياق أطول) |
Generator | يشغل الجيل |
الذاكرة والسياق
| الرافعة | التأثير |
|---|
| bpw في وقت التكميم | bpw منخفض → VRAM أقل وبعض فقدان الجودة |
| حجم ذاكرة التخزين المؤقت | أكبر → سياق أطول و VRAM أكثر |
| كميم ذاكرة التخزين المؤقت | كميم KV cache لتوسيع السياق |
| رأس البت | إبقاء الرأس بدقة أعلى للجودة |
اختيار معدل البت (دليل تقريبي)
| استهداف bpw | الاستخدام النموذجي |
|---|
| 2.0–2.5 | احتواء نموذج كبير جداً في VRAM ضيقة (انخفاض الجودة) |
| 3.0–3.5 | عدوانية لكن قابلة للاستخدام |
| 4.0–4.5 | نقطة حلوة لمعظم إعدادات 24GB |
| 6.0+ | بدون فقدان تقريباً و VRAM أكثر |
تكامل النظام البيئي
| الهدف | ملاحظة |
|---|
| TabbyAPI | خادم متوافق مع OpenAI يستخدم ExLlamaV3 |
| text-generation-webui | دعم التحميل |
| Aphrodite Engine | يمكن خدمة نماذج مكممة EXL3 |
ExLlamaV3 مقابل النهج الأخرى
| الجانب | ExLlamaV3 | llama.cpp (GGUF) | GPTQ/AWQ |
|---|
| الهدف | مستهلك NVIDIA GPUs | CPU + GPU ومتعدد الأنظمة الأساسية | GPU |
| التكميم | متغير البت EXL3 | k-quants | ثابت 4-بت |
| التحكم بالدقة | دقيق (أي bpw) | مستويات محددة مسبقاً | خشن |
| الأفضل لـ | جودة قصوى لكل VRAM على GPU | الحمل والمرونة وCPU | خدمة 4-بت معيارية |
موارد