دانلود و اجرای LLM روی Mac.

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

به‌روزرسانی

به‌طور خلاصه

  • مدل‌های باز در Hugging Face هستند. روی Mac دنبال نسخه‌های MLX (اغلب از mlx-community) یا فایل‌های GGUF برای llama.cpp، Ollama و LM Studio بگردید.
  • حافظه تعیین می‌کند چه چیزی جا می‌شود: یک مدل MLX در 4 بیت حدود 0.56 GB به ازای هر میلیارد پارامتر لازم دارد، به‌علاوهٔ جا برای کانتکست و macOS.
  • مدل‌های محدود به یک حساب رایگان Hugging Face، پذیرش مجوز و یک توکن نیاز دارند.
  • با MLX Harness، mlx-lm، LM Studio یا Ollama اجرایشان کنید.

1مدل‌ها را کجا پیدا کنیم

Hugging Face میزبان بیشتر مدل‌های با وزن باز است. یک مدل معمولاً در چند نسخه عرضه می‌شود و قالب تعیین می‌کند کدام اپ می‌تواند اجرایش کند:

قالبچه شکلی استاجرا در
MLXپوشه‌ای از فایل‌های safetensors همراه config.json، با نام‌هایی مثل Model-4bitmlx-lm، LM Studio، MLX Harness
GGUFیک یا چند فایل .gguf، با نام‌هایی مثل Q4_K_Mllama.cpp، Ollama، LM Studio
وزن‌های اصلیsafetensors با دقت کامل از سازندهٔ مدلاول به MLX تبدیل کنید، یا یک نسخهٔ آماده بردارید
نسخه‌های آمادهٔ MLX از مدل‌های محبوب را سازمان mlx-community منتشر می‌کند؛ mlx-lm می‌تواند نسخهٔ خودتان را بسازد (mlx-lm).

مطمئن نیستید از کدام ران‌تایم استفاده کنید؟ MLX در برابر Ollama و llama.cpp آن‌ها را مقایسه می‌کند. تازه‌کارید؟ از اجرای LLM روی Mac شروع کنید.

2اندازه‌ای انتخاب کنید که در حافظه جا شود

وزن‌های مدل باید با فضای اضافه در حافظه جا شوند. MLX هر وزن کوانتیزه‌شده را با بیت‌هایش به‌علاوهٔ یک مقیاس و بایاس مشترک برای هر گروه 64تایی از وزن‌ها ذخیره می‌کند، یعنی حدود نیم بیت بیشتر برای هر وزن (MLX). پس 4 بیت حدود 0.56 GB به ازای هر میلیارد پارامتر هزینه دارد و 8 بیت حدود 1.06 GB.

پارامترها4 بیت (MLX)8 بیت (MLX)16 بیت
3 میلیاردحدود 1.7 GBحدود 3.2 GB6 GB
8 میلیاردحدود 4.5 GBحدود 8.5 GB16 GB
14 میلیاردحدود 7.9 GBحدود 14.9 GB28 GB
32 میلیاردحدود 18 GBحدود 34 GB64 GB
70 میلیاردحدود 39 GBحدود 74 GB140 GB
فقط وزن‌ها: پارامترها × (بیت‌ها + 0.5) ÷ 8 برای نسخه‌های کوانتیزه‌شدهٔ MLX، و 2 بایت به ازای هر پارامتر در 16 بیت. کانتکست گفت‌وگو و macOS هم جای اضافه می‌خواهند.

macOS به‌طور پیش‌فرض فقط بخشی از حافظهٔ یکپارچه را در اختیار GPU می‌گذارد؛ Compare حدود سه‌چهارم را فرض می‌کند و README مربوط به mlx-lm نشان می‌دهد چطور روی macOS 15 یا جدیدتر با sudo sysctl iogpu.wired_limit_mb=N این حد را بالا ببرید (mlx-lm). در مدل‌های mixture-of-experts، کل پارامترها حافظه را تعیین می‌کنند و پارامترهای فعال سرعت را. Compare این حساب را برای هر مدل محبوب و هر تراشهٔ Apple انجام می‌دهد و بهترین Mac برای LLM محلی توضیح می‌دهد چرا پهنای باند سرعت را تعیین می‌کند.

