پرش به محتوا
آموزشی

مدل باز را روی همان سیستمی که دارید اجرا کنید، حتی با گرافیک یکپارچه

قاعده‌ای که تعیین می‌کنه کدوم مدل روی دستگاه شما بالا میاد حافظه‌ست، نه برند کارت گرافیک. حساب کردن اندازه‌ی مدل، انتخاب کوانتیزیشن، تنظیم context و کارهایی که هنوز باید به مدل‌های میزبانی‌شده بسپارید.

تحریریه زاوینو۸ دقیقه مطالعه

Read this story in English

لپ‌تاپ با گرافیک یکپارچه که یک مدل زبانی محلی را در LM Studio اجرا می‌کند

مهم‌ترین عددی که تعیین می‌کنه کدوم مدل باز روی سیستم شما بالا میاد، اسم کارت گرافیک نیست؛ مقدار حافظه‌ایه که مدل باید توش جا بشه. با همین یک عدد، قبل از دانلود چند گیگابایت فایل می‌تونید بگید چی اجرا می‌شه، چی کُند اجرا می‌شه و چی اصلاً لود نمی‌شه.

جواب کوتاه: قاعده‌ی حافظه، نه قاعده‌ی برند

وزن‌های یک مدل در کوانتیزیشن ۴ بیتی حدود ۰.۶ گیگابایت به ازای هر میلیارد پارامتر جا می‌گیرن. یعنی یک مدل ۸ میلیاردی حدود ۵ گیگابایت، یک مدل ۱۴ میلیاردی حدود ۹ گیگابایت و یک مدل ۳۲ میلیاردی حدود ۲۰ گیگابایت. روی این عدد ۱۵ تا ۲۵ درصد هم برای KV cache حساب کنید، چون هر توکنی که وارد پنجره‌ی context می‌شه حافظه‌ی جداگانه می‌خواد و این مصرف با طولانی‌تر شدن گفتگو بالا می‌ره.

بعد همین عدد رو با چیزی که واقعاً دارید مقایسه کنید. با کارت مجزا سقف شما دقیقاً VRAM همون کارته و نه یک بایت بیشتر. با گرافیک یکپارچه سقف شما رم سیستمه منهای چیزی که سیستم‌عامل و مرورگر برداشتن، که روی یک دستگاه ۱۶ گیگابایتی معمولاً ۹ تا ۱۱ گیگابایت باقی می‌ذاره.

نتیجه‌اش چیزیه که خیلی‌ها دیر می‌فهمن: یک لپ‌تاپ با گرافیک یکپارچه و ۳۲ گیگابایت رم مدلی رو لود می‌کنه که یک کارت مجزای ۸ گیگابایتی اصلاً قبولش نمی‌کنه. کارت مجزا سریع‌تره، ولی حافظه‌اش سقف ثابت داره و در این بازی اول باید جا بشی، بعد سریع باشی. 💡

جایی که این معامله می‌شکنه

سرعت تولید توکن تقریباً هیچ ربطی به قدرت محاسباتی نداره و تقریباً کاملاً تابع پهنای باند حافظه‌ست، چون مدل برای ساختن هر تک توکن باید یک بار کل وزن‌های فعالش رو از حافظه بخونه. سقف تئوری سرعت رو می‌شه با یک تقسیم ساده حدس زد: پهنای باند حافظه تقسیم بر حجم مدل.

یک دستگاه با رم دوکاناله‌ی DDR4 چیزی حدود ۵۰ گیگابایت بر ثانیه پهنای باند داره. مدل ۵ گیگابایتی روی این دستگاه سقف تئوری حدود ۱۰ توکن بر ثانیه می‌گیره و در عمل به ۶ تا ۸ می‌رسه، که برای بازنویسی یک پاراگراف یا خلاصه کردن چند یادداشت کاملاً قابل تحمله. همون دستگاه با مدل ۲۰ گیگابایتی سقفش می‌افته حدود ۲.۵ توکن بر ثانیه، یعنی یک جواب یک‌پاراگرافی چند دقیقه طول می‌کشه و عملاً از دور خارجه.

