Agentics Labs
Amity Team
5
Min
Read

NLQ Optimizer

ด้วยการเติบโตของ Generative AI องค์กรต่าง ๆ ทั่วโลกเริ่มนำแชทบอทที่ขับเคลื่อนด้วย Generative AI มาใช้ เพื่อสร้างแชทบอทที่สามารถ “อ่าน” ข้อมูลจากคลังความรู้ภายในองค์กรได้แบบไดนามิก นอกเหนือจากการเชื่อมต่อ Generative AI เข้ากับคลังเอกสารขององค์กร เราเริ่มเห็นว่าองค์กรจำนวนมากขึ้นต้องการความสามารถในการดึงข้อมูลจากฐานข้อมูลแบบมีโครงสร้างที่มีอยู่

ระบบที่จะสามารถทำงานในลักษณะการสืบค้นด้วยภาษาธรรมชาติ (Natural Language Query) จึงจำเป็นต้องได้รับการพัฒนา เพื่อให้เข้าใจคำถามของผู้ใช้ได้อย่างถูกต้อง และสามารถดึงข้อมูลที่เกี่ยวข้องออกมาได้อย่างแม่นยำ

Natural Language Query (NLQ) คืออะไร?

Natural Language Query คือความสามารถของระบบในการเข้าใจคำถามของผู้ใช้งานที่พิมพ์ด้วยภาษาธรรมชาติ และแปลงคำถามนั้นให้เป็นคำสั่ง SQL ที่สามารถดึงข้อมูลที่ถูกต้องออกมาเพื่อตอบคำถามได้อย่างแม่นยำ

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

‍

Natural Language Query (NLQ)

‍

ทำไม NLQ ถึงมีความซับซ้อน?

แตกต่างจากการค้นหาข้อมูลในเอกสาร ซึ่งข้อมูลส่วนใหญ่จะอยู่ภายในเนื้อหาของเอกสารโดยตรง ข้อมูลแบบมีโครงสร้าง (Structured Data) มักถูกออกแบบมาให้จัดเก็บอย่างมีประสิทธิภาพสูงสุด ซึ่งมักจะไม่มีคำอธิบายหรือบริบทที่ชัดเจนประกอบอยู่ด้วย

ความท้าทายที่เรามักพบ ได้แก่:

ขาดบริบทของข้อมูล

ตารางข้อมูลการขายอาจมีเพียงชื่อคอลัมน์ที่ใช้ระบุว่าข้อมูลคืออะไร โดยมีพจนานุกรมข้อมูล (Data Dictionary) แยกเก็บไว้อีกที่หนึ่งlace.

ขาดบริบทของรูปแบบข้อมูล

ข้อมูลประเภทหมวดหมู่ (Categorical), แบบไม่เรียงลำดับ (Nominal), หรือแบบมีลำดับ (Ordinal) ต่างก็สร้างความท้าทายให้กับระบบในการสร้างคำสั่ง SQL ที่ถูกต้อง

ขาดบริบททางธุรกิจ (Lack of Business Context)

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

สถานการณ์แบบนี้มักต้องอาศัยบริบทเพิ่มเติมเกี่ยวกับการใช้งานของแต่ละตาราง ซึ่งขึ้นอยู่กับวิธีที่ทีมธุรกิจออกแบบไว้สำหรับใช้ในแต่ละกรณีเฉพาะ

การเชื่อมข้อมูลระหว่างตาราง (JOIN Query)

บ่อยครั้งที่คำถามทางธุรกิจเพียงคำถามเดียวจำเป็นต้องดึงข้อมูลจากหลายตารางพร้อมกัน

‍

Amity NLQ Optimizer

จากประสบการณ์การทำงานร่วมกับหลากหลายองค์กรที่มีโครงสร้างข้อมูลที่แตกต่างกัน ทีม AI Labs ของเราได้พัฒนา Amity NLQ Optimizer — เครื่องมือปรับแต่งเวิร์กโฟลว์แบบเอเจนติก ที่ออกแบบมาเฉพาะสำหรับการจัดการงานด้าน NLQ โดยเฉพาะ

เครื่องมือนี้ได้รับการพิสูจน์แล้วว่าสามารถเพิ่มความแม่นยำจากเดิมที่ต่ำกว่า 50% ให้สูงขึ้นเกินกว่า 95% และถูกออกแบบมาให้รองรับสถานการณ์ที่ซับซ้อนในการสืบค้นด้วยภาษาธรรมชาติ ซึ่งระบบต้องดึงข้อมูลอย่างถูกต้องจากฐานข้อมูลมากกว่า 10 ตารางขึ้นไป

แม้จะยังไม่ได้ใช้คุณสมบัติการปรับแต่งคำสั่งสืบค้นทั้งหมดของ Optimizer แต่ Amity NLQ Optimizer ก็แสดงให้เห็นถึงพัฒนาการที่ชัดเจนใน benchmark sql-eval ด้วยชุดข้อมูล Spider และ BIRD โดยให้ผลลัพธ์ที่ดีขึ้นสูงสุดถึง 22%

‍

โครงสร้างของ NLQ Optimizer

