✨ اجرای مدل‌های هوش‌مصنوعی به‌صورت آفلاین

Post Image

✨ اجرای مدل‌های هوش‌مصنوعی به‌صورت آفلاین

پیش‌درآمد شروع کار با Semantic Kernel


‌‌‎—————————————————

پیش‌نوشت:

مسعود دانش‌پور عزیز، در صدد تهیه ویدیو و مثال آموزشی از Semantic Kernel با استفاده از APIهای AvvalAI است. در نتیجه من پُست‌های این موضوع رو طوری تنظیم می‌کنم که هم‌پوشانی نداشته باشه، و دوستان بتونن با دنبال کردن مطالب دو کانال، طیف وسیع‌تری از نکات رو در اختیار داشته باشن.

‎—————————————————


چت‌جی‌پی‌تی، جمینای، Claude یا سرویس‌های مشابه، که به صورت بسته ارائه می‌شن و امکان اجرای مدل به‌صورت لوکال رو نداریم. و نهایتا می‌تونیم با استفاده از API شون بهشون دسترسی داشته باشیم.


🗜 محدودیت‌ها:


*️⃣در هر حال درخواست‌های شما و داده‌هایی که لابلای تعامل با API رد و بدل می‌کنید عملا در اختیار شرکت OpenAI یا Microsoft یا AvvalAI یا... قرار می‌گیره، و حتی اگر به امنیت اونا اطمینان داشته باشیم، ولی استفاده‌شون از داده‌های شما برای آموزش مدل‌هاشون محتمله. این برای بعضی سازمان‌ها و صنایع غیر مجاز است.


*️⃣محدودیت ویژه ایران: تحریم، فیلتر، اینترنت، دشواری پرداخت و قص علی هذا 😡



💡 راهکار جایگزین:

اگر دنبال راهکار جایگزین باشیم که مدل رو خودمون هاست کنیم، باید سراغ مدل‌های باز بریم، مثل لاما (Llama) از شرکت متا یا خانواده مدل‌های فای (Phi) که مایکروسافت ارائه کرده.


برحسب مدلی که انتخاب می‌کنیم و حجم درخواست‌ها پیچیدگی‌شون منابع سخت‌افزاری هم باید داشته باشیم. ولی مثال‌های این مطلب رو من با مدل کوچیک فای انجام می‌دم که حتی بدون GPU جداگانه یا قدرتمند هم قابل اجرا باشه.


۱: نرم‌افزار Ollama رو روی Mac، Linux، Windows نصب کنید.

۲: حالا توی ترمینال دستور ollama رو دارید:


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

ollama list


برای دانلود و نصب مدل. (اینجا مدل Phi3.5 (۳.۸۲ میلیارد پارامتر))

ollama pull phi3.5


برای اجرای مدل. (اینجا مدل Phi3.5 (۳.۸۲ میلیارد پارامتر))

ollama run phi3.5


برای حذف مدل.

ollama rm phi3.5


🌡دمای مدل (Temperature) یکی از مهم‌ترین پارامترهای کنترل خروجی مدل‌های زبانیه. بذارید ساده توضیح بدم:

محدوده‌ی مجاز Temperature بین 0 تا 1 تنظیم میشه:


کاربرد temperature = 0.0

- خروجی کاملاً قطعی و تکرارپذیر

- همیشه محتمل‌ترین کلمات رو انتخاب می‌کنه

- مناسب برای: محاسبات، کدنویسی، پاسخ‌های دقیق و تکنیکی



کاربرد temperature = 0.7 (معمولاً مقدار پیش‌فرض)

- تعادل خوبی بین خلاقیت و ثبات

- مناسب برای: چت عمومی، نوشتن متن، اکثر کاربردها



کاربرد temperature = 1.0

- خروجی کاملاً تصادفی و خلاقانه

- هر بار ممکنه پاسخ متفاوتی بده

- مناسب برای: داستان‌نویسی، شعر، ایده‌پردازی خلاقانه


output: دقیق و تکرارپذیر

ollama run phi --temperature 0.1 "یک برنامه ساده پایتون بنویس"


output: متعادل (پیش‌فرض)

ollama run phi --temperature 0.7 "یک داستان کوتاه بنویس"


output: خلاقانه و متنوع

ollama run phi --temperature 1.0 "یک شعر در مورد بهار بنویس"


برای نمایش منابع مورد مصرف

ollama stats



⚙️ علاوه بر امکان کار با کامندلاین، Ollama بهمون REST API هم می‌ده که به راحتی می‌تونیم باهاش کار کنیم. مثال ساده:

curl http://localhost:11434/api/generate -d'{

"model": "phi3.5",

"prompt": "suggest a city to travel"

}'



با همین API می‌شه چت هم کرد:

curl http://localhost:11434/api/chat -d '{

"model": "phi3.5",

"messages": [

{ "role": "user", "content": "lets chat about cooking recipes?" }

]

}'


شاید اولین آرزوتون این باشه که کاش یه یوزر اینترفیس تحت وب عینهو ChatGPT هم داشت! ولی این آرزو نیست. پاشید پروژه Open WebUI رو استفاده کنید.


📎خوبی Ollama اینکه مدل API که ارائه میده استاندارده و به راحتی می‌تونید بین مثلا Phi و Llama یا هر مدل دیگه‌ای که اینجا می‌بینید به راحتی سوییچ کنید (در این ساعت ۱۴۵ مدل مختلف)


⚡️ این مقدمه اولیه اجرای مدل روی ماشین‌شخصی یا سرور بود. بعدن می‌تونید با Semantic Kernel از مدل لوکال خودتون استفاده کنید...


💬 نظرتون رو بگید لطفا، اگر دوست دارید این موضوع رو ادامه بدیم لطفا اول خودتون همین مثال‌ها رو اجرا کنید و ری‌اکشن 🤓 بگذارید.


♻️🌱 نکته محیط زیستی: همه ما در قبال زمین مسئولیم استفاده از مدل‌های کوچک زبانی (SLM)ها مثل همین Phi3.5 مصرف انرژی و طبیعتا ردپای کربن بسیار کمتری نسبت به مدل‌های بزرگ داره. اگر نیاز به مدل خیلی بزرگ نداریم، حواسمون به نسل‌های بعدی باشه 😊


توضیح: مدل Phi4 روی Ollama هست ولی هنوز اکانت رسمی مایکروسافت ارائه نکرده، مایکروسافت فعلا روی Azure اون نسخه رو گذاشته و به‌زودی روی Ollama هم میاد.