บริษัทที่ผมทำงานอยู่เปิดมานานกว่า 50 ปี มีพนักงานมากกว่า 2,000 คน และมีสาขาอยู่ตามหัวเมืองทั่วประเทศ ปัญหาแรกที่ผมเจอเป็นเรื่องพื้นฐานมาก คือ พนักงานเข้าถึงข้อมูลที่จำเป็นต่อการทำงานไม่ได้
ข้อมูลบางอย่าง เช่น ตัวเลขยอดขาย หรือผลวิเคราะห์สินค้า จะถูกจำกัดไว้เฉพาะผู้บริหารเท่านั้น ทั้งที่ในความเป็นจริง พนักงานหลายคนก็จำเป็นต้องใช้ข้อมูลเหล่านี้ในการทำงาน
สมมติว่าพนักงานคนหนึ่งอยากรู้ยอดขายของสินค้าสักตัว เพื่อนำไปวิเคราะห์ต่อ เค้าไม่สามารถเปิดดูเองได้
วิธีคือ ต้องส่งอีเมลไปขออีกแผนกหนึ่งก่อน จากนั้นรอให้เจ้าหน้าที่ช่วย Query ตัวเลขออกมา แล้วค่อยนำข้อมูลไปใส่ใน Power BI
ใช่ครับ… แค่ต้องการดูตัวเลขยอดขายหนึ่งชุด ต้องเดินทางผ่านหลายแผนกขนาดนั้นเลย
บางครั้งกว่าจะได้ข้อมูล งานที่อยากวิเคราะห์ก็เกือบจะจบไปแล้ว บางคนรอไม่ไหวก็ไม่ขอข้อมูลเลย
สุดท้ายจะได้ใช้ข้อมูลหรือเปล่า ก็ขึ้นอยู่กับว่าตอนนั้นใครว่างดึงให้ มากกว่าว่าเราจำเป็นต้องใช้มันแค่ไหน
ซึ่งนี่เป็นหนึ่งในปัญหาแรก ๆ ที่ทำให้เริ่มคิดว่า องค์กรขนาดใหญ่แบบนี้ น่าจะมีวิธีทำงานที่ดีกว่านี้ได้นะ

⭕️ เริ่มทำ Text to SQL
ผมอยากให้ user พิมพ์ว่า “ยอดขายสินค้าตัวนี้ของสาขานี้เป็นเท่าไหร่”
แล้ว AI ก็สามารถเข้าใจคำถามและตอบกลับมาเป็นข้อมูลที่นำไปใช้งานได้จริง
ไม่ต้องเปิดรายงานเอง ไม่ต้องไล่หาข้อมูลจากหลายระบบ และไม่ต้องส่งอีเมลไปขออีกแผนกให้ช่วย Query ข้อมูลให้
ฟังดูเหมือนง่าย แต่พอเริ่มทำจริง ปัญหาแรกที่เจอก็คือ…
AI หยิบข้อมูลผิด…
บางครั้ง User ก็พิมพ์สั้น ๆ ตามที่เค้าคุยกันในบริษัทนั่นแหละครับ แต่ AI กลับตีความไปอีกอย่าง ถามยอดขายสาขาหนึ่ง ดันได้ข้อมูลของอีกสาขามาแทน
และแน่นอนครับ ไม่ใช่ User ทุกคนจะเป็น Prompt Expert
เราไม่สามารถคาดหวังให้พนักงานทุกคนต้องเรียนรู้วิธีเขียน Prompt ที่ละเอียดและถูกต้อง เพื่อให้ AI ตอบคำถามได้
ถ้าระบบต้องการให้ User เขียนคำถามยาว ๆ ระบุทุกเงื่อนไข ใส่ชื่อสาขา ช่วงเวลา ประเภทสินค้า และรายละเอียดอื่น ๆ ให้ครบทุกครั้ง สุดท้ายมันก็จะกลับไปคล้ายการกรอกแบบฟอร์ม หรือการเขียน Query เองอยู่ดี
อีกอย่างนึง คือ การถามคำถามที่ซับซ้อนเชิงวิเคราะห์ เช่น
“ช่วยวิเคราะห์การสั่งซื้อสินค้าเพื่อนำมาขายหน่อย”
คำถามนี้สำหรับคนอาจฟังดูเข้าใจได้ แต่สำหรับ AI ยังมีรายละเอียดที่ขาดอยู่เยอะมาก
ต้องวิเคราะห์จากยอดขายหรือไม่? ดูสินค้าที่ขายดีในช่วงเวลาไหน? พิจารณาสต็อกคงเหลือด้วยหรือเปล่า? ต้องดูแยกตามสาขาหรือรวมทั้งประเทศ? แล้วคำว่า ขายดี ต้องวัดจากจำนวนชิ้น ยอดเงิน หรือกำไร?
ถ้า AI ต้องเดาเองว่าคำถามหมายถึงอะไร ผลลัพธ์ที่ได้ก็มีโอกาสผิดตั้งแต่ยังไม่ได้เริ่มวิเคราะห์..
ตอนนั้นผมเริ่มเห็นชัดขึ้นว่า AI ไม่ควรมีหน้าที่เดาข้อมูล
หน้าที่ของ AI ควรเป็นการช่วยทำความเข้าใจคำถาม และไปดึงข้อมูลจากแหล่งที่ถูกต้องออกมาให้มากที่สุด ส่วนข้อมูลที่จะใช้ต้องถูกเตรียมและตรวจสอบไว้ก่อนแล้ว
ข้อมูลของบริษัทมีมากกว่า 9 ล้านๆ แถว สะสมมานานกว่า 20 ปี และผูกอยู่กับ Legacy ERP ที่ใช้งานมาตั้งแต่ยุคแรก ๆ
ก่อนจะให้ AI ไปค้นข้อมูล ผมต้องเริ่มจากการทำความเข้าใจกับข้อมูลทั้งหมดก่อน
ผมใช้เวลาหลายเดือนทำ Data Dictionary หรือพูก็คือ
คู่มือของข้อมูล เพื่อดูว่า ข้อมูลแต่ละชุดมาจากไหน
แต่ละฟิลด์หมายถึงอะไร
ข้อมูลไหนใช้ได้
ข้อมูลไหนไม่ควรให้ AI ใช้
ตัวเลขแต่ละตัวคำนวณมายังไง
และข้อมูลชุดไหนเป็นข้อมูลที่ผ่านการตรวจสอบแล้ว
ช่วงแรกข้อมูลที่ AI ดึงมายังไม่ตรงมากครับ บางครั้งเลือกตารางผิด บางครั้งใช้ข้อมูลผิดชุด หรือเข้าใจคำถามไม่ตรงกับสิ่งที่ User ต้องการ
ผมจึงเปลี่ยนโมเดลที่ใช้ในช่วงวิเคราะห์ Data Dictionary มาเป็น Opus 4 เพราะต้องการให้ AI ช่วยทำความเข้าใจโครงสร้างและความสัมพันธ์ของข้อมูลได้ดีขึ้น
แต่ในฝั่งที่ User ใช้งานจริง เรายังคงใช้ Sonnet เหมือนเดิม..
เพราะโจทย์ของสองส่วนนี้ไม่เหมือนกัน
ฝั่งหนึ่งคือการวิเคราะห์และทำความเข้าใจข้อมูลจำนวนมาก ส่วนอีกฝั่งคือการรับคำถามจาก User แล้วทำงานตามขอบเขตที่เรากำหนดไว้
หลังจากได้ Data Dictionary แล้ว ผมก็ทำ Data Cleansing ต่อ และวางกติกาให้ชัดเจนว่า SQL ที่ AI สร้างขึ้นมาจะต้องดึงข้อมูลจากชุดข้อมูลที่ผ่านการตรวจสอบแล้วเท่านั้น

