Lab⏱ อ่านประมาณ 16 นาที

ให้ AI ตรวจภาพ AI บนการ์ดจอ 16GB แล้วมันพลาดเคสสำคัญที่สุด

เรารัน Qwen3-VL-8B แบบ local บน RTX 5060 Ti 16GB เพื่อตรวจภาพ production ผลคือถูก 9 จาก 11 เคส ไม่มี false positive แต่พลาดการละเมิดจริงทั้งสองเคส

SXP LAB RECORD

ทดสอบเมื่อ
โมเดลที่ทดสอบ
Qwen3-VL-8B-Instruct-GGUF
จำนวนเคส
11 เคส
จำนวนรอบ
1 รอบ
ต้นทุน
ไม่ได้วัด
ทำซ้ำได้
ทำซ้ำได้บางส่วน

ประเด็นสำคัญที่คุณจะได้จากบทความนี้

  • โมเดล VLM ขนาด 8B รันบนการ์ดจอ 16GB ได้จริง และเหลือ VRAM พอสมควร
  • ความแม่นยำรวม 9 จาก 11 เคส ฟังดูดี แต่เป็นตัวเลขที่หลอก
  • มันไม่เคยปฏิเสธภาพที่ถูกต้องเลย แต่ก็จับการละเมิดจริงไม่ได้สักเคส
  • ด่านตรวจแบบ deterministic ที่ไม่ใช้ AI เลย ยังคงเป็นชั้นที่คุ้มที่สุด
  • สิ่งที่เราตัดสินใจทำจริงหลังจากเห็นผล
SXP PRACTICAL VERDICT
✓ จะเลือกใช้ต่อ (YES)

ใช้เป็นผู้ช่วยดูได้ อย่าใช้เป็นด่านตัดสิน โมเดลขนาด 8B รันบนการ์ดจอ 16GB ได้สบายและตอบเป็นโครงสร้างที่โปรแกรมอ่านต่อได้ 100% แต่ในงานของเรามันจับการละเมิดจริงไม่ได้เลยสักเคส เราจึงเปิดใช้มันในโหมดสังเกตการณ์ที่ไม่มีสิทธิ์ปฏิเสธงาน และปล่อยให้ด่านตรวจแบบ deterministic ที่ไม่ใช้ AI ทำหน้าที่ตัดสินต่อไป

เหมาะสำหรับ (Best For)

  • คนที่ผลิตภาพ AI จำนวนมากต่อสัปดาห์ และอยากได้ความเห็นที่สองแบบไม่เสียค่า API
  • คนที่มีการ์ดจอ 16GB อยู่แล้วและอยากรู้ว่าโมเดล 8B รันไหวจริงไหม
  • คนที่ทำงานกับภาพที่เผยแพร่ไม่ได้ และต้องการให้ทุกอย่างอยู่ในเครื่อง

ไม่เหมาะสำหรับ (Not For)

  • คนที่อยากได้ระบบตรวจอัตโนมัติแล้วเลิกดูภาพเอง งานนี้บอกชัดว่ายังไม่ถึงจุดนั้น
  • คนที่อยากให้ AI ตัดสินว่าภาพสวยหรือตรงคาแรกเตอร์ไหม ซึ่งเป็นคนละเรื่องกันและโมเดลไม่มีอำนาจตอบ
  • คนที่การ์ดจอต่ำกว่า 10GB ซึ่งต้องลด quantization ลงไปอีกและผลอาจต่างจากนี้

คำตัดสินก่อน

ใช้เป็นผู้ช่วยดูได้ อย่าใช้เป็นด่านตัดสิน

เรารัน Qwen3-VL-8B แบบ local บนการ์ดจอ RTX 5060 Ti 16GB เพื่อตรวจว่าภาพที่ระบบเราสร้างขึ้นละเมิดข้อจำกัดที่เขียนไว้ใน prompt หรือไม่ ผลรวมคือตอบตรงกับคำตัดสินของคน 9 จาก 11 เคส และไม่เคยปฏิเสธภาพที่ถูกต้องเลยสักครั้ง

