Về blog

Best Local LLM for Coding: chọn theo VRAM 8GB–24GB

4 tháng 9, 2026

Local LLM tốt nhất cho coding hiện nay là Qwen3 Coder 30B A3B trên card 24 GB, Qwen2.5 Coder 14B mức Q4 cho 12–16 GB, và Qwen2.5 Coder 7B mức Q4 cho 8 GB. Cả ba đều chạy offline hoàn toàn, autocomplete và refactor code thật, và không tốn đồng nào mỗi token. Nếu GPU của bạn có ít VRAM hơn model cần, hãy hạ một mức quant trước khi hạ size model. Bài này ghép model với từng mức VRAM, so hai dòng model coding mà cộng đồng tranh luận nhiều nhất, rồi kết thúc bằng các lệnh chạy được ngay để bạn generate code local trong khoảng năm phút.

Nên dùng local LLM nào để code trên GPU của bạn?

Chọn theo VRAM trước, model sau — model chỉ vừa khi trọng số cộng với context vừa đủ trong bộ nhớ. Đây là danh sách ngắn liên tục đứng đầu các benchmark cộng đồng và qua sử dụng thực tế năm 2026:

VRAMModelQuantTrọng số trên đĩaVì sao thắng mức này
8 GBQwen2.5 Coder 7B InstructQ4_K_M~4,7 GBTỷ lệ tokens/giây trên chất lượng tốt nhất cho autocomplete và refactor nhỏ
12 GBQwen2.5 Coder 14B InstructQ4_K_M~9,0 GBChỉnh sửa nguyên file vừa context; vẫn 30+ tok/s trên card tầm 3060
16 GBQwen3 14B hoặc gpt-oss-20bQ4_K_M~9–12 GBLập luận tốt hơn trên spec mơ hồ; card tầm 4090 giữ tốc độ cao
24 GBQwen3 Coder 30B A3BQ4_K_M~18,6 GBMoE: chỉ ~3B tham số hoạt động mỗi token nên tốc độ vẫn dùng được

Hai quy tắc khiến bảng này trụ được trong thực tế:

  1. Chừa lại 1–2 GB VRAM dự phòng cho KV cache. Một model 14B mức Q4 cộng context 8K token sẽ không vừa trong hạn mức 10 GB — context cũng tính vào tổng.
  2. Hạ một mức quant trước khi hạ size model. Quant Q5/Q4 chỉ mất vài phần trăm chất lượng; đổi 14B lấy 7B tốn nhiều hơn thế.

Bạn cần bao nhiêu VRAM cho một local coding LLM?

Kinh nghiệm trung thực: VRAM cần ≈ trọng số đã quant + 0,125 GB cho mỗi 1K token context với KV cache 8-bit. Bằng số cụ thể:

  • 8 GB chạy thoải mái model 7B–8B mức Q4. Đừng mong quá độ dài autocomplete, context 4K–8K.
  • 12 GB là điểm ngọt cho 14B mức Q4 — đủ chỗ cho model cộng một context coding thực tế 8K–16K.
  • 16 GB mở cửa các model dense tầm 20B và Qwen3 14B với context dài hơn.
  • 24 GB chạy Qwen3 Coder 30B A3B MoE mức Q4 — thứ gần nhất với một model coding chất lượng cloud mà bạn có thể tự host.

Chỉ có CPU? Vẫn chạy được — llama.cpp chạy 7B Q4 trên CPU laptop ở 5–10 tok/s không kêu than — nhưng hãy coi đó là bài luyện kiên nhẫn, không phải phương tiện di chuyển hằng ngày. Về phần cài công cụ runtime, bài so sánh Ollama vs LM Studio cho biết nên đặt công cụ local LLM nào bên dưới các model của bạn.

Qwen3 Coder và DeepSeek: chọn cái nào để code?

