GGUF چیست و چرا اجرای مدلهای هوش مصنوعی روی لپتاپ را ممکن کرد؟ (نسخه ۲۰۲۶)
اگر چند سال پیش میخواستید یک مدل زبانی چند میلیارد پارامتری را روی لپتاپ شخصی اجرا کنید، احتمالاً خیلی سریع با محدودیت حافظه مواجه میشدید.
مشکل اصلی معمولاً قدرت پردازشی نبود؛ مشکل اصلی حجم بسیار زیاد خود مدلها بود.
برای مثال یک مدل ۷ میلیارد پارامتری را در نظر بگیرید.
هر پارامتر در نسخه FP16 به ۱۶ بیت (۲ بایت) فضا نیاز دارد. بنابراین:
7 Billion × 2 Bytes ≈ 14GB
یعنی فقط وزنهای مدل حدود ۱۴ گیگابایت RAM اشغال میکنند.
و این قبل از درنظر گرفتن موارد زیر است:
KV Cache (حافظه Attention)
Context Window
Activation Memory
Runtime Buffers
در نتیجه اجرای بسیاری از مدلهای مدرن روی کامپیوترهای شخصی عملاً غیرممکن به نظر میرسید.
اینجاست که GGUF وارد ماجرا میشود.
GGUF که مخفف GGML Unified Format است، فرمت استانداردی برای ذخیره، توزیع و اجرای مدلهای زبانی محسوب میشود.
اما GGUF صرفاً یک فایل شامل وزنهای مدل نیست.
در فرمتهای قدیمی معمولاً چندین فایل مختلف وجود داشت:
Weight Files
Config Files
Tokenizer Files
Metadata Files
Runtime Configuration
اگر یکی از این فایلها حذف میشد، مدل دیگر اجرا نمیشد.
GGUF این پیچیدگی را حذف کرد.
در یک فایل GGUF تقریباً تمام اطلاعات موردنیاز برای اجرای مدل ذخیره میشود.
به همین دلیل میتوان آن را یک کانتینر هوشمند برای مدلهای زبانی دانست.
پاسخ کوتاه:
Quantization
کوانتایزیشن فرآیندی است که طی آن دقت عددی وزنهای مدل کاهش پیدا میکند تا حجم فایل و مصرف حافظه کمتر شود.
مثال برای مدل 7B:
FP16 → 14GB
Q8_0 → 8GB
Q6_K → 6.5GB
Q5_K_M → 5.5GB
Q4_K_M → 4.2GB
Q3_K_S → 3GB
در نتیجه مدلی که قبلاً فقط روی سرور اجرا میشد، حالا روی لپتاپ شخصی نیز قابل اجرا است.
اگر وارد صفحه مدلها شوید احتمالاً با نامهایی مثل این مواجه میشوید:
Q2_K
Q3_K_S
Q4_K_M
Q5_K_M
IQ4_XS
Q8_0
بیایید آن را بشکنیم.
Q4
Q مخفف Quantization است.
عدد 4 یعنی وزنها تقریباً با دقت ۴ بیت ذخیره شدهاند.
عدد کمتر یعنی:
حجم کمتر
RAM کمتر
سرعت بیشتر
اما کیفیت پایینتر.
K
K به خانواده K-Quant اشاره دارد.
قبل از آن نسخههایی مثل:
Q4_0
Q4_1
رایج بودند.
K-Quant کیفیت بهتری در همان حجم ارائه میدهد.
M
M مخفف Medium است.
این پسوند مشخص میکند بعضی تنسورهای حساس مدل با دقت بالاتری ذخیره شوند.
معمولاً:
S → Small
M → Medium
L → Large
به همین دلیل Q4_K_M محبوبترین نسخه عمومی شده است.
در سالهای اخیر خانواده جدیدی معرفی شد:
IQ2_XXS
IQ3_M
IQ4_XS
این روشها نسبت به Q-Quant کلاسیک کیفیت بهتری در حجم کمتر ارائه میدهند.
در بسیاری از مدلهای جدید، نسخههای IQ در حال جایگزین شدن هستند.
KV Cache Quantization (موضوعی که خیلیها فراموش میکنند)
اغلب افراد فقط وزن مدل را در نظر میگیرند.
اما در مدلهای جدید بخش بزرگی از حافظه توسط KV Cache مصرف میشود.
مثال:
مدل 8B با Context Window برابر 32000 توکن ممکن است چند گیگابایت فقط KV Cache مصرف کند.
امروزه بسیاری از Runtimeها KV Cache را نیز کوانتایز میکنند:
q8_kv
q4_kv
نتیجه:
حافظه کمتر
امکان اجرای Context طولانیتر
GPU Offloading؛ دلیل اصلی سرعت بالا
مدلهای GGUF فقط CPU نیستند.
اکنون بیشتر Runtimeها بخشی از لایههای مدل را روی GPU منتقل میکنند.
به این کار میگویند:
GPU Layer Offloading
مثال:
مدل 14B
20 لایه روی GPU
بقیه روی CPU
مزایا:
سرعت چند برابر
مصرف RAM کمتر
استفاده بهتر از VRAM
GGUF وابسته به اکوسیستم خاصی نیست.
امکان اجرا روی:
CPU
NVIDIA CUDA
AMD ROCm
Vulkan
Apple Silicon Metal
ARM Processors
Android Devices
Raspberry Pi
ابزارهای محبوب اجرای GGUF در ۲۰۲۶
اکوسیستم بسیار بزرگتر شده.
محبوبترین Runtimeها:
Ollama
llama.cpp
LM Studio
Jan AI
KoboldCpp
Open WebUI
یکی از اشتباهات رایج این است که اینها را یکسان تصور کنیم.
اما نقش آنها متفاوت است.
GGUF
مناسب:
اجرای لوکال
CPU + GPU ترکیبی
لپتاپ
سیستم شخصی
GPTQ
مناسب:
GPUهای NVIDIA
سرورها
Throughput بالا
AWQ
مناسب:
GPU Inference سریع
Deployment Production
خلاصه:
Personal Computer → GGUF
Production GPU Server → GPTQ/AWQ
یک فایل GGUF معمولاً شامل:
Model Weights
Quantization Metadata
Tokenizer Vocabulary
Tokenizer Config
Architecture Metadata
Number of Layers
Attention Heads
Embedding Size
RoPE Configuration
Context Length
Special Tokens
Chat Template Metadata
تقریباً همه چیز در یک فایل قرار دارد.
یکی از مهمترین ویژگیهای GGUF:
Memory Mapping
سیستم عامل میتواند بخشهایی از فایل را مستقیماً از روی SSD بخواند بدون اینکه کل مدل از ابتدا وارد RAM شود.
نتیجه:
Startup سریعتر
RAM کمتر
اجرای مدلهای بزرگتر
اگر تازه شروع میکنید چه نسخهای دانلود کنیم؟
پیشنهاد عمومی:
Q3_K_S → سیستم ضعیف
Q4_K_M → بهترین انتخاب عمومی
Q5_K_M → کیفیت بالاتر
Q6_K → نزدیک به FP16
IQ4_XS → نسل جدید بهینه
Q8_0 → نزدیکترین کیفیت به مدل اصلی
اگر نمیدانید چه دانلود کنید:
Q4_K_M هنوز امنترین انتخاب برای اکثر کاربران است.
Q4_K_M بهترین نقطه شروع است.