ตัวเลขนั้นดูดี แต่มันหลอก เพราะ 2 เคสที่มันพลาด คือ 2 เคสเดียวที่เป็นการละเมิดจริง

พูดอีกอย่างคือ ในชุดทดสอบนี้ มันปล่อยผ่านทุกอย่าง และการปล่อยผ่านทุกอย่างก็ทำให้ได้คะแนน 9/11 โดยอัตโนมัติ

เราจึงเปิดใช้งานมันในโหมดสังเกตการณ์ที่ไม่มีสิทธิ์ปฏิเสธหรือสั่งสร้างภาพใหม่ และปล่อยให้ด่านตรวจแบบ deterministic ที่ไม่ใช้ AI เลย ทำหน้าที่ตัดสินต่อไป

ทำไมเราถึงทดสอบเรื่องนี้

เราผลิตภาพประกอบด้วย AI เป็นชุด ๆ และทุกชุดต้องมีคนดูก่อนใช้ ปัญหาคือเวลาที่หมดไปกับการดูภาพส่วนใหญ่ไม่ได้หมดไปกับการตัดสินใจเรื่องรสนิยม แต่หมดไปกับการไล่เช็กว่า “ภาพนี้ทำผิดกติกาที่เราเขียนไว้ใน prompt เองหรือเปล่า”

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

คำถามของงานนี้จึงแคบมาก และตั้งใจให้แคบ คือ โมเดลที่รันในเครื่องตัวเอง แทนคนในขั้นตอนไล่เช็กกติกาได้หรือยัง ไม่ใช่ “โมเดลนี้เก่งแค่ไหน”

เราทดสอบอะไรบ้าง

เราใช้ Qwen3-VL-8B-Instruct เวอร์ชัน GGUF ที่ผู้พัฒนาปล่อยเอง quantize แบบ Q8_0 รันด้วย llama.cpp บนวินโดวส์ ยิงทุกอย่างเข้า endpoint ในเครื่อง ไม่มีภาพออกจากเครื่องแม้แต่ภาพเดียว

เหตุผลที่เลือก Q8_0 แทนที่จะรัน BF16 เต็ม ๆ คือคำนวณคร่าว ๆ แล้วโมเดลขนาดนี้ต้องการหน่วยความจำเกิน 16GB ตั้งแต่ยังไม่นับ projector และ context ส่วน Q8_0 ลงได้พอดีและยังเหลือที่ว่าง

quantization คืออะไร — คือการลดความละเอียดของตัวเลขในโมเดลลง เพื่อให้ใช้หน่วยความจำน้อยลงและรันเร็วขึ้น แลกกับคุณภาพที่ลดลงเล็กน้อย Q8_0 คือระดับที่ยังละเอียดพอสมควร ส่วน Q4 จะเล็กลงอีกเท่าตัวแต่เสียคุณภาพมากกว่า

ชุดทดสอบคือภาพจากงาน production จริงของเรา 11 ภาพ ที่มีคำตัดสินของคนบันทึกไว้แล้วก่อนหน้านี้ แบ่งเป็นภาพที่เคยถูกปฏิเสธ 2 ภาพ และภาพที่เคยผ่าน 9 ภาพ

วิธีทดสอบ

หลักการเดียวที่เราถือคือ ถามคำถามปลายปิดทีละข้อ ไม่ถามว่าภาพนี้ดีไหม ไม่ให้คะแนน ไม่ให้ตัดสินรสนิยม

ตัวอย่างคำถามที่ถามจริง:

  • ในภาพนี้มีคนอยู่หรือไม่
  • ในภาพนี้มีตัวหนังสือที่อ่านออกหรือไม่ ถ้ามีให้ถอดความ
  • ในภาพนี้มีตัวละครกี่คน
  • ผนังในภาพนี้มีของประดับหรือไม่

