บทความ › AI

รัน LLM บนเครื่องตัวเองด้วย Ollama คุ้มเมื่อไร และต้องมี VRAM เท่าไร

รันโมเดล AI ในเครื่องด้วย Ollama เมื่อไรคุ้ม เมื่อไรไม่คุ้ม คิด VRAM จากขนาดโมเดลกับ quantization ทีละขั้น และช่องว่างคุณภาพที่ต้องยอมรับ

เริ่มต้น อ่าน 9 นาที 22 ตุลาคม 2569

อ่านจบแล้วจะรู้
  • รันในเครื่องคุ้มเมื่อข้อมูลห้ามออกนอกเครื่อง ต้องทำงานไม่มีเน็ต หรืองานเล็กซ้ำ ๆ ปริมาณมาก ไม่ใช่เพราะคิดว่าจะถูกกว่า
  • หน่วยความจำ = น้ำหนักโมเดล (พารามิเตอร์ × bit ÷ 8) + KV cache ที่โตตาม context
  • Llama 3.1 8B แบบ q4_K_M ไฟล์ 4.9 GB บวก KV cache 512 MiB ที่ context 4K ใส่การ์ด 6 GB ได้พอดี
  • โมเดล 8B ในเครื่องสู้โมเดลใหญ่บน API ไม่ได้ในงานคิดหลายขั้น ให้วัดกับงานจริงของตัวเองก่อนย้าย

รัน LLM บนเครื่องตัวเองคือดาวน์โหลดไฟล์โมเดลมาไว้ในเครื่อง แล้วให้โปรแกรมอย่าง Ollama หรือ llama.cpp ประมวลผลบน GPU หรือ CPU ของเราเอง ข้อมูลไม่ออกนอกเครื่อง ไม่ต้องมีเน็ต ไม่มีบิลราย token แต่ต้องมีหน่วยความจำพอ และต้องยอมรับว่าคุณภาพไม่เท่าโมเดลใหญ่บน cloud บทความนี้ช่วยตัดสินว่าคุ้มไหม และคิดให้ดูว่าเครื่องต้องมี VRAM เท่าไร

ข้อเท็จจริงตรวจกับเอกสาร Ollama (รุ่นล่าสุด v0.40.8 ณ ตุลาคม 2026), หน้า model library ของ Ollama และ config.json ของ Llama 3.1 8B / Llama 3.3 70B บน Hugging Face ตัวเลขหน่วยความจำคำนวณเองจากค่าเหล่านั้น แสดงวิธีคิดไว้ทุกขั้น

คุ้มเมื่อไร ไม่คุ้มเมื่อไร

สถานการณ์ในเครื่องAPI
ข้อมูลลับห้ามออกนอกองค์กร (เอกสารลูกค้า, log ภายใน)เหมาะต้องดูสัญญาและนโยบายเก็บข้อมูล
ต้องทำงานไม่มีเน็ต (หน้างาน, โรงงาน, เครื่อง IoT)เหมาะใช้ไม่ได้
งานเล็กซ้ำ ๆ ปริมาณมาก (จัดหมวด, ดึงข้อมูลจากข้อความ)เหมาะ ถ้าโมเดลเล็กทำได้ดีพอก็ถูกมากเช่นกัน ดูตัวอย่างข้างล่าง
งานคิดหลายขั้น เขียนโค้ดยาว agentด้อยกว่าชัดเหมาะ
ทีมเล็ก ไม่มีคนดูแลเครื่องเป็นภาระเหมาะ

เหตุผลที่ดีที่สุดคือ ข้อมูลห้ามออก กับ ไม่มีเน็ต เหตุผลเรื่องเงินมักอ่อนกว่าที่คิด เพราะโมเดลเล็กบน API ราคาถูกมาก

หน่วยความจำ ส่วนที่ 1: น้ำหนักโมเดล

โมเดลคือพารามิเตอร์จำนวนมหาศาล แต่ละตัวเก็บด้วยจำนวน bit ที่กำหนด สูตรคือ

ขนาดน้ำหนัก (byte) = จำนวนพารามิเตอร์ × bit ต่อพารามิเตอร์ ÷ 8

