Ollama سادهترین راه برای اجرای مدلهای زبانی بزرگ (LLM) روی کامپیوتر یا سرور شخصی است. با یک دستور، مدلهایی مثل Llama، Qwen، Gemma و Mistral را دانلود و اجرا میکنید و یک API آماده برای اتصال برنامههایتان در اختیار دارید. در این مقاله توضیح میدهیم Ollama چیست، چطور کار میکند، چه دستورهایی دارد و چطور آن را روی سرور بهصورت امن راهاندازی کنیم.
فهرست مطالب
Ollama چیست؟
Ollama یک ابزار متنباز برای دانلود، مدیریت و اجرای مدلهای زبانی بهصورت محلی است. کار آن شبیه Docker است، اما برای مدلهای هوش مصنوعی: بهجای اینکه وزنهای مدل را دستی دانلود کنید، کتابخانههای لازم را نصب کنید و تنظیمات GPU را انجام دهید، فقط مینویسید ollama run qwen2.5 و چند ثانیه بعد با مدل گفتگو میکنید.
مهمترین مزیتهای Ollama:
- حریم خصوصی: دادهها از سرور شما خارج نمیشوند.
- بدون هزینه بهازای توکن: هزینه فقط سختافزار است، نه تعداد درخواست.
- API آماده: یک API روی پورت ۱۱۴۳۴ ارائه میکند که با فرمت OpenAI هم سازگار است.
- پشتیبانی چندسکویی: لینوکس، ویندوز و macOS، با پشتیبانی از کارتهای NVIDIA، AMD و تراشههای Apple.
Ollama چطور کار میکند؟
موتور اجرای Ollama بر پایه llama.cpp ساخته شده و مدلها را در فرمت فشرده GGUF اجرا میکند. اغلب مدلهای کتابخانه Ollama بهصورت پیشفرض با کوانتایز ۴ بیتی عرضه میشوند؛ یعنی حجم آنها حدود یکچهارم نسخه اصلی است و روی سختافزار معمولیتر اجرا میشوند.
وقتی مدلی را اجرا میکنید، Ollama تا جایی که VRAM اجازه دهد لایههای مدل را روی GPU بارگذاری میکند و باقی را روی RAM و CPU اجرا میکند. این قابلیت اجرای مدلهای بزرگتر از حافظه کارت را ممکن میکند، ولی هر لایهای که روی CPU بماند سرعت را بهشدت کم میکند. مدل بعد از مدتی بیاستفاده ماندن (پیشفرض ۵ دقیقه) از حافظه خارج میشود.
نصب و اولین اجرا
روی لینوکس، نصب با اسکریپت رسمی انجام میشود و Ollama بهصورت سرویس systemd اجرا میشود:
curl -fsSL https://ollama.com/install.sh | sh
ollama run qwen2.5:7b
اگر سرور کارت گرافیک NVIDIA دارد، ابتدا درایور را نصب کنید و با nvidia-smi از شناسایی کارت مطمئن شوید. راهنمای کامل نصب روی سرور گرافیکی را در مقاله آموزش نصب Ollama روی سرور GPU آوردهایم.
دستورهای پرکاربرد Ollama
| دستور | کاربرد |
|---|---|
ollama pull llama3.1:8b |
دانلود مدل بدون اجرا |
ollama run llama3.1:8b |
اجرای مدل و شروع گفتگو در ترمینال |
ollama list |
فهرست مدلهای دانلودشده و حجم آنها |
ollama ps |
مدلهای در حال اجرا و سهم GPU و CPU |
ollama show llama3.1:8b |
مشخصات مدل، طول متن و کوانتایز |
ollama rm llama3.1:8b |
حذف مدل و آزاد کردن فضا |
ollama create name -f Modelfile |
ساخت مدل سفارشی |
خروجی ollama ps را جدی بگیرید: اگر ستون Processor عددی مثل «۴۰%/۶۰% CPU/GPU» نشان دهد، یعنی مدل در VRAM جا نشده و سرعت پایین خواهد بود.
انتخاب مدل مناسب
برای شروع، اندازه مدل را با سختافزار تطبیق دهید:
- مدلهای ۳ تا ۸ میلیاردی (مثل Llama ۳.۱ 8B یا Qwen ۲.۵ 7B): حدود ۵ تا ۶ گیگابایت حافظه؛ مناسب کارتهای ۸ گیگابایتی و حتی CPU برای حجم کم.
- مدلهای ۱۴ تا ۳۲ میلیاردی: ۱۰ تا ۲۰ گیگابایت حافظه؛ کیفیت بسیار بهتر در استدلال و زبان فارسی.
- مدلهای ۷۰ میلیاردی: حدود ۴۰ گیگابایت حافظه در کوانتایز ۴ بیتی؛ نیازمند کارتهایی مثل L40S یا H100.
برای زبان فارسی، خانواده Qwen و Gemma و نسخههای بزرگتر Llama نتیجه بهتری دارند. فهرست کامل مدلها و نیاز سختافزاری هرکدام را در مقاله مدلهای هوش مصنوعی لوکال ببینید.
شخصیسازی مدل با Modelfile
با Modelfile میتوانید یک مدل پایه را با پیام سیستمی و پارامترهای دلخواه به یک «دستیار اختصاصی» تبدیل کنید:
FROM qwen2.5:7b
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
SYSTEM """شما کارشناس پشتیبانی فنی هاستینگ هستید. پاسخها را کوتاه، دقیق و به زبان فارسی بنویسید."""
ollama create support-bot -f Modelfile
ollama run support-bot
پارامتر num_ctx طول متن قابل پردازش را تعیین میکند. مقدار بزرگتر حافظه بیشتری مصرف میکند، پس آن را متناسب با نیاز واقعی تنظیم کنید.
استفاده از API و اتصال برنامهها
Ollama یک API بومی و یک API سازگار با OpenAI دارد. با API بومی:
curl http://localhost:11434/api/chat -d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "DNS چیست؟"}],
"stream": false
}'
و با کتابخانه رسمی پایتون:
import ollama
response = ollama.chat(
model="qwen2.5:7b",
messages=[{"role": "user", "content": "سلام"}],
)
print(response["message"]["content"])
چون مسیر /v1 با OpenAI سازگار است، اغلب ابزارهایی که برای ChatGPT ساخته شدهاند، از جمله n8n، Open WebUI و کتابخانههای LangChain، فقط با تغییر آدرس به Ollama وصل میشوند.
نکات اجرای Ollama روی سرور
- API را روی اینترنت باز نکنید. Ollama بهصورت پیشفرض احراز هویت ندارد. اگر
OLLAMA_HOST=0.0.0.0تنظیم میکنید، دسترسی به پورت ۱۱۴۳۴ را با فایروال محدود کنید یا آن را پشت Reverse Proxy با احراز هویت قرار دهید. روش ساخت API امن را در ساخت OpenAI-Compatible API شخصی آوردهایم. - مدل را در حافظه نگه دارید. با
OLLAMA_KEEP_ALIVE=24hاز بارگذاری مجدد مدل در هر درخواست جلوگیری کنید. - درخواستهای همزمان را تنظیم کنید. متغیر
OLLAMA_NUM_PARALLELتعداد درخواست همزمان روی هر مدل را تعیین میکند و هر درخواست، KV Cache جداگانه میگیرد. - فضای دیسک: مدلها در
/usr/share/ollama/.ollama/modelsذخیره میشوند و هرکدام چند گیگابایت حجم دارند.
این متغیرها در لینوکس با systemctl edit ollama و افزودن خطوط Environment= تنظیم میشوند.
Ollama برای چه کاری مناسب نیست؟
Ollama برای توسعه، استفاده شخصی و سرویسهایی با تعداد کاربر کم تا متوسط عالی است. اما وقتی دهها کاربر همزمان دارید، موتورهایی مثل vLLM با تکنیکهایی مانند PagedAttention و Continuous Batching توان عملیاتی بسیار بیشتری دارند. مقایسه کامل را در Ollama یا vLLM بخوانید.
سوالات متداول
آیا Ollama از زبان فارسی پشتیبانی میکند؟
Ollama فقط موتور اجراست و کیفیت فارسی به مدل بستگی دارد. مدلهایی مثل Qwen ۲.۵، Gemma و Llama ۳.۱ در اندازههای متوسط و بزرگ، فارسی را بهخوبی میفهمند و تولید میکنند.
آیا Ollama بدون کارت گرافیک اجرا میشود؟
بله، روی CPU هم اجرا میشود، اما سرعت تولید متن برای مدلهای بالای ۷ میلیارد پارامتر معمولاً برای استفاده روزمره کند است.
Ollama رایگان است؟
بله، Ollama متنباز و رایگان است. مدلها هم هرکدام لایسنس خود را دارند که برای استفاده تجاری باید بررسی شود.
تفاوت Ollama و LM Studio چیست؟
هر دو بر پایه llama.cpp هستند. LM Studio رابط گرافیکی دسکتاپ دارد و برای استفاده شخصی مناسب است، در حالی که Ollama برای اجرا بهصورت سرویس روی سرور و اتصال برنامهها مناسبتر است.
اجرای مدلهای زبانی روی سرور اختصاصی
با سرورهای GPU تراست هاست مدلهای خود را با حریم خصوصی کامل و بدون هزینه بهازای توکن اجرا کنید.