← Blog

ทำไม AI ถึงตอบคำถามธุรกิจของคุณไม่ได้ — บันได 5 ขั้นของการถามข้อมูลเป็นภาษาคน

คำถามที่ลูกค้าถามบ่อยที่สุดเวลาเห็นระบบที่มี AI คือ “ต่อ AI เข้ากับฐานข้อมูลแล้วถามเลยไม่ได้เหรอ”

คำตอบสั้น ๆ คือได้ และมันจะตอบทุกคำถามอย่างมั่นใจ

คำตอบยาวคือ ตัวเลขที่ได้จะผิด และคุณจะไม่รู้ว่าผิด

บทความนี้อธิบายว่าทำไม และเล่าว่าเราต้องสร้างอะไรก่อนถึงจะให้ AI แตะข้อมูลจริงได้

ทำไมการต่อ AI เข้าฐานข้อมูลตรง ๆ ถึงไม่ได้ผล

วิธีที่นิยมคือให้ AI แปลงคำถามภาษาคนเป็นคำสั่งค้นข้อมูล แล้วรันกับฐานข้อมูลจริง

ปัญหาไม่ได้อยู่ที่ AI เขียนคำสั่งไม่เป็น — มันเขียนเป็น และคำสั่งที่ได้จะรันผ่านเกือบทุกครั้ง

ปัญหาคือคำสั่งที่รันผ่านกับคำสั่งที่ถูกความหมายเป็นคนละเรื่อง

และความล้มเหลวแบบนี้ไม่มีอาการให้เห็น — ไม่มีข้อความผิดพลาด ไม่มีอะไรค้าง มีแค่ตัวเลขหน้าตาน่าเชื่อถือที่ผิด

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

ปัญหาที่ 1 — คอลัมน์ไม่ได้แปลว่าอย่างที่ชื่อบอก

ระบบธุรกิจที่ใช้งานมานานทุกระบบมีคอลัมน์แบบนี้ และของเราก็มี

คอลัมน์ที่ไม่มีใครเขียนแล้ว แต่ยังมีโค้ดอ่านอยู่

เราพบคอลัมน์ที่เคยใช้ในระบบรุ่นเก่า ปัจจุบันไม่มีโค้ดส่วนไหนเขียนค่าลงไปแล้ว — เอกสารที่สร้างจากระบบใหม่จึงมีค่าว่างเสมอ

แต่ยังมีโค้ดอีกจุดหนึ่งอ่านคอลัมน์นั้นไปใช้จริง ในการส่งเอกสารภาษี

ถ้า AI เห็นชื่อคอลัมน์นั้นแล้วคิดว่ามันคือฐานภาษี มันจะตอบว่าฐานภาษีเป็นศูนย์ — ซึ่ง “ถูกต้องตามข้อมูล” และผิดโดยสิ้นเชิง

คอลัมน์สองตัวที่เก็บค่าเดียวกัน

มีคู่คอลัมน์ที่ทุกจุดในระบบเขียนค่าเดียวกันลงไปทั้งคู่ เป็นมรดกจากการออกแบบเมื่อนานมาแล้ว

ถ้าเผลอรวมทั้งสองคอลัมน์ ยอดขายจะกลายเป็นสองเท่าทันที

คอลัมน์ที่บวกไม่ได้เลย

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

ตัวเลขไม่ได้บอกว่าตัวเองบวกได้หรือไม่ — มันเป็นแค่ตัวเลข

ปัญหาที่ 2 — ตัวเลขแต่ละตัวบวกได้ไม่เหมือนกัน

นี่คือปัญหาที่ลึกกว่าและคนมองข้ามมากที่สุด

ตัวเลขในระบบธุรกิจแบ่งได้เป็นสามพวกใหญ่ ๆ ตามวิธีที่มันรวมกันได้

ชนิด คืออะไร รวมได้อย่างไร
ยอดที่เกิดขึ้น ยอดขาย · ยอดซื้อ · เงินภาษี บวกได้ทุกมิติ ทั้งข้ามเวลาและข้ามลูกค้า
ยอดคงเหลือ ยอดค้างชำระ · จำนวนสต๊อก บวกข้ามเวลาไม่ได้ — บวกได้เฉพาะ ณ เวลาเดียวกัน
อัตราและราคาต่อหน่วย อัตราภาษี · ราคาต่อชิ้น · เปอร์เซ็นต์ส่วนลด บวกไม่ได้เลย ต้องคำนวณใหม่จากยอดรวมเสมอ

ตัวอย่างที่เห็นภาพที่สุด