quantization คือการลด bit ต่อพารามิเตอร์ จาก 16 bit เหลือ 8 หรือ 4 bit แลกความแม่นยำนิดหน่อยกับขนาดที่เล็กลงมาก

ตัวอย่าง Llama 3.1 8B (พารามิเตอร์ราว 8.03 พันล้านตัว)

  • fp16 (16 bit): 8.03 × 10⁹ × 16 ÷ 8 = 16.06 × 10⁹ byte ≈ 16 GB ตรงกับไฟล์ใน Ollama 16GB
  • q8_0 (ราว 8.5 bit รวมค่า scale): 8.03 × 10⁹ × 8.5 ÷ 8 ≈ 8.5 GB ตรงกับไฟล์ 8.5GB
  • q4_K_M: ไฟล์จริง 4.9 GB คิดย้อนกลับได้ 4.9 × 10⁹ × 8 ÷ 8.03 × 10⁹ ≈ 4.9 bit ต่อพารามิเตอร์ (ไม่ใช่ 4 พอดี เพราะบางชั้นเก็บละเอียดกว่า และต้องเก็บค่า scale ด้วย)

ขนาดไฟล์จริงจากหน้า library ของ Ollama

โมเดลq4_K_Mq8_0fp16
Llama 3.1 8B4.9 GB8.5 GB16 GB
Llama 3.3 70B43 GB75 GB141 GB

ollama pull llama3.1:8b ได้ตัว q4_K_M เป็นค่าเริ่มต้น

หน่วยความจำ ส่วนที่ 2: KV cache

ระหว่างตอบ โมเดลเก็บข้อมูลของทุก token ใน context ไว้ใน KV cache ยิ่ง context ยาว ยิ่งใช้หน่วยความจำมาก สูตร (เก็บแบบ 16 bit = 2 byte)

ต่อ token = 2 (K และ V) × จำนวนชั้น × จำนวน KV head × ขนาด head × 2 byte

จาก config.json ของ Llama 3.1 8B: 32 ชั้น, 8 KV head, head ขนาด 128

  • ต่อ token: 2 × 32 × 8 × 128 × 2 = 131,072 byte = 128 KiB
  • context 4,096 token: 4,096 × 128 KiB = 512 MiB
  • context 32,768: 4 GiB
  • context 131,072 (128K เต็ม): 16 GiB มากกว่าตัวโมเดล q4 สามเท่า

Llama 3.3 70B: 80 ชั้น, 8 KV head, head 128 → 2 × 80 × 8 × 128 × 2 = 327,680 byte = 320 KiB ต่อ token ที่ 4K context คือ 1.25 GiB

context ยาวไม่ฟรี ตั้งเท่าที่งานต้องใช้จริง KV cache ของ context เต็มอาจใหญ่กว่าตัวโมเดล

context 4Kน้ำหนัก q4 4.9 GBKV cache 512 MiBรวม 5,185 MiBอยู่ใน 6 GB ได้context 32Kน้ำหนัก q4 4.9 GBKV cache 4 GiBรวมเกิน 6 GBล้นไปใช้ CPU
Llama 3.1 8B บนการ์ด 6 GB ตัวที่ตัดสินคือความยาว context

ตัวอย่างคำนวณ: การ์ดจอ 6 GB ใส่อะไรได้

การ์ด 6 GB (6,144 MiB) กับ Llama 3.1 8B q4_K_M

  1. น้ำหนัก: 4.9 GB ≈ 4,673 MiB (4.9 × 10⁹ ÷ 1,048,576)
  2. KV cache ที่ 4K context: 512 MiB
  3. รวม: 4,673 + 512 = 5,185 MiB
  4. เหลือ: 6,144 − 5,185 = 959 MiB สำหรับ buffer ที่ใช้คำนวณและหน้าจอ

พอดีมาก ถ้าเพิ่ม context เป็น 32K (KV 4 GiB) จะไม่พอ บางชั้นจะถูกย้ายไป CPU และช้าลงมาก ส่วน 70B q4_K_M (43 GB) ต้องใช้ GPU หลายใบ หรือเครื่องที่แรมใหญ่และยอมช้า

Ollama ตั้ง context เริ่มต้นตาม VRAM: ต่ำกว่า 24 GiB ได้ 4K, 24-48 GiB ได้ 32K, ตั้งแต่ 48 GiB ได้ 256K ตัวเลขจริงดูได้จาก ollama ps