เงื่อนไขที่ตั้งไว้ก่อนรันและไม่แก้ระหว่างทาง:

  1. ล็อกชุดคำถามไว้ก่อน แล้วรันครั้งเดียว ไม่แก้คำถามหลังเห็นผล เพราะถ้าแก้ ผลที่ได้จะเป็นการปรับ prompt ให้เข้ากับเฉลย ไม่ใช่การวัด
  2. บังคับให้ตอบเป็น JSON ตาม schema ที่กำหนด เพื่อให้โปรแกรมอ่านต่อได้
  3. ตรวจภาพด้วยกฎ deterministic ก่อนเสมอ คือดูว่าไฟล์เปิดได้ไหม ขนาดถูกไหม อัตราส่วนถูกไหม ภาพที่ตกด่านนี้ไม่ต้องเปลืองการเรียกโมเดลเลย
  4. อ่านคำอธิบายของโมเดลทุกครั้ง ไม่ดูแค่คำตอบ ข้อนี้สำคัญที่สุด และเป็นข้อที่เปลี่ยนข้อสรุปของงานนี้ทั้งหมด

ผลที่ได้

ตัวเลขรวม

รายการ ผล
ทำนายตรงกับคำตัดสินของคน 9 จาก 11 เคส
false positive (ปฏิเสธภาพที่จริง ๆ ผ่าน) 0
false negative (ปล่อยภาพที่จริง ๆ ต้องปฏิเสธ) 2
ตอบเป็น JSON ตาม schema สำเร็จ 13 จาก 13 ครั้ง
เวลาตอบเฉลี่ยต่อคำถาม 7.768 วินาที
VRAM สูงสุดที่ใช้ทั้งเครื่อง 11,809 MiB จาก 16,311 MiB

จำนวนครั้งที่เรียก (13) มากกว่าจำนวนภาพ (11) เพราะมีภาพสองใบที่ต้องถามสองเรื่องแยกกัน

ด่านที่ไม่ใช้ AI เลย

ก่อนเรียกโมเดล เราตรวจภาพที่รับแล้ว 22 ภาพด้วยกฎธรรมดา คือเปิดไฟล์ได้ไหม เป็น PNG ไหม ขนาดตรงที่ประกาศไว้ไหม อัตราส่วน 16:9 ไหม

ผลคือผ่าน 22 จาก 22

ฟังดูน่าเบื่อ แต่นี่คือชั้นเดียวในงานทั้งหมดนี้ที่เรามั่นใจพอจะให้มันปฏิเสธงานอัตโนมัติได้ มันไม่ใช้ GPU ไม่มีความเห็น และผิดพลาดไม่ได้

สองเคสที่มันพลาด

เคสที่หนึ่ง — รายละเอียดเกินงบที่กำหนด โมเดลดูเฉพาะสิ่งที่มันเรียกว่า “ตัวหลัก” ในภาพ แล้วข้ามตัวประกอบที่อยู่ในกรอบเล็ก ๆ ไป และบรรยายเสื้อผ้าไม่ตรงกับที่เห็นในภาพจริง

เคสที่สอง — รอยเท้าต่อเนื่อง เคสนี้น่าสนใจที่สุด โมเดลนับจำนวนตัวละครได้ถูกต้องว่ามีสามคน แต่พอถามเรื่องรอยเท้าที่ลากยาวจากซ้ายไปขวา มันตอบว่าเป็นรอยเท้าแยกกันเป็นกลุ่ม ๆ และตีความรอยขาดของกระดาษว่าเป็นการขาดตอนของรอยเท้า

ทั้งที่นี่คือการละเมิดที่ชัดที่สุดในชุดทดสอบ และคนตัดสินไว้แล้วว่าไม่ผ่าน

สิ่งที่ล้มเหลว

นอกจากสองเคสข้างบน ยังมีอีกสองอย่างที่เจอจากการอ่านคำอธิบาย ซึ่งถ้าดูแค่คำตอบว่า PASS หรือ FAIL จะไม่มีวันเห็น

ตัดสินถูกด้วยเหตุผลผิด มีภาพหนึ่งที่กติกาคือ “ห้ามมีนิ้วมือที่ละเอียดเกินไป” โมเดลรายงานออกมาเองว่าเห็นนิ้วมือแต่ละนิ้วชัดเจน แล้วสรุปว่า ผ่าน

