Road to Automated Analytics

 

Norimaki Arale, Image credit: internet

"As an AI language model" ประโยคยอดฮิตในช่วงนี้ กับกระแส Generative AI ที่จะเข้ามาเปลี่ยนรูปแบบการใช้งาน วิธีการใช้ และวิเคราะห์ข้อมูลในอนาคตอันใกล้ อีกทั้ง AI ยังเป็นธีมการลงทุนที่ใหญ่ที่สุดในช่วงอีกไม่กี่ปีข้าง และแทบจะไม่มีภาคธุรกิจไหนที่ไม่มี AI เข้าไปเกี่ยวข้อง [1]

ชาว data อย่างเรากับกระแส Generative AI ซึ่งต่อยอดมาจาก Large Language Model (LLM) การประยุกต์ใช้ Generative AI ในสายงานข้อมูลมีหลากหลาย ตั้งแต่ การช่วยเขียนโค้ดดึงข้อมูล วิเคราะห์ข้อความ การสังเคราะห์ข้อมูลเพื่อการทดสอบ โดยหนึ่งในรูปแบบการใช้งานที่กำลังเป็นที่สนใจ คือการใช้ AI เข้ามาช่วยจัดเตรียมและวิเคราะห์ข้อมูล และยังรวมไปถึงการสรุปผลการวิเคราะห์ให้เราเข้าใจได้ง่าย อีกด้วย อาจกล่าวได้ว่านักวิเคราะห์หรือนักวิทยาศาสตร์ข้อมูลคงต้องทำงานร่วมกับ AI ในอนาคตอันใกล้นี้

Gartner คาดการว่าภายในปี 2025 เราจะใช้งานข้อมูล โดยผ่านการเล่าหรือบรรยายข้อมูล (data story telling) กันอย่างแพร่หลาย โดยจะเป็นการทำด้วย AI ถึง 75% เลยทีเดียว[2] กระบวนการอัตโนมัติที่ AI เข้ามาช่วยนี้เรียกว่า Automated Analytics ซึ่งก็คือ ต่อไปเราสามารถ ถาม AI ว่ายอดขายในแต่ละสาขาในเดือนนี้เมื่อเทียบกับเดือนที่แล้วเป็นอย่างไร รายชื่อสาขาที่ขายดีที่สุด 3 อันดับแรก สินค้าอะไรที่ขายดี แบ่งกลุ่มผลิดภัณฑ์ตามช่องทางการขาย คาดการณ์ยอดขายไปถึงสิ้นปี ไปจนถึงหาข้อมูลเชิงลึกเช่น อะไรเป็นปัจจัยที่มีผลต่อยอดขาย โดยทั้งหมดนี้เราไม่ต้องลงมือเขียนโค้ดหรือใช้ excel เลยแม้แต่น้อย

Automated Analytics เป็นรูปแบบการ จัดเตรียมข้อมูล วิเคราะห์ข้อมูล หาความสัมพันธ์ ไปจนถึงอธิบายความสัมพันธ์และผลวิเคราะห์ออกมาเป็นภาษาให้เข้าใจได้ง่าย ซึ่งเป็นส่วนสำคัญของงานวิเคราะห์ข้อมูล โดยทั้งหมดนี้ใช้เทคโนโลยีที่กำลังแพร่หลาย เช่น machine learning, artificial intelligence, natural language processing, large language model ซึ่งเข้ามาช่วยลดภาระงาน ของนักวิเคราะห์ นักวิทยาศาสตร์ข้อมูล และยังช่วยให้เราเข้าถึงและใช้ข้อมูลได้ง่ายและรวดเร็วขึ้น ค่าใช้จ่ายต่ำลง ทำให้ไม่ต้องใช้นักวิเคราะห์ หรือนักวิทยาศาสตร์ข้อมูลจำนวนมากอีกต่อไป

