Tải và chạy LLM trên Mac của bạn.

Chạy mô hình cục bộ bắt đầu từ việc tìm đúng tệp: đúng định dạng cho ứng dụng bạn dùng, kích cỡ vừa bộ nhớ của Mac, và mức lượng tử hóa vẫn giữ được chất lượng. Dưới đây là cách chọn, tải và chạy mô hình mở trên Apple Silicon.

Cập nhật

Tóm tắt nhanh

  • Mô hình mở nằm trên Hugging Face. Trên Mac, hãy tìm bản MLX (thường do mlx-community đăng) hoặc tệp GGUF cho llama.cpp, Ollama và LM Studio.
  • Bộ nhớ quyết định mô hình nào vừa: một mô hình MLX 4-bit cần khoảng 0,56 GB cho mỗi tỷ tham số, cộng thêm chỗ cho ngữ cảnh và macOS.
  • Mô hình có giới hạn truy cập cần một tài khoản Hugging Face miễn phí, giấy phép đã chấp nhận và một token.
  • Chạy chúng bằng MLX Harness, mlx-lm, LM Studio hoặc Ollama.

1Tìm mô hình ở đâu

Hugging Face lưu trữ phần lớn các mô hình có trọng số mở. Cùng một mô hình thường có nhiều bản, và định dạng quyết định ứng dụng nào chạy được:

Định dạngTrông như thế nàoChạy trong
MLXMột thư mục gồm các tệp safetensors và config.json, tên kiểu Model-4bitmlx-lm, LM Studio, MLX Harness
GGUFMột hoặc vài tệp .gguf, tên kiểu Q4_K_Mllama.cpp, Ollama, LM Studio
Trọng số gốcTệp safetensors độ chính xác đầy đủ từ nhà phát triển mô hìnhChuyển sang MLX trước, hoặc chọn một bản dựng sẵn
Bản MLX dựng sẵn của các mô hình phổ biến do tổ chức mlx-community đăng tải; mlx-lm cũng tự tạo được (mlx-lm).

Chưa biết dùng runtime nào? MLX, Ollama và llama.cpp so sánh chúng. Hoàn toàn mới với tất cả những thứ này? Hãy bắt đầu với chạy LLM trên Mac.

2Chọn kích cỡ vừa bộ nhớ

Trọng số của mô hình phải nằm vừa trong bộ nhớ và còn dư chỗ. MLX lưu một trọng số đã lượng tử hóa bằng số bit của nó cộng với một hệ số tỷ lệ và một độ lệch dùng chung cho mỗi nhóm 64 trọng số, tức thêm khoảng nửa bit cho mỗi trọng số (MLX). Vì vậy 4-bit tốn khoảng 0,56 GB cho mỗi tỷ tham số và 8-bit khoảng 1,06 GB.

Số tham số4-bit (MLX)8-bit (MLX)16-bit
3 tỷkhoảng 1,7 GBkhoảng 3,2 GB6 GB
8 tỷkhoảng 4,5 GBkhoảng 8,5 GB16 GB
14 tỷkhoảng 7,9 GBkhoảng 14,9 GB28 GB
32 tỷkhoảng 18 GBkhoảng 34 GB64 GB
70 tỷkhoảng 39 GBkhoảng 74 GB140 GB
Chỉ tính trọng số: số tham số × (số bit + 0,5) ÷ 8 với bản lượng tử hóa MLX, 2 byte mỗi tham số ở 16-bit. Ngữ cảnh của cuộc trò chuyện và macOS cần thêm chỗ.

Theo mặc định, macOS chỉ cho GPU dùng một phần bộ nhớ hợp nhất; Compare giả định khoảng ba phần tư, và README của mlx-lm chỉ cách nâng giới hạn này trên macOS 15 trở lên bằng sudo sysctl iogpu.wired_limit_mb=N (mlx-lm). Với mô hình mixture-of-experts, tổng số tham số quyết định bộ nhớ, còn số tham số hoạt động quyết định tốc độ. Compare làm phép tính này cho mọi mô hình phổ biến và mọi chip Apple, và Mac tốt nhất để chạy LLM cục bộ giải thích vì sao băng thông quyết định tốc độ.

3Lượng tử hóa: 4-bit, 8-bit và các mức khác

Lượng tử hóa lưu mỗi trọng số bằng ít bit hơn, nên mô hình chiếm ít bộ nhớ hơn và chạy nhanh hơn, đổi lại giảm đôi chút chất lượng. 4-bit là điểm khởi đầu thường gặp trên Mac. 8-bit gần với bản gốc hơn và lớn gấp đôi. Dưới 4 bit, tệp nhỏ đi nhưng câu trả lời kém đi nhanh hơn, nên chỉ thử khi không thì một mô hình lớn hơn sẽ không vừa.

  • Bản MLX ghi rõ trong tên: -4bit, -8bit, và đôi khi có bản độ chính xác hỗn hợp giữ các lớp nhạy cảm ở nhiều bit hơn.
  • Tệp GGUF dùng cách đặt tên của llama.cpp: Q4_K_M, Q5_K_M, Q8_0, v.v. Khi bạn chạy một kho GGUF trên Hugging Face trong Ollama mà không chỉ định bản nào, Ollama chọn Q4_K_M nếu có (Hugging Face).
  • Tự tạo bản MLX từ trọng số gốc: mlx_lm.convert --model mistralai/Mistral-7B-Instruct-v0.3 -q ghi ra một bản 4-bit (mlx-lm).

