
Cách Chạy LLM Local Với Claude Code – Hướng Dẫn Cài Qwen3.5 và llama.cpp
Hướng dẫn đầy đủ từ Unsloth: cài llama.cpp, tải Qwen3.5-35B-A3B, khởi chạy llama-server và kết nối với Claude Code để dùng AI coding agent hoàn toàn offline, miễn phí.
Bạn có thể dùng Claude Code — công cụ AI coding agent của Anthropic — với LLM chạy hoàn toàn trên máy local của bạn, không cần tài khoản API, không tốn tiền gọi cloud. Hướng dẫn này dựa trực tiếp trên tài liệu chính thức của Unsloth AI và đi từng bước từ cài đặt đến chạy thực tế.
Mô hình được dùng trong bài: Qwen3.5-35B-A3B — một mô hình Mixture-of-Experts (MoE) nhỏ gọn, nhanh, phù hợp cho coding agent.

Kiến trúc: llama-server (local) → OpenAI-compatible endpoint → Claude Code agent
Kiến Trúc Tổng Quan
Toàn bộ setup hoạt động theo luồng sau:
- llama.cpp — framework mã nguồn mở để chạy LLM trên máy tính cá nhân (Mac, Linux, Windows)
- llama-server — serve model qua HTTP, expose một endpoint tương thích OpenAI API trên port 8001
- Claude Code — trỏ biến môi trường
ANTHROPIC_BASE_URLvề server local thay vì cloud Anthropic
Kết quả: Claude Code hoạt động y chang như bình thường, nhưng thực ra đang gọi model Qwen3.5 chạy trên máy bạn.
Bước 1: Chọn Model Phù Hợp
Unsloth khuyến nghị một số biến thể Qwen3.5 tuỳ theo VRAM:
| Model | VRAM cần | Tốc độ | Ghi chú |
|---|---|---|---|
| Qwen3.5-35B-A3B | ~24GB | Nhanh nhất | Khuyến nghị cho RTX 4090 |
| Qwen3.5-27B | Ít hơn | ~2x chậm hơn | Nếu không đủ VRAM cho 35B |
| Qwen3.5-9B / 4B / 2B | Rất ít | Nhanh | Cho máy yếu hơn |
💡 Nếu bạn có đủ VRAM, Qwen3-Coder-Next cũng là lựa chọn xuất sắc cho coding tasks.
Bước 2: Cài llama.cpp
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev git-all -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF \
-DGGML_CUDA=ON # Đổi thành OFF nếu không có GPU
cmake --build llama.cpp/build --config Release -j --clean-first \
--target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
macOS (Apple Silicon): Dùng
-DGGML_CUDA=OFF— Metal support được bật tự động, không cần thêm flag.
Bước 3: Download Model Qwen3.5
pip install huggingface_hub hf_transfer
hf download unsloth/Qwen3.5-35B-A3B-GGUF \
--local-dir unsloth/Qwen3.5-35B-A3B-GGUF \
--include "*UD-Q4_K_XL*"
# Dùng "*UD-Q2_K_XL*" nếu cần tiết kiệm VRAM hơn (Dynamic 2bit)
Unsloth sử dụng định lượng UD-Q4_K_XL — cân bằng tốt nhất giữa kích thước file và độ chính xác.
Bước 4: Khởi Chạy llama-server
Chạy lệnh sau trong một terminal riêng (dùng tmux hoặc mở cửa sổ mới):
./llama.cpp/llama-server \
--model unsloth/Qwen3.5-35B-A3B-GGUF/Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf \
--alias "unsloth/Qwen3.5-35B-A3B" \
--temp 0.6 \
--top-p 0.95 \
--top-k 20 \
--min-p 0.00 \
--port 8001 \
--kv-unified \
--cache-type-k q8_0 --cache-type-v q8_0 \
--flash-attn on --fit on \
--ctx-size 131072
Các tham số quan trọng:
--temp 0.6 --top-p 0.95 --top-k 20— sampling parameters theo khuyến nghị của Qwen cho thinking mode--cache-type-k q8_0 --cache-type-v q8_0— KV cache quantization, tiết kiệm VRAM. Không dùng f16 vì Qwen3.5 bị giảm accuracy với KV cache f16--fit on— tự động offload khi vượt VRAM--ctx-size 131072— context window 128K token
Muốn tắt thinking mode (có thể cải thiện tốc độ cho coding):
--chat-template-kwargs "{\"enable_thinking\": false}"
Bước 5: Kết Nối Claude Code
Cài Claude Code
npm install -g @anthropic-ai/claude-code
Cấu hình (Linux / Mac)
export ANTHROPIC_BASE_URL="http://localhost:8001"
export ANTHROPIC_API_KEY="sk-no-key-required"
Để persist qua các terminal mới, thêm vào ~/.bashrc hoặc ~/.zshrc.
Cấu hình (Windows PowerShell)
$env:ANTHROPIC_BASE_URL="http://localhost:8001"
$env:CLAUDE_CODE_ATTRIBUTION_HEADER=0
Bỏ qua màn hình đăng nhập
Nếu Claude Code vẫn yêu cầu đăng nhập lần đầu, thêm vào ~/.claude.json:
{
"hasCompletedOnboarding": true,
"primaryApiKey": "sk-dummy-key"
}
Chạy Claude Code
cd your-project-folder
claude
Để chạy không cần xác nhận từng lệnh (cẩn thận khi dùng):
claude --dangerously-skip-permissions
⚠️ Fix Lỗi: Claude Code Chạy Chậm Hơn 90%
Đây là lỗi quan trọng mà tài liệu Unsloth đặc biệt cảnh báo. Claude Code mới đây tự động chèn một Attribution Header vào mỗi request, khiến KV Cache bị vô hiệu hóa (invalidated) — dẫn đến tốc độ inference giảm đến 90%.
Giải pháp: Chỉnh ~/.claude/settings.json:
cat > ~/.claude/settings.json
Paste nội dung sau, rồi nhấn Enter và Ctrl+D để lưu:
{
"env": {
"CLAUDE_CODE_ATTRIBUTION_HEADER": "0"
}
}
⚠️ Lưu ý: Dùng
export CLAUDE_CODE_ATTRIBUTION_HEADER=0trong terminal KHÔNG có tác dụng. Phải chỉnh qua filesettings.json.
Dùng Extension VS Code / Cursor
Claude Code cũng có thể chạy trực tiếp trong editor:
- Cài extension Claude Code từ VS Code Marketplace (
Ctrl+Shift+X→ tìm "Claude Code") - Thêm
"claudeCode.disableLoginPrompt": truevàosettings.jsonđể bỏ qua login - Đảm bảo biến môi trường
ANTHROPIC_BASE_URLđã được set trước khi mở VS Code
Lời Khuyên Dùng Thực Tế
Khi nào dùng Thinking Mode?
- Thinking mode tốt cho các task phức tạp cần lý luận nhiều bước (architecture decisions, debugging khó)
- Tắt thinking (
enable_thinking: false) cho các task coding thông thường để tăng tốc độ
VRAM không đủ?
- Giảm
--ctx-sizexuống 32768 hoặc 65536 - Dùng quant nhẹ hơn:
*UD-Q2_K_XL*thay vì*UD-Q4_K_XL* - Chuyển sang Qwen3.5-9B hoặc 4B
Kiểm tra server đang chạy:
curl http://localhost:8001/v1/models
Kết Luận
Với setup llama.cpp + Qwen3.5 + Claude Code, bạn có một AI coding agent hoàn toàn local, không cần internet, không tốn phí API và hoạt động ổn định cho các dự án thực tế.
Điểm mấu chốt cần nhớ:
- Dùng
--cache-type-k q8_0 --cache-type-v q8_0, không dùng f16 KV cache với Qwen3.5 - Fix Attribution Header qua
~/.claude/settings.json, không phải quaexport - Bắt đầu với Qwen3.5-35B-A3B nếu có RTX 4090; chuyển 27B hoặc nhỏ hơn nếu không đủ VRAM
Nguồn tham khảo đầy đủ: Unsloth AI Documentation