ข้อมูลเหล่านี้ต้องผ่าน Script และสูตรคำนวณที่กำหนดไว้ล่วงหน้าเรียบร้อยแล้ว
ผมไม่ให้ AI เดาข้อมูล และไม่ให้ AI มีหน้าที่คำนวณตัวเลขเอง
หน้าที่ของ AI คือเข้าใจคำถาม แล้วเลือกดึงข้อมูลจากแหล่งที่ถูกต้องมาให้ User
ผ่านไปเกือบสองปี วันนี้ข้อมูลที่ AI ดึงมายังไม่ได้ถูกต้อง 100% แต่ก็อยู่ในระดับที่พอรับได้ ประมาณ 80%
โดยเฉพาะถ้าเป็นข้อมูลในแผนกของตัวเอง ซึ่ง User คนนั้นเป็น Domain Expert ก็จะช่วยตรวจสอบได้ทันทีว่า AI ดึงข้อมูลถูกหรือไม่
ถ้าผิด ก็สามารถบอกได้เลยว่า อันนี้ไม่ถูกนะ ลองไปดึงจากข้อมูลชุดนี้ใหม่
และบอกเงื่อนไข AI ไปด้วย
เมื่อ AI ได้ข้อมูลที่ถูกต้องแล้ว ระบบก็จะบันทึกผ่าน Tool ที่เราสร้างขึ้นมา เพื่อให้การตอบคำถามในครั้งต่อไปมีโอกาสถูกต้องมากขึ้น
นี่คือแนวคิดของ Learning Loop ที่เกิดขึ้นจากการใช้งานจริง
USER → AI → USER
ทุก users ที่สามารถใช้ text to sql ได้จะถูกกำหนด role ไว้ชัดเจนว่าสามารถดูอะไรได้บ้าง และ learner-loop จะถูกรีวิวอีกครั้งตอนประชุม
AI ไม่ได้เก่งขึ้นเพราะเราแค่เปลี่ยนโมเดลให้ฉลาดขึ้นอย่างเดียว
แต่มันค่อยๆ ดีขึ้นจากการที่ User ใช้งาน ตรวจสอบ และช่วยบอกว่าอะไรถูกหรือผิด
และนั่นทำให้ผมเริ่มเข้าใจว่า การนำ AI มาใช้ในองค์กรขนาดใหญ่ อาจเริ่มจากการทำให้ AI รู้ก่อนว่า ข้อมูลที่ถูกต้องอยู่ที่ไหน และอะไรคือสิ่งที่มันไม่ควรเดา