ถ้าถามว่า “ลูกหนี้ค้างชำระรวมทั้งปีเท่าไหร่” แล้วระบบเอายอดค้างของทุกเดือนมาบวกกัน

ตัวเลขที่ได้จะใหญ่กว่าความจริงมหาศาล เพราะลูกหนี้รายเดียวกันที่ค้างข้ามหลายเดือนถูกนับซ้ำทุกเดือน

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

ความผิดพลาดนี้ไม่มีทางเห็นจากตัวเลข เพราะมันออกมาเป็นจำนวนเงินที่ดูสมเหตุสมผล

และมีชนิดที่สี่ที่อันตรายกว่า

คือคอลัมน์ที่ยังไม่มีใครยืนยันความหมายที่แท้จริงของมัน

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

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

สิ่งที่เราต้องสร้างก่อน — ทะเบียนความหมายของทุกคอลัมน์

ก่อนจะให้ AI แตะข้อมูลได้ เราไล่ทุกคอลัมน์ตัวเลขของตารางข้อมูลหลัก 23 ตาราง รวมราว 249 คอลัมน์ แล้วติดป้ายให้ทีละคอลัมน์

ป้ายมี 6 แบบ

  • บวกได้เต็ม — ยอดที่เกิดขึ้นจริง
  • บวกได้บางส่วน — ยอดคงเหลือ ห้ามบวกข้ามเวลา
  • ห้ามบวก — อัตราและราคาต่อหน่วย ต้องคำนวณใหม่
  • ตายแล้ว — ไม่มีโค้ดเขียนค่าลงไปแล้ว ห้ามใช้
  • อ้างอิงซ้ำ — ค่าที่คัดลอกมาจากเอกสารอื่น ไม่ใช่ตัวชี้วัด
  • ยังไม่ยืนยัน — ห้ามใช้จนกว่าจะตรวจจากโค้ดที่เขียนจริง

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

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

ปัญหาที่ 3 — คนในบริษัทเดียวกันยังใช้ศัพท์ไม่ตรงกัน

ก่อนจะสอนให้เครื่องเข้าใจ ต้องตกลงกันในหมู่คนก่อน

คำว่า “ยอดขาย” คำเดียวมีความหมายได้หลายอย่าง

  • รวมภาษีมูลค่าเพิ่มหรือไม่
  • หักส่วนลดท้ายบิลแล้วหรือยัง
  • นับใบลดหนี้เป็นยอดติดลบหรือแยกออกไป
  • นับตอนออกใบสั่งขาย หรือตอนออกใบกำกับภาษี
  • รวมค่าขนส่งที่เก็บจากลูกค้าด้วยไหม

ฝ่ายขายกับฝ่ายบัญชีมักตอบไม่เหมือนกัน และทั้งคู่ถูกในบริบทของตัวเอง

เราจึงทำคลังศัพท์แยกตามโดเมนงาน — งานขาย งานบัญชี งานคลังสินค้า และงานการตลาดออนไลน์ — บวกกับชุดศัพท์ที่อ้างอิงจากภายนอกอีกสี่ชุด คือมาตรฐานการบัญชี ศัพท์กฎหมายบัญชี ศัพท์ของกรมสรรพากร และศัพท์การเงิน

ชุดหลังสำคัญเพราะบางคำเราตั้งเองไม่ได้ — เมื่อกรมสรรพากรนิยามคำไว้แบบหนึ่ง ระบบต้องใช้ตามนั้น ไม่ใช่ตามที่ทีมเห็นว่าสมเหตุสมผล

บันได 5 ขั้นของคำถาม

เมื่อมีฐานแล้ว เราแบ่งคำถามที่ผู้ใช้อยากถามออกเป็น 5 ระดับ ซึ่งแต่ละขั้นต้องการสิ่งที่ขั้นก่อนหน้าไม่ได้ให้

ขั้นที่ 1 — ถามตัวเลขตรง ๆ

“เมื่อวานขายเท่าไหร่” · “เดือนนี้ VAT ขายกี่บาท” · “ลูกหนี้ค้างเท่าไหร่”

ทำได้แล้ว — ต้องการแค่ทะเบียนความหมายกับตัวรวมยอดที่เคารพกฎการบวก

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

ขั้นที่ 2 — เทียบและดูแนวโน้ม

“เทียบเดือนที่แล้วเป็นอย่างไร” · “โตขึ้นกี่เปอร์เซ็นต์”

ทำได้เป็นส่วนใหญ่ — ต้องการเพิ่มคือความเข้าใจเรื่องช่วงเวลาที่เทียบกันได้จริง

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

ขั้นที่ 3 — ถามว่าทำไม