คำตอบตรงกับเฉลย แต่เหตุผลขัดกับกติกาที่มันเพิ่งอ่านไป ถ้าเรานับเคสนี้เป็น “ถูก” แล้วเอาไปสร้างความมั่นใจ เราจะกำลังนับความบังเอิญเป็นความสามารถ

ตอบถูกโดยไม่ได้ดูสิ่งที่ถาม อีกภาพหนึ่งเราถามให้ตรวจว่าพื้นผิวกระดาษว่างเปล่าหรือมีตัวหนังสือ โมเดลตอบว่าไม่เห็นกระดาษในภาพเลย ผลลัพธ์ออกมาเป็น “ผ่าน” ซึ่งตรงกับเฉลย แต่มันไม่ได้ตรวจสิ่งที่เราถาม

นี่คือเหตุผลที่เราเขียนไว้ในบันทึกว่า การมี false positive เป็นศูนย์ ไม่ได้แปลว่าปลอดภัย ระบบที่ตอบว่าผ่านทุกครั้งก็มี false positive เป็นศูนย์เหมือนกัน

ต้นทุนและเวลา

ค่าไฟและค่าเสื่อมเราไม่ได้วัด จึงไม่รายงานเป็นตัวเลข

สิ่งที่วัดได้คือ ไม่มีค่า API เพราะรันในเครื่องทั้งหมด เวลาตอบเฉลี่ย 7.768 วินาทีต่อคำถาม ซึ่งแปลว่าภาพหนึ่งที่มีสามข้อจำกัดใช้เวลาราวครึ่งนาที

เวลาดาวน์โหลดโมเดลครั้งแรกราว 9–10 GB และหลังจากนั้นทำงานแบบ offline ได้

ข้อจำกัดของงานนี้

อ่านข้อนี้ก่อนเอาผลไปใช้

  • รันครั้งเดียว เราไม่ได้รันซ้ำเพื่อดูว่าคำตอบเปลี่ยนไหม โมเดลภาษามีความสุ่มอยู่ ผลอาจไม่เหมือนเดิมทุกครั้ง
  • มีภาพที่เคยถูกปฏิเสธจริงให้ทดสอบแค่ 2 ภาพ อีก 5 เคสที่บันทึกไว้ในอดีตไม่มีไฟล์เหลือแล้ว จึงทดสอบไม่ได้ ชุดทดสอบนี้เล็กเกินกว่าจะสรุปอะไรกว้าง ๆ
  • ทดสอบโมเดลเดียว quantization เดียว ไม่ได้เทียบกับ Q4 ไม่ได้เทียบกับ BF16 ไม่ได้เทียบกับโมเดลอื่น ผลนี้ไม่ได้บอกว่า Qwen3-VL แย่กว่าหรือดีกว่าใคร
  • ไม่ได้ทดสอบภาษาไทย คำถามทั้งหมดเป็นภาษาอังกฤษ ถ้าคุณจะให้มันอ่านตัวหนังสือไทยในภาพ ผลอาจต่างออกไปโดยสิ้นเชิงและต้องทดสอบแยก
  • นี่ไม่ใช่ benchmark ของโมเดล เป็นการวัดว่ามันแทนคนในงานเฉพาะของเราได้หรือยัง ซึ่งเป็นคำถามคนละข้อกับ “โมเดลนี้เก่งไหม”

บทเรียนที่เอาไปใช้ได้เลย

1. ความแม่นยำรวมเป็นตัวเลขที่หลอกได้ง่ายที่สุด

ถ้าชุดทดสอบของคุณมีของเสียอยู่ 2 ชิ้นจาก 11 ชิ้น ระบบที่บอกว่า “ผ่านหมด” จะได้ 82% ทันที ดูตัวเลขแยกว่าจับของเสียได้กี่ชิ้น ไม่ใช่ดูคะแนนรวม

2. อ่านเหตุผล ไม่ใช่แค่คำตอบ