3کوانتیزاسیون: 4 بیت، 8 بیت و بقیه

کوانتیزاسیون هر وزن را با بیت‌های کمتری ذخیره می‌کند، پس مدل حافظهٔ کمتری می‌گیرد و سریع‌تر اجرا می‌شود، به بهای کمی افت کیفیت. 4 بیت نقطهٔ شروع معمول روی Mac است. 8 بیت به نسخهٔ اصلی نزدیک‌تر و دو برابر بزرگ‌تر است. زیر 4 بیت فایل‌ها کوچک می‌شوند اما پاسخ‌ها زودتر بدتر می‌شوند، پس فقط وقتی سراغشان بروید که مدل بزرگ‌تر جز این راه جا نشود.

  • نسخه‌های MLX آن را در نام می‌گویند: -4bit، -8bit و گاهی نسخه‌های با دقت ترکیبی که لایه‌های حساس را با بیت‌های بیشتر نگه می‌دارند.
  • فایل‌های GGUF از نام‌گذاری llama.cpp استفاده می‌کنند: Q4_K_M، Q5_K_M، Q8_0 و غیره. وقتی یک مخزن GGUF از Hugging Face را در Ollama بدون تعیین فایل اجرا کنید، اگر Q4_K_M موجود باشد همان را برمی‌دارد (Hugging Face).
  • نسخهٔ خودتان را بسازید از وزن‌های اصلی: mlx_lm.convert --model mistralai/Mistral-7B-Instruct-v0.3 -q یک نسخهٔ 4 بیتی می‌نویسد (mlx-lm).

4فضای دیسک و محل نگهداری مدل‌ها

حجم دانلود تقریباً هم‌اندازهٔ وزن‌ها در جدول بالاست، پس یک مدل 8B در 4 بیت چند گیگابایت است و یک مدل 70B ده‌ها گیگابایت. امتحان کردن چند اندازه یا نسخه از یک مدل زود روی هم جمع می‌شود.

mlx-lm و دیگر ابزارهای Hugging Face دانلودها را در ~/.cache/huggingface/hub نگه می‌دارند؛ برای جابه‌جایی آن HF_HOME یا HF_HUB_CACHE را تنظیم کنید. hf cache ls محتوا را نشان می‌دهد و hf cache rm یک مدل را حذف می‌کند (Hugging Face). Ollama و LM Studio مدل‌ها را در پوشه‌های خودشان نگه می‌دارند و خودشان مدیریتشان می‌کنند.

5مدل‌های محدود و توکن Hugging Face

برخی مدل‌ها، از جمله Llama، محدودند: پیش از دانلود باید شرایط سازنده را بپذیرید (Hugging Face).

  1. وارد یک حساب رایگان Hugging Face شوید و صفحهٔ مدل را باز کنید.
  2. شرایط را با دکمهٔ صفحه بپذیرید (به‌طور پیش‌فرض Agree and send request to access repo). برخی سازندگان درخواست‌ها را دستی تأیید می‌کنند که بیشتر طول می‌کشد.
  3. در تنظیمات Hugging Face یک access token بسازید.
  4. توکن را به ابزارهایتان بدهید: برای mlx-lm و دیگر ابزارهای Hugging Face در Terminal دستور hf auth login را اجرا کنید (Hugging Face)، یا آن را در فیلد توکن Hugging Face اپ بچسبانید.

6اجرا: چهار راه

mlx-lm: MLX اپل در Terminal

آن را با pip نصب کنید، سپس نام هر مدل MLX در Hugging Face را بدهید؛ اولین اجرا آن را دانلود می‌کند (mlx-lm).

pip install mlx-lm
mlx_lm.generate --model mlx-community/Llama-3.2-3B-Instruct-4bit --prompt "How tall is Mt Everest?"
mlx_lm.chat --model mlx-community/Llama-3.2-3B-Instruct-4bit