کارت‌های مجزا پهنای باندی چند برابر رم سیستم دارن و دقیقاً به همین دلیل همون مدل روی کارت مجزا چند برابر سریع‌تر جواب می‌ده، نه چون باهوش‌تر شده. پس قاعده‌ی کامل این می‌شه: حافظه تعیین می‌کنه چی لود می‌شه، پهنای باند تعیین می‌کنه چی قابل استفاده‌ست.

قدم به قدم

  1. حافظه‌ی واقعی‌تان را بشمارید. روی کارت مجزا عدد VRAM ملاکه. روی گرافیک یکپارچه رم کل رو بردارید و سهم سیستم‌عامل و برنامه‌های بازتون رو کم کنید؛ همون باقی‌مانده سقف واقعی شماست.
  2. کلاس اندازه‌ی مدل را از همان عدد دربیارید. حدود ۷۰ درصد حافظه‌ی آزاد رو برای وزن‌ها کنار بذارید و بقیه رو برای context نگه دارید. عدد به‌دست‌آمده تقسیم بر ۰.۶ می‌شه بیشترین تعداد میلیارد پارامتری که می‌تونید اجرا کنید.
  3. کوانتیزیشن را انتخاب کنید. نسخه‌ی Q4_K_M پیش‌فرض عاقلانه‌ایه و تعادل حجم و کیفیت رو نگه می‌داره. اگر جا اضافه اومد برید سراغ Q5 یا Q6. زیر Q4 کیفیت به شکل محسوسی افت می‌کنه و مدل شروع می‌کنه به تکرار و اشتباه‌های ساده.
  4. یک اجراکننده نصب کنید و بک‌اند درست را انتخاب کنید. موتور اصلی همه‌شون پروژه‌ی llama.cpp است؛ ابزار LM Studio رابط گرافیکی روی همونه و سرویس Ollama نسخه‌ی خط فرمان با API محلی. بک‌اند CUDA برای NVIDIA، ROCm برای بخشی از کارت‌های AMD، Vulkan تقریباً برای همه چیز از جمله گرافیک یکپارچه، و Metal روی مک.
  5. طول context را عمداً تنظیم کنید. پیش‌فرض‌های بلند حافظه رو بی‌دلیل می‌بلعن. برای بازنویسی متن و پرسش‌های کوتاه، ۴۰۹۶ تا ۸۱۹۲ توکن کافیه و همین تفاوت بین لود شدن و نشدن مدل رو می‌سازه.
  6. چک کنید همه‌ی لایه‌ها روی GPU رفته باشن. هر اجراکننده‌ای موقع لود می‌گه چند لایه آفلود شده. اگر بخشی روی CPU مونده، سرعت چند برابر افت می‌کنه و بهتره یک پله مدل کوچک‌تر بردارید تا تحملش کنید.
  7. سرعت را اندازه بگیرید و کار را تقسیم کنید. اگر خروجی از سرعت خوندن شما جلوتره، آن کار محلی می‌مونه. اگر عقب‌تره، همون کار باید بره سراغ مدل میزبانی‌شده.

خطاهایی که می‌گیرید و معنی واقعی‌شان

پیام failed to load model یا out of memory تقریباً همیشه یک معنی داره: مجموع وزن‌ها به‌علاوه‌ی KV cache از حافظه‌ی آزاد بیشتر شده. اول طول context رو نصف کنید، بعد کوانتیزیشن رو یک پله بیارید پایین، و اگر باز نشد کلاس مدل رو عوض کنید.

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

خروجی تکراری، جمله‌های بی‌سر و ته یا حلقه‌ی بی‌پایان دو منشأ داره: کوانتیزیشن خیلی پایین، یا chat template اشتباه. دومی وقتی پیش میاد که فایل رو دستی اضافه کرده باشید و اجراکننده قالب گفتگوی همون خانواده‌ی مدل رو تشخیص نداده باشه.

روی ویندوز یک حالت خاص هم هست که خطا نمی‌ده و همین خطرناکش می‌کنه: درایور به‌جای اعلام کمبود VRAM، سرریز رو می‌ریزه توی رم سیستم. مدل بالا میاد، همه چیز سالم به نظر می‌رسه، ولی سرعت چند برابر افت می‌کنه بدون اینکه هیچ پیامی ببینید.

و در نهایت فایل اشتباه: اگر مخزن مدل به‌جای یک فایل GGUF چند فایل safetensors داشت، آن نسخه برای اجرای محلی روی این ابزارها ساخته نشده. مستندات فرمت GGUF دقیقاً همین تفاوت رو توضیح می‌ده.