อาจกล่าวได้ว่า Automated Analytics จะเป็นตัวเปลี่ยนเกมส์ที่สำคัญ บริษัทผู้พัฒนาเครื่องมือสำหรับทำรายงานและวิเคราะห์ข้อมูลหลายราย เริ่มนำมาปรับใช้กับผลิตภัณฑ์ของตนเอง ซึ่งจะทำให้ AI แสนรู้เหล่านี้ กำลังจะกลายเป็นกระแสหลักในอีกไม่กี่ปีข้างหน้า ซึ่งนั่นหมายถึงว่า พวกเรากำลังต้องเตรียมตัวเพื่อทำงานร่วมกับเพื่อนร่วมงาน AI  

จากเดิมที่ data engineer หรือ data modeler ต้องออกแบบ data model จัดเตรียมข้อมูลเพื่อให้นักวิเคราะห์ข้อมูล นักวิทยาศาสตร์ข้อมูล หรือ BI specialist เพื่อให้ทำงานได้สะดวกและมีประสิทธิภาพ แต่ต่อไปเราต้องคิดว่า จะให้ AI ทำงานได้สะดวกและถูกต้องอย่างไร เราควรรู้ และเตรียมอะไรบ้าง

ก่อนอื่นเรามาดูกันว่า ใช้ Generative AI ใช้เทคนิคและมีขั้นตอนอย่างไรในการ ทำความเข้าใจโครงสร้างของข้อมูล เลือกใช้ table และ column จนสามารถเขียนโปรแกรมหรือ เขียน query ที่ถูกต้องได้อย่างไร

1. Tokenization การกระบวนการตัดแบ่งประโยคให้เป็น หน่วยที่เล็กลง ซึ่งถูกแทนที่ด้วยชุดตัวเลขที่เราเรียกว่า token โดยหน่วยย่อยดังกล่าว นับเป็น 1 token โดยอาจเป็น 1 คำ หรือบางส่วนของคำ อาจะรวม space หรืออักษระใดๆ ก็ได้ ซึ่ง token เหล่านี้เป็นพื้นฐานที่โมเดลในตระกูลประมวลผลภาษาธรรมชาติ Natural Language Processing (NLP) ใช้เพื่อ แยกแยะ หาความสัมพันธ์ จัดเรียง ไปจนถึงการโต้ตอบ โดยการร้อยเรียง token ออกมาเป็นประโยค หรือ code ให้เราเข้าใจได้ 
เรามาลองดูการตัดแบ่ง token จาก tokenizer web site ของ Open AI กัน 

โดยลองใช้บทพูดของคุณพ่อและลูกสาวในภาพยนต์คลาสสิค

เริ่มจากบทของ Darth Vader, The Empire Strikes Back “No, I am your father.


จากประโยคข้างต้น 21 ตัวอักษร แบ่งได้ 7 token โดยในช่องผลลัพท์ จะทำการแยกสีแบ่ง token จะเห็นได้ว่า 1 token จะเป็น 1 คำ ที่มีช่องว่างติดมาด้วย ส่วน , และ . จะถูกตัดเป็น 1 token ด้วย

เรามาลองประโยคที่มีคำซับซ้อนกันบ้าง จากลูกสาวในเรื่องเดียวกัน Princess Leia, The Empire Strikes Back “Why, you stuck-up half-witted scruffy-looking nerf herder.

จะเห็นว่า มีการตัด token ที่เป็นบางส่วนของคำ หรือแม้แต่ตัวอักษรแค่ตัวเดียว ไม่ได้เป็นคำที่ครบถ้วน โดยเฉลี่ยแล้ว ในภาษาอังกฤษ 1 token จะมีประมาณ 4 ตัวอักษร ว่าแต่เลอาพูดแบบนี้จริงๆ ด้วยเหรอ?

การทำ tokeninzation จึงเป็นพื้นฐานที่ทำให้ AI สามารถมีปฏิสัมพันธ์กับโลกภายนอกได้ ทั้งส่วน input และ output อาจกล่าวได้ว่า LLM นั้นเป็น multi-lable classification model โดยการ predict หา token ถัดไป จนเรียงต่อกันเป็นประโยค หรือ code ที่ถูกต้องนั่นเอง การตัดแยก token เหล่านี้เอง ที่เรานำมาใช้เพื่อการตั้งชื่อ table และ column เพื่อให้ AI อ่าน ทำความเข้าใจและเขียน code ได้ถูกต้อง 