เคสที่อันตรายที่สุดในงานนี้ไม่ใช่เคสที่ตอบผิด แต่คือเคสที่ตอบถูกด้วยเหตุผลที่ขัดกับตัวเอง ถ้าเราดูแค่ PASS/FAIL เราจะสรุปว่าใช้ได้ และจะเอาไปใช้จริง

3. เอากฎธรรมดามาก่อนโมเดลเสมอ

ตรวจนามสกุลไฟล์ ขนาด อัตราส่วน ให้จบก่อน ชั้นนี้ถูก เร็ว ไม่มีความเห็น และในงานนี้มันคือชั้นเดียวที่เชื่อถือได้พอจะให้ตัดสินเอง

4. แยก “ผู้ช่วยดู” ออกจาก “ผู้ตัดสิน” ให้ชัด

เราเปิดใช้โมเดลนี้จริง แต่ตั้งค่าให้รายการที่มันมีสิทธิ์ปฏิเสธงานอัตโนมัติเป็น ค่าว่าง มันเขียนความเห็นได้ แต่ปฏิเสธงานไม่ได้ ถ้าจะเลื่อนขั้นให้มันตัดสินเองเมื่อไร ต้องมีตัวอย่างการละเมิดจริงหลายเคสต่อหนึ่งประเภทก่อน

เหมาะกับใคร

เหมาะ ถ้าคุณผลิตภาพ AI เป็นจำนวนมากและอยากได้ความเห็นที่สองโดยไม่เสียค่า API ถ้าคุณมีการ์ดจอ 16GB อยู่แล้วและอยากรู้ว่าโมเดล 8B รันไหวจริงไหม หรือถ้าภาพของคุณเผยแพร่ไม่ได้และทุกอย่างต้องอยู่ในเครื่อง

ไม่เหมาะ ถ้าคุณหวังจะเลิกดูภาพเอง งานนี้บอกชัดว่ายังไม่ถึงจุดนั้น ถ้าคุณอยากให้ AI ตัดสินว่าภาพสวยหรือตรงคาแรกเตอร์ ซึ่งเป็นคนละเรื่องและเราไม่ให้มันตอบ หรือถ้าการ์ดจอคุณต่ำกว่า 10GB ซึ่งต้องลด quantization ลงอีกและผลอาจต่างจากนี้

ถ้าจะลองเอง

ทำซ้ำได้บางส่วน ส่วนที่ทำซ้ำไม่ได้คือภาพ production ของเราซึ่งเผยแพร่ไม่ได้ แต่โครงวิธีทำซ้ำได้ทั้งหมด

  1. เตรียมภาพของคุณเองที่ มีคำตัดสินของคนบันทึกไว้แล้ว ทั้งกลุ่มที่ผ่านและกลุ่มที่ไม่ผ่าน ถ้าไม่มีกลุ่มที่ไม่ผ่าน คุณจะวัดอะไรไม่ได้เลย
  2. เขียนข้อจำกัดออกมาเป็นคำถามปลายปิดทีละข้อ
  3. ล็อกคำถามไว้ แล้วรันครั้งเดียว
  4. เทียบกับคำตัดสินเดิม แล้ว อ่านคำอธิบายทุกอัน
  5. นับ false negative แยกจากคะแนนรวม

ขั้นที่ 1 คือขั้นที่คนข้ามบ่อยที่สุด และเป็นขั้นที่ทำให้ผลมีความหมาย

เราทำอะไรต่อ

เปิดใช้โมเดลในโหมดสังเกตการณ์ที่ไม่มีสิทธิ์ปฏิเสธงาน ถ้าโมเดลไม่ได้ติดตั้งอยู่ ระบบยังทำงานปกติ

ขั้นต่อไปที่วางไว้คือรันแบบเงียบ ๆ คู่ขนานไปกับการตรวจของคนในงานจริงหนึ่งชุด เก็บความเห็นของโมเดลไว้เทียบทีหลัง โดยไม่ให้มันมีผลกับงานเลย แล้วค่อยดูว่าเมื่อมีตัวอย่างการละเมิดจริงมากพอ มันจับได้กี่เปอร์เซ็นต์

