آموزش نصب و اجرای Ollama روی سرور GPU

آموزش نصب و اجرای Ollama روی سرور GPU

جدول محتوا 👇

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 و مدل‌های خود را با سرعت بالا و حریم خصوصی کامل اجرا کنید.

ریورس پروکسی Nginx؛ ۶ گام کانفیگ حرفه‌ای همراه با Let’s Encrypt و HTTP/۲

مشاوره تراست‌هاست​

با متخصصان و کارشناسان به صورت رایگان!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *