آموزش اجرای LLM روی NVIDIA DGX Spark؛ از مفاهیم پایه تا راهاندازی Ollama و Open WebUI
راهنمای مقدماتی اجرای LLM روی NVIDIA DGX Spark از شناخت هوش مصنوعی محلی تا آشنایی با Ollama و Open WebUI دسترسی سریع به سه بخش اصلی آموزش برای رفتن مستقیم به هر مرحله، روی کادر رنگی مربوط به آن کلیک کنید. بخش اول آشنایی با مفاهیم پایه بخش دوم آمادهسازی DGX Spark بخش سوم نصب Ollama و Open WebUI فهرست مطالب برای مطالعه هر بخش، روی عنوان آن کلیک کنید. مقدمه: قبل از اجرای مدل LLM چیست؟ تفاوت هوش مصنوعی…
راهنمای مقدماتی اجرای LLM روی NVIDIA DGX Spark
از شناخت هوش مصنوعی محلی تا آشنایی با Ollama و Open WebUI
دسترسی سریع به سه بخش اصلی آموزش
برای رفتن مستقیم به هر مرحله، روی کادر رنگی مربوط به آن کلیک کنید.
| بخش اول آشنایی با مفاهیم پایه |
بخش دوم آمادهسازی DGX Spark |
بخش سوم نصب Ollama و Open WebUI |
فهرست مطالب
برای مطالعه هر بخش، روی عنوان آن کلیک کنید.
بخش اول آموزش
آشنایی با مفاهیم پایه اجرای LLM
در این بخش با مدل زبانی، اجرای محلی، نقش DGX Spark، Ollama، Open WebUI و Docker آشنا میشویم.
مقدمه: قبل از اجرای مدل، باید بدانیم چه چیزی را اجرا میکنیم
برای راهاندازی یک مدل زبانی بزرگ روی NVIDIA DGX Spark، ابتدا باید با چند مفهوم پایه آشنا شویم: مدل زبانی بزرگ یا LLM چیست، اجرای محلی چه تفاوتی با استفاده از سرویسهای ابری دارد، Ollama چه نقشی ایفا میکند و Open WebUI چگونه امکان تعامل ساده با مدل را فراهم میکند.
در این راهنما مفاهیم را از صفر و با مثالهای ساده توضیح میدهیم. هدف این است که پیش از وارد کردن دستورات ترمینال، منطق اجزای سیستم و ارتباط آنها با یکدیگر روشن باشد.
بخش اول: LLM چیست؟آموزش اجرای LLM روی NVIDIA DGX Spark با Ollama
LLM مخفف Large Language Model و به معنی «مدل زبانی بزرگ» است. این مدل نوعی هوش مصنوعی است که با حجم زیادی از دادهها آموزش دیده تا بتواند متن را پردازش کند و بر اساس ورودی کاربر، پاسخ متنی تولید کند.
برای مثال، وقتی از یک دستیار هوش مصنوعی میخواهیم متنی بنویسد، کدی را توضیح دهد یا سندی را خلاصه کند، یک مدل زبانی درخواست را پردازش میکند و پاسخ میسازد.
مدل زبانی صرفاً یک نرمافزار معمولی نیست. بخش اصلی آن مجموعهای از پارامترهای آموزشدیده است که الگوهای زبان را در خود نگه میدارند. هنگام اجرا، این پارامترها باید در حافظه قرار بگیرند و محاسبات لازم برای تولید پاسخ انجام شود.
پارامترهای مدل یعنی چه؟
پارامترها مقادیر عددیای هستند که مدل در زمان آموزش یاد میگیرد. تعداد پارامترها یکی از شاخصهای اندازه مدل است؛ اما بزرگتر بودن مدل بهتنهایی به معنی بهتر بودن آن برای هر کاربرد نیست. کیفیت پاسخ، دادههای آموزشی، معماری و نوع وظیفه نیز اهمیت دارند.
برای درک نیاز سختافزاری، یک مثال ساده: اگر مدلی ۲۰ میلیارد پارامتر داشته باشد و وزنهای آن با دقت ۱۶ بیت ذخیره شوند، فقط فضای خام وزنها حدود ۴۰ گیگابایت خواهد بود. حافظه واقعی موردنیاز بیشتر است، چون سیستم برای پردازش به حافظه اضافی نیز نیاز دارد. کوانتیزهسازی میتواند حجم وزنها را کاهش دهد، اما ممکن است بر کیفیت یا سرعت اثر بگذارد.
بخش دوم: تفاوت هوش مصنوعی ابری و اجرای محلی
برای استفاده از مدل هوش مصنوعی دو روش کلی وجود دارد. در روش ابری، مدل روی سرورهای ارائهدهنده سرویس اجرا میشود و درخواست کاربر از طریق اینترنت به آن سرورها میرسد. در روش محلی یا Local، مدل روی دستگاه یا زیرساخت تحت کنترل کاربر نگهداری میشود و پردازش روی همان زیرساخت انجام میشود.
هوش مصنوعی ابری (Cloud AI)
| کاربر ارسال پرسش |
↔ | اینترنت انتقال درخواست |
↔ | سرور ابری اجرای مدل |
در روش ابری، پردازش اصلی روی سرور ارائهدهنده انجام میشود.
هوش مصنوعی ابری (Cloud AI)
در روش ابری، کاربر درخواست خود را در یک وبسایت یا اپلیکیشن وارد میکند. درخواست از طریق اینترنت به سرور ارائهدهنده ارسال میشود؛ مدل روی آن سرور اجرا میشود و پاسخ به کاربر بازمیگردد. در این روش معمولاً کاربر مسئول نگهداری سختافزار و نصب مدل نیست، اما استفاده از سرویس به شرایط، هزینهها، محدودیتها و سیاستهای ارائهدهنده وابسته است.
هوش مصنوعی محلی (Local AI)
| کاربر ارسال پرسش |
→ | NVIDIA DGX Spark اجرای مدل |
→ | پاسخ نتیجه |
پس از دریافت مدل، پردازش درخواست میتواند روی خود دستگاه انجام شود.
چرا اجرای محلی اهمیت دارد؟
- کنترل بیشتر بر محل نگهداری مدل و دادههای ورودی.
- امکان اجرای آزمایشها و توسعه نرمافزار در محیط اختصاصی.
- کاهش وابستگی به سرویسهای ابری برای پردازشهای محلی.
- امکان تنظیم محیط اجرا متناسب با نیازهای فنی و سازمانی.
بخش سوم: NVIDIA DGX Spark چه نقشی دارد؟
NVIDIA DGX Spark یک سیستم فشرده برای توسعه و اجرای بارهای کاری هوش مصنوعی است. این دستگاه از NVIDIA GB10 Grace Blackwell Superchip و ۱۲۸ گیگابایت حافظه یکپارچه استفاده میکند. حافظه یکپارچه به CPU و GPU امکان میدهد از یک فضای حافظه مشترک استفاده کنند؛ ویژگیای که برای بارگذاری مدلهای بزرگ اهمیت دارد.
DGX Spark در این فرایند خودِ مدل زبانی نیست و بهتنهایی جای Ollama یا رابط کاربری را نمیگیرد. نقش آن تأمین منابع سختافزاری و محیطی است که مدل روی آن اجرا میشود.
- GB10 Grace Blackwell: تراشه اصلی پردازشی سیستم.
- ۱۲۸ گیگابایت حافظه یکپارچه: فضای حافظه مشترک برای بارهای کاری سیستم.
- DGX OS: سیستمعامل و محیط نرمافزاری دستگاه.
- شتابدهی NVIDIA: زیرساخت نرمافزاری و سختافزاری برای اجرای بارهای کاری هوش مصنوعی.
بخش چهارم: Ollama چیست؟
Ollama ابزاری برای دریافت، مدیریت و اجرای مدلهای زبانی روی یک سیستم است. Ollama خودِ مدل زبانی نیست؛ بلکه نرمافزاری است که کار با مدلها را سادهتر میکند.
Ollama چه کارهایی انجام میدهد؟
- دریافت مدل: کاربر میتواند نام مدل موردنظر را مشخص کند و Ollama فایلهای لازم را دریافت کند.
- مدیریت مدلها: مدلهای دریافتشده را نگهداری و برای اجرا آماده میکند.
- اجرای مدل: هنگام درخواست کاربر، مدل را بارگذاری میکند و محاسبات لازم برای تولید پاسخ را انجام میدهد.
- ارائه راه ارتباطی: امکان تعامل با مدل از طریق ترمینال یا API را فراهم میکند.
برای نمونه، خانوادههای مختلفی از مدلها از طریق کتابخانه Ollama قابل دریافت هستند. نام و برچسب مدل باید دقیقاً مطابق نسخه موجود در کتابخانه و سازگاری آن با معماری دستگاه انتخاب شود.
بخش پنجم: Open WebUI چیست؟
Open WebUI یک رابط کاربری تحت وب است که امکان تعامل با مدلهای زبانی را از طریق مرورگر فراهم میکند. بهجای آنکه کاربر برای هر گفتگو فقط از ترمینال استفاده کند، میتواند صفحهای شبیه محیط چت باز کند، مدل را انتخاب کند و پیام بفرستد.
Open WebUI بهتنهایی مدل زبانی را اجرا نمیکند. در معماری مورد بحث، این ابزار به Ollama متصل میشود و درخواستهای کاربر را برای پردازش به آن میفرستد.
- نمایش محیط گفتگو در مرورگر.
- انتخاب مدل از میان مدلهای در دسترس.
- مدیریت گفتگوها و تاریخچه، بسته به تنظیمات نصب.
- فراهم کردن تجربه کاربری سادهتر برای تعامل با مدل محلی.
بخش ششم: این اجزا چگونه با یکدیگر کار میکنند؟
رابط کاربری تحت وب و محل گفتگو
مدیریت و اجرای مدل
وزنها و پارامترهای مدل
سختافزار و منابع پردازشی و حافظه
نمای ساده لایههای اصلی محیط اجرای LLM روی DGX Spark
برای فهم ارتباط اجزا، مسیر یک درخواست را دنبال کنیم:
- کاربر مرورگر را باز میکند و از طریق Open WebUI یک پیام میفرستد.
- Open WebUI درخواست را به سرویس Ollama ارسال میکند.
- Ollama مدل انتخابشده را برای پردازش به کار میگیرد.
- DGX Spark منابع پردازشی و حافظه لازم را برای اجرای مدل فراهم میکند.
- مدل پاسخ را تولید میکند؛ پاسخ از Ollama به Open WebUI برمیگردد و در مرورگر نمایش داده میشود.
بنابراین میتوان نقش هر جزء را اینگونه خلاصه کرد:
- NVIDIA DGX Spark: سختافزار و منابع پردازشی.
- LLM: مدل هوش مصنوعی که پاسخ تولید میکند.
- Ollama: ابزار مدیریت و اجرای مدل.
- Open WebUI: رابط گرافیکی برای تعامل کاربر با مدل.
بخش هفتم: آیا اجرای Local به معنی حفظ کامل حریم خصوصی است؟
اجرای مدل بهصورت محلی میتواند نیاز به ارسال متن درخواستها به سرویس ابری را کاهش دهد؛ اما نباید آن را بهتنهایی تضمین امنیت یا محرمانگی دانست. اگر رابط کاربری از شبکه در دسترس باشد، اگر ابزارهای جانبی به اینترنت متصل شوند یا اگر تنظیمات دسترسی درست نباشند، دادهها ممکن است در معرض دسترسی ناخواسته قرار بگیرند.
برای استفاده سازمانی، باید دسترسی کاربران، رمز عبور، پورتهای شبکه، بهروزرسانیها، پشتیبانگیری و سیاستهای نگهداری دادهها نیز مدیریت شوند.
بخش هشتم: Docker چیست و چرا از آن استفاده میکنیم؟
تا اینجا با DGX Spark، مدل زبانی، Ollama و Open WebUI آشنا شدیم. اما برای راهاندازی این ابزارها در آموزش عملی، با نام دیگری روبهرو میشویم: Docker.
Docker بستری برای اجرای نرمافزارها در محیطهایی جدا و قابلکنترل به نام «کانتینر» (Container) است. به کمک Docker میتوان برنامه و بخش زیادی از وابستگیهای موردنیاز آن را در یک بسته آماده اجرا قرار داد؛ در نتیجه راهاندازی برنامه در محیطهای مختلف سادهتر و قابلتکرارتر میشود.
۱. کانتینر چیست؟ با یک مثال ساده
فرض کنید میخواهید یک نرمافزار را روی چند کامپیوتر نصب کنید. ممکن است هر کامپیوتر نسخه متفاوتی از کتابخانهها یا ابزارهای موردنیاز داشته باشد و همین تفاوت باعث خطا شود.
کانتینر را میتوان مانند یک بسته آماده در نظر گرفت که برنامه و اجزای لازم برای اجرای آن را همراه خود دارد. Docker این بسته را اجرا میکند و محیط اجرای برنامه را تا حد زیادی از سایر برنامههای سیستم جدا نگه میدارد.
نمای ساده اجرای یک نرمافزار در Docker
مدیریت و اجرای کانتینرها
محیط جداگانه برای اجرای برنامه
نرمافزار، کتابخانهها و تنظیمات لازم
Docker محیط اجرای برنامه را مدیریت میکند؛ خودش مدل هوش مصنوعی نیست.
۲. تفاوت Image و Container چیست؟
در Docker دو اصطلاح مهم وجود دارد که نباید با هم اشتباه گرفته شوند:
- Image (ایمیج): بسته یا الگوی آمادهای است که دستورها، فایلها و تنظیمات لازم برای ساخت محیط اجرای برنامه را در خود دارد.
- Container (کانتینر): نمونهای از یک Image است که اجرا شده و برنامه درون آن در حال فعالیت است.
برای مثال، وقتی Image مربوط به Open WebUI را دریافت میکنیم، هنوز برنامه را اجرا نکردهایم. با ساخت و اجرای یک Container از روی آن Image، سرویس Open WebUI فعال میشود.
۳. چرا بهجای نصب مستقیم از Docker استفاده میکنیم؟
بسیاری از ابزارهای هوش مصنوعی به نسخههای مشخصی از کتابخانهها، چارچوبها و وابستگیهای نرمافزاری نیاز دارند. نصب مستقیم چند ابزار روی سیستمعامل ممکن است باعث تداخل نسخهها یا دشوار شدن مدیریت محیط شود.
استفاده از Docker چند مزیت کاربردی دارد:
- راهاندازی سادهتر: بخش زیادی از تنظیمات و وابستگیهای برنامه در Image آماده شده است.
- جداسازی محیطها: هر برنامه میتواند در کانتینر جداگانه اجرا شود و احتمال تداخل وابستگیها کاهش پیدا کند.
- قابلیت تکرار: میتوان همان Image و تنظیمات را در محیطهای سازگار دوباره اجرا کرد.
- مدیریت آسانتر: شروع، توقف، حذف و بهروزرسانی کانتینرها از طریق دستورهای Docker انجام میشود.
- قابلیت اتصال به منابع سیستم: در صورت پیکربندی درست، کانتینر میتواند به مسیرهای ذخیرهسازی، پورتهای شبکه و منابع سختافزاری موردنیاز دسترسی داشته باشد.
۴. Docker چه ارتباطی با Ollama و Open WebUI دارد؟
در آموزش راهاندازی LLM روی NVIDIA DGX Spark، از Docker برای اجرای محیط نرمافزاری موردنیاز استفاده میکنیم. در روش انتخابشده، یک Image آماده شامل Open WebUI و Ollama دریافت میشود و سپس از روی آن یک کانتینر اجرا میکنیم.
در این ساختار، نقش ابزارها به این صورت است:
- Docker: محیط کانتینری را ایجاد و اجرا میکند.
- Ollama: دریافت، مدیریت و اجرای مدل زبانی را بر عهده دارد.
- Open WebUI: رابط تحت وب برای انتخاب مدل و گفتگو با آن را فراهم میکند.
- DGX Spark: منابع پردازشی و حافظه موردنیاز را در اختیار بار کاری قرار میدهد.
رابط کاربری و محیط گفتگو
مدیریت و اجرای مدل زبانی
مدلی که پاسخ را تولید میکند
محیط اجرای ایزوله برای سرویسها و اجزای نرمافزاری
سیستم میزبان و منابع سختافزاری
نمای مفهومی ارتباط ابزارها؛ نحوه قرارگیری هر سرویس در کانتینر به روش نصب انتخابشده بستگی دارد.
۵. چند اصطلاح Docker که در مراحل نصب میبینیم
| اصطلاح | توضیح ساده |
|---|---|
| Image | بسته آمادهای که کانتینر از روی آن ساخته میشود. |
| Container | نمونه در حال اجرا از یک Image. |
| Volume | فضای ذخیرهسازی پایدار برای نگهداری دادهها، حتی پس از حذف یا ساخت مجدد کانتینر. |
| Port | درگاهی برای دسترسی به سرویس کانتینر از سیستم میزبان یا شبکه. |
| Registry | مخزنی برای دریافت و انتشار Imageها؛ مانند Docker Hub یا GitHub Container Registry. |
| GPU Access | تنظیم دسترسی کانتینر به GPU؛ این دسترسی باید با درایور و محیط نرمافزاری سازگار باشد. |
۶. آیا Docker همان ماشین مجازی (Virtual Machine) است؟
خیر. هر دو فناوری برای جداسازی محیط اجرا استفاده میشوند، اما روش کارشان متفاوت است. ماشین مجازی معمولاً یک سیستمعامل مهمان کامل را همراه با منابع مجازیشده اجرا میکند. کانتینرها معمولاً هسته سیستمعامل میزبان را به اشتراک میگذارند و فرایندها و فایلهای برنامه را در محیطی جداشده اجرا میکنند. به همین دلیل، کانتینرها در بسیاری از سناریوها سبکتر و سریعتر از ماشینهای مجازی راهاندازی میشوند.
جمعبندی: Docker چه نقشی در راهاندازی LLM دارد؟
Docker ابزار اجرای مدل زبانی نیست؛ بلکه محیطی مدیریتشده برای اجرای نرمافزارهایی مانند Ollama و Open WebUI فراهم میکند. در آموزش عملی، ابتدا بررسی میکنیم Docker روی DGX Spark آماده است یا خیر، سپس Image موردنیاز را دریافت میکنیم، کانتینر را با تنظیمات مناسب اجرا میکنیم و دسترسیهای ذخیرهسازی، شبکه و GPU را بررسی خواهیم کرد.
حالا که با مفهوم Docker، Image و Container آشنا شدیم، میتوانیم وارد مرحله عملی نصب و راهاندازی شویم و هر دستور ترمینال را با شناخت نقش آن اجرا کنیم.
جمعبندی: پیش از نصب، نقش هر جزء را بشناسیم
برای اجرای یک مدل زبانی روی NVIDIA DGX Spark، باید چهار جزء را از هم تفکیک کنیم: سختافزار، مدل زبانی، ابزار اجرای مدل و رابط کاربری. DGX Spark منابع سختافزاری را فراهم میکند؛ مدل LLM وظیفه تولید پاسخ را دارد؛ Ollama دریافت و اجرای مدل را مدیریت میکند؛ و Open WebUI محیطی ساده برای گفتگو با مدل در اختیار کاربر میگذارد.
با شناخت این نقشها، مراحل عملی نصب و راهاندازی معنا پیدا میکنند. در بخش عملی آموزش، ابتدا وضعیت سیستم و Docker بررسی میشود، سپس محیط اجرای Ollama و Open WebUI آماده خواهد شد، یک مدل سازگار دریافت میشود و در نهایت اولین گفتگوی محلی انجام میگیرد.
واژهنامه کوتاه
| اصطلاح | معنی |
|---|---|
| LLM | Large Language Model؛ مدل زبانی بزرگ. |
| Local AI | اجرای مدل هوش مصنوعی روی دستگاه یا زیرساخت تحت کنترل کاربر. |
| Inference | استفاده از مدل آموزشدیده برای تولید خروجی یا پاسخ. |
| Parameter | پارامتر عددی آموزشدیده درون مدل. |
| Unified Memory | حافظه یکپارچهای که CPU و GPU در معماری مربوطه به آن دسترسی دارند. |
| Ollama | ابزار دریافت، مدیریت و اجرای مدلهای زبانی. |
| Open WebUI | رابط کاربری تحت وب برای تعامل با مدلهای زبانی. |
| Docker | بستر اجرای نرمافزارها در محیطهای ایزولهشدهای به نام کانتینر. |
| API | رابط برنامهنویسی برای ارتباط نرمافزارها با یکدیگر. |
| Local Inference | اجرای محاسبات تولید پاسخ روی سختافزار محلی. |
بخش دوم آموزش
آمادهسازی NVIDIA DGX Spark
در این بخش معماری سیستم، Docker، شناسایی GPU و دسترسی کانتینر به پردازنده گرافیکی را بررسی میکنیم.
آموزش آمادهسازی NVIDIA DGX Spark برای اجرای LLM؛ بررسی Docker و GPU
مرحله اول آموزش عملی نصب و راهاندازی هوش مصنوعی محلی با Ollama و Open WebUI
در این مرحله چه کاری انجام میدهیم؟
قبل از نصب مدل هوش مصنوعی، باید مطمئن شویم NVIDIA DGX Spark از نظر سیستمعامل، معماری پردازنده، Docker و دسترسی به GPU آماده است. در این بخش تمام موارد را با چند دستور ساده بررسی میکنیم.
۱. آشنایی با پیشنیازهای راهاندازی LLM روی DGX Spark
در مقاله قبلی با مفاهیم LLM، هوش مصنوعی محلی، Ollama، Open WebUI و Docker آشنا شدیم. حالا وقت آن رسیده که وارد محیط واقعی DGX Spark شویم.
NVIDIA DGX Spark با سیستمعامل اختصاصی DGX OS و ابزارهای موردنیاز برای توسعه هوش مصنوعی عرضه میشود. در پیکربندی استاندارد، Docker و NVIDIA Container Runtime نیز در دسترس هستند.
بنابراین در این مرحله قرار نیست تمام نرمافزارها را از ابتدا نصب کنیم؛ ابتدا وضعیت سیستم را بررسی میکنیم تا بدانیم چه ابزارهایی آماده استفاده هستند.
۲. باز کردن ترمینال در NVIDIA DGX Spark
ابتدا وارد محیط دسکتاپ DGX Spark شوید. برای اجرای دستورات، به برنامهای به نام Terminal نیاز داریم.
ترمینال محیطی است که از طریق آن میتوانیم با سیستمعامل ارتباط برقرار کنیم و دستورهای لازم برای نصب، بررسی و اجرای نرمافزارها را وارد کنیم.
برای باز کردن ترمینال میتوانید از منوی برنامههای سیستم استفاده کنید و عبارت Terminal را جستوجو کنید.
نکته:
اگر از طریق کامپیوتر دیگری با SSH به DGX Spark متصل شدهاید، میتوانید دستورات را مستقیماً در همان ترمینال وارد کنید.
۳. بررسی معماری پردازنده سیستم (ARM64)
اولین موردی که باید بررسی کنیم، معماری پردازنده است.
NVIDIA DGX Spark از معماری ARM64 استفاده میکند. این موضوع اهمیت زیادی دارد؛ زیرا هنگام دریافت نرمافزارها و Docker Imageها باید نسخه سازگار با معماری دستگاه را انتخاب کنیم.
دستور زیر را در ترمینال وارد کنید:
uname -m
پس از اجرای دستور، خروجی زیر را مشاهده میکنید:
خروجی مورد انتظار:
اگر خروجی aarch64 باشد، یعنی معماری سیستم ARM64 است و این مرحله با موفقیت انجام شده است.
۴. بررسی نصب بودن Docker در DGX Spark
در مرحله بعد باید مطمئن شویم Docker روی سیستم نصب شده است.
Docker ابزاری برای اجرای نرمافزارها در محیطهای جداگانهای به نام Container است. در آموزش ما از Docker برای راهاندازی محیط اجرای Ollama و Open WebUI استفاده خواهیم کرد.
برای بررسی نسخه نصبشده Docker، دستور زیر را اجرا کنید:
docker --version
اگر Docker بهدرستی نصب شده باشد، اطلاعات نسخه آن نمایش داده میشود. برای مثال:
شماره نسخه ممکن است با توجه به نسخه DGX OS و بهروزرسانیهای نصبشده متفاوت باشد.
نتیجه:
اگر شماره نسخه Docker نمایش داده شد، یعنی این ابزار روی سیستم نصب است و میتوانیم به مرحله بعد برویم.
۵. بررسی دسترسی به Docker
نصب بودن Docker بهتنهایی کافی نیست. باید مطمئن شویم کاربر فعلی سیستم اجازه اجرای دستورات Docker را دارد.
برای بررسی این موضوع، دستور زیر را اجرا کنید:
docker ps
این دستور فهرست کانتینرهای در حال اجرای Docker را نمایش میدهد.
اگر Docker بهدرستی کار کند، ممکن است جدولی شامل اطلاعات کانتینرها مشاهده کنید یا اگر هنوز کانتینری اجرا نکردهاید، جدول خالی باشد. هر دو حالت طبیعی هستند.
اگر خطای Permission denied دریافت کردیم چه کنیم؟
گاهی ممکن است هنگام اجرای دستور با خطایی شبیه زیر مواجه شوید:
این خطا معمولاً به معنی نداشتن مجوز دسترسی کاربر فعلی به Docker است.
روش اول: اجرای دستورات با دسترسی مدیریتی
میتوانید دستورهای Docker را با اضافه کردن sudo اجرا کنید:
sudo docker ps
روش دوم: اضافه کردن کاربر به گروه Docker
اگر میخواهید دستورات Docker را بدون نوشتن sudo اجرا کنید، میتوانید کاربر فعلی را به گروه Docker اضافه کنید.
sudo usermod -aG docker $USER
سپس برای اعمال تغییر گروه در محیط ترمینال فعلی، دستور زیر را اجرا کنید:
newgrp docker
حالا دوباره دستور زیر را اجرا کنید:
docker ps
نکته امنیتی:
عضویت در گروه Docker دسترسی بسیار گستردهای به سیستم میدهد و عملاً میتواند معادل دسترسی مدیریتی باشد. این روش را فقط برای حسابهای کاربری مورداعتماد استفاده کنید.
۶. بررسی شناسایی پردازنده گرافیکی NVIDIA
یکی از مهمترین مراحل آمادهسازی DGX Spark، اطمینان از شناسایی صحیح پردازنده گرافیکی و درایور NVIDIA است.
برای این کار از ابزار nvidia-smi استفاده میکنیم. این ابزار اطلاعاتی درباره GPU، نسخه درایور و وضعیت پردازنده گرافیکی نمایش میدهد.
دستور زیر را اجرا کنید:
nvidia-smi
در صورت اجرای صحیح، اطلاعات مربوط به GPU مبتنی بر تراشه GB10 Grace Blackwell و نسخه درایور نمایش داده میشود.
در این مرحله لازم نیست تمام اطلاعات خروجی را تحلیل کنید. فعلاً هدف ما این است که مطمئن شویم سیستم GPU را شناسایی میکند.
توجه:
در DGX Spark به دلیل معماری حافظه یکپارچه، ممکن است بعضی از اطلاعات مربوط به Memory Usage در خروجی nvidia-smi با عبارت Not Supported نمایش داده شوند. این موضوع بهتنهایی به معنی خرابی GPU یا درایور نیست.
۷. آزمایش دسترسی Docker به GPU
تا اینجا بررسی کردیم که Docker نصب است و سیستم نیز پردازنده گرافیکی NVIDIA را شناسایی میکند.
اما یک موضوع دیگر باقی مانده است: آیا کانتینرهای Docker نیز میتوانند به GPU دسترسی داشته باشند؟
برای بررسی این موضوع، از یک Docker Image رسمی CUDA متعلق به NVIDIA استفاده میکنیم.
دستور زیر را اجرا کنید:
docker run --rm --runtime=nvidia --gpus=all nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 nvidia-smi
این دستور چند کار را همزمان انجام میدهد:
- یک Docker Image مبتنی بر CUDA دریافت میکند؛ اگر قبلاً دریافت نشده باشد.
- یک کانتینر موقت ایجاد و اجرا میکند.
- با استفاده از تنظیمات NVIDIA Runtime دسترسی GPU را در اختیار کانتینر قرار میدهد.
- دستور nvidia-smi را داخل کانتینر اجرا میکند.
- پس از پایان اجرا، کانتینر موقت حذف میشود.
اگر این دستور برای اولین بار اجرا شود، ممکن است دریافت Image کمی زمان ببرد. بنابراین تا پایان فرایند منتظر بمانید.
خروجی موفق چه شکلی است؟
اگر همه تنظیمات درست باشند، باید اطلاعات GPU و درایور NVIDIA را در خروجی مشاهده کنید.
نشانه موفقیت:
اگر دستور nvidia-smi داخل کانتینر اجرا شد و اطلاعات GPU نمایش داده شد، ارتباط Docker با زیرساخت GPU برقرار است.
۸. جمعبندی بررسیهای انجامشده
در این مرحله چند بررسی مهم را انجام دادیم تا مطمئن شویم NVIDIA DGX Spark برای نصب و اجرای مدل زبانی آماده است.
| مورد بررسی | دستور | نتیجه مورد انتظار |
|---|---|---|
| معماری پردازنده | uname -m |
aarch64 |
| نسخه Docker | docker --version |
نمایش نسخه |
| وضعیت Docker | docker ps |
اجرای بدون خطا |
| شناسایی GPU | nvidia-smi |
نمایش اطلاعات GPU |
| دسترسی GPU در Docker | آزمایش CUDA Container | اجرای موفق nvidia-smi |
۹. بعد از این مرحله چه کاری انجام میدهیم؟
حالا که از آماده بودن محیط سیستم مطمئن شدیم، میتوانیم وارد مرحله اصلی راهاندازی هوش مصنوعی محلی شویم.
در مرحله بعد، سراغ نصب و اجرای محیط Ollama و Open WebUI میرویم. ابتدا Image موردنیاز را دریافت میکنیم، سپس کانتینر را با تنظیمات مناسب اجرا خواهیم کرد و در نهایت رابط کاربری را در مرورگر باز میکنیم.
مرحله بعدی آموزش
نصب و راهاندازی Ollama و Open WebUI روی NVIDIA DGX Spark با استفاده از Docker؛ از دریافت Image تا اجرای اولین مدل زبانی محلی.
منابع و مستندات رسمی
- NVIDIA DGX Spark User Guide
- NVIDIA Container Runtime for Docker
- NVIDIA DGX Spark System Overview
- NVIDIA DGX Spark Developer Resources
بخش سوم آموزش
نصب و راهاندازی Ollama و Open WebUI روی NVIDIA DGX Spark
در این مرحله با استفاده از یک Docker Image آماده، محیط Ollama و Open WebUI را اجرا میکنیم، رابط چت را در مرورگر باز میکنیم و اولین مدل زبانی را دریافت و آزمایش میکنیم.
قبل از شروع
این بخش بر اساس روش دسکتاپ در راهنمای رسمی NVIDIA برای DGX Spark نوشته شده است. در این روش، Ollama و Open WebUI داخل یک کانتینر آماده اجرا میشوند؛ بنابراین لازم نیست هرکدام را جداگانه نصب کنیم. پیشنیاز این مرحله، موفق بودن بررسی Docker و دسترسی GPU در بخش دوم است.
۱. دریافت Docker Image شامل Ollama و Open WebUI
ابتدا باید Image آمادهای را دریافت کنیم که Open WebUI و Ollama را در یک محیط در اختیارمان قرار میدهد. این Image از مخزن رسمی Open WebUI در GitHub Container Registry دریافت میشود.
در ترمینال DGX Spark دستور زیر را وارد کنید:
docker pull ghcr.io/open-webui/open-webui:ollama
دستور docker pull فایل Image را دریافت و روی دستگاه ذخیره میکند. این فرایند ممکن است با توجه به سرعت اینترنت چند دقیقه طول بکشد. پس از پایان دانلود، Image آماده اجرا خواهد بود.
نکته درباره فضای ذخیرهسازی:
طبق راهنمای NVIDIA، برای Image برنامه حدود ۷ گیگابایت فضا و برای مدل نمونه gpt-oss:20b حدود ۱۵ گیگابایت فضای ذخیرهسازی در نظر بگیرید. حجم واقعی میتواند با نسخه Image و مدل انتخابی تغییر کند.
۲. اجرای کانتینر Open WebUI و Ollama
پس از دریافت Image، باید کانتینر را اجرا کنیم. در دستور زیر، علاوه بر اجرای برنامه، دسترسی GPU و فضای ذخیرهسازی پایدار نیز تنظیم میشود.
دستور زیر را بهصورت کامل در ترمینال وارد کنید:
docker run -d -p 8080:8080 --gpus=all \
-v open-webui:/app/backend/data \
-v open-webui-ollama:/root/.ollama \
--name open-webui ghcr.io/open-webui/open-webui:ollama
این دستور چند تنظیم مهم را انجام میدهد:
-d: کانتینر را در پسزمینه اجرا میکند تا ترمینال برای کارهای دیگر آزاد بماند.-p 8080:8080: پورت ۸۰۸۰ کانتینر را به پورت ۸۰۸۰ دستگاه میزبان متصل میکند.--gpus=all: دسترسی کانتینر به GPUهای در دسترس را درخواست میکند.-v open-webui:/app/backend/data: اطلاعات Open WebUI مانند تنظیمات و گفتگوها را در یک Volume پایدار نگهداری میکند.-v open-webui-ollama:/root/.ollama: فایلهای مدلهای دریافتشده توسط Ollama را در Volume جداگانه نگهداری میکند.--name open-webui: نام کانتینر را open-webui قرار میدهد تا مدیریت آن سادهتر باشد.
چرا Volume مهم است؟
Volume باعث میشود دادههای برنامه و مدلها فقط به عمر کانتینر وابسته نباشند. اگر کانتینر حذف و دوباره ساخته شود، تا زمانی که Volumeها را حذف نکرده باشیم، اطلاعات ذخیرهشده در آنها باقی میماند.
۳. بررسی وضعیت کانتینر
بعد از اجرای دستور قبلی، بهتر است مطمئن شویم کانتینر با موفقیت بالا آمده است. دستور زیر را اجرا کنید:
docker ps
در فهرست خروجی باید کانتینری با نام open-webui مشاهده شود. در ستون STATUS وضعیت آن باید در حالت Up باشد.
برای مشاهده گزارش اجرای برنامه و بررسی خطاهای احتمالی نیز میتوانید از دستور زیر استفاده کنید:
docker logs --tail 100 open-webui
این دستور ۱۰۰ خط آخر گزارش کانتینر را نمایش میدهد. اگر کانتینر در فهرست docker ps دیده نشد، ابتدا خروجی این دستور را بررسی کنید.
۴. باز کردن Open WebUI در مرورگر
اگر کانتینر با موفقیت اجرا شده باشد، سرویس Open WebUI از طریق پورت ۸۰۸۰ در دسترس خواهد بود.
اگر مرورگر را روی خود DGX Spark باز کردهاید، آدرس زیر را وارد کنید:
اگر میخواهید از کامپیوتر دیگری در همان شبکه به رابط کاربری وصل شوید، باید بهجای localhost، نشانی IP دستگاه DGX Spark را وارد کنید؛ برای مثال:
در این مثال، عبارت IP-ADDRESS باید با IP واقعی دستگاه جایگزین شود. دسترسی از دستگاه دیگر به تنظیمات شبکه و فایروال نیز وابسته است. پورت رابط کاربری را بدون احراز هویت و کنترل دسترسی در اینترنت عمومی منتشر نکنید.
۵. ساخت حساب مدیر (Administrator)
در اولین ورود به Open WebUI، صفحه راهاندازی اولیه نمایش داده میشود. برای استفاده از محیط باید یک حساب مدیر ایجاد کنید.
- در صفحه خوشآمدگویی، گزینه Get Started را انتخاب کنید.
- نام، آدرس ایمیل و رمز عبور موردنظر را در فرم ثبتنام وارد کنید.
- فرایند ایجاد حساب را تأیید کنید تا وارد محیط اصلی Open WebUI شوید.
نکته امنیتی:
برای حساب مدیر از رمز عبور قوی و اختصاصی استفاده کنید. این حساب به محیط گفتگو و تنظیمات Open WebUI دسترسی مدیریتی دارد.
۶. دریافت اولین مدل زبانی با Ollama
تا اینجا محیط اجرای Ollama و رابط Open WebUI را راهاندازی کردهایم؛ اما برای گفتگو هنوز باید یک مدل زبانی دریافت کنیم.
در راهنمای رسمی NVIDIA برای DGX Spark، مدل gpt-oss:20b بهعنوان نمونه برای شروع معرفی شده است. برای دریافت آن از داخل Open WebUI مراحل زیر را دنبال کنید:
- در گوشه بالای محیط Open WebUI، فهرست انتخاب مدل را باز کنید.
- در قسمت جستوجو عبارت
gpt-oss:20bرا وارد کنید. - گزینه دریافت مدل از Ollama را انتخاب کنید؛ عنوان دکمه ممکن است با نسخه رابط کاربری کمی متفاوت باشد.
- منتظر بمانید تا دانلود مدل کامل شود. زمان دریافت به سرعت اینترنت و وضعیت مخزن بستگی دارد.
- پس از پایان دانلود، مدل
gpt-oss:20bرا از فهرست مدلها انتخاب کنید.
مدل پس از دریافت در Volume مربوط به Ollama ذخیره میشود؛ بنابراین برای استفاده مجدد لازم نیست هر بار آن را از ابتدا دانلود کنید، مگر اینکه Volume مربوطه حذف شود.
۷. آزمایش اولین گفتگوی محلی
حالا همه اجزای اصلی آمادهاند. مدل را انتخاب کنید و در کادر گفتگو یک پیام آزمایشی بنویسید. برای مثال:
کلید Enter را بزنید و منتظر پاسخ مدل بمانید. اگر مدل پاسخ تولید کرد، یعنی مسیر ارتباطی Open WebUI، Ollama و مدل زبانی بهدرستی کار میکند.
نتیجه موفقیتآمیز:
نمایش پاسخ مدل در صفحه گفتگو یعنی توانستهایم یک مدل زبانی را با Ollama روی DGX Spark اجرا کنیم و از طریق Open WebUI با آن ارتباط بگیریم.
۸. چند دستور کاربردی برای مدیریت کانتینر
پس از راهاندازی، ممکن است بخواهید وضعیت برنامه را بررسی کنید یا آن را متوقف و دوباره اجرا کنید. دستورهای زیر برای مدیریت کانتینر کاربرد دارند:
بررسی وضعیت کانتینر:
docker ps
مشاهده گزارشهای برنامه:
docker logs --tail 100 open-webui
متوقف کردن کانتینر:
docker stop open-webui
اجرای مجدد کانتینر متوقفشده:
docker start open-webui
توجه داشته باشید که برای توقف و اجرای مجدد معمولی، نیازی به حذف کانتینر یا Volumeها نیست. حذف Volumeهای open-webui و open-webui-ollama میتواند تاریخچه گفتگوها، تنظیمات و مدلهای دریافتشده را پاک کند؛ بنابراین آنها را صرفاً برای رفع خطا حذف نکنید.
۹. خطاهای رایج و راهحل اولیه
| مشکل | بررسی اولیه |
|---|---|
| صفحه Open WebUI باز نمیشود | وضعیت کانتینر، پورت ۸۰۸۰ و گزارش docker logs را بررسی کنید. |
| خطای نام تکراری کانتینر | ممکن است کانتینری با نام open-webui از قبل وجود داشته باشد؛ ابتدا با docker ps -a وضعیت آن را بررسی کنید. |
| پورت ۸۰۸۰ اشغال است | بررسی کنید برنامه دیگری از این پورت استفاده نکند؛ در صورت نیاز نگاشت پورت میزبان را تغییر دهید. |
| دانلود مدل انجام نمیشود | اتصال اینترنت، فضای ذخیرهسازی و گزارشهای کانتینر را بررسی کنید. |
| GPU در کانتینر در دسترس نیست | وجود گزینه --gpus=all در دستور اجرا و موفقیت آزمایش GPU در بخش دوم را بررسی کنید. |
۱۰. جمعبندی راهاندازی Ollama و Open WebUI
در این بخش یک محیط آماده شامل Ollama و Open WebUI را با Docker روی NVIDIA DGX Spark اجرا کردیم. سپس کانتینر را با دسترسی GPU و Volumeهای پایدار راهاندازی کردیم، وارد رابط وب شدیم، حساب مدیر ساختیم و مدل نمونه gpt-oss:20b را دریافت و آزمایش کردیم.
از اینجا به بعد میتوانیم مدلهای دیگر را نیز با توجه به نیاز پروژه، میزان حافظه در دسترس، فضای ذخیرهسازی و سازگاری آنها با DGX Spark بررسی کنیم.
مرحله بعدی آموزش
در مرحله بعد میتوانیم مدلهای مختلف را با یکدیگر مقایسه کنیم، مدل مناسب را بر اساس نوع کاربرد انتخاب کنیم و عملکرد آنها را از نظر سرعت پاسخگویی، مصرف حافظه و کیفیت خروجی روی DGX Spark بسنجیم.
منابع و مستندات رسمی
راهنمای بیشتر برای انتخاب تجهیزات هوش مصنوعی
برای آشنایی بیشتر با زیرساختهای پردازشی، انتخاب سختافزار مناسب و فناوریهای نسل جدید NVIDIA، پیشنهاد میکنیم منابع تخصصی زیر را مطالعه کنید.
تجهیزات هوش مصنوعی
آشنایی با انواع سرورها، سیستمهای پردازشی و تجهیزات تخصصی موردنیاز برای توسعه و اجرای پروژههای هوش مصنوعی.
کارت گرافیک هوش مصنوعی
بررسی و انتخاب پردازندههای گرافیکی مناسب برای آموزش مدلهای هوش مصنوعی، اجرای LLM و پردازشهای سنگین.
معماری NVIDIA Blackwell
آشنایی با معماری نسل جدید NVIDIA Blackwell، فناوریهای پردازشی و قابلیتهای سختافزاری این نسل.
سدید گستران؛ مرجع تخصصی فروش تجهیزات هوش مصنوعی و راهکارهای پردازشی