บันทึกหลักฐานการทดสอบ (Empirical Evidence)

วันที่ทดสอบ: 2026-08-21

สภาพแวดล้อม: เวิร์กสเตชัน Windows · NVIDIA GeForce RTX 5060 Ti (compute capability 12.0) · VRAM 16,311 MiB · ไดรเวอร์ 610.74 · llama.cpp b10549 บิลด์ CUDA 13.3 · เรียกผ่าน endpoint ภายในเครื่องเท่านั้น ไม่มีภาพออกจากเครื่อง

เป้าหมายการทดสอบ:
  • Qwen3-VL-8B-Instruct-GGUF (Qwen (Alibaba)) — เวอร์ชัน GGUF revision f982a07559d4a2f6c8744d840bf6fccab30eea96 · quantization Q8_0
ตัววัด (Metric)ผลลัพธ์ (Value)หน่วยวิธีวัด (Method)ประเภท
เคสที่ทำนายตรงกับคำตัดสินของมนุษย์9/11เคสเทียบคำตอบกับ ground truth ที่บันทึกไว้ล่วงหน้าmeasured
false positive (ปฏิเสธภาพที่จริง ๆ ผ่าน)0เคสนับจากผลเทียบ ground truthmeasured
false negative (ปล่อยภาพที่จริง ๆ ต้องปฏิเสธ)2เคสนับจากผลเทียบ ground truthmeasured
เวลาตอบเฉลี่ยต่อคำถาม7.768วินาทีเฉลี่ยจาก 13 ครั้งเรียกmeasured
VRAM สูงสุดที่ใช้จริงทั้งเครื่องขณะรัน11809MiBอ่านจากเครื่องขณะรันmeasured
VRAM เหลือขณะใช้งานสูงสุด4502MiBคำนวณจากค่า VRAM รวมลบค่าที่ใช้derived
คำตอบที่ parse เป็น JSON ตาม schema ได้13/13ครั้งใช้ JSON-schema response format ของ llama.cppmeasured
ด่านตรวจ deterministic (ไฟล์ ขนาด อัตราส่วน) กับภาพที่รับแล้ว22/22ภาพผ่านตรวจก่อนเรียกโมเดล ไม่ใช้ GPUmeasured

ข้อจำกัดของการทดลอง (Limitations)

  • รันครั้งเดียว ไม่มีการรันซ้ำเพื่อดูความผันผวนของคำตอบ
  • มีภาพที่เคยถูกปฏิเสธจริงเหลือให้ทดสอบแค่ 2 เคส อีก 5 เคสที่บันทึกไว้ไม่มีไฟล์ต้นฉบับหลงเหลือ จึงทดสอบไม่ได้
  • ทดสอบโมเดลเดียว quantization เดียว ไม่ได้เทียบกับ Q4 หรือ BF16 หรือโมเดลอื่น
  • ไม่ได้ทดสอบภาษาไทยในงานนี้ คำถามทั้งหมดเป็นภาษาอังกฤษและเป็นคำถามเชิงวัตถุ
  • นี่ไม่ใช่ benchmark ของ Qwen3-VL โดยทั่วไป เป็นการวัดว่ามันใช้แทนคนตรวจงานของเราได้หรือยังเท่านั้น

แหล่งอ้างอิงและเอกสารปฐมภูมิ (Citations)

  1. ปฐมภูมิQwen3-VL-8B-Instruct— Hugging Face / Qwen (ตรวจสอบเมื่อ 2026-08-28)
  2. ปฐมภูมิQwen3-VL-8B-Instruct-GGUF— Hugging Face / Qwen (ตรวจสอบเมื่อ 2026-08-28)
การใช้งาน AI ในบทความนี้

AI ช่วยจัดโครงสร้างบทความและตรวจทานภาษา ตัวเลขและผลทดสอบทั้งหมดมาจากบันทึกการรันจริงของ SXP ผู้เขียนตรวจสอบทุกตัวเลขด้วยตัวเอง

สิทธา อินทชัย

ผู้ก่อตั้ง SXP