4Dung lượng ổ đĩa và nơi lưu mô hình

Bản tải về lớn xấp xỉ phần trọng số trong bảng trên, nên một mô hình 8B 4-bit chỉ vài gigabyte còn một mô hình 70B lên tới hàng chục gigabyte. Thử nhiều kích cỡ hoặc nhiều bản của cùng một mô hình sẽ cộng dồn rất nhanh.

mlx-lm và các công cụ Hugging Face khác giữ bản tải về trong ~/.cache/huggingface/hub; đặt HF_HOME hoặc HF_HUB_CACHE để chuyển chỗ. hf cache ls cho biết trong đó có gì và hf cache rm xóa một mô hình (Hugging Face). Ollama và LM Studio giữ mô hình trong thư mục riêng và tự quản lý.

5Mô hình có giới hạn truy cập và token Hugging Face

Một số mô hình, trong đó có Llama, bị giới hạn truy cập: bạn cần chấp nhận điều khoản của nhà phát triển trước khi tải về (Hugging Face).

  1. Đăng nhập vào một tài khoản Hugging Face miễn phí và mở trang của mô hình.
  2. Chấp nhận điều khoản bằng nút trên trang (mặc định là Agree and send request to access repo). Một số nhà phát triển duyệt yêu cầu thủ công, nên sẽ lâu hơn.
  3. Tạo một access token trong phần cài đặt Hugging Face của bạn.
  4. Đưa token cho công cụ của bạn: chạy hf auth login trong Terminal cho mlx-lm và các công cụ Hugging Face khác (Hugging Face), hoặc dán vào ô token Hugging Face của ứng dụng.

6Chạy mô hình: bốn cách

mlx-lm: MLX của Apple trong Terminal

Cài bằng pip, rồi chỉ định bất kỳ mô hình MLX nào trên Hugging Face; lần chạy đầu tiên sẽ tải mô hình về (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 phục vụ mô hình qua API kiểu OpenAI tại localhost:8080 cho các ứng dụng khác (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: ứng dụng có trình duyệt mô hình

LM Studio tìm và tải mô hình từ Hugging Face ngay trong ứng dụng, và chạy cả mô hình MLX trên Apple Silicon lẫn GGUF qua llama.cpp. Ứng dụng cần Apple Silicon và macOS 14 trở lên, và khuyến nghị bộ nhớ từ 16 GB (LM Studio).

Ollama: một lệnh

Ollama chạy mô hình từ thư viện riêng của nó, và chạy trực tiếp mọi kho GGUF trên Hugging Face, có thể kèm thẻ lượng tử hóa (Hugging Face):

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

MLX Harness: ứng dụng miễn phí của chúng tôi

MLX Harness là ứng dụng Mac miễn phí của chúng tôi, xây dựng trên vMLX: nó tìm mô hình MLX trên Hugging Face, trò chuyện, chạy công cụ và mô hình hình ảnh, và phục vụ mọi thứ qua API cục bộ. Gateway của nó cũng dùng cổng 8080, nên đừng chạy nó cùng mlx_lm.server trên cùng một cổng. Khi bạn không dùng Mac, MLX Node có thể cho MLX Network mượn máy.

7Câu hỏi

Tải LLM cho Mac ở đâu?
Từ Hugging Face. Hãy tìm bản MLX, nhiều bản do mlx-community đăng, hoặc tệp GGUF. LM Studio và Ollama có thể tìm và tải giúp bạn.
Nên tải mô hình cỡ nào?
Mô hình có trọng số nằm thoải mái trong bộ nhớ Mac: ở 4-bit khoảng 0,56 GB cho mỗi tỷ tham số, tức khoảng 4,5 GB cho mô hình 8B và 39 GB cho 70B, cộng thêm chỗ cho ngữ cảnh. Compare trên mlx.app kiểm tra giúp bạn theo đúng máy Mac của bạn.
Trên Mac nên dùng MLX hay GGUF?
Cả hai đều chạy tốt trên Apple Silicon. Bản MLX được làm cho MLX của Apple và chạy trong mlx-lm, LM Studio và MLX Harness; tệp GGUF chạy trong llama.cpp, Ollama và LM Studio.
Tôi có cần tài khoản Hugging Face không?
Không cần với mô hình công khai. Mô hình có giới hạn truy cập cần một tài khoản miễn phí, giấy phép đã chấp nhận và một access token.
Mô hình đã tải có chạy offline được không?
Có. Khi các tệp đã nằm trên Mac, mô hình chạy mà không cần internet và prompt của bạn ở lại trên Mac.

Nguồn

  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

Đọc tiếp

Tải và chạy LLM cục bộ trên Mac: hướng dẫn thực tế | MLX