حد صادقانه‌ی کار

مدلی که روی لپ‌تاپ شما اجرا می‌شه با مدل‌های بزرگ میزبانی‌شده قابل مقایسه نیست و هر کسی خلافش رو بگه چیزی می‌فروشه. بازنویسی متن، خلاصه کردن یادداشت، توضیح یک مفهوم و طوفان فکری روی مدل ۸ میلیاردی خوب جواب می‌ده. ریفکتور یک پروژه‌ی چندفایلی، تحلیل یک سند صد صفحه‌ای، زنجیره‌ی طولانی ابزار و هر کاری که به یادآوری دقیق واقعیت‌ها وابسته‌ست روی این کلاس مدل شکست می‌خوره، معمولاً هم بی‌سر و صدا و با یک جواب مطمئن ولی غلط.

همین تفاوت باعث می‌شه بنچمارک‌های تبلیغاتی گمراه‌کننده باشن، چون معمولاً روی نسخه‌ی کامل مدل گرفته شدن نه نسخه‌ی کوانتیزه‌ای که شما اجرا می‌کنید. راهنمای خواندن بنچمارک‌های مدل‌های هوش مصنوعی پیش‌نیاز واقعی این تصمیمه، و بقیه‌ی آموزش‌های ZAVINO همین منطق رو روی ابزارهای دیگه ادامه می‌دن.

برای خواننده‌ی ایرانی

دسترسی مستقیم به مخزن‌های اصلی مدل از IPهای ایران بلاک شده و چون جستجوی داخل LM Studio و دستور pull در Ollama هم از همون مسیر می‌رن، همون‌جا شکست می‌خورن. اگر دانلود درون‌برنامه‌ای کار نکرد، مشکل از نرم‌افزار نیست و عوض کردن اجراکننده حلش نمی‌کنه.

راه حل ساختاری اینه که فایل GGUF یک فایل مستقله. هر جا و به هر روشی که دانلود شد، کافیه توی پوشه‌ی مدل‌های اجراکننده کپی بشه تا شناخته بشه؛ LM Studio و llama.cpp مستقیم مسیر محلی می‌گیرن و Ollama با یک Modelfile که به همون فایل اشاره می‌کنه مدل رو می‌سازه. عملاً یعنی یک نفر یک بار دانلود می‌کنه و همون فایل روی حافظه‌ی جانبی بین چند نفر می‌چرخه، بدون حساب کاربری و بدون تکرار دانلود.

بخش پولی ماجرا هم دقیقاً همین‌جاست: مدل محلی تنها مسیریه که نه کارت بین‌المللی می‌خواد نه اشتراک ماهانه نه شماره‌ی تأیید. بعد از دانلود اولیه، هزینه‌ی هر پرسش صفره و اینترنت هم لازم نداره.

برای سخت‌افزار، قاعده‌ی خرید در بازار داخلی برعکس چیزیه که فروشنده می‌گه: کارت دست‌دوم با VRAM بیشتر برای این کار از کارت جدیدتر با VRAM کمتر بهتره، چون مدلی که جا نشه با هیچ سرعتی اجرا نمی‌شه. روی دستگاه‌های با گرافیک یکپارچه هم ارزان‌ترین ارتقا معمولاً رم سیستمه، نه کارت گرافیک، چون مستقیماً سقف اندازه‌ی مدل رو بالا می‌بره. قیمت کارت‌ها هم به فشار جهانی روی همین بازار وصله، چیزی که در برنامه‌ی ۵۰۰ میلیارد دلاری تأمین مالی انویدیا خودش رو نشون می‌ده.

یک نکته‌ی زبانی هم هست که هیچ راهنمای انگلیسی بهش اشاره نمی‌کنه: مدل‌های کوچک در فارسی محسوساً ضعیف‌تر از انگلیسی‌ان و ترتیب رتبه‌بندی‌شون در فارسی با جدول‌های انگلیسی یکی نیست. پس معیار انتخاب باید تست خودتان با سه پرامپت فارسی واقعی باشه، نه رتبه‌ی جدول. خانواده‌های بازی که آموزش چندزبانه‌ی جدی داشتن، مثل چیزی که در آزادسازی وزن‌های Qwen3.8-Max دیدیم، معمولاً نقطه‌ی شروع بهتری‌ان، و برای کار روی کد هارنس کدنویسی دیپ‌سیک نشون داد این اکوسیستم چقدر سریع قابل جایگزینیه.