mlx_lm.server یک مدل را روی API به سبک OpenAI در localhost:8080 برای اپ‌های دیگر ارائه می‌کند (mlx-lm):

mlx_lm.server --model mlx-community/Llama-3.2-3B-Instruct-4bit
curl localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"messages": [{"role": "user", "content": "Say this is a test!"}]}'

LM Studio: اپی با مرورگر مدل

LM Studio مدل‌ها را داخل خود اپ از Hugging Face جست‌وجو و دانلود می‌کند و مدل‌های MLX را روی Apple Silicon و همچنین GGUF را از طریق llama.cpp اجرا می‌کند. به Apple Silicon و macOS 14 یا جدیدتر نیاز دارد و 16 GB حافظه یا بیشتر را توصیه می‌کند (LM Studio).

Ollama: یک دستور

Ollama مدل‌ها را از کتابخانهٔ خودش اجرا می‌کند و هر مخزن GGUF در Hugging Face را هم مستقیماً، در صورت نیاز با یک تگ کوانتیزاسیون (Hugging Face):

ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:IQ3_M

MLX Harness: اپ رایگان ما

MLX Harness اپ رایگان ما برای Mac است که بر پایهٔ vMLX ساخته شده: در Hugging Face مدل‌های MLX را جست‌وجو می‌کند، چت می‌کند، ابزارها و مدل‌های تصویر را اجرا می‌کند و همه‌چیز را روی یک API محلی ارائه می‌دهد. Gateway آن هم از پورت 8080 استفاده می‌کند، پس آن را هم‌زمان با mlx_lm.server روی همان پورت اجرا نکنید. وقتی از Mac استفاده نمی‌کنید، MLX Node می‌تواند آن را در اختیار MLX Network بگذارد.

7پرسش‌ها

LLM را برای Mac از کجا دانلود کنم؟
از Hugging Face. دنبال نسخه‌های MLX، که بسیاری را mlx-community منتشر می‌کند، یا فایل‌های GGUF بگردید. LM Studio و Ollama می‌توانند برایتان جست‌وجو و دانلود کنند.
مدل با چه اندازه‌ای دانلود کنم؟
مدلی که وزن‌هایش راحت در حافظهٔ Mac جا شود: در 4 بیت حدود 0.56 GB به ازای هر میلیارد پارامتر، یعنی حدود 4.5 GB برای مدل 8B و 39 GB برای 70B، به‌علاوهٔ جا برای کانتکست. Compare در mlx.app این را برای Mac شما بررسی می‌کند.
روی Mac، MLX یا GGUF؟
هر دو روی Apple Silicon خوب اجرا می‌شوند. نسخه‌های MLX برای MLX اپل ساخته شده‌اند و در mlx-lm، LM Studio و MLX Harness اجرا می‌شوند؛ فایل‌های GGUF در llama.cpp، Ollama و LM Studio.
به حساب Hugging Face نیاز دارم؟
برای مدل‌های عمومی نه. مدل‌های محدود به یک حساب رایگان، پذیرش مجوز و یک access token نیاز دارند.
می‌توانم مدل‌های دانلودشده را آفلاین اجرا کنم؟
بله. وقتی فایل‌ها روی Mac شما باشند، مدل بدون اینترنت اجرا می‌شود و پرامپت‌هایتان روی Mac می‌مانند.

منابع

  1. Hugging Facehuggingface.co
  2. mlx-communityhuggingface.co
  3. mlx-lmgithub.com
  4. MLXml-explore.github.io
  5. Hugging Facehuggingface.co
  6. Hugging Facehuggingface.co
  7. Hugging Facehuggingface.co
  8. Hugging Facehuggingface.co
  9. mlx-lmgithub.com
  10. LM Studiolmstudio.ai
  11. LM Studiolmstudio.ai
  12. Ollamaollama.com

بیشتر بخوانید

دانلود و اجرای LLM به‌صورت لوکال روی مک: راهنمای عملی | MLX