Chạy các mô hình ngôn ngữ lớn (LLM) và các tác nhân AI (AI Agent) trực tiếp trên máy tính cá nhân đang trở thành xu hướng mạnh mẽ nhờ tính bảo mật cao, không phụ thuộc internet và chi phí vận hành bằng không. Bài viết này sẽ hướng dẫn bạn cách thiết lập một AI Agent lập trình đa phương thức (multimodal), cục bộ và siêu tốc trên hệ điều hành macOS.
Hệ thống sử dụng mô hình tiên tiến Gemma 4 26B-A4B (hoặc Qwen3.6 35B-A3B), kết hợp với công cụ chạy mô hình llama.cpp tối ưu hóa cho chip Apple Silicon (Metal) và kỹ thuật dự đoán đa token Multi-Token Prediction (MTP) để đạt hiệu năng vượt trội. Trợ lý lập trình chính được sử dụng là Pi, hoạt động trực tiếp ngay trong terminal của bạn.
---
Thông số kỹ thuật & Thiết bị thử nghiệm
* Thiết bị: Apple M1 Max (64 GB Unified Memory) * Hệ điều hành: macOS 15.7.7 * Mục tiêu: Một AI Agent lập trình cục bộ, phản hồi cực nhanh qua API tương thích OpenAI và hỗ trợ đầu vào đa phương thức (nhận diện hình ảnh/ảnh chụp màn hình).
---
Điểm nhấn Hiệu năng & Điểm chuẩn (Benchmarks)
#### 1. Sức mạnh của MTP Speculative Decoding (Gemma 4 26B) Kỹ thuật Multi-Token Prediction (MTP) kết hợp với một mô hình nháp (draft model) lượng tử hóa Q8 giúp tăng tốc độ tạo văn bản lên 1.24 lần mà không hề làm giảm tốc độ xử lý prompt đầu vào.
* Chỉ dùng mô hình chính (Baseline): Tốc độ tạo: 58.2 tok/s | Xử lý prompt: 298.0 tok/s * Mô hình chính + MTP Draft Q8: Tốc độ tạo: 72.2 tok/s | Xử lý prompt: 295.6 tok/s (Tăng tốc 1.24x)
#### 2. Tối ưu tham số MTP (--spec-draft-n-max) Qua thử nghiệm thực tế trên hệ thống chip Apple Silicon M1 Max, giá trị tối ưu nhất cho số lượng token dự đoán nháp là 3.
* --spec-draft-n-max 1: 68.4 tok/s * --spec-draft-n-max 3 (Tối ưu nhất): 72.2 tok/s * --spec-draft-n-max 5: 63.7 tok/s
#### 3. Sức mạnh vượt trội của llama.cpp so với MLX-LM Mặc dù thư viện MLX là giải pháp chính chủ từ Apple, nhưng công cụ llama.cpp (kết hợp Metal + MTP) lại cho hiệu năng vượt trội rõ rệt đối với cấu hình này: * llama.cpp Metal + MTP: Đạt 72.2 tok/s * MLX-LM (mlx-community 4-bit): Chỉ đạt 43.9 tok/s
---
Hướng dẫn thiết lập từng bước
#### Bước 1: Cài đặt và biên dịch llama.cpp Mở terminal và chạy các lệnh sau để cài đặt các gói phụ thuộc hệ thống và biên dịch llama.cpp tối ưu hóa cho Metal:
```bash # Cài đặt công cụ cần thiết brew install cmake git tmux [email protected]
Tải và biên dịch llama.cpp
mkdir -p ~/Developer/ML-Models/Gemma4/repos cd ~/Developer/ML-Models/Gemma4 git clone https://github.com/ggml-org/llama.cpp repos/llama.cpp cd repos/llama.cpp
cmake -B build \ -DCMAKE_BUILD_TYPE=Release \ -DGGML_METAL=ON \ -DGGML_ACCELERATE=ON
cmake --build build --config Release -j ```
#### Bước 2: Tải các tệp Mô hình từ Hugging Face Tạo môi trường Python ảo và tải mô hình Gemma 4 IT lượng tử hóa Q4, mô hình nháp MTP Q8 và bộ máy chiếu đa phương thức (multimodal projector) mmproj-BF16:
```bash cd ~/Developer/ML-Models/Gemma4 python3.11 -m venv .venv source .venv/bin/activate pip install -U huggingface_hub hf_xet
Tải các tệp mô hình
mkdir -p models/unsloth-gemma-4-26B-A4B-it-GGUF huggingface-cli download unsloth/gemma-4-26B-A4B-it-GGUF \ gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf \ mmproj-BF16.gguf \ MTP/gemma-4-26B-A4B-it-Q8_0-MTP.gguf \ --local-dir models/unsloth-gemma-4-26B-A4B-it-GGUF ```
#### Bước 3: Khởi động máy chủ API cục bộ Tạo một kịch bản lệnh start_server.sh để quản lý máy chủ chạy ẩn trong công cụ tmux:
```bash #!/usr/bin/env bash set -euo pipefail
ROOT_DIR="$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)" SESSION_NAME="gemma4-server" HOST="127.0.0.1" PORT="8080" CTX_SIZE="65536" LLAMA_SERVER="$ROOT_DIR/repos/llama.cpp/build/bin/llama-server" MODEL="$ROOT_DIR/models/unsloth-gemma-4-26B-A4B-it-GGUF/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf" DRAFT_MODEL="$ROOT_DIR/models/unsloth-gemma-4-26B-A4B-it-GGUF/MTP/gemma-4-26B-A4B-it-Q8_0-MTP.gguf" MMPROJ="$ROOT_DIR/models/unsloth-gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf" LOG_FILE="$ROOT_DIR/logs/llama-server-mtp.log"
mkdir -p "$ROOT_DIR/logs"
tmux new-session -d -s "$SESSION_NAME" -c "$ROOT_DIR" \ "$LLAMA_SERVER \ -m '$MODEL' \ --model-draft '$DRAFT_MODEL' \ --mmproj '$MMPROJ' \ --spec-type draft-mtp \ --spec-draft-n-max 3 \ -ngl 999 \ -fa on \ -c '$CTX_SIZE' \ --host '$HOST' \ --port '$PORT' \ 2>&1 | tee -a '$LOG_FILE'" ```
Cập quyền thực thi và chạy kịch bản: bash chmod +x start_server.sh ./start_server.sh
#### Bước 4: Cấu hình Tác nhân Lập trình Pi Đăng ký nhà cung cấp mô hình cục bộ bằng cách thêm đoạn mã cấu hình sau vào tệp cấu hình của Pi tại ~/.pi/agent/models.json:
json { "providers" : { "gemma4-local" : { "name" : "Gemma 4 Local", "baseUrl" : "http://127.0.0.1:8080/v1", "api" : "openai-completions", "apiKey" : "local", "authHeader" : false, "compat" : { "supportsDeveloperRole" : false, "supportsReasoningEffort" : false } } } }
Giờ đây, các lập trình viên trên macOS có thể sở hữu một tác nhân lập trình AI cục bộ vô cùng mạnh mẽ, bảo mật, có khả năng nhận diện hình ảnh và đạt tốc độ phản hồi đáng kinh ngạc lên đến 72.2 tokens/giây.