بلاگ/راه‌اندازی Ollama روی سرور اختصاصی و VPS: اجرای مدل‌های هوش مصنوعی متن‌باز روی سرور خودتان
به‌روز شده

راه‌اندازی Ollama روی سرور اختصاصی و VPS: اجرای مدل‌های هوش مصنوعی متن‌باز روی سرور خودتان

1405/07/030 بازدید
راه‌اندازی Ollama روی سرور اختصاصی و VPS: اجرای مدل‌های هوش مصنوعی متن‌باز روی سرور خودتان

راه‌اندازی Ollama روی سرور اختصاصی و VPS: اجرای مدل‌های هوش مصنوعی متن‌باز روی سرور خودتان

راه‌اندازی Ollama روی سرور اختصاصی و VPS

اگر برای تست یا توسعه‌ی محصولی که از هوش مصنوعی استفاده می‌کند به یک API خارجی وابسته‌اید، هر درخواست هزینه دارد، داده‌ها از سرور شما خارج می‌شوند و در زمان قطعی سرویس طرف سوم، کار شما هم متوقف می‌شود. Ollama این وابستگی را حذف می‌کند: مدل‌های متن‌باز مثل Llama 3، Phi-3 یا Mistral را مستقیماً روی سرور خودتان اجرا می‌کند و یک API محلی و سازگار با استاندارد OpenAI در اختیارتان می‌گذارد.

این راهنما نشان می‌دهد چطور Ollama را روی یک VPS یا سرور اختصاصی نصب کنید، کدام مدل با چه مقدار منابع سازگار است و چطور دسترسی از راه دور را به شکل امن پیکربندی کنید.

Ollama چیست و چه فرقی با استفاده از API عمومی دارد

Ollama یک ابزار متن‌باز برای دانلود، اجرا و مدیریت مدل‌های زبانی بزرگ روی سخت‌افزار خودتان است. به جای فراخوانی یک سرویس ابری، مدل روی همان سرور بارگذاری و پردازش می‌شود.

سه تفاوت اصلی نسبت به استفاده از API خارجی:

  • هزینه ثابت زیرساخت به‌جای پرداخت به‌ازای هر توکن.
  • داده‌های ورودی و خروجی هرگز از سرور شما خارج نمی‌شوند، که برای داده‌های حساس یا محرمانه اهمیت دارد.
  • دسترسی حتی بدون اتصال به اینترنت خارجی برقرار است، چون همه‌چیز داخل شبکه‌ی خودتان اجرا می‌شود.

در مقابل، مدل‌های متن‌باز معمولاً از نظر کیفیت خروجی به بزرگ‌ترین مدل‌های تجاری نمی‌رسند و اجرای مدل‌های بزرگ به رم یا GPU قابل‌توجهی نیاز دارد. برای بسیاری از کاربردها مثل خلاصه‌سازی، دسته‌بندی متن، چت‌بات داخلی یا تولید کد ساده، این فاصله در عمل کم اهمیت است.

انتخاب زیرساخت: VPS یا سرور اختصاصی

انتخاب بین VPS و سرور اختصاصی به اندازه‌ی مدلی که می‌خواهید اجرا کنید بستگی دارد.

معیارVPSسرور اختصاصی
مدل‌های مناسبPhi-3 mini، Llama 3 8B (کوانتیزه)Llama 3 70B، مدل‌های چندگانه هم‌زمان
حداقل رم توصیه‌شده۸ تا ۱۶ گیگابایت۶۴ گیگابایت به بالا
GPUمعمولاً بدون GPU، اجرا روی CPUامکان نصب GPU اختصاصی
زمان راه‌اندازیچند دقیقهنیاز به تحویل و پیکربندی سخت‌افزار
مناسب برایتست، توسعه، بار کاری سبکتولید (production)، بار کاری سنگین

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

پیش‌نیازها

قبل از نصب مطمئن شوید سرور این موارد را دارد:

  • سیستم‌عامل Ubuntu 22.04 یا جدیدتر (Debian هم پشتیبانی می‌شود).
  • حداقل ۸ گیگابایت رم برای مدل‌های کوچک، و فضای ذخیره‌سازی کافی چون هر مدل چند گیگابایت حجم دارد (در صورت نیاز به افزایش فضا بدون خاموشی سرور، مدیریت دیسک با LVM را ببینید).
  • دسترسی root یا sudo.
  • GPU اختیاری است؛ Ollama بدون آن هم روی CPU کار می‌کند، فقط سرعت پاسخ‌دهی پایین‌تر خواهد بود.

اندازه‌ی مدل مستقیماً روی مقدار رم مورد نیاز اثر می‌گذارد:

مدلحجم تقریبیحداقل رم پیشنهادی
Phi-3 mini (3.8B)۲.۳ گیگابایت۴ گیگابایت
Llama 3 8B۴.۷ گیگابایت۸ گیگابایت
Mistral 7B۴.۱ گیگابایت۸ گیگابایت
Llama 3 70B۴۰ گیگابایت۶۴ گیگابایت به بالا

نصب Ollama روی سرور

اسکریپت رسمی نصب، Ollama را به‌همراه سرویس systemd نصب می‌کند:

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

بعد از اتمام نصب، وضعیت سرویس را بررسی کنید:

systemctl status ollama

