ทำไม 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 ที่ยังไม่แน่น คือเครื่องผลิตคำตอบผิดที่มีประสิทธิภาพสูงมาก
สรุป
- ส่วนที่ยากของ “ให้ AI ตอบคำถามจากข้อมูล” ไม่ใช่ AI แต่คือการนิยามว่าข้อมูลแต่ละตัวหมายถึงอะไร
- ตัวเลขไม่ได้บอกว่าตัวเองบวกได้หรือไม่ — ยอดคงเหลือที่ถูกบวกข้ามเวลาให้คำตอบที่ผิดโดยไม่มีอาการ
- คอลัมน์ที่ชื่อสวยที่สุดอาจเป็นคอลัมน์ที่ไม่มีใครเขียนค่าลงไปแล้ว
- ต้องตกลงศัพท์กันในหมู่คนก่อน — และบางคำเราตั้งเองไม่ได้เพราะกฎหมายนิยามไว้แล้ว
- ความยากไม่ได้เพิ่มเพราะ AI ต้องฉลาดขึ้น แต่เพราะความรู้ที่ต้องเตรียมให้มันเพิ่มขึ้น
- ระบบต้องกล้าบอกว่าตอบไม่ได้ ในงานที่ตัวเลขผูกกับภาษี นี่คือคุณสมบัติ ไม่ใช่ข้อจำกัด
เราเลือกเล่าเรื่องนี้รวมถึงส่วนที่ยังทำไม่ได้ เพราะคิดว่าการบอกว่าอะไรยังไม่พร้อมมีค่ากับคนที่กำลังตัดสินใจมากกว่าการสาธิตสิ่งที่ดูดีแล้วเงียบเรื่องข้อจำกัด
บริหารจัดการข้อมูลในองค์กร ครบในที่เดียว