2. Chain-of-Thought (CoT) เป็นเทคนิคอันชาญฉลาด ซึ่งถูกพัฒนาโดย Google Research, brain team เพื่อเพิ่มผลลัพธ์ที่ดีในการใช้งาน LLM โดยการแบ่งปัญหาออกเป็นส่วนๆ แบ่งลำดับขั้นตอนในการคิด และอ่านวิเคราะห์ผลลัพธ์จากขั้นตอนก่อนหน้า ปรับปรุงแก้ไขข้อผิดพลาด เพื่อให้บรรลุผลลัพธ์ที่ต้องการ เป็นเทคนิคที่เลียนแบบลำดับวิธีคิดและแก้ปัญหาของมนุษย์เรา [3]

CoT มีจุดเด่น 2 ด้านคือ 1. ช่วยให้ LLM สามารถแก้ปัญหาที่ซับซ้อนโดยการแบ่งเป็นลำดับขั้นตอน และ 2. จากการที่ AI แจกแจงลำดับขั้นตอน แสดงที่มาที่ไปของการทำงาน ทำให้เกิดความเชื่อมั่น ตรวจสอบได้ ซึ่งถือเป็นหัวใจสำคัญของการใช้งาน AI ในปัจจุบัน (Explainable AI)

ในกรณีของ Automated Analytics โดยการให้ AI สามารถวิเคราะห์และให้คำตอบโดยที่ค้นหาข้อมูลจากในฐานข้อมูลได้เองนั้น โดยอ้างอิงจาก langchain version 0.0.249 ซึ่งมีการพัฒนา agent สำหรับฐานข้อมูลหลากหลาย จะมีการแบ่ง CoT ดังนี้
1. ทำความเข้าใจคำถาม
2. หาชื่อ table ในฐานข้อมูล
3. เลือก table ซึ่งอาจจะมีมากกว่า 1 table ก็ได้
4. เลือก column จาก table ที่เลือกมา
5. เขียน SQL statement โดยเลือก table และ column ที่ต้องการ และสั่งทำงาน
6. นำ output ที่ฐานข้อมูลส่งผลกลับมา สรุปผล 
7. แสดงผลลัพธ์สุดท้าย อาจจะเป็นประโยค ตัวเลข หรือกราฟ 

ภาพแสดงขั้นตอนการทำ Text-to-SQL

ระหว่างการทดลองใช้งานในช่วงสั้นๆ โดยใช้ฐานข้อมูลเป็น sqlite ก็พบปัญหาอยู่บ้าง แต่เรามาเน้นพูดคุย เรื่องการออกแบบให้เหมาะกับการใช้งาน Automated Analytics ซึ่งพอจะสรุปบางส่วนได้ดังนี้

เป็นการยึดหลักแนวคิดในการออกแบบที่เป็น Clear and Specific
  
1. ดูแล้วยังเหมาะกับฐานข้อมูลที่มีจำนวน table ไม่มาก เช่น ส่วน data mart เนื่องจาก AI ต้องอ่านจากชื่อ tables ทั้งหมด แล้วมาเลือกใช้โดยเทียบกับคำถาม ทั้งนี้ในกรณีฐานข้อมูลขนาดใหญ่ อาจใช้การแบ่งให้สิทธิ์กับ AI โดยใช้เทคนิคต่างๆ ของฐานข้อมูลชนิดนั้นๆ เช่น แบ่ง schema สำหรับใช้งานกับ AI เพื่อจำกัดเฉพาะ table ที่กำหนด

2. ออกแบบ table ในแนวทาง semi-normalize หรือ denomalize table design เพื่อลดจำนวน table และลดความซับซ้อนในการ join 

3. ใช้หลักการตั้งชื่อแบบ snake case ในการเขียนชื่อ table และ column ซึ่งเป็นการเขียนชื่อโดยใช้ตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ทั้งหมด คั่นระหว่างคำด้วยเครื่องหมาย underscore "_" เช่น snake_case เพื่อให้ง่ายต่อการทำ tokenize วิธีนี้ยังทำให้ underscore กลายเป็น token หรือส่วนของ token ง่ายต่อการตัดแบ่งคำ 
 