เริ่มใช้ Ollama

ติดตั้งบน Linux (macOS / Windows ดาวน์โหลดตัวติดตั้งจาก ollama.com/download)

curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl status ollama      # ตรวจว่า service ทำงาน

ดาวน์โหลดและคุย

ollama pull llama3.1:8b
ollama run llama3.1:8b            # พิมพ์ /bye เพื่อออก
ollama ps                         # ดู SIZE, PROCESSOR (GPU/CPU), CONTEXT
ollama ls                         # โมเดลที่มีในเครื่อง
ollama stop llama3.1:8b

เรียกผ่าน API ที่ port 11434 และวัดความเร็วจริงจาก eval_count กับ eval_duration (หน่วย nanosecond)

curl -s http://localhost:11434/api/generate -d '{
  "model": "llama3.1:8b",
  "prompt": "จัดหมวดข้อความนี้: ส่งของช้ามาก 3 วันยังไม่ถึง",
  "stream": false,
  "options": { "num_ctx": 4096 }
}' | jq '{tokens: .eval_count, tok_per_s: (.eval_count / .eval_duration * 1e9)}'

โค้ดเดิมที่ใช้ OpenAI client เปลี่ยนแค่ base_url="http://localhost:11434/v1/" และใส่ api_key อะไรก็ได้ (Ollama ในเครื่องไม่ตรวจ) อยากตั้ง context ทั้ง server ใช้ OLLAMA_CONTEXT_LENGTH=8192 ollama serve

ถ้าจะเปิดให้เครื่องอื่นในบ้านเรียก อย่าเปิด port ออกอินเทอร์เน็ต ใช้ VPN แบบในบทความ Tailscale

เรื่องเงิน: ถูกกว่า API จริงไหม

งานจัดหมวด 10,000 ข้อความต่อวัน ข้อความละ 500 token ตอบ 20 token

บน API (Claude Haiku 5.5, ณ ตุลาคม 2026: $0.10 / $0.50 ต่อล้าน token)

  • input: 10,000 × 500 = 5M × $0.10 = $0.50 ต่อวัน
  • output: 10,000 × 20 = 0.2M × $0.50 = $0.10 ต่อวัน
  • รวม $0.60 × 30 = $18 ต่อเดือน ถ้ารอได้ใช้ Batch API ลดครึ่ง เหลือ $9

ในเครื่อง (สมมติฐาน: เครื่องกินไฟ 300 W ขณะทำงาน ใช้เวลา 3 ชั่วโมงต่อวัน)

  • 0.3 kW × 3 ชม. = 0.9 หน่วยต่อวัน × 30 = 27 หน่วยต่อเดือน คูณค่าไฟบ้านคุณ
  • บวกค่าการ์ดจอ เวลาดูแล และเวลาที่ต้องทดสอบโมเดลใหม่

ชั่วโมงทำงานจริงขึ้นกับความเร็วเครื่อง วัดจาก tok_per_s ข้างบนก่อน ข้อสรุป: ที่ปริมาณนี้ เงินไม่ใช่เหตุผลหลัก ถ้าจะย้ายมาในเครื่อง ให้ย้ายเพราะข้อมูลหรือออฟไลน์ วิธีลดบิล API ดูได้ในบทความคุมค่า AI API

ช่องว่างคุณภาพที่ต้องยอมรับ

  • โมเดล 7-12B ทำงานแคบได้ดี จัดหมวด, สรุปสั้น, ดึงฟิลด์จากข้อความ, แปลประโยคง่าย
  • งานหลายขั้นด้อยชัด วางแผน agent, แก้โค้ดหลายไฟล์, เหตุผลยาว ๆ โมเดลใหญ่บน API ทำได้ดีกว่ามาก
  • ภาษาไทยต่างกันตามโมเดล บางตัวตอบไทยแข็งหรือสลับภาษา ทดสอบกับข้อความจริงของคุณ
  • ความรู้หยุดที่วันเทรน และไม่มี web search ในตัว ต้องป้อนข้อมูลเอง แบบ RAG

