اگر قصد دارید یک مدل زبانی بزرگ متنباز را روی سرور خودتان اجرا کنید و بهجای وابستگی به APIهای خارجی، یک API اختصاصی و سازگار با OpenAI در اختیار برنامهها، وبسایتها و سرویسهای خود قرار دهید، vLLM یکی از جدیترین گزینههای زیرساختی است. vLLM یک موتور Inference متنباز است که برای سرو کردن مدلهای زبانی در مقیاس واقعی طراحی شده و بهجای تمرکز بر اجرای تککاربره، روی Throughput بالا، مدیریت همزمان درخواستها و استفاده بهینه از حافظه GPU سرمایهگذاری کرده است .
معماری کلی به این شکل است که مدل روی سرور شما قرار میگیرد، vLLM درخواستهای ورودی را مدیریت میکند و از طریق یک HTTP API پاسخ مدل را برمیگرداند. اگر برنامهای از OpenAI SDK استفاده کند، تنها با تغییر base_url میتواند به مدل شما متصل شود .
🔹 OpenAI-Compatible Server یکی از قابلیتهای رسمی vLLM است که Endpointهای Chat، Completions و Embeddings را با همان پروتکل OpenAI ارائه میدهد .
🔹 Continuous Batching و PagedAttention دو مکانیزم اصلی vLLM هستند که در بارهای همزمان، اختلاف معناداری با ابزارهای سادهتر ایجاد میکنند .
vLLM دقیقاً برای چه سناریوهایی ساخته شده است؟
vLLM ابزاری برای اجرای مدل روی لپتاپ شخصی یا آزمایشهای تکنفره نیست. تفاوت اصلی آن زمانی مشخص میشود که چند کاربر یا چند سرویس بهصورت همزمان درخواست ارسال میکنند. در بنچمارکهای مستقل، vLLM در بارهای ۵۰ کاربر همزمان حدود ۶ برابر Throughput بیشتر و p99 بسیار پایینتری نسبت به ابزارهای سبکتر ارائه داده است .
کاربردهای رایج آن عبارتاند از:
🔹 ساخت Chatbot اختصاصی سازمانی
🔹 ارائه API هوش مصنوعی به تیم توسعه یا مشتریان
🔹 اتصال مدل به وبسایت یا اپلیکیشن داخلی
🔹 پیادهسازی سیستم RAG و AI Agent
🔹 اجرای مدلهای متنباز بدون ارسال داده به سرویس خارجی
پیشنیازهای سرور GPU برای نصب vLLM
مستندات فعلی vLLM برای نصب عمومی، Linux و Python 3.10 تا 3.13 را ذکر میکنند . تمرکز این آموزش روی NVIDIA CUDA است، چون رایجترین سناریوی استقرار روی سرور GPU محسوب میشود.
| بخش | پیشنهاد |
|---|---|
| سیستمعامل | Ubuntu Server 22.04 یا بالاتر |
| Python | 3.10 تا 3.13 |
| GPU | NVIDIA با Compute Capability 7.5 یا بالاتر |
| VRAM | حداقل 16GB برای مدلهای کوچک؛ برای مدلهای بزرگتر بسیار بیشتر |
| RAM | حداقل 16GB |
| Storage | SSD/NVMe با فضای کافی برای دانلود مدل |
مهمترین عامل در انتخاب سرور GPU، حجم VRAM است. بهعنوان مرجع تقریبی، یک مدل ۷B در دقت FP16 حدود ۱۴GB VRAM نیاز دارد و مدل ۷۰B روی کارتهای 80GB یا ترکیب چند GPU قابل اجراست .
نصب vLLM؛ از آمادهسازی سرور تا اجرای اولین مدل
گام اول؛ اتصال و بررسی GPU
با SSH به سرور متصل شوید و بررسی کنید که GPU بهدرستی شناسایی میشود:
nvidia-smi
اگر این دستور اجرا نشود، ابتدا باید Driver یا دسترسی GPU را بررسی کنید. بدون حل این مرحله، نصب vLLM بینتیجه خواهد بود.
گام دوم؛ نصب ابزارهای پایه
apt update apt install -y python3 python3-pip python3-venv git curl wget
گام سوم؛ ساخت محیط مجازی و نصب vLLM
مستندات رسمی استفاده از یک محیط Python تازه را توصیه میکنند، چون ناسازگاری بین نسخههای CUDA، PyTorch و Binaryهای vLLM میتواند مشکلات جدی ایجاد کند .
python3 -m venv ~/vllm-env source ~/vllm-env/bin/activate pip install vllm
برای بررسی نصب:
vllm --version
⚠️ توجه: برای سرورهای Production، حتماً قبل از نصب، سازگاری Driver / CUDA / PyTorch / vLLM را با مستندات همان نسخه بررسی کنید. نصب کورکورانه بر اساس دستورهای قدیمی اینترنتی یکی از رایجترین دلایل شکست استقرار است.
اجرای API و تست با cURL
برای تست اولیه، از یک مدل کوچک استفاده میکنیم:
vllm serve Qwen/Qwen3-0.6B
بهصورت پیشفرض سرور روی پورت 8000 اجرا میشود. برای بررسی مدلهای موجود:
curl http://127.0.0.1:8000/v1/models
ارسال اولین درخواست Chat:
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-0.6B",
"messages": [{"role": "user", "content": "سلام"}],
"max_tokens": 100
}'
اگر پاسخ JSON دریافت کنید، یعنی API شما آماده است.
اتصال با Python؛ استفاده از OpenAI SDK
یکی از مزیتهای اصلی vLLM این است که برنامه شما نیازی به تغییر ساختار ندارد. فقط base_url را عوض کنید:
from openai import OpenAI
client = OpenAI(
base_url="http://127.0.0.1:8000/v1",
api_key="dummy"
)
response = client.chat.completions.create(
model="Qwen/Qwen3-0.6B",
messages=[{"role": "user", "content": "یک متن کوتاه بنویس."}]
)
print(response.choices[0].message.content)
زیرساخت GPU برای سرو مدلهای هوش مصنوعی
اگر برای اجرای مدلهای متنباز، vLLM، RAG یا چتبات اختصاصی به یک سرور GPU با منابع پایدار نیاز دارید، ایرانیکاسرور پلنهای سرور مجازی و اختصاصی را با تمرکز بر آپتایم بالا، پهنای باند مناسب و پشتیبانی فنی ارائه میکند.
📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور
اجرای vLLM با Docker
اگر نمیخواهید وابستگیهای Python را مستقیم روی سرور نصب کنید، Docker گزینه مناسبتری است. vLLM ایمیج رسمی vllm/vllm-openai را ارائه میدهد :
docker run --runtime nvidia --gpus all \ -v ~/.cache/huggingface:/root/.cache/huggingface \ -p 8000:8000 \ --ipc=host \ vllm/vllm-openai:latest \ --model Qwen/Qwen3-0.6B
برای این کار، NVIDIA Container Toolkit باید روی سرور نصب و تنظیم شده باشد. Docker جایگزین بررسی سازگاری Driver و GPU نیست.
مدیریت VRAM، اجرای چند GPU و تنظیمات کاربردی
اگر با خطای CUDA out of memory مواجه شدید، ابتدا با nvidia-smi مصرف فعلی GPU را بررسی کنید. عوامل اصلی: حجم مدل، طول Context، Batch Size و برنامههای دیگر در حال استفاده از GPU.
برای کنترل سهم حافظه vLLM از GPU:
vllm serve MODEL_NAME --gpu-memory-utilization 0.90
برای اجرای مدل روی چند GPU (در صورت پشتیبانی مدل و سختافزار):
vllm serve MODEL_NAME --tensor-parallel-size 2
امنیت API؛ نکتهای که نباید نادیده گرفت
قرار دادن API مستقیماً روی اینترنت بدون لایه امنیتی، یکی از پرخطرترین کارهاست. ساختار پیشنهادی:
Internet → Nginx / Reverse Proxy → Authentication / HTTPS → vLLM → GPU
vLLM امکان تعیین API Key دارد:
vllm serve MODEL_NAME --api-key YOUR_SECRET_KEY
⚠️ اما API Key بهتنهایی امنیت کامل ایجاد نمیکند. توصیه میشود برای Hardening از Reverse Proxy، HTTPS، Firewall، Rate Limiting و محدودسازی IP نیز استفاده شود. حتی در صورت استفاده از Docker، این لایهها ضروری هستند.
اجرای دائمی سرویس با systemd
اگر vLLM را با SSH اجرا کنید، بستن ترمینال سرویس را متوقف میکند. برای Production از systemd استفاده کنید:
[Unit] Description=vLLM API Server After=network.target [Service] User=root WorkingDirectory=/root Environment="PATH=/root/vllm-env/bin" ExecStart=/root/vllm-env/bin/vllm serve Qwen/Qwen3-0.6B --host 127.0.0.1 --port 8000 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl enable vllm systemctl start vllm journalctl -u vllm -f
خطاهای رایج و راهحلها
| خطا | بررسی |
|---|---|
| CUDA out of memory | حجم مدل، Context Length، Batch Size، مصرف GPU دیگر |
| GPU پیدا نمیشود | اجرای nvidia-smi و بررسی Driver |
| ناسازگاری CUDA | Driver / CUDA / PyTorch / vLLM با مستندات نسخه |
| Package Conflict | ساخت Virtual Environment کاملاً تازه |
| مدل دانلود نمیشود | نام مدل، اینترنت، Token، فضای Storage |
vLLM یا Ollama؟ انتخاب بر اساس نوع بار
این دو ابزار برای دو سناریوی متفاوت طراحی شدهاند. انتخاب اشتباه یعنی پرداخت هزینهای که به آن نیاز ندارید یا رسیدن به سقفی که نباید میرسیدید.
| معیار | vLLM | Ollama |
|---|---|---|
| Throughput چندکاربره | بالا (۶ برابر در ۵۰ کاربر) | محدود |
| p99 Latency | پایین (~۲.۸s در ۵۰ کاربر) | بالا (~۲۴.۷s) |
| Startup | کند (چند دقیقه) | سریع (چند ثانیه) |
| مناسب برای | Production و سرو همزمان | توسعه، تست، تککاربره |
🔹 اگر تازه شروع کردهاید، توسعه محلی با Ollama منطقی است و بعد برای Production به vLLM مهاجرت کنید. خوشبختانه هر دو از OpenAI-compatible API پشتیبانی میکنند و تغییر Backend فقط با تغییر base_url انجام میشود .
قبل از خرید سرور GPU به چه نکاتی توجه کنیم؟
🔹 VRAM — مهمترین عامل؛ تعیینکننده حداکثر اندازه مدل و طول Context
🔹 نسل GPU — تأثیرگذار بر پشتیبانی از قابلیتهای جدید و بهرهوری انرژی
🔹 پهنای باند حافظه — در برخی Workloadهای Inference اهمیت مستقیم دارد
🔹 سرعت Storage — بارگذاری مدلهای چند ده گیگابایتی از دیسک کند، تجربه را خراب میکند
🔹 CPU و RAM — برای Pre/Post Processing و سرویسهای جانبی
🔹 شبکه — اگر API عمومی است، کیفیت شبکه مستقیماً روی تجربه کاربر اثر میگذارد
جمعبندی
vLLM یکی از جدیترین ابزارها برای تبدیل یک سرور GPU به زیرساخت سرو مدلهای هوش مصنوعی است. با نصب vLLM میتوانید مدلهای متنباز را روی سرور خود اجرا کنید، یک API اختصاصی بسازید، آن را به وبسایت و اپلیکیشن متصل کنید و از ارسال داده به سرویسهای خارجی بینیاز شوید.
اگر هدف شما سرو همزمان به چند کاربر یا چند سرویس است، vLLM با Continuous Batching و PagedAttention تفاوت محسوسی در Throughput و پایداری Latency ایجاد میکند. اما اگر هنوز در مرحله توسعه و تست تککاربره هستید، شاید شروع با ابزارهای سادهتر منطقیتر باشد.
برای محیط Production، پیش از انتشار API روی اینترنت، HTTPS، Reverse Proxy، Authentication، Rate Limiting و Firewall را تنظیم کنید و سازگاری نسخههای vLLM، CUDA و Driver را با مستندات رسمی بررسی کنید.
مشکل دارید؟ درخواست خود را ارسال کنید
اگر در فرآیند نصب vLLM، تنظیم GPU، ساخت API یا استقرار روی سرور با چالش مواجه شدید، تیم فنی ایرانیکاسرور آماده بررسی و ارائه راهحل است.
📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور
دیدگاهها
0 دیدگاه برای این مطلب ثبت شده است.