GLM 5.1 local — dựng bếp AI riêng trong một buổi chiều
Model mở mạnh nhất hiện tại chạy local được rồi. Hướng dẫn dựng trên RunPod với llama.cpp, từ zero đến agentic coding.
Bụi WireBạn có một buổi chiều rảnh không? Đủ rồi.
Mình vừa thử chạy GLM 5.1 — model mở đang dẫn đầu Intelligence Index của Artificial Analysis — trên RunPod với llama.cpp, và thành thật mà nói: lần đầu tiên mình thấy một open model cho cảm giác "ủa, sao nó viết code ngon vậy?" mà không cần gửi một dòng nào ra internet.
Bài này không phải review. Đây là hướng dẫn tay cầm tay: từ thuê GPU, build llama.cpp, đến kết nối tool cho workflow agentic coding. Kèm theo vài cái bẫy mà mình đã giẫm phải để bạn khỏi giẫm lại.
Tại sao lại "nấu tại nhà"?
Chạy model local giống như tự nấu ăn thay vì đặt GrabFood mỗi ngày. Tốn công dọn bếp ban đầu, nhưng sau đó bạn kiểm soát được nguyên liệu, khẩu phần, và quan trọng nhất — không ai biết bạn ăn gì.
Với dev team, "nguyên liệu" ở đây là code nội bộ, prompt thử nghiệm, và data nhạy cảm. Gửi mấy thứ đó qua API bên thứ ba thì... tùy policy công ty, nhưng nhiều team ở Việt Nam mình biết đang bị block bởi chính compliance nội bộ. Chạy local giải quyết gọn chuyện này.
GLM 5.1 từ Z.ai (Zhipu AI) được định vị cho ba việc: coding, reasoning, và agentic workflows. Nói cho vuông: nó sinh ra để viết code và chạy agent, không phải để chat linh tinh.
Chuẩn bị "bếp" — checklist trước khi bật lửa
Trước khi bắt tay vào, cần sẵn mấy thứ:
- GPU: H100 SXM (thuê trên RunPod hoặc tương đương). Đừng cố chạy trên RTX 4090 rồi thắc mắc sao chậm — model này cần VRAM đàng hoàng.
- Dung lượng: Container disk 100GB, volume disk 300GB. Model file nặng, cache cũng ngốn.
- Port 8910: Mở sẵn cho cả model server lẫn WebUI.
- Hugging Face token: Set biến môi trường
HF_TOKENđể pull model.
Giả sử team bạn 4 người đang làm SaaS, mỗi tháng burn vài trăm đô API cho code review và test automation. Thuê H100 on-demand trên RunPod tính theo giờ — bật khi cần, tắt khi xong. So với API bill chạy 24/7, nhiều team thấy tiết kiệm hơn rõ rệt khi workload tập trung vào giờ làm việc.
4 bước từ zero đến inference
Bước 1 — Thuê pod và mở terminal
Vào RunPod, chọn H100 SXM, template PyTorch mới nhất. Set storage như trên, expose port 8910, thêm HF_TOKEN vào environment variables. Deploy, đợi pod start, mở JupyterLab, launch terminal. Mọi thứ làm trong thư mục /workspace cho gọn.
Bước 2 — Build llama.cpp với CUDA
cd /workspace
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j$(nproc)
Bước này mất vài phút. Điểm mấu chốt: flag -DGGML_CUDA=ON bật CUDA support để tận dụng GPU. Bỏ flag này thì model chạy trên CPU — chậm đến mức bạn kịp pha hai ly cà phê rồi quay lại vẫn chưa xong.
Bước 3 — Khởi động model server
./build/bin/llama-server \
--model /workspace/models/glm-5.1.gguf \
--port 8910 \
--n-gpu-layers -1 \
--ctx-size 8192
--n-gpu-layers -1 nghĩa là offload toàn bộ layer lên GPU. --ctx-size tùy chỉnh theo use case — 8192 token đủ cho hầu hết tác vụ code review và generation.
Bước 4 — Gọi API và kết nối tool
Server lên rồi thì bạn có ngay một OpenAI-compatible API trên localhost:
curl http://localhost:8910/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.1",
"messages": [
{"role": "user", "content": "Viết hàm Python parse CSV có header"}
]
}'
Từ đây, bạn kết nối được với bất kỳ tool nào hỗ trợ OpenAI SDK — Claude Code, Continue, hay custom script. Đặt base_url trỏ về http://localhost:8910/v1 là xong.
Hai kịch bản thật từ dân Việt Nam
Kịch bản 1 — Team fintech ở TP.HCM: Họ cần AI review code trước khi merge PR nhưng compliance cấm gửi source code ra ngoài. Giải pháp: chạy GLM 5.1 local, viết GitHub Action gọi model qua internal API, output validate bằng JSON schema trước khi post comment lên PR. Code không rời server, review tự động, compliance vui. Cách tiếp cận "validator sandwich" — validate đầu vào, gọi model, validate đầu ra — giúp giảm rủi ro hallucination xuống mức chấp nhận được.
Kịch bản 2 — Freelancer ở Hà Nội: Anh bạn làm solo, nhận dự án automation cho khách hàng Nhật. Thay vì mỗi lần test prompt lại tốn token API, anh chạy GLM 5.1 trên RunPod theo giờ. Test thoải mái, iterate nhanh, bill chỉ tính khi pod bật. Xong dự án — shutdown, zero cost. Hình dung thế này: như thuê bếp nhà hàng theo buổi để R&D món mới, thay vì thuê nguyên nhà hàng cả tháng.
Bẫy mình đã giẫm (để bạn tránh)
Bẫy 1: Quên set volume disk đủ lớn. Lần đầu mình để mặc định. Model tải được nửa chừng thì... đầy disk. Pod crash, mất session, build lại từ đầu. Giống đi chợ mua đồ nấu tiệc mà mang cái túi bé tí — nhét được nửa rồi rớt hết ra đường.
Bẫy 2: Không expose port trước khi deploy. Build xong, server chạy ngon, curl thử — connection refused. Port chưa mở. Phải redeploy pod, đợi thêm 10-15 phút. Nhớ expose port 8910 trước khi nhấn Deploy.
Bẫy 3: Tin output mù quáng. Model local cũng hallucinate y như model cloud. Nếu dùng cho code review hay automation, luôn có bước validate phía sau — JSON schema, unit test, hay regex check format. Như mình đã chia sẻ trong bài về pipeline production: thiếu validator là thiếu phanh, mà xe không phanh thì sớm muộn cũng lao xuống dốc.
Open-source stack đi kèm
GLM 5.1 không sống một mình. Cả hệ sinh thái đều mở:
- llama.cpp: inference engine với CUDA support, backbone cho hầu hết local model setup hiện tại
- Ollama: nếu bạn muốn trải nghiệm đơn giản hơn — pull model một lệnh là chạy (blog đã nhắc nhiều rồi, không lặp lại)
- vLLM: cho production serving cần throughput cao hơn, batch inference tốt hơn
Mỗi tool một vị trí — giống bếp chuyên nghiệp có dao thái, dao băm, dao gọt. Dùng đúng dao đúng việc thì nấu nhanh hơn hẳn.
Một takeaway duy nhất
Chạy open model local không còn là trò chơi của mấy ông hoàng GPU nữa. Với RunPod + llama.cpp + GLM 5.1, bạn có bếp AI riêng — mở lúc nào dùng lúc đó, đóng lúc nào nghỉ lúc đó. Data không rời tay, bill không chạy ngầm.
Xong rồi — giờ thử biến tấu thêm: kết nối với editor yêu thích, viết cái GitHub Action review code tự động, hoặc đơn giản là test xem GLM 5.1 refactor code của bạn có khá hơn không. Đừng tin mình, thử đi rồi biết.
---
Bụi Wire — nghiện đọc release notes lúc 2 giờ sáng