วิธีตัดสินที่ซื่อตรงที่สุด: เตรียมตัวอย่างจริง 50-100 ชิ้นพร้อมคำตอบที่ถูก รันทั้งในเครื่องและบน API แล้วนับว่าถูกกี่ชิ้น

ข้อผิดพลาดที่เจอบ่อย

  • ดูแค่ขนาดไฟล์โมเดล ลืม KV cache พอเพิ่ม context แล้วโมเดลไหลไป CPU ช้าลงหลายเท่า
  • ไม่ดู ollama ps คอลัมน์ PROCESSOR บอกว่าอยู่บน GPU 100% หรือแบ่ง CPU
  • ตั้ง context ยาวเกินงาน เพิ่ม VRAM ไปเปล่า ๆ
  • เปิด port 11434 สู่อินเทอร์เน็ต ใครก็เรียกโมเดลของคุณได้ ใช้ VPN หรือ reverse proxy ที่มีการยืนยันตัวตน
  • คิดว่าในเครื่องปลอดภัยจาก prompt injection ไม่จริง ข้อความที่ป้อนเข้าไปยังสั่งโมเดลได้เหมือนเดิม

แหล่งอ้างอิง

คำถามที่พบบ่อย

ไม่มีการ์ดจอ รันได้ไหม

ได้ Ollama รันบน CPU และแรมเครื่องได้ แต่ช้ากว่ามาก เหมาะกับโมเดลเล็กและงานที่รอได้ ดูคอลัมน์ PROCESSOR ใน ollama ps ว่าโมเดลอยู่บน GPU หรือ CPU กี่เปอร์เซ็นต์

quantization 4-bit ทำให้โมเดลโง่ลงเยอะไหม

ลดลงบ้าง ยิ่ง bit น้อยยิ่งเสียมาก q4_K_M เป็นค่าเริ่มต้นของหลายโมเดลใน Ollama เพราะเป็นจุดสมดุลที่คนใช้กันมาก ถ้าเครื่องมีที่พอ ลอง q8_0 เทียบกับงานของคุณเองแล้วตัดสิน

ใช้แทน API ในโค้ดเดิมได้ไหม

ได้ส่วนใหญ่ Ollama มี endpoint ที่เข้ากับ OpenAI API ที่ http://localhost:11434/v1/ เปลี่ยน base_url ใน client ก็เรียกได้ แต่ฟีเจอร์เฉพาะของผู้ให้บริการแต่ละเจ้าอาจไม่มี

คำสั่งและค่าตั้งในบทความทดสอบบนระบบตัวอย่าง ลองบนเครื่องทดสอบก่อนใช้กับระบบจริงเสมอ

อ่านต่อ

#AIเริ่มต้น

EP7 Claude ทำงานร่วมกับ AI ตัวอื่น โมเดลในเครื่อง และเจ้าอื่นผ่านทางเดียว

ไม่มีโมเดลไหนดีและถูกที่สุดทุกงาน วิธีให้ Claude ทำงานร่วมกับโมเดลในเครื่องและโมเดลเจ้าอื่น ผ่านชั้นกลางชั้นเดียว พร้อมโค้ด 15 บรรทัดและทีม agent 17 ตัวที่ใช้จริง

อ่าน 6 นาที
#AIเริ่มต้น

งานวิจัย METR: ใช้ AI เขียนโค้ดแล้วช้าลง 19% แต่รู้สึกว่าเร็วขึ้น 20%

การทดลองแบบสุ่มกับนักพัฒนา 16 คน 246 งาน พบว่าใช้ AI แล้วช้าลง ทั้งที่เชื่อว่าเร็วขึ้น ผลนี้บอกอะไร ไม่ได้บอกอะไร ผลรอบใหม่ปี 2026 และวิธีวัดงานตัวเองแบบไม่หลอกตัวเอง

อ่าน 7 นาที
#AIขั้นสูง

CaMeL: กัน prompt injection ด้วยการออกแบบระบบ ไม่ใช่ด้วย prompt ที่ดีกว่า

งานวิจัย CaMeL จาก Google DeepMind แยก control flow ออกจากข้อมูลที่ไม่น่าเชื่อถือ ติดป้าย capability ให้ทุกค่า แล้วตรวจ policy ตอนเรียก tool ผลบน AgentDojo และข้อจำกัด

อ่าน 8 นาที