آموزش نصب موتور، انتخاب بهترین مدل، درک کوانتیز (Q3/Q4/…)، Vulkan و عیبیابی قدمبهقدم
1.مقدمه
امروز مدلهای آنلاین واقعاً قدرتمندند؛ اما «قوی بودن آنلاین» همیشه به معنی «بهترین انتخاب برای همه موقعیتها» نیست. در عمل، خیلی وقتها مسئله اصلی دسترسی پایدار، هزینه، سرعت قابل اتکا و کنترل روی داده است. اینجاست که اجرای LLM آفلاین روی موبایل اهمیت پیدا میکند: شما یک مدل را روی خود گوشی بالا میآورید تا بدون وابستگی به اینترنت و سرویسهای بیرونی، کارهای روزمرهتان را انجام دهد؛ از نوشتن و بازنویسی و خلاصهسازی گرفته تا ترجمه، ایدهپردازی، و کمکیار فنی.
مدلهای آنلاین معمولاً پشت یک لایه واسط و سرویسهای ابری ارائه میشوند؛ این واسطهها راحت و جذاباند، اما ذاتاً وابسته به اتصال اینترنت، خطمشیهای دسترسی، محدودیتهای منطقهای، تغییرات قیمت و پلنها، سقف مصرف، و دغدغههای حریم خصوصی هستند. کافی است اینترنت قطع یا کند شود، یا سرویس محدودیت بگذارد، یا شما نخواهید متنهای حساس کاری و شخصی از دستگاه خارج شود؛ در این حالت یک مدل لوکال مثل داشتن یک ابزار همیشه در دسترس است: آفلاین، قابل پیشبینی و قابل کنترل. علاوه بر این، اجرای لوکال به شما اجازه میدهد تجربه را دقیقاً مطابق نیازتان تنظیم کنید؛ از انتخاب اندازه مدل و نوع کوانتیز تا مدیریت مصرف حافظه و حتی انتخاب مسیر پردازش روی CPU یا GPU
نکته مهمتر این است که برخی موتورهای اجرا فقط برای نصب و اجرای مدلهای آماده نیستند؛ بلکه امکان اجرای مدلهای سفارشی خودتان را هم میدهند. یعنی میتوانید مدل دلخواهتان را وارد کنید، نسخههای خاص را اجرا کنید، و در برخی چارچوبها سراغ قابلیتهای پیشرفتهتر بروید؛ مثل استفاده از دانش و اسناد محلی بهصورت آفلاین، تنظیم پرامپتهای سیستمی و پروفایلهای کاری، و راهاندازی جریانهای خودکار برای کارهای تکراری. این یعنی گوشی شما از یک چتبات آماده فراتر میرود و به یک دستیار شخصی قابل شخصیسازی تبدیل میشود که هم آفلاین کار میکند و هم قابل توسعه است.
این جزوه دقیقاً برای همین نوشته شده است: تا بدون سردرگمی بین مدلها و ورینتها، مفهوم پارامتر و کوانتیز و توکن را درست بفهمید، موتور مناسب را نصب کنید، با Vulkan و محدودیتهای اندروید آشنا شوید، و در نهایت بتوانید مدل را پایدار و اصولی روی گوشی اجرا کنید؛ طوری که حتی وقتی اینترنت نیست یا نمیخواهید به سرویسهای آنلاین تکیه کنید، همچنان یک LLM قابل اتکا همراهتان باشد.
2. از تئوری تا عمل: مفاهیم حیاتی برای انتخاب موتور و مدل
در ادامه، پیش از ورود به مراحل نصب، لازم است چند مفهوم کلیدی را روشن کنیم؛ چون تقریباً همه خطاها و سردرگمیهای رایج هنگام اجرای لوکال LLM روی موبایل از همین مفاهیم میآید. هدف این بخش این نیست که شما وارد مباحث پیچیده شوید، بلکه این است که بتوانید هنگام انتخاب موتور و مدل، مثل یک کاربر آگاه تصمیم بگیرید و اگر جایی مدل بالا نیامد یا کند بود، دلیلش را بفهمید و راه درست را انتخاب کنید.
2.1 مدل زبانی و موتور چیست؟ تفاوت Model و Engine در اجرای لوکال
اولین مفهوم، خود مدل زبانی است. مدل زبانی یک فایل ساده نیست؛ بلکه یک «مغز آماده» است که در قالب وزنها ذخیره شده و باید توسط یک نرمافزار اجرا شود. این نرمافزار همان چیزی است که به آن موتور یا Engine میگوییم. موتور مثل یک پخشکننده ویدیو است و مدل مثل فایل ویدیو؛ شما با داشتن فایل ویدیو بدون پخشکننده کاری نمیتوانید بکنید. پس همیشه مسیر درست این است: اول موتور را نصب میکنیم، بعد مدل را داخل آن بارگذاری میکنیم، بعد مدل Initialize میشود و تازه امکان چت کردن در گوشی فعال میشود.
2.2 فرمت مدل چیست؟ چرا GGUF با MLC فرق دارد؟
مدلهای زبانی فقط اسم و اندازه ندارند؛ یک «فرمت فایل» هم دارند که تعیین میکند با کدام موتور قابل اجرا هستند. دو مسیر رایج روی موبایل اینهاست:
- GGUF فرمتی رایج برای مدلهای لوکال که معمولاً با موتورهای مبتنی بر llama.cpp اجرا میشود. مزیتش این است که تنوع مدلهای قابل دانلود و فاینتیونها زیاد است و معمولاً راحتتر میتوانید از Hugging Face مدل پیدا کنید.
- MLC مسیری که تمرکز آن روی بهینهسازی و گاهی آمادهسازی/کامپایل مدل برای اجرای سریعتر روی موبایل است. در این مسیر معمولاً باید مدلهایی را استفاده کنید که مخصوص همین موتور آماده شدهاند یا داخل خود اپ ارائه میشوند.
نکته کلیدی: اگر فرمت مدل با موتور شما سازگار نباشد، حتی اگر مدل عالی و معروف باشد، روی گوشی شما لود نمیشود یا روی Initialize گیر میکند. پس قبل از دانلود، اول فرمت سازگار با موتور را مشخص کنید.
جدول تصمیم سریع موتور و فرمت مدل
نوع موتور/اپ | فرمت مدلِ رایج | یعنی چه؟ | نتیجه برای انتخاب مدل |
اپهای مبتنی بر llama.cpp | GGUF | اجرای مستقیم فایلهای GGUF | دنبال مدلهای GGUF (ترجیحاً Chat/Instruct و Q4 بگردید |
اپهای مبتنی بر MLC | MLC مدلهای آماده/سازگار با MLC | مدل باید مخصوص همین مسیر آماده شده باشد | مدلها را از داخل خود اپ یا منابع سازگار با MLC انتخاب کنید |
اپهایی که هم CPU-only دارند و هم GPU | بسته به موتور (GGUF/MLC) | شتابدهی ممکن است روی Vulkan حساس باشد | همیشه گزینه CPU-only را به عنوان پلن B نگه دارید |
2.3 ورینت (Variant) یعنی چه؟
ورینت (Variant) یعنی «نسخه کاربردی» یک مدل درون یک خانواده. یعنی ممکن است یک خانواده مثل Qwen یا Llama از نظر هسته اصلی مدل یکی باشد، اما برای نیازهای مختلف چند خروجی/نسخه متفاوت ارائه کند. انتخاب ورینت درست خیلی مهم است، چون مستقیماً روی کیفیت پاسخ، نوع استفاده، و حتی سنگینی اجرا روی موبایل اثر میگذارد.
رایجترین ورینتها اینها هستند:
- Base
نسخه خام و عمومی مدل است؛ بیشتر برای توسعهدهندهها و کارهای فنی مناسب است (مثلاً وقتی میخواهند روی آن آموزش تکمیلی بدهند یا پرامپتنویسی سنگین انجام دهند). برای استفاده روزمره روی موبایل معمولاً بهترین گزینه نیست چون دستورپذیری و قالب پاسخدهیاش به اندازه نسخههای چت آماده نیست. - Instruct / Chat
این نسخه برای گفتگو و اجرای دستورها تنظیم شده است. معمولاً پاسخها منظمتر، کاربردیتر و با پیروی بهتر از خواسته شما تولید میشوند. برای کاربر موبایل که میخواهد سریع و ساده چت کند، این ورینت معمولاً انتخاب اصلی است.
- Coder
ورینتی است که برای کدنویسی و کارهای فنی بهینه شده؛ مثل تولید کد، تکمیل کد، توضیح کد و دیباگ. اگر استفاده شما برنامهنویسی است، Coder میتواند خروجی بهتر بدهد، ولی برای مکالمه عمومی لزوماً بهترین نیست. - Multimodal
ورینتی است که علاوه بر متن، ورودیهای دیگری مثل تصویر (و گاهی صدا) را هم میپذیرد. این مدلها معمولاً سنگینترند و منابع بیشتری میخواهند؛ به همین دلیل روی موبایل اجرای آنها محدودتر است و فقط وقتی واقعاً به تحلیل تصویر/چندوجهی نیاز دارید ارزش انتخاب دارند.
قانون طلایی انتخاب ورینت روی گوشی موبایل
برای بیشتر کاربران موبایل، انتخاب پیشفرض باید Chat/Instruct باشد، چون هم دستورپذیری بهتر دارد و هم تجربه گفتگو روانتر است. سراغ Base زمانی بروید که واقعاً قصد توسعه، آموزش تکمیلی یا کارهای فنی خاص داشته باشید. Coder فقط وقتی ارزش دارد که استفاده شما عمدتاً کدنویسی باشد Multimodal و مدلهای Thinking/Reasoning را هم فقط وقتی انتخاب کنید که دقیقاً به همان قابلیت نیاز دارید و از نظر RAM و سازگاری GPU/Vulkan مطمئن هستید؛ چون روی موبایل معمولاً سنگینتر، کندتر و پرمصرفترند.
2.4 پارامترها و اندازه مدل؟ مثلا در یک مدل 3B یعنی چه و چرا مهم است؟
مفهوم بعدی پارامتر است که معمولاً با B نشان داده میشود. وقتی میگویند 3B یعنی مدل حدود ۳ میلیارد پارامتر دارد. پارامتر را میتوان مثل ظرفیت مغز مدل دید: هرچه بیشتر، معمولاً توانایی بیشتر؛ اما همزمان نیاز به حافظه و پردازش بیشتر. مثال عملی روی موبایل: اگر گوشی شما متوسط باشد، مدلهای 1.5B تا 4B معمولاً واقعبینانهاند. اگر سراغ مدلهای سنگین تر مثلا 7B بروید ممکن است نصب شود ولی هنگام Initialize کردن یا کند میشود یا به خطای کمبود حافظه میخورد.
2.5 کوانتیز (Quantization) و کمحجمسازی مدل بدون گیج شدن
اما حتی مدل کوچک هم اگر درست انتخاب نشود ممکن است جا نشود. اینجا مفهوم کوانتیز یا Quantization وارد میشود. کوانتیز یعنی کمحجم کردن مدل با کاهش دقت ذخیره وزنها. به همین خاطر شما در کنار نام مدل، چیزهایی مثل Q3 یا Q4 میبینید. Q4 معمولاً تعادل خوبی است: هم سبکتر از حالتهای دقیقتر است، هم افت کیفیت آن معمولاً قابل قبول است. Q3 سبکتر است و روی گوشیهای ضعیفتر کمک میکند مدل بالا بیاید، اما ممکن است کیفیت جوابها کمی افت کند. مثال عملی: اگر مدل شما روی Initialize گیر میکند یا خطای حافظه میدهد، یکی از اولین راهحلها این است که به جای همان مدل با Q4، نسخه Q3 یا مدل کوچکتر را امتحان کنید.
2.6 کانتکست (Context) چیست و چرا روی سرعت و مصرف RAM اثر میگذارد؟
کانتکست (Context) یعنی «مقدار متن و اطلاعاتی که مدل میتواند همزمان در حافظه گفتوگو نگه دارد و بر اساس آن پاسخ بدهد». این کانتکست شامل پیامهای قبلی چت، متنهایی که به مدل میدهید، دستورها (پرامپت سیستم)، و حتی پاسخهایی است که خودش تولید میکند. کانتکست معمولاً با تعداد توکن سنجیده میشود؛ مثلاً وقتی میگویند کانتکست 4K یا 8K یا 32K یعنی مدل میتواند تقریباً تا همین حدود توکن را در یک جلسه گفتگو در نظر بگیرد. نکته عملی این است که کانتکست هرچه بزرگتر باشد، مدل میتواند تاریخچه طولانیتری را «یادش بماند» و روی متنهای بلندتری کار کند؛ اما در عوض مصرف RAM و فشار پردازشی بیشتر میشود و روی موبایل احتمال کندی یا خطای کمبود حافظه بالا میرود. برای استفاده معمولی روی گوشی، کانتکستهای متوسط کافیاند و بهتر است فقط وقتی واقعاً با متنهای بلند کار دارید، سراغ کانتکستهای خیلی بزرگ بروید.
2.6 توکن و سرعت پاسخ: توکن چیست و Tokens/s یعنی چه؟
بعد میرسیم به توکن. توکن واحد پردازش متن برای مدل است؛ نه دقیقاً کلمه، بلکه تکههای کوچک متن. به همین خاطر موتور بعد از هر پیام میگوید چند توکن ورودی و چند توکن خروجی مصرف شد. این عددها به شما کمک میکند بفهمید چرا مدل کند شده یا چرا پاسخ طولانی زمان برده است. مثال عملی: اگر یک پیام خیلی طولانی بدهید یا از مدل بخواهید خروجی بسیار طولانی تولید کند، توکن خروجی زیاد میشود و زمان پاسخ هم بالا میرود. همچنین یک معیار مهم دیگر Tokens per second است؛ یعنی مدل در هر ثانیه چند توکن تولید میکند. این همان سرعت واقعی تجربه کاربر است.
«توکن» به روایت تصویر و سرعت پاسخدهی (Tokens/s)
متن شما (ورودی)
"سلام، لطفاً این متن را خلاصه کن و نکات کلیدی را بگو."
(توکنساز) Tokenizer
↓
متن به تکههای کوچک تبدیل میشود (توکنها)
[سلام] [،] [لطفاً] [این] [متن] [را] [خلاصه] [کن] [و] [نکات] [کلیدی] [را] [بگو] [.]
Input Tokens (توکنهای ورودی)
Model (مدل) ↓
مدل، توکنها را یکییکی تولید میکند (نه جمله یکجا)
خروجی (تولید توکن به توکن)
[حتماً] [.] [خلاصه:] [ ... ] [نکته] [۱:] [ ... ] [نکته] [۲:] [ ... ]
Output Tokens (توکنهای خروجی)
Engine Report (گزارش موتور) ↓
Input شد 13 tokens
Output شد 80 tokens
و سرعت هم10 tokens/s
زمان تقریبی تولید پاسخ = Output Tokens ÷ Tokens/s
مثلاً: 80 ÷ 10 ≈8 ثانیه
2.7 Initialize کردن مدل یعنی چه؟ چرا گیر میکند؟
Initialize کردن یعنی مرحله «راهاندازی و آمادهسازی مدل برای اجرا». در این مرحله موتورِ اجرا قبل از اینکه شما بتوانید چت کنید، چند کار اصلی انجام میدهد: فایل مدل را میخواند، وزنهای مدل را داخل حافظه بارگذاری میکند RAM و اگر شتابدهی فعال باشد بخشی هم در VRAM یا حافظه گرافیکی، تنظیمات لازم را اعمال میکند و گاهی یکسری بهینهسازی یا آمادهسازی داخلی انجام میدهد تا مدل بتواند توکنسازی و تولید پاسخ را شروع کند. به زبان ساده، Initialize همان لحظهای است که مدل واقعاً روی گوشی سوار میشود و آماده حرف زدن میشود. اگر برنامه روی Initialize گیر کند یا خیلی طول بکشد، معمولاً یکی از این علتها پشت ماجراست: حافظه RAM کافی نیست یا فضای خالی لازم برای بارگذاری و فایلهای موقت وجود ندارد؛ شتابدهی GPU با گوشی سازگار نیست (بهخصوص در اندروید)؛ مسیر درایور/Backend مشکل دارد یاVulkan درست پشتیبانی نمیشود؛ یا اینکه مدل بیش از حد بزرگ انتخاب شده و/یا کوانتیز مناسبی ندارد مثلاً به جای Q4 یک نسخه سنگینتر گرفته شده است
2.8 هیوجینگفیس (Hugging Face)
یک پلتفرم آنلاین برای انتشار و دسترسی به مدلهای هوش مصنوعی است؛ شبیه یک مخزن مرکزی که سازندگان و کاربران، مدلهای آماده مثل Qwen، Llama، Gemma و …، نسخهها و ورینتهای مختلف آنها، و فایلهای موردنیاز اجرا را در آن قرار میدهند. به همین دلیل، بسیاری از موتورها و برنامههای اجرای لوکال، مدلها را از هیوجینگفیس معرفی میکنند یا کاربر از آنجا فایل مدل را دانلود میکند.
نکته مهم این است که «وجود یک مدل در هیوجینگفیس» به معنی «قابل اجرا بودن آن روی گوشی شما» نیست. برای اجرای موبایلی، علاوه بر نام مدل، باید به مواردی مثل اندازه مدل، ورینت Chat/Instruct یا Base)، نوع کوانتیز (مثل Q3/Q4) و مهمتر از همه فرمت فایل سازگار با موتور اجرا توجه کرد. بنابراین هیوجینگفیس را میتوان نقطه شروع پیدا کردن مدل دانست، اما انتخاب فایل درست برای موبایل نیاز به دقت در همین مشخصات دارد.
کاربردهای هیوجینگفیس برای کسی که موتور اجرای مدل را روی گوشی نصب کرده است:
- پیدا کردن مدلهای مختلف و مقایسه خانوادهها، اندازهها و ورینتها مثلاً Chat/Instruct یا Base
- دانلود فایل مدل (یا نسخههای سبکتر) برای اجرا روی گوشی، به شرط سازگار بودن فرمت با موتور
- انتخاب نسخه مناسب موبایل با توجه به اندازه مدل و کوانتیز مثل Q3/Q4 برای کاهش مصرف حافظه و جلوگیری از کرش
- مشاهده توضیحات مدل، زبانهای پشتیبانی، نمونه خروجیها و محدودیتها برای تصمیمگیری بهتر قبل از دانلود
- دسترسی به مدلهای تخصصیتر (مثلاً کدنویسی، ترجمه، یا مدلهای دامنهمحور) در کنار مدلهای عمومی
نکته مهم این است که «وجود یک مدل در هیوجینگفیس» به معنی «قابل اجرا بودن آن روی موبایل» نیست. برای اجرای موبایلی، علاوه بر نام مدل، باید به اندازه مدل، ورینت، نوع کوانتیز و مهمتر از همه فرمت فایل سازگار با موتور اجرا توجه کرد. بنابراین هیوجینگفیس را میتوان نقطه شروع پیدا کردن مدل دانست، اما انتخاب فایل درست برای موبایل نیاز به دقت در همین مشخصات دارد.
3. راهنمای عملی انتخاب و راهاندازی LLM لوکال روی گوشی موبایل
3.1 مدلهای اپنسورس معروف را از کجا پیدا کنیم؟
برای پیدا کردن مدلها، نقطه شروع معمولاً یکی از این دو مسیر است:
- Hugging Face جایی که مدلها، ورینتها، کوانتیزها و فایلهای قابل دانلود منتشر میشوند مثل Qwen، Llama، Gemma و هزاران مدل فاینتیون شده دیگر ...
نکته کلیدی
باید دقیقاً مدلی را انتخاب کنید که با موتور نصبشده روی گوشیتان سازگار باشد؛ مثلاً بعضی موتورها فقط فایلهای GGUF را اجرا میکنند و بعضی دیگر فقط مدلهای مخصوص MLC را میپذیرند. همه موتورها با همه مدلها سازگار نیستند. اگر در این زمینه مطمئن نیستید، به نکات زیر دقت کنید:
- داخل خودِ اپ/موتور: بعضی اپها داخل خودشان مرورگر مدل دارند و حتی مستقیم داخل اپ مدل را از Hugging Face پیدا و دانلود میکنند. مثلاً PocketPal AI صراحتاً «Hugging Face Integration» دارد.
3.2 اپها/موتورهای آماده روی Android و iOS چگونهاند؟
اینها چند گزینه شناختهشده و قابل اتکا هستند (برای کاربر عمومی که نمیخواهد درگیر نصبهای پیچیده شود):
Android و گوگلپلی
- PocketPal AI چت آفلاین و جستجو/دانلود GGUF از Hugging Face داخل خود اپ
- SmolChat اجرای مدلهای GGUF بهصورت کاملاً آفلاین؛ پروژهاش مبتنی بر llama.cpp است
- Google AI Edge Gallery نمایش و اجرای سناریوهای GenAI روی دستگاه، کاملاً آفلاین بعد از بارگذاری مدل
iOS و اپ استور
- MLC Chat اجرای مدلها روی آیفون/آیپد به صورت لوکال و آفلاین به VRAM/حافظه دستگاه وابسته است
- PocketPal AI (iOS) مشابه اندروید، با قابلیت جستجوی GGUF در Hugging Face
- Local LLM: MITHRIL ادعا میکند هر مدل سازگار با llama.cpp فرمت GGUF را میتواند اجرا کند و امکان استفاده از مدلهای فاینتیونشده را مطرح میکند
تفاوت مهم:
بعضی اپها بر پایه llama.cpp کار میکنند و مدلهای GGUF را اجرا میکنند؛ این مسیر معمولاً انعطاف بیشتری دارد چون خیلی از مدلهایی که در Hugging Face میبینید با همین فرمت قابل استفادهاند. در مقابل، بعضی اپها از مسیر MLC استفاده میکنند که تمرکزش بیشتر روی بهینهسازی و گاهی کامپایل مدل برای اجرای سریعتر روی موبایل است. در این میان، llama.cpp را میتوان یکی از پایهایترین و مرجعترین پروژهها برای اجرای لوکال مدلها دانست.
3.3 قبل از انتخاب مدل و موتور، چطور مشخصات سختافزار گوشی را دقیق بفهمیم؟
پیشنیازهای حداقلی قبل از شروع
قبل از دانلود موتور و مدل، چند پیشنیاز ساده را بررسی کنید تا هنگام راهاندازی به مشکل نخورید:
- فضای خالی گوشی: بهتر است حداقل 6 تا 10 گیگابایت فضای خالی داشته باشید، چون علاوه بر فایل مدل، فایلهای موقت و کش نیز ایجاد میشود.
- باتری و حرارت: اجرای مدلهای لوکال میتواند فشار پردازشی بالا ایجاد کند و گوشی داغ شود؛ برای تست اولیه بهتر است گوشی به شارژر وصل باشد.
- حالت صرفهجویی انرژی Power Saving یا Battery Saver ممکن است سرعت اجرای مدل را کم کند یا باعث ناپایداری شود؛ هنگام تست آن را خاموش کنید.
- اینترنت فقط برای دانلود: بعد از دانلود موتور و مدل، اجرای LLM آفلاین انجام میشود؛ اما برای دانلود اولیه به اینترنت نیاز دارید.
برای اینکار مراحل زیر را دنبال کنید:
نصب برنامه فهم مشخصات سخت افزاری در اندروید (پیشنهاد ابزارهای معروف در گوگل پلی)
- AIDA64 برای نمایش CPU/GPU/RAM/Storage و جزئیات سیستم
- CPU-Z برای نمایش توامان SoC، معماری، رم، سنسورها…
- Device Info HW برای نمایش جزئیات سختافزار و قطعات
نصب برنامه فهم مشخصات سخت افزاری در iOS
- تنظیمات خود iOS برای فهم ظرفیت کلی کافی است، و اگر بنچمارک بخواهند: Geekbench برای دیدن سطح CPU/GPU
اما هر کدام از اپ های نمایش دهنده مشخصات سخت افزاری گوشی دقیقاً چه چیزهایی را باید یادداشت کنند؟
- RAM کل دستگاه مثلاً 6GB / 8GB / 12GB
- فضای خالی Storage برای ذخیره سازی فایل مدلهای زبانی در گوشی شما
- مدل چیپ گوشی شما (Snapdragon / MediaTek / Exynos / Apple A/M)
- GPU و مهمتر از همه وضعیت Vulkan در گوشی های اندرویدی
- نسخه اندروید iOS
چرا GPU/Vulkan اینقدر مهم است؟
روی موبایل، شتابدهی GPU معمولاً از مسیرهایی مثل Vulkan انجام میشود. نتیجه:
- اگر Vulkanدرایور/سازگاری خوب باشد ← Tokens/s بالاتر، تجربه روانتر
- اگر ناسازگار باشد ← گیر کردن روی Initialize، کرش، یا “Model not properly loaded”
قاعده حرفهای: همیشه یک پلن B داشته باشید
یعنی موتور/اپی انتخاب کنید که بتوانید GPU را خاموش کنید و روی CPU-only اجرا بگیرید (کندتر ولی پایدارتر). این دقیقاً همان تستی است که در عیبیابی هم نجاتدهنده است.
چکلیست سریع قبل از دانلود مدل
قبل از اینکه چند گیگابایت مدل دانلود کنید، این چند مورد را چک کنید تا وقت و اینترنتتان هدر نرود:
- موتور شما چه فرمتی را پشتیبانی میکند؟ GGUF یا MLC یا فرمتهای دیگر (اگر فرمت اشتباه باشد مدل اصلاً لود نمیشود).
- ورینت درست را انتخاب کردهاید؟ برای استفاده عمومی روی موبایل معمولاً Chat/Instruct بهتر از Base است.
- اندازه مدل با RAM گوشی شما میخواند؟طبق جدول انتخاب سریع که در زیر لیست شده است
- کوانتیز مناسب را انتخاب کردهاید؟ Q4 انتخاب پیشفرض پیشنهادی است؛ اگر خطا/کمبود حافظه داشتید Q3 را امتحان کنید.
- کانتکست را منطقی تنظیم کردهاید؟ کانتکست خیلی بالا یعنی RAM بیشتر و احتمال کندی/کرش بالاتر.
- پلن B دارید؟ مطمئن شوید موتور امکان CPU-only دارد تا اگر GPU/Vulkan ناسازگار بود بتوانید پایدار اجرا کنید.
3.4 نقشه انتخاب سریع: چه سختافزاری برای چه مدلهایی مناسب است؟
این یک راهنمای عملی (واقعگرایانه برای موبایل) است:
RAM گوشی | پیشنهاد اندازه مدل | پیشنهاد کوانتیز | نکته عملی |
4GB | 1B تا 2B | Q4 و در صورت خطا برو سراغ Q3 | برای پایداری، مدل کوچکتر را اولویت بدهید |
6GB | 2B تا 3B | Q4 | معمولاً بهترین نقطه شروع برای تجربه قابل قبول |
8GB | 3B تا 4B | Q4 | اگر چیپ/گرافیک قوی باشد، گاهی 7B Q4 هم با تنظیمات محافظهکارانه ممکن است |
12GB و بالاتر | 7B و گزینههای بالاتر | Q4 | همچنان به قدرت چیپ و سازگاری GPU/Vulkan وابسته است |
نکته مهم: فضای ذخیرهسازی فقط برای فایل مدل نیست
خیلیها فقط RAM را معیار انتخاب قرار میدهند، اما محدودیت واقعی در موبایل اغلب «فضای ذخیرهسازی» است. فایل مدل ممکن است چند گیگابایت باشد، اما علاوه بر آن، موتور معمولاً فایلهای موقت و کش هم ایجاد میکند. بنابراین اگر فضای خالی کافی نداشته باشید، ممکن است دانلود کامل نشود، یا در مرحله Initialize و بارگذاری به خطا بخورید. توصیه عملی این است که قبل از دانلود مدل، چند گیگابایت فضای اضافهتر از حجم خود مدل در نظر بگیرید.
چند نکته مهم و عملی:
- خودِ اندروید و برنامههای پسزمینه بخشی از RAM را همیشه مصرف میکنند؛ بنابراین عدد RAMی که روی کاغذ میبینید، دقیقاً همان مقدارِ قابل استفاده برای مدل نیست. در عمل بهتر است همیشه حدود ۲ تا ۳ گیگابایت را بهعنوان حاشیه امن برای سیستم و اپها کنار بگذارید تا مدل پایدارتر اجرا شود و به خطای کمبود حافظه نخورید.
بعضی موتورها و اپها این امکان را میدهند که علاوه بر مدلهای متنی، سراغ گزینههای دیگری مثل مدلهای چندوجهی (Multimodal) یا مدلهایی که حالت تفکر/استدلال گرایی (Thinking/Reasoning) دارند هم بروید. اما وجود این گزینهها به این معنی نیست که گوشی شما میتواند هر مدلی را بدون مشکل اجرا کند. موتور فقط «امکان انتخاب» را میدهد؛ توانایی واقعی اجرا را سختافزار گوشی RAM، چیپ، GPU/Vulkan، و محدودیت حرارت و باتری تعیین میکند.
برای اینکه انتخاب درستتری داشته باشید، این دستهها را به شکل ساده در نظر بگیرید:
- مدلهای متنی (Text-only)
برای گفتگو، تولید متن، خلاصهسازی، ترجمه، ایدهپردازی و کارهای عمومی. اینها معمولاً بهترین و منطقیترین انتخاب برای موبایل هستند چون سبکترند و پایدارتر اجرا میشوند.
- مدلهای چندوجهی (Multimodal)
برای زمانی است که میخواهید مدل «تصویر را هم بفهمد» (مثلاً عکس را توضیح بدهد، متن داخل تصویر را تحلیل کند، یا درباره یک نمودار نظر بدهد). این مدلها معمولاً سنگینترند، به حافظه و توان پردازشی بیشتری نیاز دارند و روی موبایل بیشتر در حد استفادههای محدود و سبک توصیه میشوند، نه اجرای دائمی و طولانی.
مدلهای استدلالیThinking (Reasoning)
برای کارهایی مثل حل مسئله مرحلهبهمرحله، تحلیل منطقی عمیقتر، یا مسائل چندمرحلهای. این مدلها معمولاً پاسخهای دقیقتری میدهند اما در عوض توکن بیشتری تولید میکنند، کندتر میشوند و فشار بیشتری به دستگاه میآورند. روی موبایل، استفاده از آنها بهتر است کوتاه، هدفمند و در کارهای خاص باشد.
جمعبندی:
گوشی معمولاً بهترین بستر برای مدلهای متنی سبک است. اگر نیاز شما بیشتر «گفتگو و متن» است، مدلهای Text-only با اندازه کوچک و کوانتیز مناسب مثل Q4 هم سریعترند و هم کمتر کرش میکنند. مدلهای Multimodal یا Thinking را فقط وقتی سراغشان بروید که واقعاً به همان قابلیت خاص نیاز دارید و از نظر سختافزاری مطمئن هستید؛ وگرنه تجربه شما روی موبایل معمولاً کند، پرخطا و همراه با داغی و مصرف باتری بالا خواهد بود.
4. دستورالعمل حرفهای و گامبهگام انتخاب موتور و مدل
نمای کلی سریع:
مسیر استاندارد نصب و تست اولیه / اگر میخواهید سریع و کمریسک جلو بروید، این مسیر را دقیقاً همین ترتیب انجام دهید:
- یک موتور/اپ معتبر نصب کنید که امکان CPU-only هم داشته باشد.
- مشخصات گوشی را با AIDA64/CPU-Z یادداشت کنید RAM، Storage، چیپ، GPU و Vulkan
- فرمت سازگار موتور را مشخص کنید GGUF یا MLC
- یک مدل Chat/Instruct کوچک انتخاب کنید مثلاً 2B یا 3B
- کوانتیز Q4 را به عنوان شروع بگیرید.
- مدل را دانلود کنید و اولین بار Initialize را انجام دهید.
- یک تست کوتاه بزنید و Tokens/s را نگاه کنید.
- اگر کرش/گیر داشت: اول CPU-only را تست کنید.
- اگر باز مشکل داشت: مدل کوچکتر یا Q3 را امتحان کنید.
- وقتی پایدار شد، یک پله مدل بزرگتر را آزمایش کنید.
نمای انتخاب و نصب حرفه ای
گام 1: مسیر خودتان را مشخص کنید
- اگر میخواهید ساده و سریع و آماده PocketPal / SmolChat / MLC Chat
- اگر میخواهید مدلهای متنوع Hugging Face و فاینتیونها را زیاد تست کنید: اپهای GGUF مثل PocketPal/SmolChat/ برخی iOSها
- اگر دنبال دموهای آماده و تجربههای چندرسانهای روی دستگاه هستید Google AI Edge Gallery
گام 2: مشخصات گوشی را با یک ابزار استخراج کنید
در اندروید نصب برنامه AIDA64 یا CPU-Z برای فهم RAM/SoC/GPU/Vulkan/Storage و این مقادیر را یادداشت کنید.
گام 3: اول «فرمت مدل» را با موتور هماهنگ کنید
- اگر اپ شما GGUF میخواهد ← دنبال فایلهای GGUF در Hugging Face باشید
- اگر اپ شما MLC میخواهد ← فقط مدلهای سازگار با MLCداخل خود اپ را بگیرید
اشتباه رایج: بهترین مدل دنیا را دانلود میکنند ولی فرمتش به موتور نمیخورد.
گام 4: از کوچک و پایدار شروع کنید، بعد بزرگتر کنید
- انتخاب اولیه پیشنهادی: 2B یا 3B با Q4
- اگر Initialize کند/گیر کرد/کرش داد ← همان مدل با Q3 یا یک مدل کوچکتر
- وقتی پایدار شد ← یک پله بزرگتر امتحان کنید
خانوادههای معروف مدلهای زبانی (برای اجرای لوکال)
مدلهای معروف | شرکت/تیم سازنده | نسخهها و وضعیت فعلی | اندازههای رایج | ورینتها و قابلیتهای شاخص | مزیتهای مهم | وضعیت زبان فارسی |
Qwen کوئین | Alibaba / Qwen Team | سری Qwen2 و Qwen2.5 منتشر شده؛ Qwen2.5 در اندازههای متعدد ارائه شده است (Hugging Face) | 0.5B, 1.5B, 3B, 7B, 14B, 32B, 72B (Hugging Face) | Base / Instruct + مدلهای تخصصی Coder و Math؛ پشتیبانی کانتکست بلند تا 128K در برخی مدلها (Qwen) | توازن خوب کیفیت/حجم، تنوع سایز عالی برای موبایل، نسخههای قوی برای کدنویسی | فارسی: جزو زبانهای دیدهشده در آموزش Qwen2 ذکر شده و مدلها چندزبانهاند. معمولاً برای فارسی “عملاً” بهتر از خیلی مدلهای هماندازه ظاهر میشوند. (AlibabaCloud) |
Gemma جما | Google DeepMind گوگل | Gemma 1 و Gemma 2 متنی + Gemma 3 چندزبانه و چندوجهی معرفی شده است (Google DeepMind) | Gemma 1: 2B, 7B؛ Gemma 2: 2B, 9B, 27B (Google Developers Blog) | Text + نسخه های کدنویسی (CodeGemma) برای تکمیل/تولید کد (Google Developers Blog) | مدلهای کوچکِ خوشکیفیت، گزینه خوب برای اجرای لوکال | فارسی: طبق مستندات Vertex، Gemma و Gemma 2 “فقط انگلیسی” اعلام شدهاند، اما مدلهای فارسیسازیشده (Fine-tune) زیاد دارد و حتی در برخی ارزیابیهای پژوهشی روی وظایف فارسی خوب گزارش شده است . (Google Cloud Documentation) |
Llama لاما | متا Meta | Llama 3.1 (8B/70B/405B) و Llama 3.2 (1B/3B) و Vision (11B/90B) منتشر شدهاند . (Hugging Face) | 1B, 3B, 8B, 70B, 405B + Vision 11B, 90B (Hugging Face) | Text-only و Vision (تصویر→متن)؛ نسخههای Instruct برای چت | اکوسیستم بزرگ، پشتیبانی زیاد ابزارها/موتورها | فارسی: در مدلکارت Llama 3.2 زبانهای “officially supported” محدود ذکر شده و فارسی بین آنها نیست؛ در عمل ممکن است فارسی را تا حدی پاسخ دهد اما برای فارسیِ قویتر معمولاً سراغ مدلهای چندزبانهتر یا Fine-tuneهای فارسی میروند (GitHub) |
Phi فی | Microsoft مایکروسافت | خانواده Phi-3 شامل Mini (3.8B)، Small (7B)، Medium (14B) و نسخه Vision معرفی شده است. (Microsoft Azure) | 3.8B, 7B, 14B (و Vision ~4.2B) (Microsoft Azure) | تمرکز روی SLM (مدل کوچک و کارآمد)، برخی نسخهها با کانتکست بلند مثل 128K (Microsoft Azure) | عالی برای دستگاههای ضعیفتر، بهینه برای اجرا روی edge | فارسی: Phi-3 در اصل بیشتر “انگلیسیمحور” بوده، اما مدلهای اقتباسی فارسی مثل Persian-Phi منتشر شدهاند که Phi-3 Mini را به فارسی سازگار میکنند (arXiv) |
گام 5: تست GPU/Vulkan را اصولی انجام دهید
- بار اول: GPU روشن (اگر اپ اجازه میدهد)
- اگر مشکل دیدید GPU خاموش و فقط CPU-only
- اگر CPU-only پایدار بود: مشکل غالباً مسیر GPU/Vulkan است، نه خود مدل.
گام 6: تنظیمات را برای موبایل بهینه کنید
- طول کانتکست را بیجهت بالا نبرید کانتکست بالا = RAM بیشتر
- پاسخهای خیلی طولانی نخواهید (توکن خروجی زیاد = زمان بیشتر)
- معیار تجربه Tokens/s و پایداری (نه فقط “اسم بزرگ مدل”)
5. عیبیابی سریع (Quick Fix) و سلامت گوشی
5.1 دلیل کرش یا لود نشدن مدل روی بعضی گوشیها و CPU یا GPU و Vulkan؟
حالا چرا بعضی موتورها فقط CPU دارند و بعضی CPU و GPU را با هم استفاده میکنند؟ پردازش روی GPU معمولاً سریعتر است، اما روی موبایل به شدت وابسته به سازگاری سختافزار و درایورهاست. اینجا مفهوم Vulkan مهم میشود Vulkan یک رابط استاندارد برای استفاده از توان GPU است که برخی موتورهای موبایل برای شتابدهی از آن استفاده میکنند. مشکل اینجاست که همه گوشیها پشتیبانی Vulkan را یکسان ندارند؛ گاهی موتور نصب میشود اما مدل هنگام Initialize کرش میکند یا اصلاً لود نمیشود، چون مسیر GPU/Vulkan با گوشی سازگار نیست. مثال عملی: اگر با فعال بودن GPU مدل بالا نمیآید، یکی از بهترین تستها این است که در تنظیمات موتور، مسیر پردازش را روی CPU-only بگذارید. ممکن است کندتر شود، اما پایدارتر اجرا میشود و دستکم میفهمید مشکل از مسیر GPU بوده نه از خود مدل. در نهایت، باید بدانید برخی موتورهای اجرا فقط یک «لیست مدل آماده» ندارند؛ بلکه اجازه میدهند مدلهای سفارشی خودتان را هم وارد کنید و حتی امکانات پیشرفتهتر مثل اتصال به اسناد محلی، ساخت پروفایلهای کاری، یا راهاندازی جریانهای خودکار را فراهم کنند. این بخش مهم است چون مسیر شما را از یک استفاده ساده به سمت یک دستیار شخصی قابل توسعه میبرد؛ یعنی میتوانید دقیقاً مطابق کار خودتان، مدل و تنظیمات را انتخاب و پایدار کنید.
5.2 اگر راهاندازی به مشکل خورد، قبل از کارهای پیچیده این سه تست ساده را انجام دهید:
- گیر کردن روی Initialize یا زمان راهاندازی خیلی طولانی: اقدام سریع: مدل کوچکتر انتخاب کنید یا همان مدل را با Q3 بگیرید؛ کانتکست را پایینتر بیاورید؛ یکبار هم CPU-only را تست کنید.
- کرش کردن برنامه یا پیامهایی مثل Model not properly loaded بهخصوص وقتی GPU روشن است: اقدام سریع GPU را خاموش کنید و روی CPU-only اجرا بگیرید. اگر روی CPU پایدار شد، مشکل غالباً مسیر GPU/Vulkan یا درایور است، نه خود مدل.
- کندی شدید و Tokens/s پایین: اقدام سریع: مدل کوچکتر انتخاب کنید؛ خروجیهای کوتاهتر بخواهید؛ کانتکست را کاهش دهید؛ اگر GPU سازگار است شتابدهی را فعال کنید.
- جدول خطاهای رایج و راهحلها
جدول خطاهای رایج و راهحلها
نشانه/پیغام | علتهای محتمل | اقدام پیشنهادی |
گیر کردن روی Initialize | کمبود RAM، مدل بزرگ، کانتکست بالا، کوانتیز سنگین | مدل کوچکتر یا Q3، کاهش کانتکست، بستن برنامههای پسزمینه |
کرش هنگام لودInitialize | ناسازگاری GPU/Vulkan، مشکل Backend | خاموش کردن GPU و اجرای CPU-only، بهروزرسانی اپ/موتور، تست مدل سبکتر |
پیام Model not properly loaded | فرمت مدل ناسازگار، فایل ناقص، مشکل GPU | مطمئن شدن از فرمت (GGUF/MLC)، دانلود مجدد، تست CPU-only |
سرعت خیلی پایینTokens/s کم | مدل بزرگ، CPU-only، حالت صرفهجویی انرژی، دمای بالا | مدل کوچکتر، خاموش کردن Battery Saver، خنک کردن دستگاه، فعال کردن GPU در صورت سازگاری |
دانلود مدل کامل نمیشود یا خطای فضا میدهد | Storage کم، کش زیاد | آزاد کردن فضا، پاک کردن کش اپ، دانلود روی Wi-Fi پایدار |
جوابها بیکیفیت یا بیربط است | ورینت نامناسب (Base)، کوانتیز خیلی سبک، پرامپت ضعیف | انتخاب Chat/Instruct، رفتن به Q4، کوتاه و دقیق نوشتن درخواست |
فارسی ضعیف/اشتباه | مدل چندزبانه ضعیف یا انگلیسیمحور | انتخاب خانواده مناسبتر مثلاً Qwen در اندازه مشابه، و یا استفاده از فاینتیون شده های فارسی |
5.3 نکات سلامت دستگاه در اجرای LLM روی موبایل (حرارت و باتری)
اجرای مدلهای زبانی لوکال میتواند پردازش سنگین و طولانی ایجاد کند؛ نتیجهاش داغ شدن گوشی و مصرف بالای باتری است. برای اینکه تجربه پایدارتر و امنتری داشته باشید:
- تستهای اولیه را با شارژر انجام دهید و در محیط خنکتر.
- اگر گوشی داغ شد یا سرعت افت کرد، چند دقیقه توقف کنید؛ افت سرعت گاهی ناشی از کاهش فرکانس بهخاطر دماست.
- برای استفاده روزمره، مدلهای کوچکتر و پاسخهای کوتاهتر انتخاب کنید تا هم فشار کمتر شود هم باتری دوام بیشتری داشته باشد.
مهدی عرب زاده یکتا
خط مشی گذار حوزه تحول و حکمرانی دیجیتال
30 بهمن 1404
دیدگاه خود را بنویسید