4. ตั้งชื่อทั้ง table และ column เป็น เอกพจน์ เพื่อลดข้อผิดพลาดระหว่างที่ AI ทำการสร้าง SQL statement เช่น table_name.column_name จะมีโอกาศผิดพลาดน้อยกว่า table_names.column_names หรือ table_names.column_name 

5. ตั้งชื่อ column โดยระบุให้ชัดเจน เพื่อลดปัญหาชื่อ column ซ้ำกันในหลาย table (ambiguous column) เช่น ใน customer table กับ product table ซึ่งมี column ชื่อ name ทั้งคู่ ซึ่งหมายถึง customer name และ product name ตามลำดับ ซึ่ง LLM อาจจะเขียน SQL code ที่เกิด ambiguous error ได้ง่าย ควรระบุชื่อเป็น customer_name ใน customer table และ product_name ใน product table ให้เกิดความชัดเจน

6. ตั้งชื่อ table และ column โดยใช้คำพื้นฐานในภาษาอังกฤษให้ได้มากที่สุด เนื่องจาก dataset ที่ใช้ฝึก LLM มาจากภาษาอังกฤษซึ่งรวมถึง code ต่างๆ ด้วย ซึ่งการตั้งชื่อโดยใช้คำในภาษาอังกฤษง่ายๆ ซึ่งมักพบได้บ่อยใน dataset ที่ใช้ฝึก LLM เป็นการช่วยลดข้อผิดพลาดในขั้นตอนต่างๆ ได้มาก

7. ระบุ id สำหรับ column ที่เป็น primary key เช่น customer_id, product_id เพื่อให้ AI แยกแยะได้ง่ายว่าเป็น column ที่ใช้เป็น key
 
8. ใช้ชื่อ foreign keys column ให้ตรงกันในทุก table ที่ใช้ foreign key column เดียวกัน 

9. ใช้ booleans naming สำหรับ column ที่เป็น single status เช่น is_active (Y/N) หรือ has_fee (Y/N)
 
แนวทางเหล่านี้ เป็นพื้นฐานในการออกแบบ data model ซึ่งเป็นแนวปฏิบัติที่มีใช้กันมานาน แต่จากเดิมที่มีหลายแนวทางให้เลือกตามความเหมาะสมของภาษาและฐานข้อมูลที่ใช้ แต่ในโลกของ LLM ซึ่ง AI จะมาเป็นเพื่อนร่วมงานหน้าใหม่นอกเหนือจาก การเลือกใช้แนวทางในการออกแบบให้เหมาะสมกับการใช้งานจึงเป็นเรื่องที่เราต้องพิจารณาเพิ่มเติม ทั้งนี้ไม่ได้หมายถึงว่าการออกแบบรูปแบบอื่นๆ จะใช้ไม่ได้ หรือได้ไม่ได้ แต่การเลือกแนวทางการออกแบบที่เหมาะสม จะเป็นการลดโอกาสที่จะเกิดข้อผิดพลาดได้

อย่างไรก็ดีเนื่องจาก LLM อยู่ระหว่างการพัฒนาอย่างรวดเร็ว มีตัวเลือกมากมาย ซึ่งโมเดลเหล่านี้อาจมีข้อแตกต่างในรายละเอียดปลีกย่อย ไม่ว่าจะเป็นเทคนิคการตัดแบ่ง token การสร้าง code รวมถึงข้อจำกัดต่างๆ ที่มีแตกต่างกัน อาจจทำให้ผลลัพธ์ออกมาแตกต่างกัน แต่การออกแบบที่ดี เอื้อต่อการทำงานของ AI จะช่วยให้เราได้ผลลัพธ์ที่น่าพอใจ

References:

Road to Automated Analytics Road to Automated Analytics Reviewed by aphidet on 4:39 PM Rating: 5

No comments:

Powered by Blogger.