راه‌اندازی مدل‌های زبانی محلی با Ollama و vLLM روی سرور اختصاصی

راهنمای گام‌به‌گام نصب و اجرای مدل‌های زبانی محلی با Ollama و vLLM روی سرور اختصاصی به‌همراه مقایسه، نکات بهینه‌سازی و پیاده‌سازی عملی.

در دنیای امروز که حریم خصوصی و هزینه‌های ابری اهمیت روزافزونی یافته‌اند، اجرای مدل‌های زبانی محلی روی سرور اختصاصی به یک نیاز راهبردی تبدیل شده است. دو ابزار محبوب و قدرتمند برای این کار، Ollama برای سادگی و راه‌اندازی سریع و vLLM برای بهره‌وری بالا و پشتیبانی از حجم سنگین درخواست‌ها هستند. در این راهنما شما را با پیش‌نیازهای سخت‌افزاری، مراحل نصب، نحوه استقرار و نکات بهینه‌سازی این دو ابزار در محیط تولید آشنا می‌کنیم.

چرا مدل‌های زبانی محلی؟

استفاده از APIهای ابری مانند OpenAI مزایای خاص خود را دارد، اما در پروژه‌های سازمانی که داده‌ها محرمانه هستند یا نیاز به انطباق با مقررات داخلی دارند، اجرای مدل روی سرور اختصاصی مزایای انکارناپذیری ارائه می‌دهد. حذف وابستگی به سرویس خارجی، کاهش تأخیر شبکه، کنترل کامل بر داده‌ها و امکان سفارشی‌سازی مدل، از جمله دلایل اصلی مهاجرت به استقرار محلی هستند. با ظهور ابزارهایی مانند Ollama و vLLM، پیچیدگی فنی این فرایند به طرز قابل توجهی کاهش یافته و هر تیم مهندسی با دانش متوسط می‌تواند یک سرویس هوش مصنوعی مولد کارآمد را در زیرساخت خود راه‌اندازی کند.

آشنایی با Ollama و vLLM

Ollama یک ابزار متن‌باز و کاربرپسند است که نصب، دانلود و اجرای مدل‌های زبانی را به ساده‌ترین شکل ممکن انجام می‌دهد. این ابزار برای توسعه‌دهندگان و تیم‌هایی مناسب است که به دنبال یک تجربه مشابه با سرویس‌های ابری اما در محیط محلی هستند. با یک دستور ساده می‌توانید مدل‌هایی مانند Llama، Mistral، Gemma و ده‌ها مدل دیگر را اجرا کنید و از طریق API سازگار با OpenAI به آن‌ها متصل شوید. Ollama به‌صورت خودکار از GPU استفاده کرده و مدیریت حافظه را هوشمندانه بر عهده می‌گیرد.

در سوی دیگر، vLLM یک کتابخانه قدرتمند برای استنتاج با کارایی بالا است که توسط جامعه UC Berkeley توسعه یافته است. vLLM از تکنیک‌های پیشرفته‌ای مانند PagedAttention برای استفاده بهینه از حافظه و افزایش چشمگیر توان عملیاتی (throughput) بهره می‌برد. این ابزار برای استقرار سرویس‌های سنگین تولید که نیاز به پاسخگویی همزمان به ده‌ها یا صدها درخواست دارند، انتخاب ایده‌آلی است. اگرچه نصب و پیکربندی آن از Ollama پیچیده‌تر است، اما در مقیاس سازمانی انعطاف‌پذیری و عملکرد بی‌نظیری ارائه می‌دهد.

پیش‌نیازهای سخت‌افزاری و نرم‌افزاری

برای اجرای مدل‌های زبانی محلی به یک سرور اختصاصی با مشخصات مناسب نیاز دارید. حداقل مشخصات توصیه‌شده برای مدل‌های ۷ تا ۸ میلیارد پارامتری شامل یک پردازنده مرکزی مدرن، ۱۶ گیگابایت رم و یک کارت گرافیک با ۸ گیگابایت VRAM است. برای مدل‌های بزرگ‌تر مانند Llama 3.3 70B، معمولاً به چندین GPU (مانند A100 یا H100) و بیش از ۶۴ گیگابایت رم نیاز است. در بخش نرم‌افزار، سیستمعامل لینوکسی مانند Ubuntu 22.04 LTS همراه با درایورهای NVIDIA و CUDA Toolkit نسخه ۱۲ به بالا توصیه می‌شود. اگر از Ollama استفاده می‌کنید، نصب به‌طور خودکار درایورها و وابستگی‌های لازم را انجام می‌دهد؛ اما برای vLLM باید محیط Python (نسخه ۳.۱۰ یا ۳.۱۱) و PyTorch را به‌صورت دستی آماده کنید.

راه‌اندازی مدل محلی با Ollama

فرایند شروع کار با Ollama بسیار ساده است. ابتدا با اجرای اسکریپت نصب رسمی، Ollama را روی سرور خود نصب کنید:

curl -fsSL https://ollama.com/install.sh | sh

پس از نصب، سرویس Ollama به‌صورت خودکار در پس‌زمینه اجرا می‌شود. حال می‌توانید یک مدل را دانلود و اجرا کنید:

ollama run llama3.1

این دستور مدل ۸ میلیارد پارامتری Llama 3.1 را دانلود کرده و یک محیط تعاملی گفتگو ایجاد می‌کند. برای استفاده به‌صورت سرویس، Ollama بر روی پورت ۱۱۴۳۴ یک API از نوع REST در اختیار شما قرار می‌دهد. به‌عنوان نمونه می‌توانید درخواست زیر را ارسال کنید:

curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "llama3.1", "messages": [{"role": "user", "content": "سلام!"}]}'

به این ترتیب هر برنامه‌ای که از کتابخانه‌های سازگار با OpenAI استفاده می‌کند، تنها با تغییر آدرس پایه (Base URL) به آدرس سرور محلی، می‌تواند با مدل شما ارتباط برقرار کند. این سازگاری، نقطه قوت بزرگ Ollama برای جایگزینی سریع در پروژه‌های موجود است.

راه‌اندازی سرویس با vLLM

برای استفاده از vLLM ابتدا یک محیط مجازی Python ایجاد کرده و کتابخانه را نصب کنید:

python -m venv vllm_env
source vllm_env/bin/activate
pip install vllm

پس از نصب، می‌توانید یک سرور API سازگار با OpenAI راه‌اندازی کنید. به‌عنوان مثال برای مدل Llama 3.1 8B دستور زیر را اجرا کنید:

python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-3.1-8B-Instruct --port 8000

این دستور مدل را از هاب Hugging Face دانلود، بهینه‌سازی کرده و یک سرویس با قابلیت تعدد درخواست بالا روی پورت ۸۰۰۰ ارائه می‌دهد. شما می‌توانید با ارسال درخواست زیر تست کنید:

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "meta-llama/Llama-3.1-8B-Instruct", "messages": [{"role": "user", "content": "سلام!"}]}