กลับไปที่บล็อก

LLM ในเครื่องสำหรับเขียนโค้ดที่ดีที่สุด: คัดตาม VRAM 8-24 GB

4 กันยายน 2569

LLM ในเครื่องสำหรับเขียนโค้ดที่ดีที่สุดตอนนี้คือ Qwen3 Coder 30B A3B บนการ์ด 24 GB, Qwen2.5 Coder 14B แบบ Q4 บน 12–16 GB และ Qwen2.5 Coder 7B แบบ Q4 บน 8 GB ทุกตัวรันออฟไลน์ได้สมบูรณ์ เติมโค้ดและ refactor โค้ดจริงได้ และไม่มีค่าใช้จ่ายต่อ token ถ้า VRAM ของ GPU น้อยกว่าที่โมเดลต้องการ ให้ลดระดับ quant ลงหนึ่งขั้นก่อนลดขนาดโมเดล บทความนี้จับคู่โมเดลกับระดับ VRAM เทียบสองตระกูลโมเดลเขียนโค้ดที่คนถกเถียงกันจริง และปิดท้ายด้วยคำสั่งที่รันได้ ให้คุณเริ่มสร้างโค้ดในเครื่องได้ภายในราวห้านาที

ควรใช้ LLM ในเครื่องตัวไหนกับ GPU ของคุณ?

เลือกตาม VRAM ก่อน แล้วค่อยเลือกโมเดล — โมเดลจะใส่ได้เมื่อน้ำหนักพารามิเตอร์บวกกับ context พอดีกับหน่วยความจำ นี่คือรายการที่ครองแชมป์ใน benchmark ของชุมชนปี 2026 และการใช้งานจริงรายวัน:

VRAMโมเดลQuantน้ำหนักบนดิสก์ทำไมชนะในระดับนี้
8 GBQwen2.5 Coder 7B InstructQ4_K_M~4.7 GBสมดุล tokens/วินาที กับคุณภาพดีที่สุดสำหรับ autocompletion และ refactor ขนาดเล็ก
12 GBQwen2.5 Coder 14B InstructQ4_K_M~9.0 GBแก้ไขทั้งไฟล์ใน context ได้ และยัง 30+ tok/s บนการ์ดระดับ 3060
16 GBQwen3 14B หรือ gpt-oss-20bQ4_K_M~9–12 GBตรรกะดีขึ้นกับโจทย์กำกวม การ์ดระดับ 4090 ยังเร็วอยู่
24 GBQwen3 Coder 30B A3BQ4_K_M~18.6 GBMoE: พารามิเตอร์ที่ทำงานจริงต่อ token มีแค่ ~3B ความเร็วจึงยังใช้งานได้

สองกฎที่ทำให้ตารางนี้ใช้ได้จริง:

  1. เผื่อ VRAM ไว้ 1–2 GB สำหรับ KV cache โมเดล 14B แบบ Q4 บวก context 8K token จะไม่ลงตัวในงบ 10 GB — context นับรวมในยอดรวมด้วย
  2. ลด quant ก่อนลดขนาดโมเดล quant ระดับ Q5/Q4 แลกด้วยคุณภาพหายไปไม่กี่เปอร์เซ็นต์ แต่สลับจาก 14B เป็น 7B นั้นเสียมากกว่านั้นเยอะ

ต้องมี VRAM เท่าไรสำหรับ LLM เขียนโค้ดในเครื่อง?

กฎที่ตรงไปตรงมา: VRAM ที่ต้องใช้ ≈ น้ำหนักหลัง quant + 0.125 GB ต่อ context ทุก 1K token เมื่อใช้ KV cache 8-bit พูดเป็นตัวเลข:

  • 8 GB รันโมเดล 7B–8B แบบ Q4 สบาย ๆ คาดหวังคำตอบยาวระดับ autocompletion กับ context 4K–8K
  • 12 GB คือจุดหวานของ 14B แบบ Q4 — พอมีที่ให้โมเดลบวก context เขียนโค้ดระดับใช้งานจริง 8K–16K
  • 16 GB เปิดประตูสู่โมเดล dense ระดับ 20B และ Qwen3 14B กับ context ที่ยาวขึ้น
  • 24 GB รัน Qwen3 Coder 30B A3B แบบ MoE ที่ Q4 ซึ่งใกล้โมเดลเขียนโค้ดระดับคลาวด์ที่สุดเท่าที่คุณจะเป็นเจ้าบ้านเองได้

ไม่มี GPU? ทำได้ — llama.cpp รัน 7B แบบ Q4 บน CPU โน้ตบุ๊กได้จริงที่ 5–10 tok/s — แต่ถือเป็นการฝึกความอดทน ไม่ใช่เครื่องมือรายวัน ส่วนเรื่องเครื่องมือว่าควรวาง runtime ตัวไหนใต้โมเดลของคุณ การเปรียบเทียบ Ollama กับ LM Studio มีคำตอบ

Qwen3 Coder vs DeepSeek: ตัวไหนดีกว่าสำหรับเขียนโค้ด?