“ทำไมกำไรเดือนนี้ลด”

ยังทำได้บางส่วน — เพราะคำถามนี้ไม่ได้ขอตัวเลข แต่ขอคำอธิบาย

ระบบต้องแตกให้ได้ว่ากำไรที่ลดลงนั้นมาจากอะไรบ้าง — ขายได้น้อยลง · ต้นทุนสูงขึ้น · ส่วนผสมสินค้าเปลี่ยนไปทางที่กำไรน้อยกว่า · ให้ส่วนลดมากขึ้น · หรือลูกค้ารายใหญ่รายเดียวหายไป

แล้วเรียงลำดับว่าอันไหนอธิบายได้มากที่สุด

ความยากคือระบบต้องรู้ว่าอะไรอธิบายอะไรได้ ซึ่งเป็นความรู้คนละชั้นกับการรู้ว่าตัวเลขบวกกันอย่างไร

ขั้นที่ 4 — ถามว่าตรงกันไหม

“ใบกำกับใบนี้ตรงกับใบสั่งซื้อและใบรับของหรือเปล่า”

เป็นจุดที่เรากำลังสร้าง และเราคิดว่าเป็นจุดที่ต่างจากคนอื่นที่สุด

คำถามกลุ่มนี้ไม่ได้ถามตัวเลข แต่ถามว่าเอกสารคนละใบเล่าเรื่องเดียวกันหรือไม่

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

ความยากคือมันไม่ใช่การค้นข้อมูล แต่เป็นการจับคู่ — และเอกสารจริงไม่เคยตรงกันเป๊ะ ๆ ราคาต่างกันไม่กี่สตางค์จากการปัดเศษ ชื่อสินค้าเขียนไม่เหมือนกัน ของมาไม่ครบแล้วตามมาทีหลัง

ระบบจึงต้องตอบได้ว่า “ต่างกันเท่านี้ ยอมรับได้” กับ “ต่างกันแบบนี้ ต้องมีคนดู” ซึ่งเป็นเส้นที่ต้องตั้งอย่างระมัดระวัง

เรามีชิ้นส่วนของงานนี้อยู่แล้วในรูปการจับคู่เอกสารสองขา แต่กรอบที่ครอบทั้งเรื่องยังไม่มี

ขั้นที่ 5 — ถามว่าควรทำอะไร

“เดือนหน้าควรสั่งของอะไรเท่าไหร่”

ไกลที่สุดและเรายังไม่ทำ

เพราะคำถามนี้ต้องการสิ่งที่ระบบยังไม่มี — แบบจำลองการพยากรณ์ · สมมติฐานที่ต้องระบุให้ชัด · และเงื่อนไขสัญญากับผู้ขาย เช่นยอดสั่งขั้นต่ำ ระยะเวลาส่งของ และส่วนลดตามปริมาณ ซึ่งยังไม่มีที่เก็บในระบบด้วยซ้ำ

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

เราจึงเลือกไม่ทำจนกว่าจะพร้อม แทนที่จะทำแบบเดาไปก่อน

สิ่งที่บันไดนี้บอก

สังเกตว่าความยากไม่ได้เพิ่มขึ้นเพราะ AI ต้องฉลาดขึ้น

ทุกขั้นใช้ AI ตัวเดิม สิ่งที่เปลี่ยนคือความรู้เกี่ยวกับธุรกิจที่ต้องเตรียมไว้ให้มัน

ขั้น สิ่งที่ต้องเตรียมเพิ่ม
1 · ถามตัวเลข ความหมายของคอลัมน์ + กฎการบวก
2 · เทียบ ช่วงเวลาที่เทียบกันได้จริง
3 · ทำไม ความรู้ว่าอะไรอธิบายอะไร
4 · ตรงกันไหม กฎการจับคู่เอกสาร + เกณฑ์ว่าต่างแค่ไหนถึงยอมรับได้
5 · ควรทำอะไร แบบจำลอง + สมมติฐาน + เงื่อนไขสัญญา

นี่คือเหตุผลที่การ “ใส่ AI” เข้าไปในระบบที่ไม่มีฐานเหล่านี้จะได้ของที่สาธิตแล้วน่าประทับใจ แต่ใช้ตัดสินใจไม่ได้

กฎที่เราตั้งไว้ให้ตัวเอง

ไม่รู้ ต้องบอกว่าไม่รู้

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

ข้อนี้ขัดกับสัญชาตญาณของทุกคนที่ทำระบบ AI เพราะระบบที่บอกว่า “ไม่รู้” ดูฉลาดน้อยกว่า