اگر قرار است فقط یک بار دانلود کنید

بزرگ‌ترین مدلی رو بردارید که با کوانتیزیشن Q4_K_M در ۷۰ درصد حافظه‌ی آزادتون جا بشه، از خانواده‌ای که آموزش چندزبانه داشته. بعد سه پرامپت واقعی خودتون رو بهش بدید، نه پرامپت نمونه: یک بازنویسی فارسی، یک خلاصه از متنی که خودتون نوشتید و یک سؤال فنی که جوابش رو از قبل می‌دونید. اگر هر سه قابل قبول بود، همون فایل تا مدت‌ها کافیه.

سوال‌های پرتکرار

با ۸ گیگابایت رم چه مدلی می‌تونم اجرا کنم؟

بعد از کم کردن سهم سیستم‌عامل و مرورگر، حدود ۴ تا ۵ گیگابایت برای مدل باقی می‌مونه. یعنی کلاس ۳ تا ۴ میلیارد پارامتر در کوانتیزیشن Q4 راحت جا می‌شه و یک مدل ۷ یا ۸ میلیاردی فقط وقتی بالا میاد که همه‌ی برنامه‌های دیگه بسته باشن و طول context رو پایین نگه دارید. برای بازنویسی و خلاصه‌سازی همین کافیه.

کارت گرافیک AMD یا Intel هم برای مدل محلی کار می‌کنه؟

بله. بک‌اند Vulkan تقریباً روی هر چیزی که درایور به‌روز داشته باشه اجرا می‌شه، از گرافیک یکپارچه‌ی Radeon تا کارت‌های Intel Arc. مسیر ROCm روی بخشی از کارت‌های AMD سریع‌تره ولی سخت‌گیرتره. اگر اجراکننده گفت GPU پیدا نشد، معمولاً مشکل از درایور یا انتخاب اشتباه بک‌اند است، نه از خود سخت‌افزار.

فرق LM Studio و Ollama و llama.cpp چیه؟

پروژه‌ی llama.cpp موتور اصلیه که فرمت GGUF رو اجرا می‌کنه. ابزار LM Studio یک رابط گرافیکی روی همین موتوره با جستجو و مدیریت مدل، مناسب کسی که تازه شروع کرده. سرویس Ollama همون موتور رو پشت یک دستور خط فرمان و یک API محلی می‌ذاره، که برای وصل کردن به ادیتور یا اسکریپت بهتره. هر سه یک فایل مدل مشترک رو می‌خونن.

چرا مدل لود می‌شه ولی جوابش خیلی کنده؟

دو دلیل رایج داره. اول اینکه بخشی از لایه‌ها روی GPU جا نشده و روی CPU اجرا می‌شه، که سرعت رو چند برابر پایین میاره. دوم اینکه اصلاً پهنای باند حافظه‌ی دستگاه کمه و مدل برای هر توکن باید کل وزن‌ها رو بخونه. راه حل هر دو یکیه: مدل کوچک‌تر یا کوانتیزیشن پایین‌تر انتخاب کنید.

از ایران چطور مدل دانلود کنم وقتی دانلود درون‌برنامه‌ای کار نمی‌کنه؟

شکست دانلود درون برنامه معمولاً مسدود بودن مسیر شبکه‌ست، نه ایراد نرم‌افزار. فایل GGUF یک فایل مستقله، پس هر جا که دانلود شد کافیه توی پوشه‌ی مدل‌های اجراکننده کپی بشه تا شناخته بشه. یعنی یک نفر می‌تونه یک بار دانلود کنه و همون فایل روی حافظه‌ی جانبی بین چند نفر بچرخه، بدون هیچ حساب کاربری.

منابع

هم‌رسانی

خبرهای مرتبط

همه

خبرنامه

هر هفته مهم‌ترین اتفاق‌های هوش مصنوعی و تکنولوژی، خلاصه و بدون حاشیه، در ایمیلت.

هر وقت خواستی می‌توانی لغو عضویت کنی.