اگر سرویس فعال نبود، آن را دستی راه‌اندازی کنید:

sudo systemctl enable --now ollama

به‌صورت پیش‌فرض Ollama روی پورت ۱۱۴۳۴ و فقط روی 127.0.0.1 گوش می‌دهد، یعنی فعلاً فقط از خود سرور قابل دسترسی است.

دانلود و اجرای اولین مدل

برای شروع، یک مدل سبک را دانلود و اجرا کنید:

ollama run phi3

اولین اجرا مدل را دانلود می‌کند، اجراهای بعدی از نسخه‌ی محلی استفاده می‌کنند. برای مدل‌های دیگر کافی است نام مدل را عوض کنید:

ollama run llama3
ollama run mistral

برای خروج از حالت چت تعاملی، دستور /bye را وارد کنید.

Ollama یک API محلی هم روی همان پورت ارائه می‌دهد که می‌توانید از هر برنامه‌ای به آن متصل شوید:

curl http://localhost:11434/api/generate -d '{
  "model": "phi3",
  "prompt": "یک جمله درباره ری‌اکت بنویس"
}'

دسترسی از راه دور به‌شکل امن

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

مقایسه دسترسی محدود و ایمن به سرور در برابر سرویسی که بدون محافظت در معرض دسترسی غیرمجاز قرار گرفته

روش پیشنهادی، محدود کردن دسترسی به شبکه‌ی داخلی یا قرار دادن یک reverse proxy جلوی Ollama است:

  1. متغیر محیطی OLLAMA_HOST را در فایل سرویس تنظیم کنید تا روی 0.0.0.0 گوش دهد:
sudo systemctl edit ollama

و این خطوط را اضافه کنید:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
  1. با فایروال (ufw یا امنیتی گروه سرور) دسترسی به پورت ۱۱۴۳۴ را فقط برای IPهای مشخص باز کنید.
  2. اگر نیاز به دسترسی از اینترنت عمومی دارید، Nginx را به‌عنوان reverse proxy با احراز هویت پایه یا API key جلوی آن قرار دهید، نه اتصال مستقیم به پورت Ollama.

بدون این محدودیت‌ها، هر کسی که آدرس سرور را بداند می‌تواند از منابع محاسباتی شما به‌رایگان استفاده کند.

بهینه‌سازی عملکرد

چند نکته که سرعت پاسخ‌دهی را روی سرورهای بدون GPU بهبود می‌دهد:

  • از نسخه‌های کوانتیزه‌شده (مثل q4_0 یا q4_K_M) استفاده کنید؛ حجم و مصرف رم کمتر می‌شود، افت کیفیت معمولاً قابل چشم‌پوشی است.
  • تعداد مدل‌های بارگذاری‌شده هم‌زمان در حافظه را با OLLAMA_MAX_LOADED_MODELS محدود کنید تا رم تمام نشود.
  • برای بار کاری production، مقدار مناسبی swap روی دیسک SSD در نظر بگیرید تا در صورت فشار رم، سرویس کرش نکند.
  • مصرف رم و CPU را با htop یا ابزار مانیتورینگ سرور رصد کنید؛ برای چند سرور هم‌زمان Zabbix گزینه‌ی کامل‌تری است. اگر مدل به‌طور مداوم نزدیک سقف رم کار می‌کند، وقت ارتقا به منابع بیشتر یا سرور اختصاصی رسیده است.

هزینه: اجرای خودمیزبان در برابر API خارجی

برای پروژه‌ای با حجم درخواست بالا، تفاوت هزینه در طول زمان قابل توجه می‌شود:

Ollama روی سرور خودتانAPI خارجی (پرداخت به‌ازای توکن)
مدل هزینهثابت، مستقل از تعداد درخواستمتغیر، وابسته به حجم مصرف
محل ذخیره دادهروی سرور شماروی سرور ارائه‌دهنده API
نیاز به اینترنت خارجیخیر، پس از دانلود مدلبله، برای هر درخواست
زمان راه‌اندازی اولیهنصب و پیکربندی سرورفوری، فقط گرفتن کلید API
مناسب برایحجم بالا و پایدار، داده حساسحجم کم تا متوسط، شروع سریع

اگر حجم درخواست پایین است یا هنوز در حال تست ایده هستید، API خارجی ساده‌تر شروع می‌شود. اگر حجم درخواست بالا و پایدار است یا داده‌ها نباید از سرور شما خارج شوند، هزینه‌ی ثابت زیرساخت خودمیزبان معمولاً در بلندمدت به‌صرفه‌تر است.

جمع‌بندی

نصب Ollama روی یک سرور شخصی چند دستور بیشتر طول نمی‌کشد، اما دو تصمیم واقعی پیش رویتان می‌گذارد: انتخاب زیرساخت متناسب با اندازه‌ی مدل، و پیکربندی درست دسترسی از راه دور تا سرویس فقط در اختیار خودتان بماند.

برای تست اولیه با مدل‌های کوچک مثل Phi-3 یا Llama 3 8B، یک سرور مجازی آریانت با ۸ گیگابایت رم کافی است و در چند دقیقه آماده می‌شود. وقتی نیاز به اجرای مدل‌های بزرگ‌تر یا سرویس‌دهی به چند کاربر هم‌زمان داشتید، می‌توانید بدون تغییر معماری به منابع بیشتر ارتقا دهید.