แต่ในงานที่ตัวเลขถูกเอาไปยื่นภาษี คำตอบที่ผิดแบบมั่นใจสร้างความเสียหายมากกว่าการไม่ตอบ

ตัวเลขต้องย้อนกลับไปหาที่มาได้

ทุกคำตอบต้องบอกได้ว่ามาจากเอกสารชุดไหน กรองด้วยเงื่อนไขอะไร

เพราะคำถามถัดไปของผู้ใช้เสมอคือ “ตัวเลขนี้มาจากไหน” และถ้าตอบไม่ได้ เขาจะไม่ใช้ระบบนี้อีก — ซึ่งถูกต้องแล้วที่เขาจะไม่ใช้

สร้างจากล่างขึ้นบน

เราทำขั้นที่ 1 ให้แน่นก่อน แล้วค่อยขึ้นขั้นถัดไป ไม่กระโดดไปทำขั้นที่ 5 เพราะมันดูน่าตื่นเต้นกว่า

เหตุผลง่ายมาก — ขั้นที่ 5 ที่วางอยู่บนขั้นที่ 1 ที่ยังไม่แน่น คือเครื่องผลิตคำตอบผิดที่มีประสิทธิภาพสูงมาก

สรุป

  1. ส่วนที่ยากของ “ให้ AI ตอบคำถามจากข้อมูล” ไม่ใช่ AI แต่คือการนิยามว่าข้อมูลแต่ละตัวหมายถึงอะไร
  2. ตัวเลขไม่ได้บอกว่าตัวเองบวกได้หรือไม่ — ยอดคงเหลือที่ถูกบวกข้ามเวลาให้คำตอบที่ผิดโดยไม่มีอาการ
  3. คอลัมน์ที่ชื่อสวยที่สุดอาจเป็นคอลัมน์ที่ไม่มีใครเขียนค่าลงไปแล้ว
  4. ต้องตกลงศัพท์กันในหมู่คนก่อน — และบางคำเราตั้งเองไม่ได้เพราะกฎหมายนิยามไว้แล้ว
  5. ความยากไม่ได้เพิ่มเพราะ AI ต้องฉลาดขึ้น แต่เพราะความรู้ที่ต้องเตรียมให้มันเพิ่มขึ้น
  6. ระบบต้องกล้าบอกว่าตอบไม่ได้ ในงานที่ตัวเลขผูกกับภาษี นี่คือคุณสมบัติ ไม่ใช่ข้อจำกัด

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

Freeable

บริหารจัดการข้อมูลในองค์กร ครบในที่เดียว

ดูรายละเอียด →

อ่านต่อ

Freeable

backup ที่รายงานว่าสำเร็จ 1,769 ไฟล์ แต่ป้องกันอะไรไม่ได้เลย — 3-2-1 ไม่พอแล้ว

เราเปิดงานสำรองไฟล์เอกสารภาษี มันคัดลอกครบ 1,769 ไฟล์ รายงานล้มเหลว 0 เขียวสนิท แล้วเราพบว่าปลายทางอยู่ดิสก์เดียวกับต้นฉบับ บทความนี้รวมรูปแบบ backup ที่ใช้จริงนอกจาก 3-2-1 และเล่าว่าทำไม "เขียว" ถึงเป็นสิ่งที่ต้องระวังที่สุด

Freeable

ทำไมอีเมลของคุณเข้าถังขยะ — SPF, DKIM, DMARC และทุกอย่างที่ต้องตั้งให้ครบ

ตั้งแต่ปี 2024 ผู้ให้บริการอีเมลรายใหญ่เปลี่ยนจาก "แนะนำให้ตั้ง" เป็น "ไม่ตั้งแล้วไม่รับ" บทความนี้อธิบายทุกระเบียนที่ต้องตั้ง ตั้งอย่างไร ลำดับไหน และจุดที่คนพลาดบ่อยที่สุดคือเรื่อง alignment ที่ SPF กับ DKIM อย่างเดียวแก้ไม่ได้

Freeable

อักขระที่มองไม่เห็น — บั๊กที่ผู้ใช้พิสูจน์ไม่ได้ว่าตัวเองไม่ได้พิมพ์ผิด

ลูกค้ากรอกอีเมลถูกทุกตัวอักษร แต่ระบบบอกว่ารูปแบบไม่ถูกต้อง สาเหตุคืออักขระความกว้างศูนย์ที่ติดมากับการคัดลอก บทความนี้เล่าว่าทำไมล้างทิ้งทั้งหมดไม่ได้ และทำไมการล้างให้ผ่าน validate อย่างเดียวยังไม่พอ