โครงสร้างของ Amity NLQ Optimizer ถูกแบ่งออกเป็น 4 ขั้นตอนหลัก ซึ่งแต่ละขั้นตอนจะทำหน้าที่ปรับแต่ง prompt ในรูปแบบต่าง ๆ ทั้งหมด 4 ครั้ง ก่อนจะสร้างคำสั่ง SQL ออกมา

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

คำอธิบายนี้ถูกออกแบบมาสำหรับกรณีการใช้งานที่มีความซับซ้อนสูง ซึ่งต้องเปิดใช้งานทุกส่วนของระบบร่วมกัน

‍

ขั้นตอนการดึงข้อมูล

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

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

เมื่อคำสั่งค้นหาได้รับการจัดกลุ่มแล้ว แต่ละกลุ่มจะทำการปรับแต่งคำสั่งค้นหาเพิ่มเติม 3 ขั้นตอน ได้แก่:

  • การเลือกคำสั่ง (Instruction Selection): ดึงคำสั่งที่เกี่ยวข้องที่สุดออกมา ซึ่งเป็นคำสั่งที่อธิบายบริบททางธุรกิจของกลุ่มคำสั่งนั้น
  • การเชื่อมโยงโครงสร้างข้อมูล (Schema Linking): ดึงและเชื่อมโยงโครงสร้างและคำอธิบายของตารางข้อมูลทั้งหมดเข้าด้วยกัน
  • การเลือกตัวอย่างคำถาม (Few Shots Selection): ดึงตัวอย่างคำถามและคำสั่ง SQL ที่เกี่ยวข้องและเหมาะสมที่สุดขึ้นมาใช้เป็นตัวอย่างประกอบ

ขั้นตอนการสร้างคำสั่ง SQL

หลังจากที่กลุ่มบริบท (Context Group) ได้ดึงข้อมูลและปรับแต่ง prompt ให้ครบถ้วนแล้ว ขั้นตอนสุดท้ายจะเป็นการเสริม prompt ด้วยเทคนิค Chain-of-thought และ Reflexion เพื่อเพิ่มความสามารถในการคิดวิเคราะห์ของตัวสร้างคำสั่ง SQL

ตัวสร้างคำสั่ง SQL จะสร้างผลลัพธ์ทั้งในรูปแบบของ chain-of-thought และ reflection พร้อมกับคำสั่ง SQL จริง ๆจากนั้นจะดึงคำสั่ง SQL ตัวสุดท้ายออกมาและส่งต่อไปยังขั้นตอนถัดไป

ขั้นตอนปรับแก้ไขด้วยตัวเอง

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

ขั้นตอนการสร้างคำตอบ

Once a query result is returned from the database, the result and context guidelines then go into an Answer Generator to respond back to the user.

‍

NLQ Tuning Framework

กรอบการปรับแต่ง NLQ (NLQ Tuning Framework)

Amity NLQ Optimizer ช่วยให้ผู้ใช้งานสามารถปรับปรุงคุณภาพของระบบ NLQ ได้อย่างต่อเนื่อง โดยการรวบรวมการตั้งค่าที่เฉพาะเจาะจงตามบริบทไว้ในกลุ่มเนื้อหา (Context Group) ทำให้ทีมธุรกิจจากแต่ละฝ่ายที่มีบริบทต่างกัน สามารถปรับแต่งสถานการณ์ของตัวเองได้โดยไม่กระทบกับระบบโดยรวม

‍

เริ่มต้นใช้งาน Amity NLQ Optimizer

ปลดล็อกพลังของการเข้าใจภาษาธรรมชาติอย่างลื่นไหลและชาญฉลาดด้วย Amity NLQ Optimizer โซลูชันล้ำสมัยที่ออกแบบมาเพื่อยกระดับการตีความคำถาม ช่วยให้ระบบของคุณประมวลผลคำถามของผู้ใช้ได้อย่างแม่นยำ และให้ผลลัพธ์ที่ตรงประเด็นพร้อมบริบทที่เหมาะสม

ทีมผู้เชี่ยวชาญของเราพร้อมร่วมงานกับคุณในการผสาน Amity NLQ Optimizer เข้ากับแพลตฟอร์มของคุณ เพื่อปรับแต่งวิธีการจัดการคำถามภาษาธรรมชาติของระบบ ให้มีประสิทธิภาพสูงขึ้นและสร้างความพึงพอใจแก่ผู้ใช้

ติดต่อเราวันนี้เพื่อทดลองใช้งาน และสัมผัสประสบการณ์ใหม่กับการประมวลผลคำถามด้วย Amity NLQ Optimizer

ร่วมมือและเป็นพันธมิตรกับศูนย์วิจัยและปฏิบัติการ AI ของเรา

ร่วมเป็นพันธมิตรกับ Amity’s AI Lab เพื่อพัฒนาโซลูชัน AI ร่วมกันผ่านโอกาสในการทำงานร่วมกัน ติดต่อเราผ่านอีเมล LINE หรือโทรศัพท์เพื่อเสนอโปรเจกต์ ทีมงานของเราจะติดต่อกลับหาคุณในไม่ช้า

ร่วมมือกับเรา