นี่คือคู่ที่คนถามจริง และคำตอบแยกชัดเจน:

  • Qwen3 Coder (30B A3B) ถูกสร้างมาเพื่อวงจรการแก้ไข: ทำตามธรรมเนียมรูปแบบ instruction สำหรับการเรียกเครื่องมือ ผลิต diff ที่สม่ำเสมอ และจุดตัดสินคือ ดีไซน์ MoE ทำให้มีพารามิเตอร์เปิดใช้เพียง ~3B ต่อ token การ์ด 24 GB เพียงใบเดียวจึงได้ 40–60 tok/s สำหรับการใช้แบบ IDE ความตอบสนองไวคือคุณภาพ
  • สาย DeepSeek V3/R1 เก่งการโต้แย้งในระดับสูงกว่า: การตัดสินใจเชิงสถาปัตยกรรม อัลกอริทึมเข็มขัดแน่น การให้เหตุผลหลายขั้น แต่รุ่นธงมีพารามิเตอร์ 600B+ ในเครื่องจะรันได้ก็ต่อเมื่อ quant หนัก ๆ บนหลาย GPU หรือเครื่อง Mac แบบ unified memory และมันเขียนบทความ เกี่ยวกับ โค้ดได้เร็วกว่าเขียนโค้ดเสียอีก

ทางเลือกในเครื่อง: Qwen3 Coder สำหรับงานรายวัน ส่วน DeepSeek จองไว้เฉพาะเมื่อฮาร์ดแวร์พอเลี้ยงใกล้ full precision ที่ 8–16 GB การถกเถียงนี้ไร้ความหมาย — Qwen2.5/3 Coder คือตัวที่แข็งแกร่งที่สุดเท่าที่จะใส่ลงได้

รัน LLM เขียนโค้ดที่ดีที่สุดด้วย Ollama อย่างไร?

ห้าคำสั่ง จากศูนย์สู่ API ที่รองรับ OpenAI ซึ่งเอดิเตอร์ของคุณใช้ได้:

# 1. ติดตั้ง Ollama (Linux)
curl -fsSL https://ollama.com/install.sh | sh

# 2. ดึงโมเดลที่พอดีกับระดับ VRAM (ตัวอย่างการ์ด 8 GB)
ollama pull qwen2.5-coder:7b

# 3. คุยกับมันแบบโต้ตอบ
ollama run qwen2.5-coder:7b

# 4. ใช้เป็น API ที่รองรับ OpenAI จากเครื่องมือใดก็ได้
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. ชี้เครื่องมือที่คาดหวัง OPENAI_BASE_URL มาที่มัน
export OPENAI_BASE_URL=http://localhost:11434/v1

ไม่มี API key ไม่มี rate limit ไม่มีบิลต่อ token บน Linux ตัวติดตั้งจะลงทะเบียน systemd unit ไว้ให้ ถ้า server วันใดอาการไม่ปกติ journalctl จะบอกสาเหตุ — สรุปคำสั่ง journalctl มีตัวกรองสำหรับ debug service ครบ

LLM ในเครื่องพอสำหรับงานเขียนโค้ดจริงหรือไม่?

พอสำหรับวงจรแก้ไข ไม่พอสำหรับโจทย์ยาก — และการแบ่งแบบนี้แหละคือวิธีใช้ที่ถูกต้อง โมเดลในเครื่องระดับ 14B–30B จัดการ refactor โค้ด boilerplate โครง test regex และคำสั่ง “อธิบายฟังก์ชัน legacy ตัวนี้หน่อย” ได้เร็วกว่าที่ API คลาวด์ส่วนใหญ่จะวิ่งไปกลับเสร็จ จุดที่แพ้โมเดล hosted ระดับหัวกะทิคือการให้เหตุผลยาว ๆ ข้ามหลายไฟล์ และเรื่องเล็ก ๆ แปลก ๆ ของเฟรมเวิร์ก — โมเดล 30B รู้น้อยกว่าโมเดล frontier อยู่แล้วโดยธรรมชาติ

เวิร์กโฟลว์ที่ใช้ได้จริง: ให้โมเดลในเครื่องรับงาน 90% ของการกดแป้น แล้วค่อยหันไปหาโมเดล frontier แบบ hosted เฉพาะคำถามดีไซน์ที่หนวดยาก โค้ดของคุณจะไม่หลุดออกจากเครื่องสำหรับงานประจำ ซึ่งสำคัญกับโค้ดของลูกค้า และ VRAM ที่คุณมีอยู่แล้วก็เงียบ ๆ แทนที่ subscription หนึ่งฉบับ

— mrsaynothing

— mrsaynothing

บันทึกหน้างานเรื่อง AI, Linux และ self-hosted

คุยต่อโพสต์นี้บน dev.to dev.to ↗

รับวิธีแก้ฉบับถัดไปทางอีเมล

อีเมลหนึ่งฉบับต่อหนึ่งโพสต์ แก้เสร็จแล้วไปต่อ

self-hosted · ไม่มีบุคคลที่สาม · ยกเลิกได้ในคลิกเดียว

นี่คืออะไร?

Git undo last commit: ย้อนคอมมิตโดยไม่เสียโค้ด

ถ้าอ่านแล้วชอบ — ผมสร้างงานแบบนี้เป็นอาชีพ จ้างผม