Ollama سادهترین راه اجرای مدلهای زبانی روی سرور است، اما برای سرعت واقعی باید مطمئن شوید از GPU استفاده میکند. در این آموزش قدمبهقدم Ollama را روی سرور GPU با Ubuntu نصب میکنیم: درایور NVIDIA، نصب مستقیم یا با Docker، دانلود مدل، تنظیمات سرویس، دسترسی امن به API و رفع مشکلات رایج.
فهرست مطالب
پیشنیازها
- یک سرور GPU با کارت NVIDIA و Ubuntu ۲۲.۰۴ یا ۲۴.۰۴.
- دسترسی SSH با کاربر دارای sudo.
- فضای دیسک کافی: هر مدل بین ۲ تا ۴۰ گیگابایت یا بیشتر حجم دارد.
- حافظه کارت متناسب با مدل؛ محاسبه آن در VRAM مورد نیاز هوش مصنوعی.
اگر سرور را از تراست هاست تهیه کردهاید، ممکن است درایور از قبل نصب باشد؛ با nvidia-smi بررسی کنید و در صورت نمایش اطلاعات کارت، به گام ۲ بروید.
گام ۱: نصب درایور NVIDIA
ابزار ubuntu-drivers درایور مناسب را پیشنهاد و نصب میکند. برای سرورها و کارتهای دیتاسنتری، گزینه --gpgpu نسخه سرور درایور را بدون اجزای گرافیکی دسکتاپ نصب میکند:
sudo apt update
sudo apt install -y ubuntu-drivers-common
sudo ubuntu-drivers list --gpgpu
sudo ubuntu-drivers install --gpgpu
sudo reboot
بعد از ریاستارت، کارت باید شناسایی شده باشد:
nvidia-smi
خروجی باید نام کارت، حافظه و نسخه درایور و CUDA را نشان دهد. اگر خطای «NVIDIA-SMI has failed» گرفتید، بخش رفع مشکلات را ببینید.
گام ۲: نصب Ollama
اسکریپت رسمی Ollama را نصب، کاربر سرویس را ایجاد و آن را بهصورت سرویس systemd فعال میکند:
curl -fsSL https://ollama.com/install.sh | sh
در پایان نصب، اسکریپت باید پیامی مبنی بر شناسایی GPU نمایش دهد. وضعیت سرویس را بررسی کنید:
systemctl status ollama
ollama --version
روش جایگزین: اجرای Ollama با Docker
اگر ترجیح میدهید همه سرویسها را با Docker مدیریت کنید، ابتدا NVIDIA Container Toolkit را از مخزن رسمی نصب و پیکربندی کنید:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
سپس Ollama را اجرا کنید. توجه کنید پورت فقط روی 127.0.0.1 منتشر شده تا API از اینترنت در دسترس نباشد:
docker run -d --gpus=all \
-v ollama_data:/root/.ollama \
-p 127.0.0.1:11434:11434 \
--name ollama --restart unless-stopped \
ollama/ollama
در این روش، دستورهای Ollama را با docker exec -it ollama ollama ... اجرا کنید. اگر قرار است n8n یا برنامههای دیگر هم در Docker اجرا شوند، استفاده از Docker Compose راحتتر است؛ نمونه آن را در راهاندازی n8n و Ollama با Docker Compose ببینید.
گام ۳: دانلود و اجرای مدل
ollama pull llama3.1:8b
ollama pull qwen2.5:14b
ollama run qwen2.5:14b "به زبان ساده توضیح بده DNS چیست"
برای زبان فارسی، مدلهای Qwen ۲.۵ و Gemma در اندازههای متوسط نتیجه خوبی دارند. فهرست مدلهای پیشنهادی و نیاز سختافزاری هرکدام را در مدلهای هوش مصنوعی لوکال ببینید.
گام ۴: اطمینان از استفاده از GPU
بعد از اجرای یک مدل، این دستور را بزنید:
ollama ps
ستون PROCESSOR باید «۱۰۰% GPU» نشان دهد. اگر عددی مثل «۳۰%/۷۰% CPU/GPU» دیدید، یعنی مدل در VRAM جا نشده و بخشی از آن روی CPU اجرا میشود؛ مدل کوچکتر یا کوانتایز سبکتر انتخاب کنید یا طول متن را کاهش دهید. در یک ترمینال دیگر هم watch -n1 nvidia-smi مصرف VRAM و پردازنده گرافیکی را هنگام تولید پاسخ نشان میدهد.
گام ۵: تنظیمات سرویس
تنظیمات Ollama با متغیرهای محیطی در سرویس systemd انجام میشود:
sudo systemctl edit ollama
[Service]
Environment="OLLAMA_KEEP_ALIVE=24h"
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="OLLAMA_MAX_LOADED_MODELS=2"
Environment="OLLAMA_MODELS=/data/ollama/models"
sudo systemctl restart ollama
| متغیر | کاربرد |
|---|---|
OLLAMA_KEEP_ALIVE |
مدت نگه داشتن مدل در حافظه بعد از آخرین درخواست؛ از بارگذاری مجدد کند جلوگیری میکند |
OLLAMA_NUM_PARALLEL |
تعداد درخواست همزمان روی هر مدل؛ هر درخواست حافظه KV Cache جداگانه میگیرد |
OLLAMA_MAX_LOADED_MODELS |
تعداد مدلهایی که همزمان در حافظه میمانند |
OLLAMA_MODELS |
محل ذخیره مدلها؛ برای استفاده از دیسک بزرگتر. کاربر ollama باید به این مسیر دسترسی داشته باشد |
OLLAMA_HOST |
آدرس و پورت گوش دادن؛ پیشفرض 127.0.0.1:11434 |
گام ۶: دسترسی امن به API
Ollama هیچ احراز هویتی ندارد. هر کسی که به پورت ۱۱۴۳۴ دسترسی داشته باشد، میتواند از GPU شما استفاده کند، مدل دانلود یا حذف کند. پس:
- اگر برنامهها روی همان سرور هستند،
OLLAMA_HOSTرا تغییر ندهید. - اگر سرور دیگری باید وصل شود، از شبکه خصوصی استفاده کنید و پورت را در فایروال فقط برای IP آن سرور باز کنید.
- برای دسترسی از اینترنت، Ollama را پشت Nginx با HTTPS و کلید API قرار دهید. پیکربندی کامل در ساخت OpenAI-Compatible API امن.
با این دستور بررسی کنید Ollama روی چه آدرسی گوش میدهد:
sudo ss -tlnp | grep 11434
تنظیمات پایه امنیت سرور را هم از تنظیمات امنیتی ضروری VPS اعمال کنید.
رفع مشکلات رایج
- nvidia-smi خطا میدهد: درایور نصب یا بارگذاری نشده است. اگر Secure Boot فعال است، ماژول درایور بارگذاری نمیشود. با
lsmod | grep nvidiaبررسی کنید و لاگ را باsudo dmesg | grep -i nvidiaببینید. - Ollama از GPU استفاده نمیکند: اگر Ollama قبل از درایور نصب شده، سرویس را ریاستارت کنید. لاگ را با
journalctl -u ollama -n 100ببینید و دنبال پیامهای مربوط به CUDA بگردید. - کانتینر Docker به GPU دسترسی ندارد: دستور
docker run --rm --gpus all ubuntu nvidia-smiرا اجرا کنید. اگر خطا داد، مرحلهnvidia-ctk runtime configureانجام نشده یا Docker ریاستارت نشده است. - خطای کمبود حافظه: مدل کوچکتر، کوانتایز سبکتر،
num_ctxکمتر یاOLLAMA_NUM_PARALLELکمتر. - دانلود مدل کند یا قطع میشود: دستور
ollama pullرا دوباره اجرا کنید؛ دانلود از همان نقطه ادامه مییابد.
سوالات متداول
چگونه مطمئن شویم Ollama از GPU استفاده میکند؟
با ollama ps؛ ستون PROCESSOR باید ۱۰۰% GPU باشد. همزمان در nvidia-smi باید فرایند Ollama و مصرف VRAM آن دیده شود.
آیا Ollama چند درخواست همزمان را پردازش میکند؟
بله، با تنظیم OLLAMA_NUM_PARALLEL. برای تعداد زیاد کاربر همزمان، vLLM کارایی بالاتری دارد؛ مقایسه در Ollama یا vLLM.
Ollama را با Docker نصب کنم یا مستقیم؟
نصب مستقیم سادهتر است و برای یک سرور اختصاصی مدل کافی است. Docker وقتی مناسب است که سرویسهای دیگر هم در Docker اجرا میشوند و میخواهید همه را یکجا مدیریت کنید.
چطور Ollama را بهروز کنم؟
در نصب مستقیم، همان اسکریپت نصب را دوباره اجرا کنید. در Docker، ایمیج جدید را دریافت و کانتینر را دوباره بسازید. مدلهای دانلودشده حفظ میشوند.
سرور GPU آماده اجرای مدلهای زبانی
با سرورهای GPU تراست هاست و کارتهای دیتاسنتری، Ollama و مدلهای خود را با سرعت بالا و حریم خصوصی کامل اجرا کنید.