คืนวันที่ 4 กันยายน ผมตัดสินใจย้ายระบบแชท AI บน EA ของ Redhat จากคลาวด์มาที่โมเดลที่เราเลี้ยงไว้ในเครื่องเอง เหตุผลฟังดูดีมาก: benchmark 50 เคสที่เราเพิ่งรันจบชี้ว่าโมเดลในเครื่องตอบคุณภาพดีกว่า (7.24 ต่อ 6.02 คะแนนเฉลี่ย) และเร็วกว่าชัดเจน (p50 = 5.2 วินาที ต่อ 35.1 วินาที) แถมไม่มีค่าใช้จ่ายต่อ token แผนดูเนียนจนเกือบไม่ต้องคิด

ปัญหาคือ benchmark นั้นรันด้วย prompt ยาวราว 310 tokens แต่คำถามจริงบนแผง EA ไม่เคยสั้นขนาดนั้นเลย

ตัวเลขที่ benchmark ไม่บอก

ก่อนย้ายจริง เราไปแกะบันทึกการใช้งานจริงย้อนหลัง 7 วัน ได้ตัวเลขที่ทำให้หลังเย็นทันที:

ค่าที่วัดจากระบบจริง 7 วัน (n = 330) ตัวเลขจริง
prompt เฉลี่ยต่อคำถาม 6,928 tokens
prompt ยาวสุด 27,402 tokens
คำขอที่คาดว่าจะเกิน 85 วินาที 153 จาก 330 = 46%
ขีดรับสูงสุดของ EA 90 วินาที (คงที่)

prompt บนแผงไม่ได้ยาวเพราะคนถามยืดยาว แต่เพราะระบบต้องห่อบริบทราคา สรุปสัญญาณ และประวัติชาร์ตเข้าไปด้วยทุกครั้ง — คำถามคนอาจสั้น 5 บรรทัด แต่ที่โมเดลต้องอ่านคือ 7,000 tokens ขึ้นไปเป็นเรื่องปกติ

กฎเหล็กของ prefill

เจาะลึกที่ตัวเครื่อง Mac Mini M4 Pro เราวัด prefill (ความเร็วในการ "อ่าน" prompt) ได้ราว 115–128 tokens ต่อวินาที — หมายความว่า prompt 6,928 tokens ใช้เวลาอ่านอย่างเดียวราว 55–60 วินาที ก่อนจะเริ่มเขียนคำตอบแม้แต่ตัวอักษรแรก

ทดสอบตรง ๆ ยืนยันตรงตัว: prompt 7,044 tokens ตอบออก 153 ตัวอักษร ใช้เวลา 130.2 วินาที ทั้งที่คำถามสั้น ๆ แบบเดียวกันนี้บนคลาวด์ใช้เวลาแค่ 14.7 วินาที (7,019 tokens เข้า / 446 ตัวออก) เส้นทางเดิมไม่ใช่คอขวด คอขวดคือ prefill ของเครื่องเราเอง

สิ่งที่ benchmark 30964 ทดสอบคือความสามารถ "คิด" ของโมเดล แต่สิ่งที่ production เจอคือความสามารถ "อ่านหนังสือยาว" — สองอย่างนี้ไม่เคยวัดพร้อมกันในเว็บสำเร็จรูป

ตัดใจก่อนถึงมือลูกค้า

เราย้ายระบบจริงในคืนวันที่ 5 กันยายน 03:23 แล้วทดสอบด้วยบัญชี QC ของเราเอง ผลคือคำถามแรกจากแผง timeout ที่ 35 วินาที — เป็นความล้มเหลวเพียงแถวเดียวในบันทึกทั้งประวัติของการย้ายครั้งนี้ เพราะเราย้อนกลับทั้งเส้นทางในอีก 30 นาทีถัดมา ก่อนที่ผู้ใช้จริงรายแรกจะเจอ

หลังย้อนกลับ คำถามยืนยันจากแผงตอบกลับมา code=1 โมเดล glm-4.5 คำตอบภาษาไทยเรื่องแนวรับ–แนวต้านพร้อมเหตุผลครบ ระบบกลับมาเหมือนเดิมทุกไบต์

บทเรียนสำหรับคนใช้ AI กับงานเทรด

สามข้อที่ผมจำข้ามปีจากคืนนั้น:

  1. วัดจากบันทึกจริง ไม่ใช่จาก benchmark — benchmark ที่ใช้ prompt สั้นจะพาไปผิดทางเสมอถ้า production ของคุณใช้ prompt ยาว 20 เท่า
  2. รู้จักตัวเลข prefill ของเครื่องตัวเอง — ทุก tokens ที่ส่งเข้าไปมีราคาเป็นวินาที ไม่ใช่ฟรีแม้โมเดลจะอยู่ในเครื่อง
  3. กลับตัวได้เร็ว = ชนะครึ่งแรก — เราเก็บทางเดิมไว้คู่ขนานตลอด จึงย้อนกลับได้ใน 30 นาทีโดยผู้ใช้จริงไม่มีใครรู้ตัว

ขั้นถัดไปของเราคือ "ลดน้ำหนัก prompt" — ตัดประวัติที่ไม่จำเป็นออกจาก 7K ให้เหลือต่ำกว่า 3K ถ้าทำได้ LLM ในเครื่องจะกลับมาเป็นทางเลือกที่ถูกและเร็วจริง แต่นั่นคืออีกบทความหนึ่ง หลังตัวเลขใหม่ออกจากระบบจริง