Đây là cặp đấu mà các thanh autocomplete thật sự hỏi tới, và câu trả lời chia ra rất gọn:

  • Qwen3 Coder (30B A3B) sinh ra cho vòng lặp chỉnh sửa: tuân thủ quy ước định dạng instruction cho tool calling, tạo diff nhất quán, và — phần quyết định — kiến trúc MoE chỉ kích hoạt ~3B tham số mỗi token, nên một card 24 GB duy nhất đạt 40–60 tok/s. Với kiểu dùng trong IDE, độ responsive chính là chất lượng.
  • Dòng DeepSeek V3/R1 lập luận ở tầng cao hơn: quyết định kiến trúc, thuật toán khó, suy luận nhiều bước. Nhưng flagship có 600B+ tham số; chạy local bạn chỉ tuần tu nó mức quant nặng trên dàn multi-GPU hoặc bộ nhớ hợp nhất của Mac, và nó viết văn về code còn nhanh hơn viết code.

Lựa chọn local: Qwen3 Coder cho daily driver, DeepSeek chỉ khi bạn có hạ tầng để host nó gần full-precision. Ở 8–16 GB, cuộc tranh luận vô nghĩa — các model Qwen2.5/3 Coder là thứ mạnh nhất mà vừa chỗ.

Chạy best local LLM for coding với Ollama thế nào?

Năm lệnh, từ con số không đến một API tương thích OpenAI mà editor của bạn dùng được:

# 1. Cài Ollama (Linux)
curl -fsSL https://ollama.com/install.sh | sh

# 2. Pull model vừa mức VRAM của bạn (ở đây là card 8 GB)
ollama pull qwen2.5-coder:7b

# 3. Trò chuyện trực tiếp
ollama run qwen2.5-coder:7b

# 4. Dùng nó như API tương thích OpenAI từ bất kỳ công cụ nào
curl http://localhost:11434/v1/chat/completions 
  -d '{
    "model": "qwen2.5-coder:7b",
    "messages": [{"role": "user", "content": "Refactor this fn to be async: add(a,b){return a+b}"}]
  }'

# 5. Trỏ các công cụ cần OPENAI_BASE_URL về đây
export OPENAI_BASE_URL=http://localhost:11434/v1

Không API key, không rate limit, không hóa đơn theo token. Trên Linux, trình cài đăng ký sẵn một unit systemd, nên khi server có biểu hiện lạ, journalctl sẽ nói cho bạn biết tại sao — cheat sheet journalctl có sẵn đúng những bộ lọc cần dùng để debug service.

Local LLM đã đủ dùng cho công việc code thật?

Có cho vòng lặp chỉnh sửa, không cho bài toán khó — và chính sự phân chia đó là cách bạn nên dùng nó. Model local 14B–30B xử lý refactor, boilerplate, khung test, regex, và “giải thích hàm legacy này” nhanh hơn đa số cloud API kịp đi-về-đến. Nơi nó thua các model hosted lớn là suy luận đa file dài dòng và những chi tiết vụn về framework — một model 30B đơn giản biết ít hơn một model frontier.

Quy trình chạy được: giữ một model local chạy suốt cho 90% số lần gõ phím, và chỉ với tới model frontier hosted cho những câu hỏi thiết kế thật sự khó nhằn. Với công việc thường ngày, code của bạn không bao giờ rời khỏi máy — điều đó có ý nghĩa với code của khách hàng — và lượng VRAM bạn đã sở hữu lặng lẽ thay thế một gói đăng ký.

— mrsaynothing

— mrsaynothing

Ghi chú thực địa về AI, Linux và self-hosting.

Thảo luận bài này trên dev.to dev.to ↗

Nhận how-to tiếp theo qua email

Một email mỗi bài viết. Sửa xong rồi đi tiếp.

self-hosted · không bên thứ ba · hủy đăng ký một cú bấm

cái này là gì?

Git Undo Last Commit: Giữ thay đổi, vẫn an toàn

Thích kiểu viết này? Tôi build như vậy để kiếm sống. thuê tôi