من یک LLM را به صورت محلی روی ASUS ROG Ally خود اجرا کردم

من برای چند هفته یک مدل هوش مصنوعی محلی را روی ASUS ROG Ally خود اجرا کردم. فکر می‌کردم پروژه سرگرم‌کننده‌ای باشد، اما در عوض، به درسی درباره محدودیت‌های سخت‌افزاری تبدیل شد.

من از آن به عنوان جایگزینی برای سرویس‌های ابری استفاده نکردم؛ بلکه آن را به عنوان ابزاری تخصصی برای کارهای کوچک به کار گرفتم. در اینجا آنچه درباره اجرای هوش مصنوعی روی سخت‌افزارهای دستی (handheld) آموختم را آورده‌ام.

سد حافظه

دستگاه‌های دستی از معماری حافظه یکپارچه (Unified Memory Architecture) استفاده می‌کنند. این یعنی CPU و GPU از یک RAM مشترک استفاده می‌کنند. به طور پیش‌فرض، GPU بخش بسیار کوچکی از حافظه را در اختیار دارد.

اگر مدل شما در آن بخش جا نشود، سیستم از CPU استفاده می‌کند. این کار سرعت تولید متن را به طرز دردناکی کاهش می‌دهد.

راه حل:

  • وارد BIOS شوید.
  • مقدار UMA frame buffer را به صورت دستی افزایش دهید.
  • من مقدار خود را به ۴ گیگابایت رساندم. این تغییر بیش از هر تنظیم دیگری کمک کرد.

آنچه کار نمی‌کند

من سعی کردم از zRAM استفاده کنم تا حافظه بیشتری از رم استخراج کنم، اما شکست خوردم. اکثر مدل‌های هوش مصنوعی از فایل‌های GGUF استفاده می‌کنند که خود فشرده شده‌اند. شما نمی‌توانید برای به دست آوردن فضای بیشتر، آن‌ها را بیشتر فشرده کنید.

همچنین سعی کردم از disk swap برای کمک استفاده کنم. Swap سرعت را بیشتر نمی‌کند، بلکه باعث می‌شود سیستم غیرقابل استفاده شود. اگر مدل شما به disk swap متکی باشد، هر چند ثانیه فقط یک کلمه خواهید دید.

تنها دلیل برای فعال نگه داشتن swap این است که وقتی رم شما تمام شد، سیستم فرآیند (process) شما را متوقف نکند.

نکاتی برای اجرای روان

اگر خروجی هوش مصنوعی شما قطع و وصل می‌شود یا با لگ همراه است، تنظیمات هسته (kernel) لینوکس خود را بررسی کنید.

  • مقدار vm.swappiness را کاهش دهید.
  • این کار مانع از این می‌شود که سیستم خیلی زود حافظه را به swap منتقل کند.
  • این کار باعث می‌شود فرآیند تولید متن به جای لرزش و لگ، یکنواخت به نظر برسد.

انتخاب مدل به مورد استفاده (Use-Case) بستگی دارد

بیشتر مردم به دنبال سریع‌ترین مدل هستند. من در عوض، مدلی کندتر اما دقیق‌تر را انتخاب کردم.

  • اگر به صورت لحظه‌ای چت می‌کنید، به سرعت نیاز دارید.
  • اگر یک عامل (agent) در پس‌زمینه اجرا می‌کنید، به کیفیت نیاز دارید.

من از سیستم خود برای کارهای پس‌زمینه استفاده می‌کنم. یک درخواست می‌فرستم و بعداً نتیجه را چک می‌کنم. چون به صفحه نمایش خیره نیستم، برایم مهم نیست که پاسخ به جای ۸ ثانیه، ۴۰ ثانیه طول بکشد. من بهترین پاسخ را می‌خواهم، نه سریع‌ترین آن را.

از مدل‌های استدلالی (reasoning models) روی دستگاه‌های دستی خودداری کنید. فرآیند تفکر مرحله‌به‌مرحله در سخت‌افزارهای ضعیف زمان بسیار زیادی می‌برد. افزایش کیفیت اغلب ارزش این انتظار را ندارد.

این سیستم برای چه کارهایی مناسب است

یک دستگاه ۱۶ گیگابایتی برای موارد زیر عالی است:

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

برای موارد زیر نامناسب است:

  • اسناد طولانی.
  • تحقیقات عمیق.
  • پروژه‌های برنامه‌نویسی پیچیده.

هوش مصنوعی محلی یک ابزار است، نه یک معجزه. این ابزار برای کارهای روتین و سبک عالی است.

Source: https://dev.to/frankydzoro/i-ran-an-llm-locally-on-my-asus-rog-ally-and-heres-what-i-actually-learned-3o6j

Optional learning community: https://t.me/GyaanSetuAi